Merge "Fix the issue where shortcuts are removed in minimal device mode" into ub-launcher3-master
This commit is contained in:
commit
37ed5ead39
|
@ -188,6 +188,9 @@ public class LauncherProvider extends ContentProvider {
|
|||
|
||||
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
|
||||
Cursor result = qb.query(db, projection, args.where, args.args, null, null, sortOrder);
|
||||
final Bundle extra = new Bundle();
|
||||
extra.putString(LauncherSettings.Settings.EXTRA_DB_NAME, mOpenHelper.getDatabaseName());
|
||||
result.setExtras(extra);
|
||||
result.setNotificationUri(getContext().getContentResolver(), uri);
|
||||
|
||||
return result;
|
||||
|
|
|
@ -358,6 +358,8 @@ public class LauncherSettings {
|
|||
|
||||
public static final String EXTRA_VALUE = "value";
|
||||
|
||||
public static final String EXTRA_DB_NAME = "db_name";
|
||||
|
||||
public static Bundle call(ContentResolver cr, String method) {
|
||||
return call(cr, method, null /* arg */);
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import android.content.pm.PackageInstaller.SessionInfo;
|
|||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ShortcutInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.text.TextUtils;
|
||||
|
@ -130,6 +131,7 @@ public class LoaderTask implements Runnable {
|
|||
|
||||
private final Set<PackageUserKey> mPendingPackages = new HashSet<>();
|
||||
private boolean mItemsDeleted = false;
|
||||
private String mDbName;
|
||||
|
||||
public LoaderTask(LauncherAppState app, AllAppsList bgAllAppsList, BgDataModel dataModel,
|
||||
ModelDelegate modelDelegate, LoaderResults results) {
|
||||
|
@ -274,7 +276,14 @@ public class LoaderTask implements Runnable {
|
|||
if (FeatureFlags.FOLDER_NAME_SUGGEST.get()) {
|
||||
loadFolderNames();
|
||||
}
|
||||
sanitizeData();
|
||||
|
||||
// Sanitize data re-syncs widgets/shortcuts based on the workspace loaded from db.
|
||||
// sanitizeData should not be invoked if the workspace is loaded from a db different
|
||||
// from the main db as defined in the invariant device profile.
|
||||
// (e.g. both grid preview and minimal device mode uses a different db)
|
||||
if (mApp.getInvariantDeviceProfile().dbFile.equals(mDbName)) {
|
||||
sanitizeData();
|
||||
}
|
||||
|
||||
verifyNotStopped();
|
||||
updateHandler.finish();
|
||||
|
@ -349,7 +358,9 @@ public class LoaderTask implements Runnable {
|
|||
final LoaderCursor c = new LoaderCursor(
|
||||
contentResolver.query(contentUri, null, selection, null, null), contentUri,
|
||||
mApp, mUserManagerState);
|
||||
|
||||
final Bundle extras = c.getExtras();
|
||||
mDbName = extras == null
|
||||
? null : extras.getString(LauncherSettings.Settings.EXTRA_DB_NAME);
|
||||
try {
|
||||
final int appWidgetIdIndex = c.getColumnIndexOrThrow(
|
||||
LauncherSettings.Favorites.APPWIDGET_ID);
|
||||
|
|
Loading…
Reference in New Issue