diff options
author | Tracy Zhou <tracyzhou@google.com> | 2020-03-03 12:09:42 -0800 |
---|---|---|
committer | Tracy Zhou <tracyzhou@google.com> | 2020-03-12 23:06:44 -0700 |
commit | 2677985393079bafaf1eee0786b5d83c3afa2fdf (patch) | |
tree | d21a0c55d650faca65c82d78ccd85d0ee69dbfe4 /src/com/android/customization/model/grid/GridOptionsManager.java | |
parent | d3f6449d91b57ceeba6cba04b3464b222f5a27d6 (diff) | |
download | ThemePicker-2677985393079bafaf1eee0786b5d83c3afa2fdf.tar.gz |
Use SurfaceView to render grid preview
Demo: https://drive.google.com/open?id=1wQ8dT5bfTxSh-NRQpNBwTCkKOtOOUMPj
Bug: 150224413
Test: Manual
Change-Id: I006055da5e372029ecf99c4c3aac6d866688ef41
Diffstat (limited to 'src/com/android/customization/model/grid/GridOptionsManager.java')
-rw-r--r-- | src/com/android/customization/model/grid/GridOptionsManager.java | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/com/android/customization/model/grid/GridOptionsManager.java b/src/com/android/customization/model/grid/GridOptionsManager.java index 1599ddeb..a334f5e6 100644 --- a/src/com/android/customization/model/grid/GridOptionsManager.java +++ b/src/com/android/customization/model/grid/GridOptionsManager.java @@ -16,6 +16,8 @@ package com.android.customization.model.grid; import android.os.AsyncTask; +import android.os.Bundle; +import android.util.Pair; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -23,7 +25,6 @@ import androidx.annotation.Nullable; import com.android.customization.model.CustomizationManager; import com.android.customization.module.ThemesUserEventLogger; -import java.util.Collections; import java.util.List; /** @@ -60,7 +61,17 @@ public class GridOptionsManager implements CustomizationManager<GridOption> { new FetchTask(mProvider, callback).execute(); } - private static class FetchTask extends AsyncTask<Void, Void, List<GridOption>> { + /** See if using surface view to render grid options */ + public boolean usesSurfaceView() { + return mProvider.usesSurfaceView(); + } + + /** Call through content provider API to render preview */ + public void renderPreview(Bundle bundle, String gridName) { + mProvider.renderPreview(gridName, bundle); + } + + private static class FetchTask extends AsyncTask<Void, Void, Pair<List<GridOption>, String>> { private final LauncherGridOptionsProvider mProvider; @Nullable private final OptionsFetchedListener<GridOption> mCallback; @@ -71,15 +82,16 @@ public class GridOptionsManager implements CustomizationManager<GridOption> { } @Override - protected List<GridOption> doInBackground(Void[] params) { + protected Pair<List<GridOption>, String> doInBackground(Void[] params) { return mProvider.fetch(false); } @Override - protected void onPostExecute(List<GridOption> gridOptions) { + protected void onPostExecute(Pair<List<GridOption>, String> gridOptionsResult) { if (mCallback != null) { - if (gridOptions != null && !gridOptions.isEmpty()) { - mCallback.onOptionsLoaded(gridOptions); + if (gridOptionsResult != null && gridOptionsResult.first != null + && !gridOptionsResult.first.isEmpty()) { + mCallback.onOptionsLoaded(gridOptionsResult.first); } else { mCallback.onError(null); } |