Loading packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +8 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.view.ViewGroup; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.R; import com.android.systemui.statusbar.ScrimView; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.NotificationIconAreaController; Loading Loading @@ -115,4 +116,11 @@ public class SystemUIFactory { public <T> T createInstance(Class<T> classType) { return null; } /** * @return The id for the home button layout. */ public int getHomeLayoutId() { return R.layout.home; } } packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java +18 −8 Original line number Diff line number Diff line Loading @@ -14,11 +14,10 @@ package com.android.systemui.statusbar.phone; import android.annotation.DrawableRes; import android.annotation.Nullable; import android.graphics.drawable.Drawable; import android.view.View; import android.widget.ImageView; import com.android.systemui.statusbar.policy.KeyButtonView; import java.util.ArrayList; Loading Loading @@ -65,9 +64,9 @@ public class ButtonDispatcher { view.setVisibility(mVisibility); } if (mImageResource > 0) { ((ImageView) view).setImageResource(mImageResource); ((ButtonInterface) view).setImageResource(mImageResource); } else if (mImageDrawable != null) { ((ImageView) view).setImageDrawable(mImageDrawable); ((ButtonInterface) view).setImageDrawable(mImageDrawable); } } Loading @@ -88,7 +87,7 @@ public class ButtonDispatcher { mImageResource = -1; final int N = mViews.size(); for (int i = 0; i < N; i++) { ((ImageView) mViews.get(i)).setImageDrawable(mImageDrawable); ((ButtonInterface) mViews.get(i)).setImageDrawable(mImageDrawable); } } Loading @@ -97,7 +96,7 @@ public class ButtonDispatcher { mImageDrawable = null; final int N = mViews.size(); for (int i = 0; i < N; i++) { ((ImageView) mViews.get(i)).setImageResource(mImageResource); ((ButtonInterface) mViews.get(i)).setImageResource(mImageResource); } } Loading @@ -114,7 +113,7 @@ public class ButtonDispatcher { // This seems to be an instantaneous thing, so not going to persist it. final int N = mViews.size(); for (int i = 0; i < N; i++) { ((KeyButtonView) mViews.get(i)).abortCurrentGesture(); ((ButtonInterface) mViews.get(i)).abortCurrentGesture(); } } Loading Loading @@ -165,4 +164,15 @@ public class ButtonDispatcher { public void setCurrentView(View currentView) { mCurrentView = currentView.findViewById(mId); } /** * Interface for ImageView button actions. */ public interface ButtonInterface { void setImageResource(@DrawableRes int resId); void setImageDrawable(@Nullable Drawable drawable); void abortCurrentGesture(); } } packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java +3 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,9 @@ import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.Space; import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.statusbar.policy.KeyButtonView; import com.android.systemui.tuner.TunerService; Loading Loading @@ -219,7 +221,7 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi String button = extractButton(buttonSpec); View v = null; if (HOME.equals(button)) { v = inflater.inflate(R.layout.home, parent, false); v = inflater.inflate(SystemUIFactory.getInstance().getHomeLayoutId(), parent, false); if (landscape && isSw600Dp()) { setupLandButton(v); } Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java +15 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.statusbar.policy; import android.annotation.DrawableRes; import android.annotation.Nullable; import android.app.ActivityManager; import android.content.Context; import android.content.res.Configuration; Loading @@ -42,11 +44,12 @@ import android.view.accessibility.AccessibilityNodeInfo; import android.widget.ImageView; import com.android.systemui.R; import com.android.systemui.statusbar.phone.ButtonDispatcher; import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK; import static android.view.accessibility.AccessibilityNodeInfo.ACTION_LONG_CLICK; public class KeyButtonView extends ImageView { public class KeyButtonView extends ImageView implements ButtonDispatcher.ButtonInterface { private int mContentDescriptionRes; private long mDownTime; Loading Loading @@ -247,10 +250,21 @@ public class KeyButtonView extends ImageView { InputManager.INJECT_INPUT_EVENT_MODE_ASYNC); } @Override public void abortCurrentGesture() { setPressed(false); mGestureAborted = true; } @Override public void setImageResource(@DrawableRes int resId) { super.setImageResource(resId); } @Override public void setImageDrawable(@Nullable Drawable drawable) { super.setImageDrawable(drawable); } } Loading
packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +8 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.view.ViewGroup; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.R; import com.android.systemui.statusbar.ScrimView; import com.android.systemui.statusbar.phone.KeyguardBouncer; import com.android.systemui.statusbar.phone.NotificationIconAreaController; Loading Loading @@ -115,4 +116,11 @@ public class SystemUIFactory { public <T> T createInstance(Class<T> classType) { return null; } /** * @return The id for the home button layout. */ public int getHomeLayoutId() { return R.layout.home; } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/ButtonDispatcher.java +18 −8 Original line number Diff line number Diff line Loading @@ -14,11 +14,10 @@ package com.android.systemui.statusbar.phone; import android.annotation.DrawableRes; import android.annotation.Nullable; import android.graphics.drawable.Drawable; import android.view.View; import android.widget.ImageView; import com.android.systemui.statusbar.policy.KeyButtonView; import java.util.ArrayList; Loading Loading @@ -65,9 +64,9 @@ public class ButtonDispatcher { view.setVisibility(mVisibility); } if (mImageResource > 0) { ((ImageView) view).setImageResource(mImageResource); ((ButtonInterface) view).setImageResource(mImageResource); } else if (mImageDrawable != null) { ((ImageView) view).setImageDrawable(mImageDrawable); ((ButtonInterface) view).setImageDrawable(mImageDrawable); } } Loading @@ -88,7 +87,7 @@ public class ButtonDispatcher { mImageResource = -1; final int N = mViews.size(); for (int i = 0; i < N; i++) { ((ImageView) mViews.get(i)).setImageDrawable(mImageDrawable); ((ButtonInterface) mViews.get(i)).setImageDrawable(mImageDrawable); } } Loading @@ -97,7 +96,7 @@ public class ButtonDispatcher { mImageDrawable = null; final int N = mViews.size(); for (int i = 0; i < N; i++) { ((ImageView) mViews.get(i)).setImageResource(mImageResource); ((ButtonInterface) mViews.get(i)).setImageResource(mImageResource); } } Loading @@ -114,7 +113,7 @@ public class ButtonDispatcher { // This seems to be an instantaneous thing, so not going to persist it. final int N = mViews.size(); for (int i = 0; i < N; i++) { ((KeyButtonView) mViews.get(i)).abortCurrentGesture(); ((ButtonInterface) mViews.get(i)).abortCurrentGesture(); } } Loading Loading @@ -165,4 +164,15 @@ public class ButtonDispatcher { public void setCurrentView(View currentView) { mCurrentView = currentView.findViewById(mId); } /** * Interface for ImageView button actions. */ public interface ButtonInterface { void setImageResource(@DrawableRes int resId); void setImageDrawable(@Nullable Drawable drawable); void abortCurrentGesture(); } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java +3 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,9 @@ import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.Space; import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.statusbar.policy.KeyButtonView; import com.android.systemui.tuner.TunerService; Loading Loading @@ -219,7 +221,7 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi String button = extractButton(buttonSpec); View v = null; if (HOME.equals(button)) { v = inflater.inflate(R.layout.home, parent, false); v = inflater.inflate(SystemUIFactory.getInstance().getHomeLayoutId(), parent, false); if (landscape && isSw600Dp()) { setupLandButton(v); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonView.java +15 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.statusbar.policy; import android.annotation.DrawableRes; import android.annotation.Nullable; import android.app.ActivityManager; import android.content.Context; import android.content.res.Configuration; Loading @@ -42,11 +44,12 @@ import android.view.accessibility.AccessibilityNodeInfo; import android.widget.ImageView; import com.android.systemui.R; import com.android.systemui.statusbar.phone.ButtonDispatcher; import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK; import static android.view.accessibility.AccessibilityNodeInfo.ACTION_LONG_CLICK; public class KeyButtonView extends ImageView { public class KeyButtonView extends ImageView implements ButtonDispatcher.ButtonInterface { private int mContentDescriptionRes; private long mDownTime; Loading Loading @@ -247,10 +250,21 @@ public class KeyButtonView extends ImageView { InputManager.INJECT_INPUT_EVENT_MODE_ASYNC); } @Override public void abortCurrentGesture() { setPressed(false); mGestureAborted = true; } @Override public void setImageResource(@DrawableRes int resId) { super.setImageResource(resId); } @Override public void setImageDrawable(@Nullable Drawable drawable) { super.setImageDrawable(drawable); } }