Loading packages/SystemUI/proguard.flags +1 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ -keep class com.android.systemui.statusbar.car.CarStatusBar -keep class com.android.systemui.statusbar.phone.PhoneStatusBar -keep class com.android.systemui.statusbar.tv.TvStatusBar -keep class com.android.systemui.SystemUIFactory -keepclassmembers class ** { public void onBusEvent(**); Loading packages/SystemUI/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -282,5 +282,8 @@ <!-- Whether to show the full screen user switcher. --> <bool name="config_enableFullscreenUserSwitcher">false</bool> <!-- SystemUIFactory component --> <string name="config_systemUIFactoryComponent" translatable="false">com.android.systemui.SystemUIFactory</string> </resources> packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +2 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,8 @@ public class SystemUIApplication extends Application { // the theme set there. setTheme(R.style.systemui_theme); SystemUIFactory.createFromConfig(this); if (Process.myUserHandle().equals(UserHandle.SYSTEM)) { IntentFilter filter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); Loading packages/SystemUI/src/com/android/systemui/SystemUIFactory.java 0 → 100644 +69 −0 Original line number Diff line number Diff line /* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package com.android.systemui; import android.content.Context; import android.util.Log; import android.view.ViewGroup; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.StatusBarWindowManager; /** * Class factory to provide customizable SystemUI components. */ public class SystemUIFactory { private static final String TAG = "SystemUIFactory"; static SystemUIFactory mFactory; public static SystemUIFactory getInstance() { return mFactory; } public static void createFromConfig(Context context) { final String clsName = context.getString(R.string.config_systemUIFactoryComponent); if (clsName == null || clsName.length() == 0) { throw new RuntimeException("No SystemUIFactory component configured"); } try { Class<?> cls = null; cls = context.getClassLoader().loadClass(clsName); mFactory = (SystemUIFactory) cls.newInstance(); } catch (Throwable t) { Log.w(TAG, "Error creating SystemUIFactory component: " + clsName, t); throw new RuntimeException(t); } } public SystemUIFactory() {} public StatusBarKeyguardViewManager createStatusBarKeyguardViewManager(Context context, ViewMediatorCallback viewMediatorCallback, LockPatternUtils lockPatternUtils) { return new StatusBarKeyguardViewManager(context, viewMediatorCallback, lockPatternUtils); } public KeyguardBouncer createKeyguardBouncer(Context context, ViewMediatorCallback callback, LockPatternUtils lockPatternUtils, StatusBarWindowManager windowManager, ViewGroup container) { return new KeyguardBouncer(context, callback, lockPatternUtils, windowManager, container); } } packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +9 −2 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.SystemUI; import com.android.systemui.SystemUIFactory; import com.android.systemui.classifier.FalsingManager; import com.android.systemui.statusbar.phone.FingerprintUnlockController; import com.android.systemui.statusbar.phone.PhoneStatusBar; Loading Loading @@ -591,7 +592,8 @@ public class KeyguardViewMediator extends SystemUI { updateInputRestrictedLocked(); mTrustManager.reportKeyguardShowingChanged(); mStatusBarKeyguardViewManager = new StatusBarKeyguardViewManager(mContext, mStatusBarKeyguardViewManager = SystemUIFactory.getInstance().createStatusBarKeyguardViewManager(mContext, mViewMediatorCallback, mLockPatternUtils); final ContentResolver cr = mContext.getContentResolver(); Loading Loading @@ -1736,10 +1738,15 @@ public class KeyguardViewMediator extends SystemUI { public void onActivityDrawn() { mHandler.sendEmptyMessage(ON_ACTIVITY_DRAWN); } public ViewMediatorCallback getViewMediatorCallback() { return mViewMediatorCallback; } public LockPatternUtils getLockPatternUtils() { return mLockPatternUtils; } @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.print(" mSystemReady: "); pw.println(mSystemReady); Loading Loading
packages/SystemUI/proguard.flags +1 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ -keep class com.android.systemui.statusbar.car.CarStatusBar -keep class com.android.systemui.statusbar.phone.PhoneStatusBar -keep class com.android.systemui.statusbar.tv.TvStatusBar -keep class com.android.systemui.SystemUIFactory -keepclassmembers class ** { public void onBusEvent(**); Loading
packages/SystemUI/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -282,5 +282,8 @@ <!-- Whether to show the full screen user switcher. --> <bool name="config_enableFullscreenUserSwitcher">false</bool> <!-- SystemUIFactory component --> <string name="config_systemUIFactoryComponent" translatable="false">com.android.systemui.SystemUIFactory</string> </resources>
packages/SystemUI/src/com/android/systemui/SystemUIApplication.java +2 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,8 @@ public class SystemUIApplication extends Application { // the theme set there. setTheme(R.style.systemui_theme); SystemUIFactory.createFromConfig(this); if (Process.myUserHandle().equals(UserHandle.SYSTEM)) { IntentFilter filter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); Loading
packages/SystemUI/src/com/android/systemui/SystemUIFactory.java 0 → 100644 +69 −0 Original line number Diff line number Diff line /* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package com.android.systemui; import android.content.Context; import android.util.Log; import android.view.ViewGroup; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.StatusBarWindowManager; /** * Class factory to provide customizable SystemUI components. */ public class SystemUIFactory { private static final String TAG = "SystemUIFactory"; static SystemUIFactory mFactory; public static SystemUIFactory getInstance() { return mFactory; } public static void createFromConfig(Context context) { final String clsName = context.getString(R.string.config_systemUIFactoryComponent); if (clsName == null || clsName.length() == 0) { throw new RuntimeException("No SystemUIFactory component configured"); } try { Class<?> cls = null; cls = context.getClassLoader().loadClass(clsName); mFactory = (SystemUIFactory) cls.newInstance(); } catch (Throwable t) { Log.w(TAG, "Error creating SystemUIFactory component: " + clsName, t); throw new RuntimeException(t); } } public SystemUIFactory() {} public StatusBarKeyguardViewManager createStatusBarKeyguardViewManager(Context context, ViewMediatorCallback viewMediatorCallback, LockPatternUtils lockPatternUtils) { return new StatusBarKeyguardViewManager(context, viewMediatorCallback, lockPatternUtils); } public KeyguardBouncer createKeyguardBouncer(Context context, ViewMediatorCallback callback, LockPatternUtils lockPatternUtils, StatusBarWindowManager windowManager, ViewGroup container) { return new KeyguardBouncer(context, callback, lockPatternUtils, windowManager, container); } }
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +9 −2 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.SystemUI; import com.android.systemui.SystemUIFactory; import com.android.systemui.classifier.FalsingManager; import com.android.systemui.statusbar.phone.FingerprintUnlockController; import com.android.systemui.statusbar.phone.PhoneStatusBar; Loading Loading @@ -591,7 +592,8 @@ public class KeyguardViewMediator extends SystemUI { updateInputRestrictedLocked(); mTrustManager.reportKeyguardShowingChanged(); mStatusBarKeyguardViewManager = new StatusBarKeyguardViewManager(mContext, mStatusBarKeyguardViewManager = SystemUIFactory.getInstance().createStatusBarKeyguardViewManager(mContext, mViewMediatorCallback, mLockPatternUtils); final ContentResolver cr = mContext.getContentResolver(); Loading Loading @@ -1736,10 +1738,15 @@ public class KeyguardViewMediator extends SystemUI { public void onActivityDrawn() { mHandler.sendEmptyMessage(ON_ACTIVITY_DRAWN); } public ViewMediatorCallback getViewMediatorCallback() { return mViewMediatorCallback; } public LockPatternUtils getLockPatternUtils() { return mLockPatternUtils; } @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.print(" mSystemReady: "); pw.println(mSystemReady); Loading