라이브러리 적용시 참고 사항

[변경 사항]
v3.2.3
1. 안드로이드에서 제공하는 표준 Notification UI를 사용합니다.
- 푸시 아이콘을 별도로 지정하여 사용을 원할 경우 푸시 아이콘의 파일 이름을 ic_circle_push.png 로 지정하여 각 리소스별 drawable 폴더에 추가합니다. 별도로 ic_circle_push.png 아이콘 이미지를 추가하지 않을 경우 앱 아이콘이 푸시 아이콘으로 사용됩니다.
- 일반 스몰 아이콘 외에도 라지 아이콘을 추가로 지정하여 사용을 원할 경우 각 리소스별 drawable 폴더에 ic_circle_push_large.png 아이콘 이미지를 추가합니다.

2. GcmBaseIntentService가 deprecated 되었습니다. 그리고 일부 푸시 관련 설정이 제거됩니다.
- 게임에서 GcmBaseIntentService를 상속받아 사용하던 CircleGcmIntentService.java 파일을 제거합니다.
- CircleFCMService.java 파일을 제거합니다.
- AndroidManifest.xml에서 아래의 'AndroidManifest 설정 예시'를 참고하여 LocalPushReceiver, CircleGcmIntentService, CircleFCMService와 관련된 푸시 설정을 제거합니다.
(AndroidManifest 설정 예시)
<receiver
	android:name="com.gamevil.circle.notification.LocalPushReceiver" android:process=":remote"
	android:exported="true">
	<intent-filter>

		 <action android:name="com.gamevil.push.intent.LOCAL" />
		<category android:name="com.gamevil.circlesample.ad.google.ww" />
	</intent-filter>
</receiver>

<service android:name=".CircleFCMService"
	android:exported="true">
	<intent-filter>
		<action android:name="com.google.firebase.MESSAGING_EVENT" />
	</intent-filter>
</service>
<service android:name=".CircleGcmIntentService" />

3. Firebase Messaging 라이브러리 버전이 23.1.2로 업데이트 되었습니다. build.gradle에 아래와 같이 수정이 필요합니다. firebase-iid 관련 내용은 삭제합니다.
(기존)
implementation 'com.google.firebase:firebase-iid:20.0.0'
implementation 'com.google.firebase:firebase-messaging:20.0.0'

(수정)
implementation 'com.google.firebase:firebase-messaging:23.1.2'



v3.2.2
1. Android 13 대응을 위해 푸시 권한 요청 API가 추가되었습니다.
- Android 13부터 푸시 알림 허용을 위해 명시적으로 사용자에게 권한을 요청 해야합니다. 게임에서 적절한 시점을 판단하여 reqeustPushPermission() API를 요청합니다. 'android.permission.POST_NOTIFICATIONS' 매니페스트 권한은 서클 라이브러리에 포함되어 있습니다.
(예제 코드) CircleManager.shared().requestPushPermission();

2. GcmBaseIntentService가 deprecated 될 예정입니다.
- CircleGcmIntentService를 통해 ICON_RES_ID로 로컬 푸시 아이콘 설정하는 대신 ic_circle_push.png 이름을 가진 아이콘 리소스 파일을 각 해상도 별 폴더에 넣어두면 푸시 아이콘으로 사용됩니다. 별도의 ic_circle_push.png 파일을 설정하지 않으면 매니페스트에 설정한 앱아이콘을 푸시 아이콘으로 사용합니다. 3.2.2 버전에서는 여전히 CircleGcmIntentService의 ICON_RES_ID에 설정한 리소스가 우선 적용됩니다.



v3.2.2 이전 버전
v3.2.0 ~ v3.2.2 적용시
- Android 12 대응을 위해 AndroidManifest.xml 내 일부 설정의 수정이 필요합니다. <intent-filter> 가 선언되어 있는 곳에 exported 를 명시적으로 선언합니다.

AndroidManifest.xml 수정 필요
<!-- add for FCM START -->
<receiver
          android:name="com.gamevil.circle.notification.LocalPushReceiver" android:process=":remote"
	android:exported="true">
          <intent-filter>
              
               <action android:name="com.gamevil.push.intent.LOCAL" />
              <category android:name="com.gamevil.circlesample.ad.google.ww" />oo
          </intent-filter>
      </receiver>

<service android:name=".CircleFCMService"
	android:exported="true">
	<intent-filter>
		<action android:name="com.google.firebase.MESSAGING_EVENT" />
	</intent-filter>
</service>
<service android:name=".CircleGcmIntentService" />
<!-- add for FCM END -->



[기타 설정]
1. gradle.properies내 아래와 같이 코드 추가(파일이 없다면 파일을 새로 생성)
android.enableJetifier=true
android.useAndroidX=true

2. Build.gradle의 Android Support dependencies를 아래와 같이 수정
(기존)implementation 'com.android.support:support-v4:27.0.2'
(수정)implementation 'androidx.legacy:legacy-support-v4:1.0.x'

3. Build.gradle의 Google dependencies를 기존 11.2.0 으로 사용중이었다면 17.0.0으로 수정하고 광고id 수집을 위한 라이브러리 추가
(기존)implementation 'com.google.android.gms:play-services-games:11.2.0'
(수정)implementation 'com.google.android.gms:play-services-games:17.0.0'

(추가)implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'

4. Build.gradle의 Firebase dependencies를 기존 23.1.2로 수정
implementation 'com.google.firebase:firebase-messaging:23.1.2'
