diff options
-rw-r--r-- | src/com/android/launcher3/LauncherProvider.java | 6 | ||||
-rw-r--r-- | src/com/android/launcher3/util/NoLocaleSqliteContext.java | 27 | ||||
-rw-r--r-- | src/com/android/launcher3/util/SQLiteCacheHelper.java | 2 |
3 files changed, 32 insertions, 3 deletions
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index 792605fc9..47ceb8c6e 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -54,6 +54,7 @@ import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.config.ProviderConfig; import com.android.launcher3.util.ManagedProfileHeuristic; +import com.android.launcher3.util.NoLocaleSqliteContext; import com.android.launcher3.util.Thunk; import java.net.URISyntaxException; @@ -526,7 +527,8 @@ public class LauncherProvider extends ContentProvider { private long mMaxScreenId = -1; DatabaseHelper(Context context, LauncherProvider provider) { - super(context, LauncherFiles.LAUNCHER_DB, null, DATABASE_VERSION); + super(new NoLocaleSqliteContext(context), LauncherFiles.LAUNCHER_DB, + null, DATABASE_VERSION); mContext = context; mProvider = provider; @@ -556,7 +558,7 @@ public class LauncherProvider extends ContentProvider { * Constructor used only in tests. */ public DatabaseHelper(Context context, LauncherProvider provider, String tableName) { - super(context, tableName, null, DATABASE_VERSION); + super(new NoLocaleSqliteContext(context), tableName, null, DATABASE_VERSION); mContext = context; mProvider = provider; diff --git a/src/com/android/launcher3/util/NoLocaleSqliteContext.java b/src/com/android/launcher3/util/NoLocaleSqliteContext.java new file mode 100644 index 000000000..3b258e4a5 --- /dev/null +++ b/src/com/android/launcher3/util/NoLocaleSqliteContext.java @@ -0,0 +1,27 @@ +package com.android.launcher3.util; + +import android.content.Context; +import android.content.ContextWrapper; +import android.database.DatabaseErrorHandler; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteDatabase.CursorFactory; + +/** + * A context wrapper which creates databases without support for localized collators. + */ +public class NoLocaleSqliteContext extends ContextWrapper { + + // TODO: Use the flag defined in Context when the new SDK is available + private static final int MODE_NO_LOCALIZED_COLLATORS = 0x0010; + + public NoLocaleSqliteContext(Context context) { + super(context); + } + + @Override + public SQLiteDatabase openOrCreateDatabase( + String name, int mode, CursorFactory factory, DatabaseErrorHandler errorHandler) { + return super.openOrCreateDatabase( + name, mode | MODE_NO_LOCALIZED_COLLATORS, factory, errorHandler); + } +} diff --git a/src/com/android/launcher3/util/SQLiteCacheHelper.java b/src/com/android/launcher3/util/SQLiteCacheHelper.java index 62a30d0d4..c455791b3 100644 --- a/src/com/android/launcher3/util/SQLiteCacheHelper.java +++ b/src/com/android/launcher3/util/SQLiteCacheHelper.java @@ -98,7 +98,7 @@ public abstract class SQLiteCacheHelper { private class MySQLiteOpenHelper extends SQLiteOpenHelper { public MySQLiteOpenHelper(Context context, String name, int version) { - super(context, name, null, version); + super(new NoLocaleSqliteContext(context), name, null, version); } @Override |