mirror of
https://github.com/tuskyapp/Tusky
synced 2025-02-04 10:47:49 +01:00
d554d71958
(this one is for @charlag) Calling `PreferenceManager.getDefaultSharedPreferences()` will read the preference file from disk every time. This PR makes `SharedPreferences` a singleton so they will only be created once at appstart (with a few exceptions where it is hard to inject, e.g. in the `openLink` helper) which should help getting our ANRs down. ``` StrictMode policy violation; ~duration=285 ms: android.os.strictmode.DiskReadViolation at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1666) at libcore.io.BlockGuardOs.access(BlockGuardOs.java:74) at libcore.io.ForwardingOs.access(ForwardingOs.java:128) at android.app.ActivityThread$AndroidOs.access(ActivityThread.java:8054) at java.io.UnixFileSystem.checkAccess(UnixFileSystem.java:313) at java.io.File.exists(File.java:813) at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:790) at android.app.ContextImpl.ensurePrivateDirExists(ContextImpl.java:781) at android.app.ContextImpl.getPreferencesDir(ContextImpl.java:737) at android.app.ContextImpl.getSharedPreferencesPath(ContextImpl.java:962) at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:583) at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:221) at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:221) at androidx.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:119) at com.keylesspalace.tusky.BaseActivity.onCreate(BaseActivity.java:96) ... ```