Update up arrow behavior
- Enable up arrow for fragments.
- Apply up arrow for coming from home case.
Bug: 177638480
Test: manual
Change-Id: I7f0e9343732fc4d358680106c4070281af8ab686
diff --git a/src/com/android/customization/picker/CustomizationPickerActivity.java b/src/com/android/customization/picker/CustomizationPickerActivity.java
index fc125a7..69aa428 100644
--- a/src/com/android/customization/picker/CustomizationPickerActivity.java
+++ b/src/com/android/customization/picker/CustomizationPickerActivity.java
@@ -77,6 +77,7 @@
import com.android.wallpaper.picker.TopLevelPickerActivity;
import com.android.wallpaper.picker.WallpaperPickerDelegate;
import com.android.wallpaper.picker.WallpapersUiContainer;
+import com.android.wallpaper.util.ActivityUtils;
import com.android.wallpaper.util.DeepLinkUtils;
import com.android.wallpaper.widget.BottomActionBar;
import com.android.wallpaper.widget.BottomActionBar.BottomActionBarHost;
@@ -505,7 +506,27 @@
@Override
public void onUpArrowPressed() {
- onBackPressed();
+ Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragment_container);
+ if (fragment instanceof BottomActionBarFragment
+ && ((BottomActionBarFragment) fragment).onBackPressed()) {
+ return;
+ }
+
+ // For wallpaper tab, since it had child fragment.
+ if (mWallpaperCategoryFragment != null && mWallpaperCategoryFragment.popChildFragment()) {
+ return;
+ }
+
+ if (getSupportFragmentManager().popBackStackImmediate()) {
+ return;
+ }
+
+ if (!ActivityUtils.isLaunchedFromSettings(getIntent())) {
+ Intent intent = new Intent(Settings.ACTION_SETTINGS);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ startActivity(intent);
+ }
+ finish();
}
@Override
diff --git a/src/com/android/customization/picker/grid/GridFragment.java b/src/com/android/customization/picker/grid/GridFragment.java
index a69b3a3..deaa210 100644
--- a/src/com/android/customization/picker/grid/GridFragment.java
+++ b/src/com/android/customization/picker/grid/GridFragment.java
@@ -50,7 +50,6 @@
import com.android.wallpaper.module.CurrentWallpaperInfoFactory;
import com.android.wallpaper.module.InjectorProvider;
import com.android.wallpaper.picker.AppbarFragment;
-import com.android.wallpaper.util.ActivityUtils;
import com.android.wallpaper.widget.BottomActionBar;
import com.bumptech.glide.Glide;
@@ -111,7 +110,7 @@
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(
R.layout.fragment_grid_picker, container, /* attachToRoot */ false);
- setUpToolbar(view, ActivityUtils.isLaunchedFromSettings(getActivity().getIntent()));
+ setUpToolbar(view);
mContent = view.findViewById(R.id.content_section);
mOptionsContainer = view.findViewById(R.id.options_container);
mLoading = view.findViewById(R.id.loading_indicator);
diff --git a/src/com/android/customization/picker/theme/ThemeFragment.java b/src/com/android/customization/picker/theme/ThemeFragment.java
index da2a8f6..5ff5ef8 100644
--- a/src/com/android/customization/picker/theme/ThemeFragment.java
+++ b/src/com/android/customization/picker/theme/ThemeFragment.java
@@ -57,7 +57,6 @@
import com.android.wallpaper.module.CurrentWallpaperInfoFactory;
import com.android.wallpaper.module.InjectorProvider;
import com.android.wallpaper.picker.AppbarFragment;
-import com.android.wallpaper.util.ActivityUtils;
import com.android.wallpaper.widget.BottomActionBar;
import com.android.wallpaper.widget.BottomActionBar.AccessibilityCallback;
@@ -116,7 +115,7 @@
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(
R.layout.fragment_theme_picker, container, /* attachToRoot */ false);
- setUpToolbar(view, ActivityUtils.isLaunchedFromSettings(getActivity().getIntent()));
+ setUpToolbar(view);
mContent = view.findViewById(R.id.content_section);
mLoading = view.findViewById(R.id.loading_indicator);