summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/app
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/app')
-rw-r--r--java/com/android/dialer/app/DialtactsActivity.java34
1 files changed, 32 insertions, 2 deletions
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 99a16d931..a5d650215 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -31,6 +31,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.SystemClock;
import android.os.Trace;
+import android.preference.PreferenceManager;
import android.provider.CallLog.Calls;
import android.speech.RecognizerIntent;
import android.support.annotation.MainThread;
@@ -120,6 +121,7 @@ import com.android.dialer.simulator.Simulator;
import com.android.dialer.simulator.SimulatorComponent;
import com.android.dialer.smartdial.SmartDialNameMatcher;
import com.android.dialer.smartdial.SmartDialPrefix;
+import com.android.dialer.strictmode.DialerStrictMode;
import com.android.dialer.telecom.TelecomUtil;
import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.PermissionsUtil;
@@ -387,6 +389,8 @@ public class DialtactsActivity extends TransactionSafeActivity
Trace.beginSection(TAG + " onCreate");
super.onCreate(savedInstanceState);
+ warmupSharedPrefs();
+
mFirstLaunch = true;
isLastTabEnabled = ConfigProviderBindings.get(this).getBoolean("last_tab_enabled", false);
@@ -503,6 +507,32 @@ public class DialtactsActivity extends TransactionSafeActivity
Trace.endSection();
}
+ /**
+ * We frequently access shared preferences on the main thread, which causes strict mode
+ * violations. Warm up the shared preferences here so that later uses of shared preferences access
+ * the in-memory versions and we don't have to bypass strict mode at every point in the
+ * application where shared preferences are accessed.
+ */
+ private void warmupSharedPrefs() {
+ DialerStrictMode.bypass(
+ () -> {
+ // From credential-encrypted (CE) storage, i.e.:
+ // /data/data/com.google.android.dialer/shared_prefs
+
+ // com.google.android.dialer_preferences.xml
+ PreferenceManager.getDefaultSharedPreferences(this);
+
+ // com.google.android.dialer.xml
+ getSharedPreferences(getPackageName(), Context.MODE_PRIVATE);
+
+ // From device-encrypted (DE) storage, i.e.:
+ // /data/user_de/0/com.android.dialer/shared_prefs/
+
+ // com.google.android.dialer_preferences.xml
+ DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(this);
+ });
+ }
+
@NonNull
private ActionBar getActionBarSafely() {
return Assert.isNotNull(getSupportActionBar());
@@ -855,7 +885,7 @@ public class DialtactsActivity extends TransactionSafeActivity
Assert.isNotNull(mListsFragment.getView()).animate().alpha(0).withLayer();
- //adjust the title, so the user will know where we're at when the activity start/resumes.
+ // adjust the title, so the user will know where we're at when the activity start/resumes.
setTitle(R.string.launcherDialpadActivityLabel);
}
@@ -917,7 +947,7 @@ public class DialtactsActivity extends TransactionSafeActivity
exitSearchUi();
}
}
- //reset the title to normal.
+ // reset the title to normal.
setTitle(R.string.launcherActivityLabel);
}