Restoring provider behavior for reloading app on old devices

> For older devices, launcher will only reload in case of inserts with specific query parameters
  > For older devices, launcehr will notify content observers of any internal inserts
  > Chaning TAG for Launcher provider as max logging tag is only 23 characters

Bug: 23821706
Change-Id: I32891387612d967c41ddae848c43dc4b1de1b0e9
This commit is contained in:
Sunny Goyal
2015-09-08 14:01:03 -07:00
parent 606726ba28
commit c74e41973a

View File

@@ -65,12 +65,11 @@ import java.util.HashSet;
import java.util.List;
public class LauncherProvider extends ContentProvider {
private static final String TAG = "Launcher.LauncherProvider";
private static final String TAG = "LauncherProvider";
private static final boolean LOGD = false;
private static final int DATABASE_VERSION = 26;
static final String OLD_AUTHORITY = "com.android.launcher2.settings";
public static final String AUTHORITY = ProviderConfig.AUTHORITY;
static final String TABLE_FAVORITES = LauncherSettings.Favorites.TABLE_NAME;
@@ -139,7 +138,7 @@ public class LauncherProvider extends ContentProvider {
}
private void reloadLauncherIfExternal() {
if (Binder.getCallingPid() != Process.myPid()) {
if (Utilities.ATLEAST_MARSHMALLOW && Binder.getCallingPid() != Process.myPid()) {
LauncherAppState app = LauncherAppState.getInstanceNoCreate();
if (app != null) {
app.reloadWorkspace();
@@ -166,7 +165,20 @@ public class LauncherProvider extends ContentProvider {
uri = ContentUris.withAppendedId(uri, rowId);
notifyListeners();
reloadLauncherIfExternal();
if (Utilities.ATLEAST_MARSHMALLOW) {
reloadLauncherIfExternal();
} else {
// Deprecated behavior to support legacy devices which rely on provider callbacks.
LauncherAppState app = LauncherAppState.getInstanceNoCreate();
if (app != null && "true".equals(uri.getQueryParameter("isExternalAdd"))) {
app.reloadWorkspace();
}
String notify = uri.getQueryParameter("notify");
if (notify == null || "true".equals(notify)) {
getContext().getContentResolver().notifyChange(uri, null);
}
}
return uri;
}