Merge remote-tracking branch 'goog/ub-now-lunchbox' into lunchbox-release

This commit is contained in:
Adam Skory
2014-02-06 10:03:03 +00:00
5 changed files with 52 additions and 24 deletions
+5 -1
View File
@@ -371,7 +371,11 @@ public class DeviceProfile {
isLandscape = (configuration.orientation == Configuration.ORIENTATION_LANDSCAPE);
isTablet = resources.getBoolean(R.bool.is_tablet);
isLargeTablet = resources.getBoolean(R.bool.is_large_tablet);
isLayoutRtl = (configuration.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
isLayoutRtl = (configuration.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL);
} else {
isLayoutRtl = false;
}
widthPx = wPx;
heightPx = hPx;
availableWidthPx = awPx;
@@ -304,7 +304,7 @@ public class InstallShortcutReceiver extends BroadcastReceiver {
// Add the new apps to the model and bind them
if (!addShortcuts.isEmpty()) {
LauncherAppState app = LauncherAppState.getInstance();
app.getModel().addAndBindAddedApps(context, addShortcuts, new ArrayList<AppInfo>());
app.getModel().addAndBindAddedWorkspaceApps(context, addShortcuts);
}
}
}
+5 -3
View File
@@ -3852,15 +3852,17 @@ public class Launcher extends Activity
}
// Add the new screens
bindAddScreens(newScreens);
if (newScreens != null) {
bindAddScreens(newScreens);
}
// We add the items without animation on non-visible pages, and with
// animations on the new page (which we will try and snap to).
if (!addNotAnimated.isEmpty()) {
if (addNotAnimated != null && !addNotAnimated.isEmpty()) {
bindItems(addNotAnimated, 0,
addNotAnimated.size(), false);
}
if (!addAnimated.isEmpty()) {
if (addAnimated != null && !addAnimated.isEmpty()) {
bindItems(addAnimated, 0,
addAnimated.size(), true);
}
@@ -193,7 +193,7 @@ public class LauncherBackupHelper implements BackupHelper {
Log.e(TAG, "launcher backup has failed", e);
}
out.key = keys.toArray(BackupProtos.Key.EMPTY_ARRAY);
out.key = keys.toArray(new BackupProtos.Key[keys.size()]);
writeJournal(newState, out);
Log.v(TAG, "onBackup: wrote " + out.bytes + "b in " + out.rows + " rows.");
}
@@ -266,7 +266,7 @@ public class LauncherBackupHelper implements BackupHelper {
// will catch any changes the restore process might have made
Journal out = new Journal();
out.t = 0;
out.key = mKeys.toArray(BackupProtos.Key.EMPTY_ARRAY);
out.key = mKeys.toArray(new BackupProtos.Key[mKeys.size()]);
writeJournal(newState, out);
Log.v(TAG, "onRestore: read " + mKeys.size() + " rows");
mKeys.clear();
+39 -17
View File
@@ -292,17 +292,40 @@ public class LauncherModel extends BroadcastReceiver {
return null;
}
public void addAndBindAddedApps(final Context context, final ArrayList<ItemInfo> workspaceApps,
final ArrayList<AppInfo> allAppsApps) {
Callbacks cb = mCallbacks != null ? mCallbacks.get() : null;
addAndBindAddedApps(context, workspaceApps, cb, allAppsApps);
public void addAppsToAllApps(final Context ctx, final ArrayList<AppInfo> allAppsApps) {
final Callbacks callbacks = mCallbacks != null ? mCallbacks.get() : null;
if (allAppsApps == null) {
throw new RuntimeException("allAppsApps must not be null");
}
if (allAppsApps.isEmpty()) {
return;
}
// Process the newly added applications and add them to the database first
Runnable r = new Runnable() {
public void run() {
runOnMainThread(new Runnable() {
public void run() {
Callbacks cb = mCallbacks != null ? mCallbacks.get() : null;
if (callbacks == cb && cb != null) {
callbacks.bindAppsAdded(null, null, null, allAppsApps);
}
}
});
}
};
runOnWorkerThread(r);
}
public void addAndBindAddedApps(final Context context, final ArrayList<ItemInfo> workspaceApps,
final Callbacks callbacks, final ArrayList<AppInfo> allAppsApps) {
if (workspaceApps == null || allAppsApps == null) {
public void addAndBindAddedWorkspaceApps(final Context context,
final ArrayList<ItemInfo> workspaceApps) {
final Callbacks callbacks = mCallbacks != null ? mCallbacks.get() : null;
if (workspaceApps == null) {
throw new RuntimeException("workspaceApps and allAppsApps must not be null");
}
if (workspaceApps.isEmpty() && allAppsApps.isEmpty()) {
if (workspaceApps.isEmpty()) {
return;
}
// Process the newly added applications and add them to the database first
@@ -385,7 +408,7 @@ public class LauncherModel extends BroadcastReceiver {
// Update the workspace screens
updateWorkspaceScreenOrder(context, workspaceScreens);
if (!addedShortcutsFinal.isEmpty() || !allAppsApps.isEmpty()) {
if (!addedShortcutsFinal.isEmpty()) {
runOnMainThread(new Runnable() {
public void run() {
Callbacks cb = mCallbacks != null ? mCallbacks.get() : null;
@@ -404,7 +427,7 @@ public class LauncherModel extends BroadcastReceiver {
}
}
callbacks.bindAppsAdded(addedWorkspaceScreensFinal,
addNotAnimated, addAnimated, allAppsApps);
addNotAnimated, addAnimated, null);
}
}
});
@@ -1561,8 +1584,7 @@ public class LauncherModel extends BroadcastReceiver {
}
}
if (!added.isEmpty()) {
Callbacks cb = mCallbacks != null ? mCallbacks.get() : null;
addAndBindAddedApps(context, added, cb, new ArrayList<AppInfo>());
addAndBindAddedWorkspaceApps(context, added);
}
}
@@ -2642,14 +2664,14 @@ public class LauncherModel extends BroadcastReceiver {
if (added != null) {
// Ensure that we add all the workspace applications to the db
Callbacks cb = mCallbacks != null ? mCallbacks.get() : null;
if (!LauncherAppState.isDisableAllApps()) {
addAndBindAddedApps(context, new ArrayList<ItemInfo>(), cb, added);
} else {
if (LauncherAppState.isDisableAllApps()) {
final ArrayList<ItemInfo> addedInfos = new ArrayList<ItemInfo>(added);
addAndBindAddedApps(context, addedInfos, cb, added);
addAndBindAddedWorkspaceApps(context, addedInfos);
} else {
addAppsToAllApps(context, added);
}
}
if (modified != null) {
final ArrayList<AppInfo> modifiedFinal = modified;