Fixing some Launcher crashes because of using old model data even

after launcher has reloaded

Bug: 126289691
Bug: 124288578
Change-Id: Id7fb29716241a13f4e03ee0fc0e879523de4f878
This commit is contained in:
Sunny Goyal
2019-03-01 16:06:12 -08:00
parent a4c3d066dd
commit 2db5342f04
4 changed files with 46 additions and 23 deletions

View File

@@ -44,6 +44,7 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.Parcelable;
import android.os.UserHandle;
import android.util.AttributeSet;
@@ -521,6 +522,9 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
mScreenOrder.clear();
mWorkspaceScreens.clear();
// Remove any deferred refresh callbacks
mLauncher.mHandler.removeCallbacksAndMessages(DeferredWidgetRefresh.class);
// Ensure that the first page is always present
bindAndInitFirstWorkspaceScreen(qsb);
@@ -3348,13 +3352,15 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
LauncherAppWidgetHost host) {
mInfos = infos;
mHost = host;
mHandler = new Handler();
mHandler = mLauncher.mHandler;
mRefreshPending = true;
mHost.addProviderChangeListener(this);
// Force refresh after 10 seconds, if we don't get the provider changed event.
// This could happen when the provider is no longer available in the app.
mHandler.postDelayed(this, 10000);
Message msg = Message.obtain(mHandler, this);
msg.obj = DeferredWidgetRefresh.class;
mHandler.sendMessageDelayed(msg, 10000);
}
@Override