Use OnBackPressedCallback

pull/194/head
FongMi 2 years ago
parent 36ec3b75d2
commit d59164fc80
  1. 8
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 18
      app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java
  3. 6
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  4. 18
      app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.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()) {

@ -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;

@ -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)) {

@ -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;

Loading…
Cancel
Save