From c9b358122aeee2bb5feb4bae1e16509e492e2da6 Mon Sep 17 00:00:00 2001 From: linyuh Date: Thu, 28 Dec 2017 09:58:34 -0800 Subject: Allow language change to take effect in T9 search without relaunching Dialer. Bug: 30215380,70633239,70856260 Test: Manual PiperOrigin-RevId: 180276925 Change-Id: Ia0a7c435e48303781917bf0cc2e69995ee652ad9 --- .../dialer/database/DialerDatabaseHelper.java | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'java/com/android/dialer/database') diff --git a/java/com/android/dialer/database/DialerDatabaseHelper.java b/java/com/android/dialer/database/DialerDatabaseHelper.java index d12b4e8bd..bc70fa46f 100644 --- a/java/com/android/dialer/database/DialerDatabaseHelper.java +++ b/java/com/android/dialer/database/DialerDatabaseHelper.java @@ -331,14 +331,18 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { editor.apply(); } - /** Starts the database upgrade process in the background. */ - public void startSmartDialUpdateThread() { + /** + * Starts the database upgrade process in the background. + * + * @see #updateSmartDialDatabase(boolean) for the usage of {@code forceUpdate}. + */ + public void startSmartDialUpdateThread(boolean forceUpdate) { if (PermissionsUtil.hasContactsReadPermissions(context)) { DialerExecutorComponent.get(context) .dialerExecutorFactory() .createNonUiTaskBuilder(new UpdateSmartDialWorker()) .build() - .executeParallel(null); + .executeParallel(forceUpdate); } } @@ -599,9 +603,11 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { * contacts since last update, and updates the records in smartdial database and prefix database * accordingly. It also queries the deleted contact database to remove newly deleted contacts * since last update. + * + * @param forceUpdate If set to true, update the database by reloading all contacts. */ @WorkerThread - public synchronized void updateSmartDialDatabase() { + public synchronized void updateSmartDialDatabase(boolean forceUpdate) { LogUtil.enterBlock("DialerDatabaseHelper.updateSmartDialDatabase"); final SQLiteDatabase db = getWritableDatabase(); @@ -613,7 +619,8 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { final SharedPreferences databaseLastUpdateSharedPref = context.getSharedPreferences(DATABASE_LAST_CREATED_SHARED_PREF, Context.MODE_PRIVATE); final String lastUpdateMillis = - String.valueOf(databaseLastUpdateSharedPref.getLong(LAST_UPDATED_MILLIS, 0)); + String.valueOf( + forceUpdate ? 0 : databaseLastUpdateSharedPref.getLong(LAST_UPDATED_MILLIS, 0)); LogUtil.v( "DialerDatabaseHelper.updateSmartDialDatabase", "last updated at " + lastUpdateMillis); @@ -1235,12 +1242,12 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper { } } - private class UpdateSmartDialWorker implements Worker { + private class UpdateSmartDialWorker implements Worker { @Nullable @Override - public Void doInBackground(@Nullable Void input) throws Throwable { - updateSmartDialDatabase(); + public Void doInBackground(Boolean forceUpdate) throws Throwable { + updateSmartDialDatabase(forceUpdate); return null; } } -- cgit v1.2.3