Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 713931ec authored by Sihua Ma's avatar Sihua Ma Committed by Android (Google) Code Review
Browse files

Merge "Use app widget host instead of holder to get rid of deleteHost" into tm-qpr-dev

parents 0fe7e089 cdb3c0af
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package com.android.launcher3;

import static android.os.Process.myUserHandle;

import android.appwidget.AppWidgetHost;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
import android.content.BroadcastReceiver;
@@ -51,10 +52,10 @@ public class AppWidgetsRestoredReceiver extends BroadcastReceiver {
     */
    @WorkerThread
    public static void restoreAppWidgetIds(Context context, int[] oldWidgetIds, int[] newWidgetIds,
            @NonNull LauncherWidgetHolder holder) {
            @NonNull AppWidgetHost host) {
        if (WidgetsModel.GO_DISABLE_WIDGETS) {
            Log.e(TAG, "Skipping widget ID remap as widgets not supported");
            holder.deleteHost();
            host.deleteHost();
            return;
        }
        if (!RestoreDbTask.isPending(context)) {
@@ -63,7 +64,7 @@ public class AppWidgetsRestoredReceiver extends BroadcastReceiver {
            Log.e(TAG, "Skipping widget ID remap as DB already in use");
            for (int widgetId : newWidgetIds) {
                Log.d(TAG, "Deleting widgetId: " + widgetId);
                holder.deleteAppWidgetId(widgetId);
                host.deleteAppWidgetId(widgetId);
            }
            return;
        }
@@ -100,7 +101,7 @@ public class AppWidgetsRestoredReceiver extends BroadcastReceiver {
                try {
                    if (!cursor.moveToFirst()) {
                        // The widget no long exists.
                        holder.deleteAppWidgetId(newWidgetIds[i]);
                        host.deleteAppWidgetId(newWidgetIds[i]);
                    }
                } finally {
                    cursor.close();
+30 −29
Original line number Diff line number Diff line
@@ -550,6 +550,7 @@ public class LauncherProvider extends ContentProvider {
            Log.d(TAG, "loading default workspace");

            LauncherWidgetHolder widgetHolder = mOpenHelper.newLauncherWidgetHolder();
            try {
                AutoInstallsLayout loader = createWorkspaceLoaderFromAppRestriction(widgetHolder);
                if (loader == null) {
                    loader = AutoInstallsLayout.get(getContext(), widgetHolder, mOpenHelper);
@@ -582,9 +583,11 @@ public class LauncherProvider extends ContentProvider {
                            getDefaultLayoutParser(widgetHolder));
                }
                clearFlagEmptyDbCreated();
            } finally {
                widgetHolder.destroy();
            }
        }
    }

    /**
     * Creates workspace loader from an XML resource listed in the app restrictions.
@@ -957,8 +960,6 @@ public class LauncherProvider extends ContentProvider {
                    allWidgets = holder.getAppWidgetIds();
                } catch (IncompatibleClassChangeError e) {
                    Log.e(TAG, "getAppWidgetIds not supported", e);
                    // Necessary to destroy the holder to free up possible activity context
                    holder.destroy();
                    return;
                }
                final IntSet validWidgets = IntSet.wrap(LauncherDbUtils.queryIntArray(false, db,
+4 −4
Original line number Diff line number Diff line
@@ -21,8 +21,10 @@ import static com.android.launcher3.LauncherPrefs.APP_WIDGET_IDS;
import static com.android.launcher3.LauncherPrefs.OLD_APP_WIDGET_IDS;
import static com.android.launcher3.LauncherPrefs.RESTORE_DEVICE;
import static com.android.launcher3.provider.LauncherDbUtils.dropTable;
import static com.android.launcher3.widget.LauncherWidgetHolder.APPWIDGET_HOST_ID;

import android.app.backup.BackupManager;
import android.appwidget.AppWidgetHost;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
@@ -49,7 +51,6 @@ import com.android.launcher3.model.data.WorkspaceItemInfo;
import com.android.launcher3.provider.LauncherDbUtils.SQLiteTransaction;
import com.android.launcher3.util.IntArray;
import com.android.launcher3.util.LogConfig;
import com.android.launcher3.widget.LauncherWidgetHolder;

import java.io.InvalidObjectException;
import java.util.Arrays;
@@ -354,12 +355,11 @@ public class RestoreDbTask {
    private void restoreAppWidgetIdsIfExists(Context context) {
        LauncherPrefs lp = LauncherPrefs.get(context);
        if (lp.has(APP_WIDGET_IDS, OLD_APP_WIDGET_IDS)) {
            LauncherWidgetHolder holder = LauncherWidgetHolder.newInstance(context);
            AppWidgetHost host = new AppWidgetHost(context, APPWIDGET_HOST_ID);
            AppWidgetsRestoredReceiver.restoreAppWidgetIds(context,
                    IntArray.fromConcatString(lp.get(OLD_APP_WIDGET_IDS)).toArray(),
                    IntArray.fromConcatString(lp.get(APP_WIDGET_IDS)).toArray(),
                    holder);
            holder.destroy();
                    host);
        } else {
            FileLog.d(TAG, "No app widget ids to restore.");
        }
+0 −7
Original line number Diff line number Diff line
@@ -321,13 +321,6 @@ public class LauncherWidgetHolder {
        mFlags &= ~FLAG_LISTENING;
    }

    /**
     * Delete the host
     */
    public void deleteHost() {
        mWidgetHost.deleteHost();
    }

    /**
     * @return The app widget ids
     */