diff options
Diffstat (limited to 'java/com/android/dialer')
-rw-r--r-- | java/com/android/dialer/calllog/CallLogFramework.java | 7 | ||||
-rw-r--r-- | java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java | 12 | ||||
-rw-r--r-- | java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java | 11 | ||||
-rw-r--r-- | java/com/android/dialer/storage/StorageComponent.java | 4 | ||||
-rw-r--r-- | java/com/android/dialer/storage/StorageModule.java | 1 | ||||
-rw-r--r-- | java/com/android/dialer/storage/Unencrypted.java (renamed from java/com/android/dialer/storage/DeviceProtected.java) | 4 |
6 files changed, 25 insertions, 14 deletions
diff --git a/java/com/android/dialer/calllog/CallLogFramework.java b/java/com/android/dialer/calllog/CallLogFramework.java index 788e56b93..e4bb4c89a 100644 --- a/java/com/android/dialer/calllog/CallLogFramework.java +++ b/java/com/android/dialer/calllog/CallLogFramework.java @@ -18,7 +18,6 @@ package com.android.dialer.calllog; import android.content.Context; import android.content.SharedPreferences; -import android.preference.PreferenceManager; import android.support.annotation.MainThread; import android.support.annotation.Nullable; import com.android.dialer.buildtype.BuildType; @@ -26,6 +25,7 @@ import com.android.dialer.calllog.datasources.CallLogDataSource; import com.android.dialer.calllog.datasources.DataSources; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; +import com.android.dialer.storage.Unencrypted; import javax.inject.Inject; import javax.inject.Singleton; @@ -41,12 +41,14 @@ public final class CallLogFramework implements CallLogDataSource.ContentObserver static final String PREF_FORCE_REBUILD = "callLogFrameworkForceRebuild"; private final DataSources dataSources; + private final SharedPreferences sharedPreferences; @Nullable private CallLogUi ui; @Inject - CallLogFramework(DataSources dataSources) { + CallLogFramework(DataSources dataSources, @Unencrypted SharedPreferences sharedPreferences) { this.dataSources = dataSources; + this.sharedPreferences = sharedPreferences; } /** Registers the content observers for all data sources. */ @@ -99,7 +101,6 @@ public final class CallLogFramework implements CallLogDataSource.ContentObserver Assert.isMainThread(); LogUtil.enterBlock("CallLogFramework.markDirtyAndNotify"); - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext); sharedPreferences.edit().putBoolean(PREF_FORCE_REBUILD, true).apply(); if (ui != null) { diff --git a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java index 273246649..72f73cdaf 100644 --- a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java +++ b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java @@ -22,7 +22,6 @@ import android.content.OperationApplicationException; import android.content.SharedPreferences; import android.os.Build; import android.os.RemoteException; -import android.preference.PreferenceManager; import android.support.annotation.WorkerThread; import com.android.dialer.calllog.database.CallLogDatabaseComponent; import com.android.dialer.calllog.datasources.CallLogDataSource; @@ -32,6 +31,7 @@ import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.dialer.common.concurrent.DialerExecutor.Worker; import com.android.dialer.inject.ApplicationContext; +import com.android.dialer.storage.Unencrypted; import javax.inject.Inject; /** @@ -43,11 +43,16 @@ public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Void> { private final Context appContext; private final DataSources dataSources; + private final SharedPreferences sharedPreferences; @Inject - RefreshAnnotatedCallLogWorker(@ApplicationContext Context appContext, DataSources dataSources) { + RefreshAnnotatedCallLogWorker( + @ApplicationContext Context appContext, + DataSources dataSources, + @Unencrypted SharedPreferences sharedPreferences) { this.appContext = appContext; this.dataSources = dataSources; + this.sharedPreferences = sharedPreferences; } @Override @@ -71,7 +76,6 @@ public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Void> { long startTime = System.currentTimeMillis(); - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext); // Default to true. If the pref doesn't exist, the annotated call log hasn't been created and // we just skip isDirty checks and force a rebuild. boolean forceRebuildPrefValue = @@ -171,8 +175,6 @@ public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Void> { dataSourceName, System.currentTimeMillis() - startTime); } - - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext); sharedPreferences.edit().putBoolean(CallLogFramework.PREF_FORCE_REBUILD, false).apply(); } diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java index 1fe3507e0..5ca160778 100644 --- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java +++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java @@ -25,7 +25,6 @@ import android.database.Cursor; import android.net.Uri; import android.os.Build; import android.os.Handler; -import android.preference.PreferenceManager; import android.provider.CallLog; import android.provider.CallLog.Calls; import android.provider.ContactsContract.CommonDataKinds.Phone; @@ -48,6 +47,7 @@ import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.dialer.common.concurrent.ThreadUtil; import com.android.dialer.phonenumberproto.DialerPhoneNumberUtil; +import com.android.dialer.storage.StorageComponent; import com.android.dialer.theme.R; import com.android.dialer.util.PermissionsUtil; import com.google.i18n.phonenumbers.PhoneNumberUtil; @@ -107,7 +107,8 @@ public class SystemCallLogDataSource implements CallLogDataSource { * * Just return false unless the table has never been written to. */ - return !PreferenceManager.getDefaultSharedPreferences(appContext) + return !StorageComponent.get(appContext) + .unencryptedSharedPrefs() .contains(PREF_LAST_TIMESTAMP_PROCESSED); } @@ -142,7 +143,8 @@ public class SystemCallLogDataSource implements CallLogDataSource { public void onSuccessfulFill(Context appContext) { // If a fill operation was a no-op, lastTimestampProcessed could still be null. if (lastTimestampProcessed != null) { - PreferenceManager.getDefaultSharedPreferences(appContext) + StorageComponent.get(appContext) + .unencryptedSharedPrefs() .edit() .putLong(PREF_LAST_TIMESTAMP_PROCESSED, lastTimestampProcessed) .apply(); @@ -190,7 +192,8 @@ public class SystemCallLogDataSource implements CallLogDataSource { private void handleInsertsAndUpdates( Context appContext, CallLogMutations mutations, Set<Long> existingAnnotatedCallLogIds) { long previousTimestampProcessed = - PreferenceManager.getDefaultSharedPreferences(appContext) + StorageComponent.get(appContext) + .unencryptedSharedPrefs() .getLong(PREF_LAST_TIMESTAMP_PROCESSED, 0L); DialerPhoneNumberUtil dialerPhoneNumberUtil = diff --git a/java/com/android/dialer/storage/StorageComponent.java b/java/com/android/dialer/storage/StorageComponent.java index 067b99424..cb5c4a879 100644 --- a/java/com/android/dialer/storage/StorageComponent.java +++ b/java/com/android/dialer/storage/StorageComponent.java @@ -28,7 +28,11 @@ public abstract class StorageComponent { /** * Returns unencrypted default shared preferences. This method should not be used for private * data. + * + * <p>These shared prefs are available even when the device is in FBE mode and are generally the + * ones that should be used, because Dialer needs to function while in FBE mode. */ + @Unencrypted public abstract SharedPreferences unencryptedSharedPrefs(); public static StorageComponent get(Context context) { diff --git a/java/com/android/dialer/storage/StorageModule.java b/java/com/android/dialer/storage/StorageModule.java index 3ee72c8d8..e1c5b4b08 100644 --- a/java/com/android/dialer/storage/StorageModule.java +++ b/java/com/android/dialer/storage/StorageModule.java @@ -30,6 +30,7 @@ public class StorageModule { @Provides @Singleton + @Unencrypted static SharedPreferences provideUnencryptedSharedPrefs(@ApplicationContext Context appContext) { // #createDeviceProtectedStorageContext returns a new context each time, so we cache the shared // preferences object in order to avoid accessing disk for every operation. diff --git a/java/com/android/dialer/storage/DeviceProtected.java b/java/com/android/dialer/storage/Unencrypted.java index 862259a61..02c902145 100644 --- a/java/com/android/dialer/storage/DeviceProtected.java +++ b/java/com/android/dialer/storage/Unencrypted.java @@ -17,6 +17,6 @@ package com.android.dialer.storage; import javax.inject.Qualifier; -/** Annotation for retrieving device protected storage objects. */ +/** Annotation for retrieving unencrypted storage objects. */ @Qualifier -public @interface DeviceProtected {} +public @interface Unencrypted {} |