...
Code Block | ||
---|---|---|
| ||
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); } } } |
...