[mobile] fix back bug

pull/123/head
FongMi 3 years ago
parent 1e306cd553
commit 8f6b7c953e
  1. 22
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  2. 1
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
  3. 8
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  4. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java

@ -6,6 +6,7 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.api.LiveConfig;
@ -27,6 +28,7 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
private ActivityMainBinding mBinding;
private List<Fragment> mFragments;
private boolean confirm;
@Override
protected ViewBinding getBinding() {
@ -64,7 +66,6 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
return new Callback() {
@Override
public void success() {
RefreshEvent.history();
RefreshEvent.video();
}
@ -80,6 +81,16 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
return (VodFragment) getSupportFragmentManager().findFragmentByTag("0");
}
private SettingFragment getSettingFragment() {
return (SettingFragment) getSupportFragmentManager().findFragmentByTag("1");
}
private void setConfirm() {
confirm = true;
Notify.show(R.string.app_exit);
App.post(() -> confirm = false, 2000);
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
@ -96,10 +107,11 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
@Override
public void onBackPressed() {
if (getVodFragment().isVisible()) {
if (getVodFragment().canBack()) super.onBackPressed();
} else {
super.onBackPressed();
if (getSettingFragment().isVisible()) {
mBinding.navigation.setSelectedItemId(R.id.vod);
} else if (getVodFragment().canBack()) {
if (!confirm) setConfirm();
else super.onBackPressed();
}
}

@ -134,7 +134,6 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
case 0:
Notify.dismiss();
RefreshEvent.video();
RefreshEvent.history();
mBinding.liveUrl.setText(LiveConfig.getUrl());
mBinding.wallUrl.setText(WallConfig.getUrl());
break;

@ -170,8 +170,12 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
}
public boolean canBack() {
if (mBinding.pager.getCurrentItem() > 0) return true;
return getSiteFragment().canBack();
try {
if (mBinding.pager.getCurrentItem() > 0) return true;
return getSiteFragment().canBack();
} catch (Exception e) {
return true;
}
}
class PageAdapter extends FragmentStatePagerAdapter {

@ -86,7 +86,7 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList
@Override
public boolean onLongClick() {
setHistoryDelete(true);
setHistoryDelete(!mHistoryAdapter.isDelete());
return true;
}
@ -105,6 +105,7 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList
public void onResult(Result result) {
mBinding.progressLayout.showContent();
mVodAdapter.addAll(result.getList());
getHistory();
}
@Subscribe(threadMode = ThreadMode.MAIN)

Loading…
Cancel
Save