diff options
author | 2025-03-17 14:31:08 -0700 | |
---|---|---|
committer | 2025-03-17 14:32:04 -0700 | |
commit | ff41a8bf66fb2ee763747bd7c941106f8d25f990 (patch) | |
tree | c8199669d7ab64ac483465bcaa5d53bcedf9472f /quickstep/src | |
parent | 4a60b862e2f3ab9391d34be88c1cbfb56c356ec6 (diff) |
Only accessing mListeningHolders on main thread
Bug: 402648481
Test: Manual
Flag: EXEMPT bugfix
Change-Id: I037fff805be0b52407ed020e33aeb9db45616dd9
Diffstat (limited to 'quickstep/src')
-rw-r--r-- | quickstep/src/com/android/launcher3/uioverrides/QuickstepWidgetHolder.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepWidgetHolder.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepWidgetHolder.java index 9970a7dcf8..c7eedb0a1d 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepWidgetHolder.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepWidgetHolder.java @@ -30,7 +30,6 @@ import android.widget.RemoteViews; import androidx.annotation.AnyThread; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.annotation.UiThread; import com.android.launcher3.util.IntSet; import com.android.launcher3.util.SafeCloseable; @@ -167,7 +166,7 @@ public final class QuickstepWidgetHolder extends LauncherWidgetHolder { }; QuickstepWidgetHolderListener holderListener = getHolderListener(appWidgetId); holderListener.addHolder(handler); - return () -> holderListener.mListeningHolders.remove(handler); + return () -> holderListener.removeHolder(handler); } /** @@ -211,7 +210,7 @@ public final class QuickstepWidgetHolder extends LauncherWidgetHolder { public void clearViews() { mViews.clear(); for (int i = sListeners.size() - 1; i >= 0; i--) { - sListeners.valueAt(i).mListeningHolders.remove(mUpdateHandler); + sListeners.valueAt(i).removeHolder(mUpdateHandler); } } @@ -238,13 +237,15 @@ public final class QuickstepWidgetHolder extends LauncherWidgetHolder { mWidgetId = widgetId; } - @UiThread - @Nullable public RemoteViews addHolder(@NonNull UpdateHandler holder) { - mListeningHolders.add(holder); + MAIN_EXECUTOR.execute(() -> mListeningHolders.add(holder)); return mRemoteViews; } + public void removeHolder(@NonNull UpdateHandler holder) { + MAIN_EXECUTOR.execute(() -> mListeningHolders.remove(holder)); + } + @Override @AnyThread public void onUpdateProviderInfo(@Nullable AppWidgetProviderInfo info) { |