...
Code Block |
---|
|
public class YourControlService extends PopControlService {
@Override
protected Notification buildForegroundNotification(@NonNull String unitId, @NonNull PopNotificationConfig popNotificationConfig) {
// Pop을 표시하는 PendingIntent (원형 아이콘ㅇ아이콘)
PendingIntent popPendingIntent = getPopPendingIntent(unitId, this);
// 필요에 따라 notificationChannel을 등록합니다.
NotificationCompat.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
createNotificationChannelIfNeeded();
builder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
} else {
builder = new NotificationCompat.Builder(this);
}
// Pop Service Notification 에 사용할 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)
protected 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);
}
}
} |
...
다음은 BuzzAd Android SDK에서 제공하는 UI를 이용하여 구현하는 예시입니다.
Code Block |
---|
|
public class YourPopToolbarHolder extends DefaultPopToolbarHolder {
@Override
public View getView(Activity activity, @NonNull final String unitId) {
toolbar = new PopToolbar(activity); // PopToolbar 에서 제공하는 기본 Template 사용
toolbar.setTitle("TemplatePopToolbarHolder"); // 툴바 타이틀 문구를 변경합니다.
toolbar.setIconResource(R.mipmap.ic_launcher); // 툴바 좌측 아이콘을 변경합니다.
toolbar.setBackgroundColor(Color.LTGRAY); // 툴바 배경색을 변경합니다.
addInquiryMenuItemView(activity, unitId); // 문의하기 버튼은 이 함수를 통해 간단하게 추가 가능합니다.
addRightMenuItemView1(activity, unitId); // custom 버튼 추가
return toolbar;
}
// custom 버튼 추가는 toolbar.buildPopMenuItemView 를 사용하여 PopMenuImageView 를 생성하고
// toolbar.addRightMenuButton 를 사용하여 toolbar 에 추가합니다.
private void addRightMenuItemView1(@NonNull final Activity activity, @NonNull final String unitId) {
PopMenuImageView menuItemView = toolbar.buildPopMenuItemView(activity, R.mipmap.ic_launcher);
menuItemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showInquiry(activity, unitId); // 문의하기 페이지로 연결합니다.
}
});
toolbar.addRightMenuButton(menuItemView);
}
} |
...
Code Block |
---|
|
public final class CustomPopUtilityLayoutHandler extends PopUtilityLayoutHandler {
private Context context;
public CustomPopUtilityLayoutHandler(Context context) {
super(context);
this.context = context;
}
@Override
public void onLayoutCreated(ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
final FrameLayout layout = (FrameLayout) inflater.inflate(
R.layout.your_pop_utility_view,
parent,
false
);
parent.addView(layout);
}
}
|
Code Block |
---|
|
new PopConfig.Builder(getApplicationContext(), "YOUR_POP_UNIT_ID")
.popUtilityLayoutHandlerClass(CustomPopUtilityLayoutHandler.class)
.build(); |
...