Versions Compared

Key

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

...

Code Block
languagejava
class BatteryCustomView extends FrameLayout implements BatteryBannerContract.View {
  private final Activity activity;
  private final View bannerContainer;
  private final TextView guideTextView;
  private final BatteryBannerContract.Presenter presenter;
  
  public BatteryCustomView(@NonNull final Activity activity, @NonNull final BatteryBannerContract.Presenter presenter) {
    super(activity);
    // 여기서는 sdk에 포함된 기본 레이아웃을 사용하지만, 직접 작성한 레이아웃 파일을 사용하는 것을 권장합니다.
    inflate(activity, com.buzzvil.buzzscreen.sdk.R.layout.view_battery_guide_banner, this);
    
    this.activity = activity;
    this.presenter = presenter;
    presenter.setView(this);
    
    this.bannerContainer = findViewById(com.buzzvil.buzzscreen.sdk.R.id.bannerContainer);
    this.guideTextView = findViewById(com.buzzvil.buzzscreen.sdk.R.id.guideText);
    guideTextView.setText("변경할 알림 문구");
    
    // 닫기 버튼
    findViewById(com.buzzvil.buzzscreen.sdk.R.id.btnDismiss).setOnClickListener((Viewv view) ->
      presenter.dismiss();
    );
   

    // 설정 버튼
    findViewById(com.buzzvil.buzzscreen.sdk.R.id.btnSettings).setOnClickListener((Viewv view) ->
      launchSettingsActivity();
    );
  }
  
  @Override
  public void show() {
    this.bannerContainer.setVisibility(VISIBLE);
  }
  
  @Override
  public void hide() {
    this.bannerContainer.setVisibility(GONE);
  }
  
  public void resume() {
    // presenter가 절전 상태 UI가 표시되어야 하는 환경인지 체크해서 show() 또는 hide()
    // 를 호출합니다.
    presenter.checkAvailability(getContext());
  }
  
  private void launchSettingsActivity() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
      BuzzScreen.getInstance().openBatterySettingsWithOverlay(activity, activity.getClass(), BatteryGuideManager.TriggerType.LockscreenBanner);
    }
  }
}

...