Search in sources :

Example 16 with Utilities.getPrefs

use of com.android.launcher3.Utilities.getPrefs in project android_packages_apps_Launcher3 by ArrowOS.

the class LauncherProvider method loadDefaultFavoritesIfNecessary.

/**
 * Loads the default workspace based on the following priority scheme:
 *   1) From the app restrictions
 *   2) From a package provided by play store
 *   3) From a partner configuration APK, already in the system image
 *   4) The default configuration for the particular device
 */
private synchronized void loadDefaultFavoritesIfNecessary() {
    SharedPreferences sp = Utilities.getPrefs(getContext());
    if (sp.getBoolean(mOpenHelper.getKey(EMPTY_DATABASE_CREATED), false)) {
        Log.d(TAG, "loading default workspace");
        AppWidgetHost widgetHost = mOpenHelper.newLauncherWidgetHost();
        AutoInstallsLayout loader = createWorkspaceLoaderFromAppRestriction(widgetHost);
        if (loader == null) {
            loader = AutoInstallsLayout.get(getContext(), widgetHost, mOpenHelper);
        }
        if (loader == null) {
            final Partner partner = Partner.get(getContext().getPackageManager());
            if (partner != null && partner.hasDefaultLayout()) {
                final Resources partnerRes = partner.getResources();
                int workspaceResId = partnerRes.getIdentifier(Partner.RES_DEFAULT_LAYOUT, "xml", partner.getPackageName());
                if (workspaceResId != 0) {
                    loader = new DefaultLayoutParser(getContext(), widgetHost, mOpenHelper, partnerRes, workspaceResId);
                }
            }
        }
        final boolean usingExternallyProvidedLayout = loader != null;
        if (loader == null) {
            loader = getDefaultLayoutParser(widgetHost);
        }
        // There might be some partially restored DB items, due to buggy restore logic in
        // previous versions of launcher.
        mOpenHelper.createEmptyDB(mOpenHelper.getWritableDatabase());
        // Populate favorites table with initial favorites
        if ((mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(), loader) <= 0) && usingExternallyProvidedLayout) {
            // Unable to load external layout. Cleanup and load the internal layout.
            mOpenHelper.createEmptyDB(mOpenHelper.getWritableDatabase());
            mOpenHelper.loadFavorites(mOpenHelper.getWritableDatabase(), getDefaultLayoutParser(widgetHost));
        }
        clearFlagEmptyDbCreated();
    }
}
Also used : SharedPreferences(android.content.SharedPreferences) AppWidgetHost(android.appwidget.AppWidgetHost) LauncherAppWidgetHost(com.android.launcher3.widget.LauncherAppWidgetHost) Resources(android.content.res.Resources)

Example 17 with Utilities.getPrefs

use of com.android.launcher3.Utilities.getPrefs in project android_packages_apps_Launcher3 by ArrowOS.

the class RestoreDbTask method setPending.

/**
 * Marks the DB state as pending restoration
 */
public static void setPending(Context context) {
    FileLog.d(TAG, "Restore data received through full backup ");
    Utilities.getPrefs(context).edit().putInt(RESTORED_DEVICE_TYPE, new DeviceGridState(context).getDeviceType()).commit();
}
Also used : DeviceGridState(com.android.launcher3.model.DeviceGridState)

Example 18 with Utilities.getPrefs

use of com.android.launcher3.Utilities.getPrefs in project android_packages_apps_Launcher3 by ArrowOS.

the class GridSizeMigrationTaskV2 method migrateGridIfNeeded.

/**
 * When migrating the grid for preview, we copy the table
 * {@link LauncherSettings.Favorites#TABLE_NAME} into
 * {@link LauncherSettings.Favorites#PREVIEW_TABLE_NAME}, run grid size migration from the
 * former to the later, then use the later table for preview.
 *
 * Similarly when doing the actual grid migration, the former grid option's table
 * {@link LauncherSettings.Favorites#TABLE_NAME} is copied into the new grid option's
 * {@link LauncherSettings.Favorites#TMP_TABLE}, we then run the grid size migration algorithm
 * to migrate the later to the former, and load the workspace from the default
 * {@link LauncherSettings.Favorites#TABLE_NAME}.
 *
 * @return false if the migration failed.
 */
public static boolean migrateGridIfNeeded(Context context, InvariantDeviceProfile idp) {
    boolean migrateForPreview = idp != null;
    if (!migrateForPreview) {
        idp = LauncherAppState.getIDP(context);
    }
    if (!needsToMigrate(context, idp)) {
        return true;
    }
    SharedPreferences prefs = Utilities.getPrefs(context);
    HashSet<String> validPackages = getValidPackages(context);
    if (migrateForPreview) {
        if (!LauncherSettings.Settings.call(context.getContentResolver(), LauncherSettings.Settings.METHOD_PREP_FOR_PREVIEW, idp.dbFile).getBoolean(LauncherSettings.Settings.EXTRA_VALUE)) {
            return false;
        }
    } else if (!LauncherSettings.Settings.call(context.getContentResolver(), LauncherSettings.Settings.METHOD_UPDATE_CURRENT_OPEN_HELPER).getBoolean(LauncherSettings.Settings.EXTRA_VALUE)) {
        return false;
    }
    long migrationStartTime = System.currentTimeMillis();
    try (SQLiteTransaction t = (SQLiteTransaction) LauncherSettings.Settings.call(context.getContentResolver(), LauncherSettings.Settings.METHOD_NEW_TRANSACTION).getBinder(LauncherSettings.Settings.EXTRA_VALUE)) {
        DbReader srcReader = new DbReader(t.getDb(), migrateForPreview ? LauncherSettings.Favorites.TABLE_NAME : LauncherSettings.Favorites.TMP_TABLE, context, validPackages);
        DbReader destReader = new DbReader(t.getDb(), migrateForPreview ? LauncherSettings.Favorites.PREVIEW_TABLE_NAME : LauncherSettings.Favorites.TABLE_NAME, context, validPackages);
        Point targetSize = new Point(idp.numColumns, idp.numRows);
        GridSizeMigrationTaskV2 task = new GridSizeMigrationTaskV2(context, t.getDb(), srcReader, destReader, idp.numDatabaseHotseatIcons, targetSize);
        task.migrate(idp);
        if (!migrateForPreview) {
            dropTable(t.getDb(), LauncherSettings.Favorites.TMP_TABLE);
        }
        t.commit();
        return true;
    } catch (Exception e) {
        Log.e(TAG, "Error during grid migration", e);
        return false;
    } finally {
        Log.v(TAG, "Workspace migration completed in " + (System.currentTimeMillis() - migrationStartTime));
        if (!migrateForPreview) {
            // Save current configuration, so that the migration does not run again.
            new DeviceGridState(idp).writeToPrefs(context);
        }
    }
}
Also used : SharedPreferences(android.content.SharedPreferences) SQLiteTransaction(com.android.launcher3.provider.LauncherDbUtils.SQLiteTransaction) Point(android.graphics.Point)

Example 19 with Utilities.getPrefs

use of com.android.launcher3.Utilities.getPrefs in project android_packages_apps_Launcher3 by ProtonAOSP.

the class RestoreDbTask method setPending.

/**
 * Marks the DB state as pending restoration
 */
public static void setPending(Context context) {
    FileLog.d(TAG, "Restore data received through full backup ");
    Utilities.getPrefs(context).edit().putInt(RESTORED_DEVICE_TYPE, new DeviceGridState(context).getDeviceType()).commit();
}
Also used : DeviceGridState(com.android.launcher3.model.DeviceGridState)

Example 20 with Utilities.getPrefs

use of com.android.launcher3.Utilities.getPrefs in project android_packages_apps_Launcher3 by ProtonAOSP.

the class GridSizeMigrationTaskV2 method migrateGridIfNeeded.

/**
 * When migrating the grid for preview, we copy the table
 * {@link LauncherSettings.Favorites#TABLE_NAME} into
 * {@link LauncherSettings.Favorites#PREVIEW_TABLE_NAME}, run grid size migration from the
 * former to the later, then use the later table for preview.
 *
 * Similarly when doing the actual grid migration, the former grid option's table
 * {@link LauncherSettings.Favorites#TABLE_NAME} is copied into the new grid option's
 * {@link LauncherSettings.Favorites#TMP_TABLE}, we then run the grid size migration algorithm
 * to migrate the later to the former, and load the workspace from the default
 * {@link LauncherSettings.Favorites#TABLE_NAME}.
 *
 * @return false if the migration failed.
 */
public static boolean migrateGridIfNeeded(Context context, InvariantDeviceProfile idp) {
    boolean migrateForPreview = idp != null;
    if (!migrateForPreview) {
        idp = LauncherAppState.getIDP(context);
    }
    if (!needsToMigrate(context, idp)) {
        return true;
    }
    SharedPreferences prefs = Utilities.getPrefs(context);
    HashSet<String> validPackages = getValidPackages(context);
    if (migrateForPreview) {
        if (!LauncherSettings.Settings.call(context.getContentResolver(), LauncherSettings.Settings.METHOD_PREP_FOR_PREVIEW, idp.dbFile).getBoolean(LauncherSettings.Settings.EXTRA_VALUE)) {
            return false;
        }
    } else if (!LauncherSettings.Settings.call(context.getContentResolver(), LauncherSettings.Settings.METHOD_UPDATE_CURRENT_OPEN_HELPER).getBoolean(LauncherSettings.Settings.EXTRA_VALUE)) {
        return false;
    }
    long migrationStartTime = System.currentTimeMillis();
    try (SQLiteTransaction t = (SQLiteTransaction) LauncherSettings.Settings.call(context.getContentResolver(), LauncherSettings.Settings.METHOD_NEW_TRANSACTION).getBinder(LauncherSettings.Settings.EXTRA_VALUE)) {
        DbReader srcReader = new DbReader(t.getDb(), migrateForPreview ? LauncherSettings.Favorites.TABLE_NAME : LauncherSettings.Favorites.TMP_TABLE, context, validPackages);
        DbReader destReader = new DbReader(t.getDb(), migrateForPreview ? LauncherSettings.Favorites.PREVIEW_TABLE_NAME : LauncherSettings.Favorites.TABLE_NAME, context, validPackages);
        Point targetSize = new Point(idp.numColumns, idp.numRows);
        GridSizeMigrationTaskV2 task = new GridSizeMigrationTaskV2(context, t.getDb(), srcReader, destReader, idp.numDatabaseHotseatIcons, targetSize);
        task.migrate(idp);
        if (!migrateForPreview) {
            dropTable(t.getDb(), LauncherSettings.Favorites.TMP_TABLE);
        }
        t.commit();
        return true;
    } catch (Exception e) {
        Log.e(TAG, "Error during grid migration", e);
        return false;
    } finally {
        Log.v(TAG, "Workspace migration completed in " + (System.currentTimeMillis() - migrationStartTime));
        if (!migrateForPreview) {
            // Save current configuration, so that the migration does not run again.
            new DeviceGridState(idp).writeToPrefs(context);
        }
    }
}
Also used : SharedPreferences(android.content.SharedPreferences) SQLiteTransaction(com.android.launcher3.provider.LauncherDbUtils.SQLiteTransaction) Point(android.graphics.Point)

Aggregations

SharedPreferences (android.content.SharedPreferences)23 Point (android.graphics.Point)15 Utilities.getPointString (com.android.launcher3.Utilities.getPointString)11 SQLiteTransaction (com.android.launcher3.provider.LauncherDbUtils.SQLiteTransaction)10 Intent (android.content.Intent)8 Configuration (android.content.res.Configuration)8 TargetApi (android.annotation.TargetApi)7 IntentFilter (android.content.IntentFilter)7 StrictMode (android.os.StrictMode)7 DragObject (com.android.launcher3.DropTarget.DragObject)7 AllAppsTransitionController (com.android.launcher3.allapps.AllAppsTransitionController)7 PropertyListBuilder (com.android.launcher3.anim.PropertyListBuilder)7 PopupDataProvider (com.android.launcher3.popup.PopupDataProvider)7 RotationHelper (com.android.launcher3.states.RotationHelper)7 ArrayList (java.util.ArrayList)7 Resources (android.content.res.Resources)6 Notification (android.app.Notification)5 AppWidgetHost (android.appwidget.AppWidgetHost)5 LauncherAppWidgetHost (com.android.launcher3.widget.LauncherAppWidgetHost)5 WidgetManagerHelper (com.android.launcher3.widget.WidgetManagerHelper)5