Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PopConfig를 통해 Pop의 기능을 설정할 수 있습니다. 6.2.1 기본 설정 에서의 기본 Pop 설정과는 다른 기능이나 UI를 적용하고 싶을 때, 혹은 Default Feed와 다른 Unit ID를 사용하고 싶을 때는 사용합니다.

다음은 PopConfigBuzzAdBenefitConfig에 추가하는 예시입니다.

Code Block
languagejava
PopConfigfinal FeedConfig popConfigpopFeedConfig = new PopConfigFeedConfig.Builder(getApplicationContext(), "YOUR_POP_UNIT_ID")
        .build();
final PopConfig popConfig =     
new PopConfig.Builder(getApplicationContext(), popFeedConfig)
                      .build();
        
final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(context)
        .setPopConfig(popConfig)..생략...
        .buildsetPopConfig(popConfig);
        .build();
        
BuzzAdBenefit.init(this, buzzAdBenefitConfig);

...

Code Block
languagejava
PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), "YOUR_POP_UNIT_ID"popFeedConfig)
        .articlesEnabled(false) // 컨텐츠 비활성화
        .build();

...

  • PopConfig를 설정하지 않고, FeedConfig를 아래와 같이 설정한 경우

    Code Block
    FeedConfig feedConfig = new FeedConfig.Builder(getApplicationContext(), "YOUR_FEEDPOP_UNIT_ID")
            .optInFeatureList(Collections.singletonList(OptInFeature.Pop))
            .build();
  • PopConfig를 설정한 경우

    Code Block
    languagejava
    PopConfigFeedConfig popConfigfeedConfig = new PopConfigFeedConfig.Builder(getApplicationContext(), "YOUR_POP_UNIT_ID")
            .build();
    PopConfig popConfig =   new PopConfig.Builder(getApplicationContext(), feedConfig)
                          .build();
    
    final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(context)
            .setPopConfig(popConfig) // PopConfig 설정
            .build();
    BuzzAdBenefit.init(this, buzzAdBenefitConfig);

...

Code Block
languagejava
final FeedConfig feedConfig = new FeedConfig.Builder(context, "YOUR_FEEDPOP_UNIT_ID")
        .optInAndShowPopButtonHandlerClass(null) // Pop 활성화 버튼 숨김
        .build();

...

Code Block
languagejava
final PopNotificationConfig popNotificationConfig = new PopNotificationConfig.Builder(getApplicationContext())
                .notificationId(NOTIFICATION_ID)
                .build();

final PopConfigFeedConfig popConfigpopFeedConfig = new PopConfigFeedConfig.Builder(getApplicationContext(), "YOUR_POP_UNIT_ID_POP)
 ").build();
final PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), popFeedConfig)
        .popNotificationConfig(popNotificationConfig)
        .controlService(YourControlService.class)
        .build();

final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(context)
        .setPopConfig(popConfig)
        .build();
Code Block
languagejava
// AndroidManifest.xml

<application
    ...생략...
    
    <service android:name=".java.YourControlService" />
    
    ...생략...
</application>

...

Code Block
languagejava
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); // 툴바 배경색을 변경합니다.

        addInquiryMenuItemViewaddSettingsMenuItemView(activity, unitId); // 문의하기메뉴 버튼은버튼 추가 함수를(메뉴 통해안에 간단하게문의하기 추가버튼이 가능합니다.있습니다)
//        addRightMenuItemView1addInquiryMenuItemView(activity, unitId); // custom문의하기 버튼 추가버튼은 이 함수를 통해 간단하게 추가 가능합니다.
        addRightMenuItemView(activity, unitId); // custom 버튼 추가
        return toolbar;
    }

    // custom 버튼 추가는 toolbar.buildPopMenuItemView 를 사용하여 PopMenuImageView 를 생성하고
    // toolbar.addRightMenuButton 를 사용하여 toolbar 에 추가합니다.
    private void addRightMenuItemView1addRightMenuItemView(@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);
    }
}

FeedConfig에 YourPopToolbarHolder를 설정합니다.

Code Block
languagejava
final FeedConfig popFeedConfig = new PopConfigFeedConfig.Builder(getApplicationContext(), "YOUR"YOUR_POP_UNIT_ID")
    ...생략...
    .feedToolbarHolderClass(YourPopToolbarHolder.class)
    .build();
new PopConfig.Builder(getApplicationContext(), popFeedConfig)
    ...생략...
    .build();

Custom View를 직접 구현하여 UI를 변경

...

DefaultPopToolbarHolder의 상속 클래스는 구현하여 툴바를 변경합니다. SDK에서 제공하는 PopToolbar를 사용하지 않고 직접 구성한 레이아웃을 사용합니다. 그리고 DefaultPopToolbarHolder를 상속해 새로운 클래스를 구현하고, 구현한 상속 클래스는 PopConfig에 설정합니다.

다음은 레이아웃을 직접 구성하여 구현하는 예제입니다.

java
Code Block
language
public class YourPopToolbarHolder extends DefaultPopToolbarHolder {
    @Override
    public View getView(Activity activity, @NonNull final String unitId) {
        // 직접 구성한 layout 을 사용합니다
        ViewGroup root =  (ViewGroup) activity.getLayoutInflater().inflate(R.layout.your_pop_custom_toolbar_layout, null);

        View buttonInquiry = root.findViewById(R.id.yourInquiryButton);
        buttonInquiry.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 문의하기 페이지 열기
                showInquiry(activity, unitId);
            }
        });
        return root;
    }
}

 

Code Block
languagejava
final FeedConfig popFeedConfig = new PopConfigFeedConfig.Builder(getApplicationContext(), "YOUR_POP_UNIT_ID")
    ...생략...
    .feedToolbarHolderClass(YourPopToolbarHolder.class)
    .build();
new PopConfig.Builder(getApplicationContext(), popFeedConfig)
    ...생략...
    .build();

유틸리티 영역 UI 변경

...

유틸리티 영역을 활용하여 사용자에게 편리한 기능을 제공합니다.

...