diff options
Diffstat (limited to 'src/com/android/launcher3')
-rw-r--r-- | src/com/android/launcher3/AutoInstallsLayout.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher3/DefaultLayoutParser.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher3/FolderInfo.java | 1 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherModel.java | 8 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherProvider.java | 20 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherSettings.java | 6 |
6 files changed, 35 insertions, 4 deletions
diff --git a/src/com/android/launcher3/AutoInstallsLayout.java b/src/com/android/launcher3/AutoInstallsLayout.java index b7a6d9ae9..d5c742321 100644 --- a/src/com/android/launcher3/AutoInstallsLayout.java +++ b/src/com/android/launcher3/AutoInstallsLayout.java @@ -581,7 +581,7 @@ public class AutoInstallsLayout { // We can only have folders with >= 2 items, so we need to remove the // folder and clean up if less than 2 items were included, or some // failed to add, and less than 2 were actually added - if (folderItems.size() < 2) { + if (folderItems.size() < 2 && !isRemoteFolder()) { // Delete the folder Uri uri = Favorites.getContentUri(folderId, false); SqlArguments args = new SqlArguments(uri, null, null); diff --git a/src/com/android/launcher3/DefaultLayoutParser.java b/src/com/android/launcher3/DefaultLayoutParser.java index d9c400b3a..72f8b29ec 100644 --- a/src/com/android/launcher3/DefaultLayoutParser.java +++ b/src/com/android/launcher3/DefaultLayoutParser.java @@ -35,6 +35,7 @@ public class DefaultLayoutParser extends AutoInstallsLayout { private static final String TAG_APPWIDGET = "appwidget"; private static final String TAG_SHORTCUT = "shortcut"; private static final String TAG_FOLDER = "folder"; + private static final String TAG_REMOTE_FOLDER = "remote-folder"; private static final String TAG_PARTNER_FOLDER = "partner-folder"; private static final String TAG_INCLUDE = "include"; @@ -70,6 +71,7 @@ public class DefaultLayoutParser extends AutoInstallsLayout { parsers.put(TAG_SHORTCUT, new UriShortcutParser(mSourceRes)); parsers.put(TAG_RESOLVE, new ResolveParser()); parsers.put(TAG_FOLDER, new MyFolderParser()); + parsers.put(TAG_REMOTE_FOLDER, new RemoteFolderParser()); parsers.put(TAG_PARTNER_FOLDER, new PartnerFolderParser()); return parsers; } diff --git a/src/com/android/launcher3/FolderInfo.java b/src/com/android/launcher3/FolderInfo.java index 12b3032ec..af9cf070b 100644 --- a/src/com/android/launcher3/FolderInfo.java +++ b/src/com/android/launcher3/FolderInfo.java @@ -34,6 +34,7 @@ public class FolderInfo extends ItemInfo { * Whether this folder has been opened */ boolean opened; + int subType; /** * The apps and shortcuts and hidden status diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index 724fa3227..3a0428557 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -63,6 +63,8 @@ import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.settings.SettingsProvider; import com.android.launcher3.stats.internal.service.AggregationIntentService; +import com.cyngn.RemoteFolder.RemoteFolderUpdater; + import java.lang.ref.WeakReference; import java.net.URISyntaxException; import java.security.InvalidParameterException; @@ -1014,6 +1016,7 @@ public class LauncherModel extends BroadcastReceiver final int cellXIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CELLX); final int cellYIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.CELLY); final int hiddenIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.HIDDEN); + final int subType = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SUBTYPE); FolderInfo folderInfo = null; switch (c.getInt(itemTypeIndex)) { @@ -1029,6 +1032,7 @@ public class LauncherModel extends BroadcastReceiver folderInfo.cellX = c.getInt(cellXIndex); folderInfo.cellY = c.getInt(cellYIndex); folderInfo.hidden = c.getInt(hiddenIndex) > 0; + folderInfo.subType = subType; return folderInfo; } @@ -2128,6 +2132,7 @@ public class LauncherModel extends BroadcastReceiver //final int displayModeIndex = c.getColumnIndexOrThrow( final int hiddenIndex = c.getColumnIndexOrThrow( LauncherSettings.Favorites.HIDDEN); + final int subTypeIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.SUBTYPE); //final int uriIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.URI); //final int displayModeIndex = c.getColumnIndexOrThrow( // LauncherSettings.Favorites.DISPLAY_MODE); @@ -2365,6 +2370,7 @@ public class LauncherModel extends BroadcastReceiver folderInfo.spanX = 1; folderInfo.spanY = 1; folderInfo.hidden = c.getInt(hiddenIndex) > 0; + folderInfo.subType = c.getInt(subTypeIndex); // check & update map of what's occupied if (!checkItemPlacement(occupied, folderInfo, shouldResize)) { @@ -2866,7 +2872,7 @@ public class LauncherModel extends BroadcastReceiver } workspaceItems.remove(i); folders.remove(Long.valueOf(item.id)); - } else if (folder.contents.size() == 0 /*&& !(folder instanceof LiveFolderInfo)*/) { + } else if (folder.contents.size() == 0 && folder.subType == 0) { LauncherModel.deleteFolderContentsFromDatabase(mContext, folder); workspaceItems.remove(i); folders.remove(Long.valueOf(item.id)); diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index 14492488a..abe082eaa 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -67,7 +67,7 @@ public class LauncherProvider extends ContentProvider { private static final String TAG = "Launcher.LauncherProvider"; private static final boolean LOGD = false; - private static final int DATABASE_VERSION = 22; + private static final int DATABASE_VERSION = 23; static final String OLD_AUTHORITY = "com.android.launcher2.settings"; static final String AUTHORITY = ProviderConfig.AUTHORITY; @@ -505,7 +505,8 @@ public class LauncherProvider extends ContentProvider { "modified INTEGER NOT NULL DEFAULT 0," + "restored INTEGER NOT NULL DEFAULT 0," + "profileId INTEGER DEFAULT " + userSerialNumber + - ",hidden INTEGER DEFAULT 0" + + ",hidden INTEGER DEFAULT 0," + + "subType INTEGER DEFAULT 0" + ");"); addWorkspacesTable(db); @@ -995,6 +996,21 @@ public class LauncherProvider extends ContentProvider { version = 22; } + if (version < 23) { + db.beginTransaction(); + try { + db.execSQL("ALTER TABLE favorites " + + "ADD COLUMN subType INTEGER DEFAULT 0;"); + db.setTransactionSuccessful(); + version = 23; + } catch (SQLException ex) { + // Old version remains, which means we wipe old data + Log.e(TAG, ex.getMessage(), ex); + } finally { + db.endTransaction(); + } + } + if (version != DATABASE_VERSION) { Log.w(TAG, "Destroying all old data."); db.execSQL("DROP TABLE IF EXISTS " + TABLE_FAVORITES); diff --git a/src/com/android/launcher3/LauncherSettings.java b/src/com/android/launcher3/LauncherSettings.java index 357bac52d..50aa5c4db 100644 --- a/src/com/android/launcher3/LauncherSettings.java +++ b/src/com/android/launcher3/LauncherSettings.java @@ -45,6 +45,10 @@ class LauncherSettings { static final String HIDDEN = "hidden"; /** + * Folder subtype, used for Remote Folders + */ + static final String SUBTYPE = "subType"; + /** * The Intent URL of the gesture, describing what it points to. This * value is given to {@link android.content.Intent#parseUri(String, int)} to create * an Intent that can be launched. @@ -258,6 +262,8 @@ class LauncherSettings { */ static final int ITEM_TYPE_WIDGET_PHOTO_FRAME = 1002; + static final int ITEM_TYPE_REMOTE_FOLDER = 2000; + /** * The appWidgetId of the widget * |