summaryrefslogtreecommitdiff
path: root/src/com/android/customization/model/grid/GridOptionsManager.java
diff options
context:
space:
mode:
authorTracy Zhou <tracyzhou@google.com>2020-03-03 12:09:42 -0800
committerTracy Zhou <tracyzhou@google.com>2020-03-12 23:06:44 -0700
commit2677985393079bafaf1eee0786b5d83c3afa2fdf (patch)
treed21a0c55d650faca65c82d78ccd85d0ee69dbfe4 /src/com/android/customization/model/grid/GridOptionsManager.java
parentd3f6449d91b57ceeba6cba04b3464b222f5a27d6 (diff)
downloadThemePicker-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.java24
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);
}