Loading src/com/android/launcher3/LauncherAppWidgetHost.java +0 −2 Original line number Diff line number Diff line Loading @@ -95,8 +95,6 @@ public class LauncherAppWidgetHost extends AppWidgetHost { } protected void onProvidersChanged() { mLauncher.getModel().loadAndBindWidgetsAndShortcuts(mLauncher, mLauncher, true /* refresh */); if (!mProviderChangeListeners.isEmpty()) { for (Runnable callback : new ArrayList<>(mProviderChangeListeners)) { callback.run(); Loading src/com/android/launcher3/LauncherModel.java +38 −11 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.launcher3; import android.app.SearchManager; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo; import android.content.BroadcastReceiver; import android.content.ComponentName; Loading Loading @@ -2864,8 +2865,7 @@ public class LauncherModel extends BroadcastReceiver // Cleanup any data stored for a deleted user. ManagedProfileHeuristic.processAllUsers(profiles, mContext); loadAndBindWidgetsAndShortcuts(mApp.getContext(), tryGetCallbacks(oldCallbacks), true /* refresh */); loadAndBindWidgetsAndShortcuts(tryGetCallbacks(oldCallbacks), true /* refresh */); if (DEBUG_LOADERS) { Log.d(TAG, "Icons processed in " + (SystemClock.uptimeMillis() - loadTime) + "ms"); Loading Loading @@ -2934,7 +2934,7 @@ public class LauncherModel extends BroadcastReceiver } // Reload widget list. No need to refresh, as we only want to update the icons and labels. loadAndBindWidgetsAndShortcuts(mApp.getContext(), callbacks, false); loadAndBindWidgetsAndShortcuts(callbacks, false); } void enqueuePackageUpdated(PackageUpdatedTask task) { Loading Loading @@ -3276,8 +3276,36 @@ public class LauncherModel extends BroadcastReceiver }); } // onProvidersChanged method (API >= 17) already refreshed the widget list loadAndBindWidgetsAndShortcuts(context, callbacks, Build.VERSION.SDK_INT < 17); // Update widgets if (mOp == OP_ADD || mOp == OP_REMOVE || mOp == OP_UPDATE) { // Always refresh for a package event on secondary user boolean needToRefresh = !mUser.equals(UserHandleCompat.myUserHandle()); // Refresh widget list, if the package already had a widget. synchronized (sBgLock) { if (sBgWidgetProviders != null) { HashSet<String> pkgSet = new HashSet<>(); Collections.addAll(pkgSet, mPackages); for (ComponentKey key : sBgWidgetProviders.keySet()) { needToRefresh |= key.user.equals(mUser) && pkgSet.contains(key.componentName.getPackageName()); } } } if (!needToRefresh && mOp != OP_REMOVE) { // Refresh widget list, if there is any newly added widget PackageManager pm = context.getPackageManager(); for (String pkg : mPackages) { needToRefresh |= !pm.queryBroadcastReceivers( new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE) .setPackage(pkg), 0).isEmpty(); } } loadAndBindWidgetsAndShortcuts(callbacks, needToRefresh); } // Write all the logs to disk mHandler.post(new Runnable() { Loading Loading @@ -3351,13 +3379,12 @@ public class LauncherModel extends BroadcastReceiver } } public void loadAndBindWidgetsAndShortcuts(final Context context, final Callbacks callbacks, final boolean refresh) { public void loadAndBindWidgetsAndShortcuts(final Callbacks callbacks, final boolean refresh) { runOnWorkerThread(new Runnable() { @Override public void run() { updateWidgetsModel(context, refresh); updateWidgetsModel(refresh); final WidgetsModel model = mBgWidgetsModel.clone(); mHandler.post(new Runnable() { Loading @@ -3381,10 +3408,10 @@ public class LauncherModel extends BroadcastReceiver * * @see #loadAndBindWidgetsAndShortcuts */ @Thunk void updateWidgetsModel(Context context, boolean refresh) { PackageManager packageManager = context.getPackageManager(); @Thunk void updateWidgetsModel(boolean refresh) { PackageManager packageManager = mApp.getContext().getPackageManager(); final ArrayList<Object> widgetsAndShortcuts = new ArrayList<Object>(); widgetsAndShortcuts.addAll(getWidgetProviders(context, refresh)); widgetsAndShortcuts.addAll(getWidgetProviders(mApp.getContext(), refresh)); Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT); widgetsAndShortcuts.addAll(packageManager.queryIntentActivities(shortcutsIntent, 0)); mBgWidgetsModel.setWidgetsAndShortcuts(widgetsAndShortcuts); Loading src/com/android/launcher3/WidgetPreviewLoader.java +1 −1 Original line number Diff line number Diff line Loading @@ -105,7 +105,7 @@ public class WidgetPreviewLoader { * sizes (landscape vs portrait). */ private static class CacheDb extends SQLiteOpenHelper { private static final int DB_VERSION = 3; private static final int DB_VERSION = 4; private static final String TABLE_NAME = "shortcut_and_widget_previews"; private static final String COLUMN_COMPONENT = "componentName"; Loading Loading
src/com/android/launcher3/LauncherAppWidgetHost.java +0 −2 Original line number Diff line number Diff line Loading @@ -95,8 +95,6 @@ public class LauncherAppWidgetHost extends AppWidgetHost { } protected void onProvidersChanged() { mLauncher.getModel().loadAndBindWidgetsAndShortcuts(mLauncher, mLauncher, true /* refresh */); if (!mProviderChangeListeners.isEmpty()) { for (Runnable callback : new ArrayList<>(mProviderChangeListeners)) { callback.run(); Loading
src/com/android/launcher3/LauncherModel.java +38 −11 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.launcher3; import android.app.SearchManager; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo; import android.content.BroadcastReceiver; import android.content.ComponentName; Loading Loading @@ -2864,8 +2865,7 @@ public class LauncherModel extends BroadcastReceiver // Cleanup any data stored for a deleted user. ManagedProfileHeuristic.processAllUsers(profiles, mContext); loadAndBindWidgetsAndShortcuts(mApp.getContext(), tryGetCallbacks(oldCallbacks), true /* refresh */); loadAndBindWidgetsAndShortcuts(tryGetCallbacks(oldCallbacks), true /* refresh */); if (DEBUG_LOADERS) { Log.d(TAG, "Icons processed in " + (SystemClock.uptimeMillis() - loadTime) + "ms"); Loading Loading @@ -2934,7 +2934,7 @@ public class LauncherModel extends BroadcastReceiver } // Reload widget list. No need to refresh, as we only want to update the icons and labels. loadAndBindWidgetsAndShortcuts(mApp.getContext(), callbacks, false); loadAndBindWidgetsAndShortcuts(callbacks, false); } void enqueuePackageUpdated(PackageUpdatedTask task) { Loading Loading @@ -3276,8 +3276,36 @@ public class LauncherModel extends BroadcastReceiver }); } // onProvidersChanged method (API >= 17) already refreshed the widget list loadAndBindWidgetsAndShortcuts(context, callbacks, Build.VERSION.SDK_INT < 17); // Update widgets if (mOp == OP_ADD || mOp == OP_REMOVE || mOp == OP_UPDATE) { // Always refresh for a package event on secondary user boolean needToRefresh = !mUser.equals(UserHandleCompat.myUserHandle()); // Refresh widget list, if the package already had a widget. synchronized (sBgLock) { if (sBgWidgetProviders != null) { HashSet<String> pkgSet = new HashSet<>(); Collections.addAll(pkgSet, mPackages); for (ComponentKey key : sBgWidgetProviders.keySet()) { needToRefresh |= key.user.equals(mUser) && pkgSet.contains(key.componentName.getPackageName()); } } } if (!needToRefresh && mOp != OP_REMOVE) { // Refresh widget list, if there is any newly added widget PackageManager pm = context.getPackageManager(); for (String pkg : mPackages) { needToRefresh |= !pm.queryBroadcastReceivers( new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE) .setPackage(pkg), 0).isEmpty(); } } loadAndBindWidgetsAndShortcuts(callbacks, needToRefresh); } // Write all the logs to disk mHandler.post(new Runnable() { Loading Loading @@ -3351,13 +3379,12 @@ public class LauncherModel extends BroadcastReceiver } } public void loadAndBindWidgetsAndShortcuts(final Context context, final Callbacks callbacks, final boolean refresh) { public void loadAndBindWidgetsAndShortcuts(final Callbacks callbacks, final boolean refresh) { runOnWorkerThread(new Runnable() { @Override public void run() { updateWidgetsModel(context, refresh); updateWidgetsModel(refresh); final WidgetsModel model = mBgWidgetsModel.clone(); mHandler.post(new Runnable() { Loading @@ -3381,10 +3408,10 @@ public class LauncherModel extends BroadcastReceiver * * @see #loadAndBindWidgetsAndShortcuts */ @Thunk void updateWidgetsModel(Context context, boolean refresh) { PackageManager packageManager = context.getPackageManager(); @Thunk void updateWidgetsModel(boolean refresh) { PackageManager packageManager = mApp.getContext().getPackageManager(); final ArrayList<Object> widgetsAndShortcuts = new ArrayList<Object>(); widgetsAndShortcuts.addAll(getWidgetProviders(context, refresh)); widgetsAndShortcuts.addAll(getWidgetProviders(mApp.getContext(), refresh)); Intent shortcutsIntent = new Intent(Intent.ACTION_CREATE_SHORTCUT); widgetsAndShortcuts.addAll(packageManager.queryIntentActivities(shortcutsIntent, 0)); mBgWidgetsModel.setWidgetsAndShortcuts(widgetsAndShortcuts); Loading
src/com/android/launcher3/WidgetPreviewLoader.java +1 −1 Original line number Diff line number Diff line Loading @@ -105,7 +105,7 @@ public class WidgetPreviewLoader { * sizes (landscape vs portrait). */ private static class CacheDb extends SQLiteOpenHelper { private static final int DB_VERSION = 3; private static final int DB_VERSION = 4; private static final String TABLE_NAME = "shortcut_and_widget_previews"; private static final String COLUMN_COMPONENT = "componentName"; Loading