diff options
author | Winson Chung <winsonc@google.com> | 2018-10-23 19:59:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-10-23 19:59:21 +0000 |
commit | 445ab9d8cd3bb63d653cf9d0e0cdb5fae952beaf (patch) | |
tree | 875190189e4e71ce28e2e8a55d5a63c655e1fff9 /src/com/android/launcher3 | |
parent | 02b83db128c133636d7a89ddebbdfcaf2d31f1b1 (diff) | |
parent | cc8dbf31db320c6d9513516603c9dcb2c3d01aa5 (diff) | |
download | android_packages_apps_Trebuchet-445ab9d8cd3bb63d653cf9d0e0cdb5fae952beaf.tar.gz android_packages_apps_Trebuchet-445ab9d8cd3bb63d653cf9d0e0cdb5fae952beaf.tar.bz2 android_packages_apps_Trebuchet-445ab9d8cd3bb63d653cf9d0e0cdb5fae952beaf.zip |
Merge "Caching clean up, remove dependency on old shared lib loading/caching logic" into ub-launcher3-master
Diffstat (limited to 'src/com/android/launcher3')
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 1 | ||||
-rw-r--r-- | src/com/android/launcher3/icons/HandlerRunnable.java | 67 | ||||
-rw-r--r-- | src/com/android/launcher3/icons/IconCache.java | 22 |
3 files changed, 69 insertions, 21 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index e714a0bf8..3ae9a49e7 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -768,7 +768,6 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns, } mAppWidgetHost.setListenIfResumed(true); NotificationListener.setNotificationsChangedListener(mPopupDataProvider); - UiFactory.onStart(this); } private void logOnDelayedResume() { diff --git a/src/com/android/launcher3/icons/HandlerRunnable.java b/src/com/android/launcher3/icons/HandlerRunnable.java new file mode 100644 index 000000000..e7132cd69 --- /dev/null +++ b/src/com/android/launcher3/icons/HandlerRunnable.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.launcher3.icons; + +import android.os.Handler; + +/** + * A runnable that can be posted to a {@link Handler} which can be canceled. + */ +public abstract class HandlerRunnable implements Runnable { + + private final Handler mHandler; + private final Runnable mEndRunnable; + + private boolean mEnded = false; + private boolean mCanceled = false; + + public HandlerRunnable(Handler handler, Runnable endRunnable) { + mHandler = handler; + mEndRunnable = endRunnable; + } + + /** + * Cancels this runnable from being run, only if it has not already run. + */ + public void cancel() { + mHandler.removeCallbacks(this); + // TODO: This can actually cause onEnd to be called twice if the handler is already running + // this runnable + // NOTE: This is currently run on whichever thread the caller is run on. + mCanceled = true; + onEnd(); + } + + /** + * @return whether this runnable was canceled. + */ + protected boolean isCanceled() { + return mCanceled; + } + + /** + * To be called by the implemention of this runnable. The end callback is done on whichever + * thread the caller is calling from. + */ + public void onEnd() { + if (!mEnded) { + mEnded = true; + if (mEndRunnable != null) { + mEndRunnable.run(); + } + } + } +} diff --git a/src/com/android/launcher3/icons/IconCache.java b/src/com/android/launcher3/icons/IconCache.java index 41a53e572..6e2ca28ec 100644 --- a/src/com/android/launcher3/icons/IconCache.java +++ b/src/com/android/launcher3/icons/IconCache.java @@ -169,27 +169,9 @@ public class IconCache extends BaseIconCache { applyCacheEntry(entry, infoInOut); } - public static abstract class IconLoadRequest implements Runnable { - private final Handler mHandler; - private final Runnable mEndRunnable; - - private boolean mEnded = false; - + public static abstract class IconLoadRequest extends HandlerRunnable { IconLoadRequest(Handler handler, Runnable endRunnable) { - mHandler = handler; - mEndRunnable = endRunnable; - } - - public void cancel() { - mHandler.removeCallbacks(this); - onEnd(); - } - - public void onEnd() { - if (!mEnded) { - mEnded = true; - mEndRunnable.run(); - } + super(handler, endRunnable); } } |