Remove onBackPressed support on scene
This commit is contained in:
1 parent
d7dfd53244
commit
d9959bbcb2
5 files changed
+11
-37
No files matched your search
@@ -268,7 +268,7 @@ public final class GalleryCommentsScene extends ToolbarScene
|
||||
|
||||
@Override
|
||||
public void onNavigationClick() {
|
||||
onBackPressed();
|
||||
requireActivity().getOnBackPressedDispatcher().onBackPressed();
|
||||
}
|
||||
|
||||
private void showFilterCommenterDialog(String commenter, int position) {
|
||||
|
||||
@@ -783,10 +783,6 @@ public final class GalleryListScene extends SearchBarScene
|
||||
return view;
|
||||
}
|
||||
|
||||
public boolean isBackpressCanPreviewLauncherStatus() {
|
||||
return mState == STATE_NORMAL && getStackIndex() == 0;
|
||||
}
|
||||
|
||||
public void onItemClick(int position) {
|
||||
if (null == mHelper || null == mRecyclerView) {
|
||||
return;
|
||||
@@ -1166,7 +1162,6 @@ public final class GalleryListScene extends SearchBarScene
|
||||
break;
|
||||
}
|
||||
}
|
||||
((StageActivity) requireActivity()).updateBackPressCallBackStatus();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -106,7 +106,6 @@ abstract class SearchBarScene : ToolbarScene() {
|
||||
GravityCompat.END
|
||||
)
|
||||
}
|
||||
(requireActivity() as StageActivity).updateBackPressCallBackStatus()
|
||||
updateSuggestions()
|
||||
}
|
||||
|
||||
@@ -116,7 +115,6 @@ abstract class SearchBarScene : ToolbarScene() {
|
||||
privLockModeStart = null
|
||||
privLockModeEnd?.let { setDrawerLockMode(it, GravityCompat.END) }
|
||||
privLockModeEnd = null
|
||||
(requireActivity() as StageActivity).updateBackPressCallBackStatus()
|
||||
}
|
||||
|
||||
fun setSearchBarHint(hint: String?) {
|
||||
|
||||
@@ -61,7 +61,6 @@ public class SceneFragment extends Fragment {
|
||||
FragmentActivity activity = getActivity();
|
||||
if (activity instanceof StageActivity) {
|
||||
((StageActivity) activity).startScene(announcer, horizontal);
|
||||
((StageActivity) activity).updateBackPressCallBackStatus();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,10 +97,6 @@ public class SceneFragment extends Fragment {
|
||||
}
|
||||
}
|
||||
|
||||
public void onBackPressed() {
|
||||
finish();
|
||||
}
|
||||
|
||||
public void onProvideAssistContent(AssistContent outContent) {
|
||||
|
||||
}
|
||||
|
||||
@@ -31,7 +31,6 @@ import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.hippo.ehviewer.R;
|
||||
import com.hippo.ehviewer.ui.EhActivity;
|
||||
import com.hippo.ehviewer.ui.scene.GalleryListScene;
|
||||
import com.hippo.yorozuya.AssertUtils;
|
||||
import com.hippo.yorozuya.IntIdGenerator;
|
||||
|
||||
@@ -58,7 +57,7 @@ public abstract class StageActivity extends EhActivity {
|
||||
private final SceneViewComparator mSceneViewComparator = new SceneViewComparator();
|
||||
private int mStageId = IntIdGenerator.INVALID_ID;
|
||||
|
||||
private OnBackPressedCallback callback;
|
||||
private OnBackPressedCallback callback = new BackPressCallBack();
|
||||
|
||||
public static void registerLaunchMode(Class<?> clazz, @SceneFragment.LaunchMode int launchMode) {
|
||||
if (launchMode != SceneFragment.LAUNCH_MODE_STANDARD &&
|
||||
@@ -141,8 +140,6 @@ public abstract class StageActivity extends EhActivity {
|
||||
@Override
|
||||
protected final void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
callback = new BackPressCallBack(false);
|
||||
getOnBackPressedDispatcher().addCallback(callback);
|
||||
if (savedInstanceState != null) {
|
||||
mStageId = savedInstanceState.getInt(KEY_STAGE_ID, IntIdGenerator.INVALID_ID);
|
||||
@@ -252,10 +249,14 @@ public abstract class StageActivity extends EhActivity {
|
||||
|
||||
public void startScene(Announcer announcer) {
|
||||
startScene(announcer, false);
|
||||
updateBackPressCallBackStatus();
|
||||
}
|
||||
|
||||
public void startScene(Announcer announcer, boolean horizontal) {
|
||||
startSceneInternal(announcer, horizontal);
|
||||
updateBackPressCallBackStatus();
|
||||
}
|
||||
|
||||
public void startSceneInternal(Announcer announcer, boolean horizontal) {
|
||||
Class<?> clazz = announcer.clazz;
|
||||
Bundle args = announcer.args;
|
||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
@@ -565,23 +566,8 @@ public abstract class StageActivity extends EhActivity {
|
||||
updateBackPressCallBackStatus();
|
||||
}
|
||||
|
||||
private boolean shouldEnableBackPressCallBack() {
|
||||
if (mSceneTagList.size() > 1)
|
||||
return true;
|
||||
if (mSceneTagList.size() == 0)
|
||||
return false;
|
||||
String tag = mSceneTagList.get(0);
|
||||
Fragment fragment = getSupportFragmentManager().findFragmentByTag(tag);
|
||||
if (fragment instanceof GalleryListScene)
|
||||
return !((GalleryListScene) fragment).isBackpressCanPreviewLauncherStatus();
|
||||
return false;
|
||||
}
|
||||
|
||||
public void updateBackPressCallBackStatus() {
|
||||
var isEnabled = callback.isEnabled();
|
||||
var shouldEnable = shouldEnableBackPressCallBack();
|
||||
if (isEnabled != shouldEnable)
|
||||
callback.setEnabled(shouldEnable);
|
||||
callback.setEnabled(mSceneTagList.size() > 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -627,8 +613,8 @@ public abstract class StageActivity extends EhActivity {
|
||||
}
|
||||
|
||||
class BackPressCallBack extends OnBackPressedCallback {
|
||||
public BackPressCallBack(boolean enabled) {
|
||||
super(enabled);
|
||||
public BackPressCallBack() {
|
||||
super(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -647,7 +633,7 @@ public abstract class StageActivity extends EhActivity {
|
||||
}
|
||||
|
||||
scene = (SceneFragment) fragment;
|
||||
scene.onBackPressed();
|
||||
finishScene(scene);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user