Merge "Moving SettingsChangeLogger back to MainThreadInitializedObject" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
5572968c0b
@@ -19,7 +19,6 @@ package com.android.quickstep.dagger;
|
||||
import com.android.launcher3.dagger.LauncherAppComponent;
|
||||
import com.android.launcher3.dagger.LauncherBaseAppComponent;
|
||||
import com.android.launcher3.model.WellbeingModel;
|
||||
import com.android.quickstep.logging.SettingsChangeLogger;
|
||||
import com.android.quickstep.util.AsyncClockEventDelegate;
|
||||
import com.android.quickstep.util.ContextualSearchHapticManager;
|
||||
|
||||
@@ -32,7 +31,6 @@ import com.android.quickstep.util.ContextualSearchHapticManager;
|
||||
* See {@link LauncherAppComponent} for the one actually used.
|
||||
*/
|
||||
public interface QuickstepBaseAppComponent extends LauncherBaseAppComponent {
|
||||
SettingsChangeLogger getSettingsChangeLogger();
|
||||
|
||||
WellbeingModel getWellbeingModel();
|
||||
|
||||
|
||||
@@ -44,20 +44,16 @@ import androidx.annotation.VisibleForTesting;
|
||||
import com.android.launcher3.LauncherPrefs;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.dagger.ApplicationContext;
|
||||
import com.android.launcher3.dagger.LauncherAppSingleton;
|
||||
import com.android.launcher3.logging.InstanceId;
|
||||
import com.android.launcher3.logging.StatsLogManager;
|
||||
import com.android.launcher3.logging.StatsLogManager.StatsLogger;
|
||||
import com.android.launcher3.model.DeviceGridState;
|
||||
import com.android.launcher3.util.DaggerSingletonObject;
|
||||
import com.android.launcher3.util.DaggerSingletonTracker;
|
||||
import com.android.launcher3.util.DisplayController;
|
||||
import com.android.launcher3.util.DisplayController.Info;
|
||||
import com.android.launcher3.util.ExecutorUtil;
|
||||
import com.android.launcher3.util.MainThreadInitializedObject;
|
||||
import com.android.launcher3.util.NavigationMode;
|
||||
import com.android.launcher3.util.SafeCloseable;
|
||||
import com.android.launcher3.util.SettingsCache;
|
||||
import com.android.quickstep.dagger.QuickstepBaseAppComponent;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
@@ -65,12 +61,9 @@ import org.xmlpull.v1.XmlPullParserException;
|
||||
import java.io.IOException;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Utility class to log launcher settings changes
|
||||
*/
|
||||
@LauncherAppSingleton
|
||||
public class SettingsChangeLogger implements
|
||||
DisplayController.DisplayInfoChangeListener, OnSharedPreferenceChangeListener,
|
||||
SafeCloseable {
|
||||
@@ -78,8 +71,8 @@ public class SettingsChangeLogger implements
|
||||
/**
|
||||
* Singleton instance
|
||||
*/
|
||||
public static DaggerSingletonObject<SettingsChangeLogger> INSTANCE =
|
||||
new DaggerSingletonObject<>(QuickstepBaseAppComponent::getSettingsChangeLogger);
|
||||
public static MainThreadInitializedObject<SettingsChangeLogger> INSTANCE =
|
||||
new MainThreadInitializedObject<>(SettingsChangeLogger::new);
|
||||
|
||||
private static final String TAG = "SettingsChangeLogger";
|
||||
private static final String BOOLEAN_PREF = "SwitchPreference";
|
||||
@@ -92,31 +85,26 @@ public class SettingsChangeLogger implements
|
||||
private StatsLogManager.LauncherEvent mNotificationDotsEvent;
|
||||
private StatsLogManager.LauncherEvent mHomeScreenSuggestionEvent;
|
||||
|
||||
@Inject
|
||||
SettingsChangeLogger(@ApplicationContext Context context, DaggerSingletonTracker tracker) {
|
||||
this(context, StatsLogManager.newInstance(context), tracker);
|
||||
SettingsChangeLogger(@ApplicationContext Context context) {
|
||||
this(context, StatsLogManager.newInstance(context));
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
SettingsChangeLogger(Context context, StatsLogManager statsLogManager,
|
||||
DaggerSingletonTracker tracker) {
|
||||
SettingsChangeLogger(Context context, StatsLogManager statsLogManager) {
|
||||
mContext = context;
|
||||
mStatsLogManager = statsLogManager;
|
||||
mLoggablePrefs = loadPrefKeys(context);
|
||||
|
||||
ExecutorUtil.executeSyncOnMainOrFail(() -> {
|
||||
DisplayController.INSTANCE.get(context).addChangeListener(this);
|
||||
mNavMode = DisplayController.getNavigationMode(context);
|
||||
DisplayController.INSTANCE.get(context).addChangeListener(this);
|
||||
mNavMode = DisplayController.getNavigationMode(context);
|
||||
|
||||
getPrefs(context).registerOnSharedPreferenceChangeListener(this);
|
||||
getDevicePrefs(context).registerOnSharedPreferenceChangeListener(this);
|
||||
getPrefs(context).registerOnSharedPreferenceChangeListener(this);
|
||||
getDevicePrefs(context).registerOnSharedPreferenceChangeListener(this);
|
||||
|
||||
SettingsCache settingsCache = SettingsCache.INSTANCE.get(context);
|
||||
settingsCache.register(NOTIFICATION_BADGING_URI,
|
||||
this::onNotificationDotsChanged);
|
||||
onNotificationDotsChanged(settingsCache.getValue(NOTIFICATION_BADGING_URI));
|
||||
tracker.addCloseable(this);
|
||||
});
|
||||
SettingsCache settingsCache = SettingsCache.INSTANCE.get(context);
|
||||
settingsCache.register(NOTIFICATION_BADGING_URI,
|
||||
this::onNotificationDotsChanged);
|
||||
onNotificationDotsChanged(settingsCache.getValue(NOTIFICATION_BADGING_URI));
|
||||
}
|
||||
|
||||
private static ArrayMap<String, LoggablePref> loadPrefKeys(Context context) {
|
||||
@@ -223,8 +211,6 @@ public class SettingsChangeLogger implements
|
||||
public void close() {
|
||||
getPrefs(mContext).unregisterOnSharedPreferenceChangeListener(this);
|
||||
getDevicePrefs(mContext).unregisterOnSharedPreferenceChangeListener(this);
|
||||
SettingsCache settingsCache = SettingsCache.INSTANCE.get(mContext);
|
||||
settingsCache.unregister(NOTIFICATION_BADGING_URI, this::onNotificationDotsChanged);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
||||
+3
-5
@@ -34,7 +34,6 @@ import com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_NAVI
|
||||
import com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_NOTIFICATION_DOT_ENABLED
|
||||
import com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_THEMED_ICON_DISABLED
|
||||
import com.android.launcher3.states.RotationHelper.ALLOW_ROTATION_PREFERENCE_KEY
|
||||
import com.android.launcher3.util.DaggerSingletonTracker
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
@@ -63,7 +62,6 @@ class SettingsChangeLoggerTest {
|
||||
@Mock private lateinit var mMockLogger: StatsLogManager.StatsLogger
|
||||
|
||||
@Captor private lateinit var mEventCaptor: ArgumentCaptor<StatsLogManager.EventEnum>
|
||||
@Mock private lateinit var mTracker: DaggerSingletonTracker
|
||||
|
||||
private var mDefaultThemedIcons = false
|
||||
private var mDefaultAllowRotation = false
|
||||
@@ -81,7 +79,7 @@ class SettingsChangeLoggerTest {
|
||||
// To match the default value of ALLOW_ROTATION
|
||||
LauncherPrefs.get(mContext).put(item = ALLOW_ROTATION, value = false)
|
||||
|
||||
mSystemUnderTest = SettingsChangeLogger(mContext, mStatsLogManager, mTracker)
|
||||
mSystemUnderTest = SettingsChangeLogger(mContext, mStatsLogManager)
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -92,7 +90,7 @@ class SettingsChangeLoggerTest {
|
||||
|
||||
@Test
|
||||
fun loggingPrefs_correctDefaultValue() {
|
||||
val systemUnderTest = SettingsChangeLogger(mContext, mStatsLogManager, mTracker)
|
||||
val systemUnderTest = SettingsChangeLogger(mContext, mStatsLogManager)
|
||||
|
||||
assertThat(systemUnderTest.loggingPrefs[ALLOW_ROTATION_PREFERENCE_KEY]!!.defaultValue)
|
||||
.isFalse()
|
||||
@@ -119,7 +117,7 @@ class SettingsChangeLoggerTest {
|
||||
LauncherPrefs.get(mContext).put(item = ALLOW_ROTATION, value = true)
|
||||
|
||||
// This a new object so the values of mLoggablePrefs will be different
|
||||
SettingsChangeLogger(mContext, mStatsLogManager, mTracker).logSnapshot(mInstanceId)
|
||||
SettingsChangeLogger(mContext, mStatsLogManager).logSnapshot(mInstanceId)
|
||||
|
||||
verify(mMockLogger, atLeastOnce()).log(mEventCaptor.capture())
|
||||
val capturedEvents = mEventCaptor.allValues
|
||||
|
||||
Reference in New Issue
Block a user