summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/com/android/dialer/calllog/CallLogFramework.java7
-rw-r--r--java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java12
-rw-r--r--java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java11
-rw-r--r--java/com/android/dialer/storage/StorageComponent.java4
-rw-r--r--java/com/android/dialer/storage/StorageModule.java1
-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 {}