Loading quickstep/src/com/android/quickstep/dagger/QuickstepBaseAppComponent.java +3 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ 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; /** * Launcher Quickstep base component for Dagger injection. Loading @@ -33,4 +34,6 @@ public interface QuickstepBaseAppComponent extends LauncherBaseAppComponent { SettingsChangeLogger getSettingsChangeLogger(); WellbeingModel getWellbeingModel(); AsyncClockEventDelegate getAsyncClockEventDelegate(); } quickstep/src/com/android/quickstep/util/AsyncClockEventDelegate.java +15 −3 Original line number Diff line number Diff line Loading @@ -32,23 +32,33 @@ import android.widget.TextClock.ClockEventDelegate; import androidx.annotation.WorkerThread; import com.android.launcher3.dagger.ApplicationContext; import com.android.launcher3.dagger.LauncherAppSingleton; import com.android.launcher3.dagger.LauncherBaseAppComponent; import com.android.launcher3.util.DaggerSingletonObject; import com.android.launcher3.util.DaggerSingletonTracker; import com.android.launcher3.util.ExecutorUtil; import com.android.launcher3.util.MainThreadInitializedObject; import com.android.launcher3.util.SafeCloseable; import com.android.launcher3.util.SettingsCache; import com.android.launcher3.util.SettingsCache.OnChangeListener; import com.android.launcher3.util.SimpleBroadcastReceiver; import com.android.quickstep.dagger.QuickstepBaseAppComponent; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; /** * Extension of {@link ClockEventDelegate} to support async event registration */ @LauncherAppSingleton public class AsyncClockEventDelegate extends ClockEventDelegate implements OnChangeListener, SafeCloseable { public static final MainThreadInitializedObject<AsyncClockEventDelegate> INSTANCE = new MainThreadInitializedObject<>(AsyncClockEventDelegate::new); public static final DaggerSingletonObject<AsyncClockEventDelegate> INSTANCE = new DaggerSingletonObject<>(QuickstepBaseAppComponent::getAsyncClockEventDelegate); private final Context mContext; private final SimpleBroadcastReceiver mReceiver = Loading @@ -61,10 +71,12 @@ public class AsyncClockEventDelegate extends ClockEventDelegate private boolean mFormatRegistered = false; private boolean mDestroyed = false; private AsyncClockEventDelegate(Context context) { @Inject AsyncClockEventDelegate(@ApplicationContext Context context, DaggerSingletonTracker tracker) { super(context); mContext = context; mReceiver.register(mContext, ACTION_TIME_CHANGED, ACTION_TIMEZONE_CHANGED); ExecutorUtil.executeSyncOnMainOrFail(() -> tracker.addCloseable(this)); } @Override Loading src/com/android/launcher3/util/SettingsCache.java +1 −1 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ public class SettingsCache extends ContentObserver implements SafeCloseable { new DaggerSingletonObject<>(LauncherBaseAppComponent::getSettingsCache); @Inject SettingsCache(@ApplicationContext final Context context, DaggerSingletonTracker tracker) { SettingsCache(@ApplicationContext Context context, DaggerSingletonTracker tracker) { super(new Handler(Looper.getMainLooper())); mResolver = context.getContentResolver(); ExecutorUtil.executeSyncOnMainOrFail(() -> tracker.addCloseable(this)); Loading Loading
quickstep/src/com/android/quickstep/dagger/QuickstepBaseAppComponent.java +3 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ 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; /** * Launcher Quickstep base component for Dagger injection. Loading @@ -33,4 +34,6 @@ public interface QuickstepBaseAppComponent extends LauncherBaseAppComponent { SettingsChangeLogger getSettingsChangeLogger(); WellbeingModel getWellbeingModel(); AsyncClockEventDelegate getAsyncClockEventDelegate(); }
quickstep/src/com/android/quickstep/util/AsyncClockEventDelegate.java +15 −3 Original line number Diff line number Diff line Loading @@ -32,23 +32,33 @@ import android.widget.TextClock.ClockEventDelegate; import androidx.annotation.WorkerThread; import com.android.launcher3.dagger.ApplicationContext; import com.android.launcher3.dagger.LauncherAppSingleton; import com.android.launcher3.dagger.LauncherBaseAppComponent; import com.android.launcher3.util.DaggerSingletonObject; import com.android.launcher3.util.DaggerSingletonTracker; import com.android.launcher3.util.ExecutorUtil; import com.android.launcher3.util.MainThreadInitializedObject; import com.android.launcher3.util.SafeCloseable; import com.android.launcher3.util.SettingsCache; import com.android.launcher3.util.SettingsCache.OnChangeListener; import com.android.launcher3.util.SimpleBroadcastReceiver; import com.android.quickstep.dagger.QuickstepBaseAppComponent; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; /** * Extension of {@link ClockEventDelegate} to support async event registration */ @LauncherAppSingleton public class AsyncClockEventDelegate extends ClockEventDelegate implements OnChangeListener, SafeCloseable { public static final MainThreadInitializedObject<AsyncClockEventDelegate> INSTANCE = new MainThreadInitializedObject<>(AsyncClockEventDelegate::new); public static final DaggerSingletonObject<AsyncClockEventDelegate> INSTANCE = new DaggerSingletonObject<>(QuickstepBaseAppComponent::getAsyncClockEventDelegate); private final Context mContext; private final SimpleBroadcastReceiver mReceiver = Loading @@ -61,10 +71,12 @@ public class AsyncClockEventDelegate extends ClockEventDelegate private boolean mFormatRegistered = false; private boolean mDestroyed = false; private AsyncClockEventDelegate(Context context) { @Inject AsyncClockEventDelegate(@ApplicationContext Context context, DaggerSingletonTracker tracker) { super(context); mContext = context; mReceiver.register(mContext, ACTION_TIME_CHANGED, ACTION_TIMEZONE_CHANGED); ExecutorUtil.executeSyncOnMainOrFail(() -> tracker.addCloseable(this)); } @Override Loading
src/com/android/launcher3/util/SettingsCache.java +1 −1 Original line number Diff line number Diff line Loading @@ -91,7 +91,7 @@ public class SettingsCache extends ContentObserver implements SafeCloseable { new DaggerSingletonObject<>(LauncherBaseAppComponent::getSettingsCache); @Inject SettingsCache(@ApplicationContext final Context context, DaggerSingletonTracker tracker) { SettingsCache(@ApplicationContext Context context, DaggerSingletonTracker tracker) { super(new Handler(Looper.getMainLooper())); mResolver = context.getContentResolver(); ExecutorUtil.executeSyncOnMainOrFail(() -> tracker.addCloseable(this)); Loading