summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChris Wren <cwren@android.com>2013-09-18 19:04:23 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-09-18 19:04:23 +0000
commit5029f1bc83ca4bc896346ad737ce50affa4d9353 (patch)
tree5f2d83649d417310a0155aaeda6ec98f1858fb3b /src
parent2c38e70acd92372669cf93c2049ad162650a43ba (diff)
parentc3919c0e994309982efc8779af57e2bc78dcac43 (diff)
downloadandroid_packages_apps_Trebuchet-5029f1bc83ca4bc896346ad737ce50affa4d9353.tar.gz
android_packages_apps_Trebuchet-5029f1bc83ca4bc896346ad737ce50affa4d9353.tar.bz2
android_packages_apps_Trebuchet-5029f1bc83ca4bc896346ad737ce50affa4d9353.zip
Merge "fixup missing providers on load." into jb-ub-now-indigo-rose
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/LauncherModel.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 179c8aa76..aaa901ac1 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -39,6 +39,7 @@ import android.os.Parcelable;
import android.os.Process;
import android.os.RemoteException;
import android.os.SystemClock;
+import android.provider.BaseColumns;
import android.util.Log;
import android.util.Pair;
import com.android.launcher3.InstallWidgetReceiver.WidgetMimeTypeHandlerData;
@@ -1696,6 +1697,8 @@ public class LauncherModel extends BroadcastReceiver {
LauncherSettings.Favorites.ITEM_TYPE);
final int appWidgetIdIndex = c.getColumnIndexOrThrow(
LauncherSettings.Favorites.APPWIDGET_ID);
+ final int appWidgetProviderIndex = c.getColumnIndexOrThrow(
+ LauncherSettings.Favorites.APPWIDGET_PROVIDER);
final int screenIndex = c.getColumnIndexOrThrow(
LauncherSettings.Favorites.SCREEN);
final int cellXIndex = c.getColumnIndexOrThrow
@@ -1856,6 +1859,8 @@ public class LauncherModel extends BroadcastReceiver {
case LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET:
// Read all Launcher-specific widget details
int appWidgetId = c.getInt(appWidgetIdIndex);
+ String savedProvider = c.getString(appWidgetProviderIndex);
+
id = c.getLong(idIndex);
final AppWidgetProviderInfo provider =
@@ -1901,6 +1906,15 @@ public class LauncherModel extends BroadcastReceiver {
if (!checkItemPlacement(occupied, appWidgetInfo)) {
break;
}
+ String providerName = provider.provider.flattenToString();
+ if (!providerName.equals(savedProvider)) {
+ ContentValues values = new ContentValues();
+ values.put(LauncherSettings.Favorites.APPWIDGET_PROVIDER,
+ providerName);
+ String where = BaseColumns._ID + "= ?";
+ String[] args = {Integer.toString(c.getInt(idIndex))};
+ contentResolver.update(contentUri, values, where, args);
+ }
sBgItemsIdMap.put(appWidgetInfo.id, appWidgetInfo);
sBgAppWidgets.add(appWidgetInfo);
}