diff options
author | John Pan <johnpan@google.com> | 2022-03-04 17:02:24 +0800 |
---|---|---|
committer | John Pan <johnpan@google.com> | 2022-03-15 22:30:05 +0800 |
commit | 6721138559f1419a7121c8abf2da0bf7192ecf97 (patch) | |
tree | da89d5b2cf780a5933b9397c2aa8cfd9e03fd1c5 /src/com/android | |
parent | 88051e7314ddfc086a635365fb1c8cb5d3177cf6 (diff) | |
download | ThemePicker-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.java | 14 | ||||
-rw-r--r-- | src/com/android/customization/model/grid/GridSectionController.java | 2 |
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())); |