diff options
| author | George Zacharia <george.zcharia@gmail.com> | 2023-07-02 14:33:47 +0530 |
|---|---|---|
| committer | George Zacharia <george.zcharia@gmail.com> | 2023-07-02 14:33:47 +0530 |
| commit | 913b11dfd2b52e445c773838c766f0d4f8ba0d05 (patch) | |
| tree | adb07f584833593bad6fca5495927c276ceef531 /src/com/android/customization/model/grid/GridOptionsManager.java | |
| parent | b2d9a4961b3804f79c151630421d480846fd0176 (diff) | |
| parent | cc6f666d7c0bc3b6927f6e9e3c7e46123be6263d (diff) | |
Merge tag 'android-13.0.0_r52' of https://android.googlesource.com/platform/packages/apps/ThemePicker into HEADHEADt13.0
Android 13.0.0 Release 52 (TQ3A.230605.012)
Change-Id: I2cea11fa2f1f02fbd3c9d21cfc1697a79d42a5b7
Diffstat (limited to 'src/com/android/customization/model/grid/GridOptionsManager.java')
| -rw-r--r-- | src/com/android/customization/model/grid/GridOptionsManager.java | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/src/com/android/customization/model/grid/GridOptionsManager.java b/src/com/android/customization/model/grid/GridOptionsManager.java index 7f15d836..b7ee37fd 100644 --- a/src/com/android/customization/model/grid/GridOptionsManager.java +++ b/src/com/android/customization/model/grid/GridOptionsManager.java @@ -21,7 +21,9 @@ import android.os.Handler; import android.os.Looper; import android.util.Log; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; +import androidx.lifecycle.LiveData; import com.android.customization.model.CustomizationManager; import com.android.customization.module.CustomizationInjector; @@ -47,6 +49,7 @@ public class GridOptionsManager implements CustomizationManager<GridOption> { private final LauncherGridOptionsProvider mProvider; private final ThemesUserEventLogger mEventLogger; + private int mGridOptionSize = -1; /** Returns the {@link GridOptionsManager} instance. */ public static GridOptionsManager getInstance(Context context) { @@ -71,16 +74,17 @@ public class GridOptionsManager implements CustomizationManager<GridOption> { @Override public boolean isAvailable() { - int gridOptionSize = 0; - try { - gridOptionSize = sExecutorService.submit(() -> { - List<GridOption> gridOptions = mProvider.fetch(/* reload= */true); - return gridOptions == null ? 0 : gridOptions.size(); - }).get(); - } catch (InterruptedException | ExecutionException e) { - Log.w(TAG, "could not get gridOptionSize", e); + if (mGridOptionSize < 0) { + try { + mGridOptionSize = sExecutorService.submit(() -> { + List<GridOption> gridOptions = mProvider.fetch(/* reload= */true); + return gridOptions == null ? 0 : gridOptions.size(); + }).get(); + } catch (InterruptedException | ExecutionException e) { + Log.w(TAG, "could not get gridOptionSize", e); + } } - return gridOptionSize > 1 && mProvider.areGridsAvailable(); + return mGridOptionSize > 1 && mProvider.areGridsAvailable(); } @Override @@ -110,6 +114,13 @@ public class GridOptionsManager implements CustomizationManager<GridOption> { }); } + /** + * Returns an observable that receives a new value each time that the grid options are changed. + */ + public LiveData<Object> getOptionChangeObservable(@Nullable Handler handler) { + return mProvider.getOptionChangeObservable(handler); + } + /** Call through content provider API to render preview */ public void renderPreview(Bundle bundle, String gridName, PreviewUtils.WorkspacePreviewCallback callback) { |
