diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index 9ee551b6f..288c8f64f 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -97,6 +97,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen mClock = Clock.create(mBinding.time).format("MM/dd HH:mm:ss"); mBinding.progressLayout.showProgress(); Updater.get().release().start(this); + mResult = Result.empty(); Server.get().start(); setRecyclerView(); setViewModel(); @@ -442,7 +443,12 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen } @Override - public void onBackPressed() { + protected boolean handleBack() { + return true; + } + + @Override + protected void onBackPress() { if (mBinding.progressLayout.isProgress()) { mBinding.progressLayout.showContent(); } else if (mPresenter.isDelete()) { diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java index c824f4bd6..9ae5c2ad5 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java @@ -7,6 +7,7 @@ import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; +import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.leanback.widget.ArrayObjectAdapter; @@ -39,6 +40,7 @@ public abstract class BaseActivity extends AppCompatActivity { setContentView(getBinding().getRoot()); EventBus.getDefault().register(this); Util.hideSystemUI(this); + setBackCallback(); setWall(); initView(); initEvent(); @@ -52,12 +54,19 @@ public abstract class BaseActivity extends AppCompatActivity { return true; } + protected boolean handleBack() { + return false; + } + protected void initView() { } protected void initEvent() { } + protected void onBackPress() { + } + protected boolean isVisible(View view) { return view.getVisibility() == View.VISIBLE; } @@ -70,6 +79,15 @@ public abstract class BaseActivity extends AppCompatActivity { if (!view.isComputingLayout()) adapter.notifyArrayItemRangeChanged(0, adapter.size()); } + private void setBackCallback() { + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(handleBack()) { + @Override + public void handleOnBackPressed() { + onBackPress(); + } + }); + } + private void setWall() { try { if (!customWall()) return; diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java index fd9ac0bd0..ea6d162b1 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java @@ -199,8 +199,12 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt RefreshEvent.video(); } + protected boolean handleBack() { + return true; + } + @Override - public void onBackPressed() { + protected void onBackPress() { if (!mBinding.navigation.getMenu().findItem(R.id.vod).isVisible()) { setNavigation(); } else if (mManager.isVisible(2)) { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java index 5d4f67345..917a23879 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java @@ -10,6 +10,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; +import androidx.activity.OnBackPressedCallback; import androidx.appcompat.app.AppCompatActivity; import androidx.viewbinding.ViewBinding; @@ -36,6 +37,7 @@ public abstract class BaseActivity extends AppCompatActivity { if (transparent()) setTransparent(this); setContentView(getBinding().getRoot()); EventBus.getDefault().register(this); + setBackCallback(); setWall(); initView(savedInstanceState); initEvent(); @@ -53,12 +55,19 @@ public abstract class BaseActivity extends AppCompatActivity { return true; } + protected boolean handleBack() { + return false; + } + protected void initView(Bundle savedInstanceState) { } protected void initEvent() { } + protected void onBackPress() { + } + protected boolean isVisible(View view) { return view.getVisibility() == View.VISIBLE; } @@ -87,6 +96,15 @@ public abstract class BaseActivity extends AppCompatActivity { layout.setPadding(0, 0, 0, 0); } + private void setBackCallback() { + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(handleBack()) { + @Override + public void handleOnBackPressed() { + onBackPress(); + } + }); + } + private void setWall() { try { if (!customWall()) return;