Loading packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +1 −1 Original line number Diff line number Diff line Loading @@ -236,7 +236,7 @@ public class ScreenDecorations extends SystemUI implements Tunable { Log.i(TAG, "ScreenDecorations is disabled"); return; } mHandler = mThreadFactory.builderHandlerOnNewThread("ScreenDecorations"); mHandler = mThreadFactory.buildHandlerOnNewThread("ScreenDecorations"); mExecutor = mThreadFactory.buildDelayableExecutorOnHandler(mHandler); mExecutor.execute(this::startOnScreenDecorationsThread); mDotViewController.setUiExecutor(mExecutor); Loading packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +16 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.hardware.display.DisplayManager; import android.hardware.face.FaceManager; import android.hardware.fingerprint.FingerprintManager; import android.media.AudioManager; import android.media.IAudioService; import android.media.MediaRouter2Manager; import android.media.session.MediaSessionManager; import android.net.ConnectivityManager; Loading Loading @@ -77,6 +78,8 @@ import com.android.systemui.dagger.qualifiers.DisplayId; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.shared.system.PackageManagerWrapper; import java.util.Optional; import javax.inject.Singleton; import dagger.Module; Loading Loading @@ -165,6 +168,13 @@ public class FrameworkServicesModule { return ActivityTaskManager.getService(); } @Provides @Singleton static IAudioService provideIAudioService() { return IAudioService.Stub.asInterface(ServiceManager.getService(Context.AUDIO_SERVICE)); } @Provides @Singleton static IBatteryStats provideIBatteryStats() { Loading Loading @@ -360,6 +370,12 @@ public class FrameworkServicesModule { return context.getSystemService(Vibrator.class); } @Provides @Singleton static Optional<Vibrator> provideOptionalVibrator(Context context) { return Optional.ofNullable(context.getSystemService(Vibrator.class)); } @Provides @Singleton static ViewConfiguration provideViewConfiguration(Context context) { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java +11 −8 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import android.util.ArraySet; import android.util.Log; import com.android.settingslib.mobile.TelephonyIcons; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.statusbar.policy.NetworkController; Loading Loading @@ -63,6 +62,7 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba private final SecurityController mSecurityController; private final Handler mHandler = Handler.getMain(); private final CarrierConfigTracker mCarrierConfigTracker; private final TunerService mTunerService; private boolean mHideAirplane; private boolean mHideMobile; Loading @@ -83,9 +83,16 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba @Inject public StatusBarSignalPolicy(Context context, StatusBarIconController iconController, CarrierConfigTracker carrierConfigTracker) { CarrierConfigTracker carrierConfigTracker, NetworkController networkController, SecurityController securityController, TunerService tunerService) { mContext = context; mIconController = iconController; mCarrierConfigTracker = carrierConfigTracker; mNetworkController = networkController; mSecurityController = securityController; mTunerService = tunerService; mSlotAirplane = mContext.getString(com.android.internal.R.string.status_bar_airplane); mSlotMobile = mContext.getString(com.android.internal.R.string.status_bar_mobile); mSlotWifi = mContext.getString(com.android.internal.R.string.status_bar_wifi); Loading @@ -96,18 +103,14 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba mContext.getString(com.android.internal.R.string.status_bar_call_strength); mActivityEnabled = mContext.getResources().getBoolean(R.bool.config_showActivity); mIconController = iconController; mCarrierConfigTracker = carrierConfigTracker; mNetworkController = Dependency.get(NetworkController.class); mSecurityController = Dependency.get(SecurityController.class); Dependency.get(TunerService.class).addTunable(this, StatusBarIconController.ICON_HIDE_LIST); tunerService.addTunable(this, StatusBarIconController.ICON_HIDE_LIST); mNetworkController.addCallback(this); mSecurityController.addCallback(this); } public void destroy() { Dependency.get(TunerService.class).removeTunable(this); mTunerService.removeTunable(this); mNetworkController.removeCallback(this); mSecurityController.removeCallback(this); } Loading packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactory.java +9 −1 Original line number Diff line number Diff line Loading @@ -29,13 +29,21 @@ import java.util.concurrent.Executor; * threads; there are no singletons here. Use responsibly. */ public interface ThreadFactory { /** * Returns a {@link Looper} running on a named thread. * * The thread is implicitly started and may be left running indefinitely, depending on the * implementation. Assume this is the case and use responsibly. */ Looper buildLooperOnNewThread(String threadName); /** * Returns a {@link Handler} running on a named thread. * * The thread is implicitly started and may be left running indefinitely, depending on the * implementation. Assume this is the case and use responsibly. */ Handler builderHandlerOnNewThread(String threadName); Handler buildHandlerOnNewThread(String threadName); /** * Return an {@link java.util.concurrent.Executor} running on a named thread. Loading packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactoryImpl.java +7 −2 Original line number Diff line number Diff line Loading @@ -29,10 +29,15 @@ class ThreadFactoryImpl implements ThreadFactory { ThreadFactoryImpl() {} @Override public Handler builderHandlerOnNewThread(String threadName) { public Looper buildLooperOnNewThread(String threadName) { HandlerThread handlerThread = new HandlerThread(threadName); handlerThread.start(); return new Handler(handlerThread.getLooper()); return handlerThread.getLooper(); } @Override public Handler buildHandlerOnNewThread(String threadName) { return new Handler(buildLooperOnNewThread(threadName)); } @Override Loading Loading
packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +1 −1 Original line number Diff line number Diff line Loading @@ -236,7 +236,7 @@ public class ScreenDecorations extends SystemUI implements Tunable { Log.i(TAG, "ScreenDecorations is disabled"); return; } mHandler = mThreadFactory.builderHandlerOnNewThread("ScreenDecorations"); mHandler = mThreadFactory.buildHandlerOnNewThread("ScreenDecorations"); mExecutor = mThreadFactory.buildDelayableExecutorOnHandler(mHandler); mExecutor.execute(this::startOnScreenDecorationsThread); mDotViewController.setUiExecutor(mExecutor); Loading
packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +16 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.hardware.display.DisplayManager; import android.hardware.face.FaceManager; import android.hardware.fingerprint.FingerprintManager; import android.media.AudioManager; import android.media.IAudioService; import android.media.MediaRouter2Manager; import android.media.session.MediaSessionManager; import android.net.ConnectivityManager; Loading Loading @@ -77,6 +78,8 @@ import com.android.systemui.dagger.qualifiers.DisplayId; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.shared.system.PackageManagerWrapper; import java.util.Optional; import javax.inject.Singleton; import dagger.Module; Loading Loading @@ -165,6 +168,13 @@ public class FrameworkServicesModule { return ActivityTaskManager.getService(); } @Provides @Singleton static IAudioService provideIAudioService() { return IAudioService.Stub.asInterface(ServiceManager.getService(Context.AUDIO_SERVICE)); } @Provides @Singleton static IBatteryStats provideIBatteryStats() { Loading Loading @@ -360,6 +370,12 @@ public class FrameworkServicesModule { return context.getSystemService(Vibrator.class); } @Provides @Singleton static Optional<Vibrator> provideOptionalVibrator(Context context) { return Optional.ofNullable(context.getSystemService(Vibrator.class)); } @Provides @Singleton static ViewConfiguration provideViewConfiguration(Context context) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java +11 −8 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import android.util.ArraySet; import android.util.Log; import com.android.settingslib.mobile.TelephonyIcons; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.statusbar.policy.NetworkController; Loading Loading @@ -63,6 +62,7 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba private final SecurityController mSecurityController; private final Handler mHandler = Handler.getMain(); private final CarrierConfigTracker mCarrierConfigTracker; private final TunerService mTunerService; private boolean mHideAirplane; private boolean mHideMobile; Loading @@ -83,9 +83,16 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba @Inject public StatusBarSignalPolicy(Context context, StatusBarIconController iconController, CarrierConfigTracker carrierConfigTracker) { CarrierConfigTracker carrierConfigTracker, NetworkController networkController, SecurityController securityController, TunerService tunerService) { mContext = context; mIconController = iconController; mCarrierConfigTracker = carrierConfigTracker; mNetworkController = networkController; mSecurityController = securityController; mTunerService = tunerService; mSlotAirplane = mContext.getString(com.android.internal.R.string.status_bar_airplane); mSlotMobile = mContext.getString(com.android.internal.R.string.status_bar_mobile); mSlotWifi = mContext.getString(com.android.internal.R.string.status_bar_wifi); Loading @@ -96,18 +103,14 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba mContext.getString(com.android.internal.R.string.status_bar_call_strength); mActivityEnabled = mContext.getResources().getBoolean(R.bool.config_showActivity); mIconController = iconController; mCarrierConfigTracker = carrierConfigTracker; mNetworkController = Dependency.get(NetworkController.class); mSecurityController = Dependency.get(SecurityController.class); Dependency.get(TunerService.class).addTunable(this, StatusBarIconController.ICON_HIDE_LIST); tunerService.addTunable(this, StatusBarIconController.ICON_HIDE_LIST); mNetworkController.addCallback(this); mSecurityController.addCallback(this); } public void destroy() { Dependency.get(TunerService.class).removeTunable(this); mTunerService.removeTunable(this); mNetworkController.removeCallback(this); mSecurityController.removeCallback(this); } Loading
packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactory.java +9 −1 Original line number Diff line number Diff line Loading @@ -29,13 +29,21 @@ import java.util.concurrent.Executor; * threads; there are no singletons here. Use responsibly. */ public interface ThreadFactory { /** * Returns a {@link Looper} running on a named thread. * * The thread is implicitly started and may be left running indefinitely, depending on the * implementation. Assume this is the case and use responsibly. */ Looper buildLooperOnNewThread(String threadName); /** * Returns a {@link Handler} running on a named thread. * * The thread is implicitly started and may be left running indefinitely, depending on the * implementation. Assume this is the case and use responsibly. */ Handler builderHandlerOnNewThread(String threadName); Handler buildHandlerOnNewThread(String threadName); /** * Return an {@link java.util.concurrent.Executor} running on a named thread. Loading
packages/SystemUI/src/com/android/systemui/util/concurrency/ThreadFactoryImpl.java +7 −2 Original line number Diff line number Diff line Loading @@ -29,10 +29,15 @@ class ThreadFactoryImpl implements ThreadFactory { ThreadFactoryImpl() {} @Override public Handler builderHandlerOnNewThread(String threadName) { public Looper buildLooperOnNewThread(String threadName) { HandlerThread handlerThread = new HandlerThread(threadName); handlerThread.start(); return new Handler(handlerThread.getLooper()); return handlerThread.getLooper(); } @Override public Handler buildHandlerOnNewThread(String threadName) { return new Handler(buildLooperOnNewThread(threadName)); } @Override Loading