diff options
Diffstat (limited to 'src/com/android/launcher3/LauncherAppWidgetHost.java')
-rw-r--r-- | src/com/android/launcher3/LauncherAppWidgetHost.java | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/src/com/android/launcher3/LauncherAppWidgetHost.java b/src/com/android/launcher3/LauncherAppWidgetHost.java index 55596e5bf..de7c61000 100644 --- a/src/com/android/launcher3/LauncherAppWidgetHost.java +++ b/src/com/android/launcher3/LauncherAppWidgetHost.java @@ -22,6 +22,7 @@ import android.appwidget.AppWidgetProviderInfo; import android.content.Context; import android.os.TransactionTooLargeException; import android.view.LayoutInflater; +import android.view.View; import java.util.ArrayList; @@ -35,16 +36,31 @@ public class LauncherAppWidgetHost extends AppWidgetHost { private final ArrayList<Runnable> mProviderChangeListeners = new ArrayList<Runnable>(); - Launcher mLauncher; + private int mQsbWidgetId = -1; + private Launcher mLauncher; public LauncherAppWidgetHost(Launcher launcher, int hostId) { super(launcher, hostId); mLauncher = launcher; } + public void setQsbWidgetId(int widgetId) { + mQsbWidgetId = widgetId; + } + @Override protected AppWidgetHostView onCreateView(Context context, int appWidgetId, AppWidgetProviderInfo appWidget) { + if (appWidgetId == mQsbWidgetId) { + return new LauncherAppWidgetHostView(context) { + + @Override + protected View getErrorView() { + // For the QSB, show an empty view instead of an error view. + return new View(getContext()); + } + }; + } return new LauncherAppWidgetHostView(context); } @@ -79,11 +95,12 @@ public class LauncherAppWidgetHost extends AppWidgetHost { } protected void onProvidersChanged() { - // Once we get the message that widget packages are updated, we need to rebind items - // in AppsCustomize accordingly. - mLauncher.getModel().loadAndBindWidgetsAndShortcuts(mLauncher, mLauncher); - for (Runnable callback : mProviderChangeListeners) { - callback.run(); + mLauncher.getModel().loadAndBindWidgetsAndShortcuts(mLauncher, mLauncher, + true /* refresh */); + if (!mProviderChangeListeners.isEmpty()) { + for (Runnable callback : new ArrayList<>(mProviderChangeListeners)) { + callback.run(); + } } } |