summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Bestas <mikeioannina@gmail.com>2015-11-28 17:42:39 +0200
committerTyson Miller <tmiller@cyngn.com>2015-12-02 11:57:04 -0800
commitd69f636f145d8ff2b49348d179cfa0bbb8d4f83b (patch)
treec51f177c619b1f038e7c4a78cf751f2f4b7cd3d1 /src
parent719deb83a0ac84422b68605f4d5c782865766aef (diff)
downloadandroid_packages_apps_Trebuchet-d69f636f145d8ff2b49348d179cfa0bbb8d4f83b.tar.gz
android_packages_apps_Trebuchet-d69f636f145d8ff2b49348d179cfa0bbb8d4f83b.tar.bz2
android_packages_apps_Trebuchet-d69f636f145d8ff2b49348d179cfa0bbb8d4f83b.zip
Trebuchet: RemoteFolder fix subtype & manifest entries
Change-Id: I21282fb06be4391cf5ffbfb9b60a840820ded3e9
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/AutoInstallsLayout.java2
-rw-r--r--src/com/android/launcher3/DefaultLayoutParser.java2
-rw-r--r--src/com/android/launcher3/FolderInfo.java1
-rw-r--r--src/com/android/launcher3/LauncherModel.java8
-rw-r--r--src/com/android/launcher3/LauncherProvider.java20
-rw-r--r--src/com/android/launcher3/LauncherSettings.java6
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
*