summaryrefslogtreecommitdiff
path: root/src/com/android/customization/model/grid/GridOptionsManager.java
diff options
context:
space:
mode:
authorChuck Liao <chuckliao@google.com>2021-11-12 01:08:20 +0800
committerChuck Liao <chuckliao@google.com>2021-11-12 01:08:20 +0800
commitb466edaeaee342c641eaac43f04e3ec8b4f94d0e (patch)
tree5eab27889e6617db76ecef0b0e61c4ed50e965a7 /src/com/android/customization/model/grid/GridOptionsManager.java
parent2f5266346fab0ce95ae0c7984d418fd9b241530f (diff)
downloadThemePicker-b466edaeaee342c641eaac43f04e3ec8b4f94d0e.tar.gz
Retire AsyncTask in GridOptionsManager
Replace AsyncTask with Executors Bug: 198711500 Test: manual Change-Id: I2c16b976cf747140689b0d4b7ac57e6d4e9e9d01
Diffstat (limited to 'src/com/android/customization/model/grid/GridOptionsManager.java')
-rw-r--r--src/com/android/customization/model/grid/GridOptionsManager.java59
1 files changed, 18 insertions, 41 deletions
diff --git a/src/com/android/customization/model/grid/GridOptionsManager.java b/src/com/android/customization/model/grid/GridOptionsManager.java
index da1139ee..f16d1d0d 100644
--- a/src/com/android/customization/model/grid/GridOptionsManager.java
+++ b/src/com/android/customization/model/grid/GridOptionsManager.java
@@ -16,11 +16,10 @@
package com.android.customization.model.grid;
import android.content.Context;
-import android.os.AsyncTask;
import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import com.android.customization.model.CustomizationManager;
@@ -31,12 +30,16 @@ import com.android.wallpaper.module.InjectorProvider;
import com.android.wallpaper.util.PreviewUtils;
import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
/**
* {@link CustomizationManager} for interfacing with the launcher to handle {@link GridOption}s.
*/
public class GridOptionsManager implements CustomizationManager<GridOption> {
+ private static final ExecutorService sExecutorService = Executors.newSingleThreadExecutor();
+
private static GridOptionsManager sGridOptionsManager;
private final LauncherGridOptionsProvider mProvider;
@@ -81,7 +84,18 @@ public class GridOptionsManager implements CustomizationManager<GridOption> {
@Override
public void fetchOptions(OptionsFetchedListener<GridOption> callback, boolean reload) {
- new FetchTask(mProvider, callback, reload).execute();
+ sExecutorService.submit(() -> {
+ List<GridOption> gridOptions = mProvider.fetch(reload);
+ new Handler(Looper.getMainLooper()).post(() -> {
+ if (callback != null) {
+ if (gridOptions != null && !gridOptions.isEmpty()) {
+ callback.onOptionsLoaded(gridOptions);
+ } else {
+ callback.onError(null);
+ }
+ }
+ });
+ });
}
/** Call through content provider API to render preview */
@@ -89,41 +103,4 @@ public class GridOptionsManager implements CustomizationManager<GridOption> {
PreviewUtils.WorkspacePreviewCallback callback) {
mProvider.renderPreview(gridName, bundle, callback);
}
-
- private static class FetchTask extends AsyncTask<Void, Void, List<GridOption>> {
- private final LauncherGridOptionsProvider mProvider;
- @Nullable private final OptionsFetchedListener<GridOption> mCallback;
- private final boolean mReload;
-
- private FetchTask(@NonNull LauncherGridOptionsProvider provider,
- @Nullable OptionsFetchedListener<GridOption> callback, boolean reload) {
- mCallback = callback;
- mProvider = provider;
- mReload = reload;
- }
-
- @Override
- protected List<GridOption> doInBackground(Void[] params) {
- return mProvider.fetch(mReload);
- }
-
- @Override
- protected void onPostExecute(List<GridOption> gridOptions) {
- if (mCallback != null) {
- if (gridOptions != null && !gridOptions.isEmpty()) {
- mCallback.onOptionsLoaded(gridOptions);
- } else {
- mCallback.onError(null);
- }
- }
- }
-
- @Override
- protected void onCancelled() {
- super.onCancelled();
- if (mCallback != null) {
- mCallback.onError(null);
- }
- }
- }
}