...
Code Block |
---|
PopConfig popConfig = new PopConfig.Builder(context, YOUR_POP_UNIT_ID) ... .iconResId(R.drawable.your_pop_icon) .rewardReadyIconResId(R.drawable.you_pop_icon_reward_ready) |
Notification 커스터마이징
PopNotificationConfig 설정
팝을 실행하고 있는 동안에 Service Notification을 보여집니다.
PopNotificationConfig 을 설정하여 Notification에 표시될 내용을 결정합니다. 앱의 톤 & 매너를 반영하여 변경합니다.
...
Code Block | ||
---|---|---|
| ||
final PopNotificationConfig popNotificationConfig = new PopNotificationConfig.Builder(context)
.smallIconResId(R.drawable.your_small_icon)
.titleResId(R.string.your_pop_notification_title)
.textResId(R.string.your_pop_notification_text)
.colorResId(R.color.your_pop_notification_color)
.notificationId(1000)
.build(); |
smallIconResId
Small icon을 설정합니다. 흰색 아이콘을 사용하며 Adaptive Icon 이 설정하지 않도록 주의해야합니다.colorResId(@ColorRes int colorResId)
Notification 의 아이콘, 앱 이름 에 적용되는 색상을 설정합니다.titleResId(@StringRes int titleResId)
타이틀 문구를 설정합니다.textResId(@StringRes int textResId)
Notification의 내용을 설정합니다.notificationId(int notificationId)
Android Notification Id를 설정합니다. Default 값은 5000
Custom Pop Service Notification
Pop 에서 기본 제공하는 Service Notification 은 클릭 했을 때 Pop 을 다시 보이는 기능을 제공합니다. 하지만 개발 요구사항에 따라 Service Notification 을 다른 형식으로 사용해야 할 경우가 있는데, 예를 들어 Pop service notification의 layout을 변경하고 싶거나, 채널 아이디를 변경하고 싶을때 입니다. 그런 경우 Custom Service Notification 을 등록하는 방법을 사용할 수 있습니다.
Step 1. CustomControlService class
PopControlService
를 상속받아 class 를 만듭니다.buildForegroundNotification
함수를 오버라이드 합니다.(Optional) getPopPendingIntent
를 통해 click 시 Pop Icon 을 띄우는 기능을 하는 PendingIntent 를 만들 수 있습니다. 요구사항에 따라 이 기능 대신 필요한 기능을 PendingIndent로 사용하면 됩니다.필요에 따라 notificationChannel 을 생성해 등록합니다.
(Optional)RemoteViews
,setContent
를 사용해 CustomContolService 에서 사용할 View 를 등록합니다.
Code Block | ||
---|---|---|
| ||
// 1. PopControlService 를 상속받아 class 를 만듭니다.
public class CustomControlService extends PopControlService {
// 2. buildForegroundNotification 함수를 오버라이드 합니다.
@Override
protected Notification buildForegroundNotification(@NonNull String unitId, @NonNull PopNotificationConfig popNotificationConfig) {
// 3. getPopPendingIntent 를 통해 click 시 Pop Icon 을 띄우는 기능을 하는 PendingIntent 를 만들 수 있습니다.
PendingIntent popPendingIntent = getPopPendingIntent(unitId, this);
NotificationCompat.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// 4. 필요에 따라 notificationChannel 을 생성해 등록합니다.
createNotificationChannelIfNeeded();
builder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
} else {
builder = new NotificationCompat.Builder(this);
}
// 5. CustomContolService 에서 사용할 View 를 등록합니다.
RemoteViews remoteView = new RemoteViews(getPackageName(), R.layout.view_custom_notification);
builder.setSmallIcon(popNotificationConfig.getSmallIconResId())
.setContent(remoteView)
.setContentIntent(popPendingIntent)
.setPriority(PRIORITY_LOW)
.setShowWhen(false);
if (popNotificationConfig.getColor() == null) {
builder.setColor(popNotificationConfig.getColor());
}
return builder.build();
}
@TargetApi(Build.VERSION_CODES.O)
private void createNotificationChannelIfNeeded() {
final NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (notificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_ID) == null) {
final NotificationChannel channel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, NOTIFICATION_CHANNEL_NAME, NotificationManager.IMPORTANCE_LOW);
channel.setShowBadge(false);
notificationManager.createNotificationChannel(channel);
}
}
} |
Step 2. Custom Service Class 등록
PopConfig.controlService(@NonNull Class<? extends PopControlService> popControlServiceClass)
를 사용해 Custom Service Notification 을 등록할 수 있습니다.
이 경우, PopNotificationConfig 는 SmallIconRes 와 NotificationId 두 가지만 설정하면 됩니다.
Code Block | ||
---|---|---|
| ||
final PopNotificationConfig popNotificationConfig = new PopNotificationConfig.Builder()
.smallIconResId(R.drawable.ic_notification_pop_gift)
.notificationId(NOTIFICATION_ID)
.build();
final PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), UNIT_ID_POP)
...(생략)...
.controlService(CustomControlService.class)
.build();
final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(context)
...(생략)...
.setPopConfig(popConfig)
.build(); |
Step 3. Manifest 에 CustomControlService 를 등록
Code Block | ||
---|---|---|
| ||
<application
...(생략)...
<service android:name=".java.CustomControlService" />
</application> |
Pop Feed 커스터마이징
유틸리티 영역 커스터마이징
...