summaryrefslogtreecommitdiff
path: root/src/com/android
diff options
context:
space:
mode:
authorJohn Pan <johnpan@google.com>2022-03-04 17:02:24 +0800
committerJohn Pan <johnpan@google.com>2022-03-15 22:30:05 +0800
commit6721138559f1419a7121c8abf2da0bf7192ecf97 (patch)
treeda89d5b2cf780a5933b9397c2aa8cfd9e03fd1c5 /src/com/android
parent88051e7314ddfc086a635365fb1c8cb5d3177cf6 (diff)
downloadThemePicker-6721138559f1419a7121c8abf2da0bf7192ecf97.tar.gz
Hide grid selection if grid option size <= 1
- set mGridOptionsManager.fetchOptions reload to false because we will fetch the option before the call Screenshot: https://screenshot.googleplex.com/BHV9pjhesUcKLzZ.png Bug: 221129455 Test: Manual Change-Id: I27863d8c737fd8a0f2c8a8c275a6742163cf88e4
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/customization/model/grid/GridOptionsManager.java14
-rw-r--r--src/com/android/customization/model/grid/GridSectionController.java2
2 files changed, 14 insertions, 2 deletions
diff --git a/src/com/android/customization/model/grid/GridOptionsManager.java b/src/com/android/customization/model/grid/GridOptionsManager.java
index f16d1d0d..c19a8728 100644
--- a/src/com/android/customization/model/grid/GridOptionsManager.java
+++ b/src/com/android/customization/model/grid/GridOptionsManager.java
@@ -19,6 +19,7 @@ import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
+import android.util.Log;
import androidx.annotation.VisibleForTesting;
@@ -30,6 +31,7 @@ import com.android.wallpaper.module.InjectorProvider;
import com.android.wallpaper.util.PreviewUtils;
import java.util.List;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -39,6 +41,7 @@ import java.util.concurrent.Executors;
public class GridOptionsManager implements CustomizationManager<GridOption> {
private static final ExecutorService sExecutorService = Executors.newSingleThreadExecutor();
+ private static final String TAG = "GridOptionsManager";
private static GridOptionsManager sGridOptionsManager;
@@ -68,7 +71,16 @@ public class GridOptionsManager implements CustomizationManager<GridOption> {
@Override
public boolean isAvailable() {
- return mProvider.areGridsAvailable();
+ int gridOptionSize = 0;
+ try {
+ gridOptionSize = sExecutorService.submit(() -> {
+ List<GridOption> gridOptions = mProvider.fetch(/* reload= */true);
+ return gridOptions;
+ }).get().size();
+ } catch (InterruptedException | ExecutionException e) {
+ Log.w(TAG, "could not get gridOptionSize", e);
+ }
+ return gridOptionSize > 1 && mProvider.areGridsAvailable();
}
@Override
diff --git a/src/com/android/customization/model/grid/GridSectionController.java b/src/com/android/customization/model/grid/GridSectionController.java
index 64a6cce1..2f54a1bf 100644
--- a/src/com/android/customization/model/grid/GridSectionController.java
+++ b/src/com/android/customization/model/grid/GridSectionController.java
@@ -72,7 +72,7 @@ public class GridSectionController implements CustomizationSectionController<Gri
sectionDescription.setText(R.string.something_went_wrong);
sectionTile.setVisibility(View.GONE);
}
- }, /* reload= */ true);
+ }, /* The result is getting when calling isAvailable(), so reload= */ false);
gridSectionView.setOnClickListener(
v -> mSectionNavigationController.navigateTo(new GridFragment()));