Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java +1 −17 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ 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 @@ -70,8 +71,6 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi private View mLastRot0; private View mLastRot90; private boolean mAlternativeOrder; public NavigationBarInflaterView(Context context, AttributeSet attrs) { super(context, attrs); mDensity = context.getResources().getConfiguration().densityDpi; Loading Loading @@ -115,7 +114,6 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi false); mRot90.setId(R.id.rot90); addView(mRot90); updateAlternativeOrder(); if (getParent() instanceof NavigationBarView) { ((NavigationBarView) getParent()).updateRotatedViews(); } Loading Loading @@ -154,20 +152,6 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi } } public void setAlternativeOrder(boolean alternativeOrder) { if (alternativeOrder != mAlternativeOrder) { mAlternativeOrder = alternativeOrder; updateAlternativeOrder(); } } private void updateAlternativeOrder() { ((ReverseLinearLayout) mRot90.findViewById(R.id.ends_group)).setAlternativeOrder( mAlternativeOrder); ((ReverseLinearLayout) mRot90.findViewById(R.id.center_group)).setAlternativeOrder( mAlternativeOrder); } private void initiallyFill(ButtonDispatcher buttonDispatcher) { addAll(buttonDispatcher, (ViewGroup) mRot0.findViewById(R.id.ends_group)); addAll(buttonDispatcher, (ViewGroup) mRot0.findViewById(R.id.center_group)); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +2 −6 Original line number Diff line number Diff line Loading @@ -99,8 +99,6 @@ public class NavigationBarView extends LinearLayout { private final SparseArray<ButtonDispatcher> mButtonDisatchers = new SparseArray<>(); private Configuration mConfiguration; private NavigationBarInflaterView mNavigationInflaterView; private class NavTransitionListener implements TransitionListener { private boolean mBackTransitioning; private boolean mHomeAppearing; Loading Loading @@ -474,10 +472,9 @@ public class NavigationBarView extends LinearLayout { @Override public void onFinishInflate() { mNavigationInflaterView = (NavigationBarInflaterView) findViewById( R.id.navigation_inflater); updateRotatedViews(); mNavigationInflaterView.setButtonDispatchers(mButtonDisatchers); ((NavigationBarInflaterView) findViewById(R.id.navigation_inflater)).setButtonDispatchers( mButtonDisatchers); getImeSwitchButton().setOnClickListener(mImeSwitcherClickListener); Loading Loading @@ -533,7 +530,6 @@ public class NavigationBarView extends LinearLayout { } mCurrentView = mRotatedViews[rot]; mCurrentView.setVisibility(View.VISIBLE); mNavigationInflaterView.setAlternativeOrder(rot == Surface.ROTATION_90); for (int i = 0; i < mButtonDisatchers.size(); i++) { mButtonDisatchers.valueAt(i).setCurrentView(mCurrentView); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ReverseLinearLayout.java +18 −27 Original line number Diff line number Diff line Loading @@ -30,11 +30,7 @@ import java.util.ArrayList; */ public class ReverseLinearLayout extends LinearLayout { /** If true, the layout is reversed vs. a regular linear layout */ private boolean mIsLayoutReverse; /** If true, the layout is opposite to it's natural reversity from the layout direction */ private boolean mIsAlternativeOrder; private boolean mIsLayoutRtl; public ReverseLinearLayout(Context context, @Nullable AttributeSet attrs) { super(context, attrs); Loading @@ -43,50 +39,45 @@ public class ReverseLinearLayout extends LinearLayout { @Override protected void onFinishInflate() { super.onFinishInflate(); updateOrder(); mIsLayoutRtl = getResources().getConfiguration() .getLayoutDirection() == LAYOUT_DIRECTION_RTL; } @Override public void addView(View child) { reversParams(child.getLayoutParams()); if (mIsLayoutReverse) { super.addView(child, 0); } else { if (mIsLayoutRtl) { super.addView(child); } else { super.addView(child, 0); } } @Override public void addView(View child, ViewGroup.LayoutParams params) { reversParams(params); if (mIsLayoutReverse) { super.addView(child, 0, params); } else { if (mIsLayoutRtl) { super.addView(child, params); } else { super.addView(child, 0, params); } } @Override public void onRtlPropertiesChanged(int layoutDirection) { super.onRtlPropertiesChanged(layoutDirection); updateOrder(); } public void setAlternativeOrder(boolean alternative) { mIsAlternativeOrder = alternative; updateOrder(); protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); updateRTLOrder(); } /** * In landscape, the LinearLayout is not auto mirrored since it is vertical. Therefore we * have to do it manually */ private void updateOrder() { boolean isLayoutRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL; boolean isLayoutReverse = isLayoutRtl ^ mIsAlternativeOrder; if (mIsLayoutReverse != isLayoutReverse) { // reversity changed, swap the order of all views. private void updateRTLOrder() { boolean isLayoutRtl = getResources().getConfiguration() .getLayoutDirection() == LAYOUT_DIRECTION_RTL; if (mIsLayoutRtl != isLayoutRtl) { // RTL changed, swap the order of all views. int childCount = getChildCount(); ArrayList<View> childList = new ArrayList<>(childCount); for (int i = 0; i < childCount; i++) { Loading @@ -96,7 +87,7 @@ public class ReverseLinearLayout extends LinearLayout { for (int i = childCount - 1; i >= 0; i--) { super.addView(childList.get(i)); } mIsLayoutReverse = isLayoutReverse; mIsLayoutRtl = isLayoutRtl; } } Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java +1 −17 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ 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 @@ -70,8 +71,6 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi private View mLastRot0; private View mLastRot90; private boolean mAlternativeOrder; public NavigationBarInflaterView(Context context, AttributeSet attrs) { super(context, attrs); mDensity = context.getResources().getConfiguration().densityDpi; Loading Loading @@ -115,7 +114,6 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi false); mRot90.setId(R.id.rot90); addView(mRot90); updateAlternativeOrder(); if (getParent() instanceof NavigationBarView) { ((NavigationBarView) getParent()).updateRotatedViews(); } Loading Loading @@ -154,20 +152,6 @@ public class NavigationBarInflaterView extends FrameLayout implements TunerServi } } public void setAlternativeOrder(boolean alternativeOrder) { if (alternativeOrder != mAlternativeOrder) { mAlternativeOrder = alternativeOrder; updateAlternativeOrder(); } } private void updateAlternativeOrder() { ((ReverseLinearLayout) mRot90.findViewById(R.id.ends_group)).setAlternativeOrder( mAlternativeOrder); ((ReverseLinearLayout) mRot90.findViewById(R.id.center_group)).setAlternativeOrder( mAlternativeOrder); } private void initiallyFill(ButtonDispatcher buttonDispatcher) { addAll(buttonDispatcher, (ViewGroup) mRot0.findViewById(R.id.ends_group)); addAll(buttonDispatcher, (ViewGroup) mRot0.findViewById(R.id.center_group)); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +2 −6 Original line number Diff line number Diff line Loading @@ -99,8 +99,6 @@ public class NavigationBarView extends LinearLayout { private final SparseArray<ButtonDispatcher> mButtonDisatchers = new SparseArray<>(); private Configuration mConfiguration; private NavigationBarInflaterView mNavigationInflaterView; private class NavTransitionListener implements TransitionListener { private boolean mBackTransitioning; private boolean mHomeAppearing; Loading Loading @@ -474,10 +472,9 @@ public class NavigationBarView extends LinearLayout { @Override public void onFinishInflate() { mNavigationInflaterView = (NavigationBarInflaterView) findViewById( R.id.navigation_inflater); updateRotatedViews(); mNavigationInflaterView.setButtonDispatchers(mButtonDisatchers); ((NavigationBarInflaterView) findViewById(R.id.navigation_inflater)).setButtonDispatchers( mButtonDisatchers); getImeSwitchButton().setOnClickListener(mImeSwitcherClickListener); Loading Loading @@ -533,7 +530,6 @@ public class NavigationBarView extends LinearLayout { } mCurrentView = mRotatedViews[rot]; mCurrentView.setVisibility(View.VISIBLE); mNavigationInflaterView.setAlternativeOrder(rot == Surface.ROTATION_90); for (int i = 0; i < mButtonDisatchers.size(); i++) { mButtonDisatchers.valueAt(i).setCurrentView(mCurrentView); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ReverseLinearLayout.java +18 −27 Original line number Diff line number Diff line Loading @@ -30,11 +30,7 @@ import java.util.ArrayList; */ public class ReverseLinearLayout extends LinearLayout { /** If true, the layout is reversed vs. a regular linear layout */ private boolean mIsLayoutReverse; /** If true, the layout is opposite to it's natural reversity from the layout direction */ private boolean mIsAlternativeOrder; private boolean mIsLayoutRtl; public ReverseLinearLayout(Context context, @Nullable AttributeSet attrs) { super(context, attrs); Loading @@ -43,50 +39,45 @@ public class ReverseLinearLayout extends LinearLayout { @Override protected void onFinishInflate() { super.onFinishInflate(); updateOrder(); mIsLayoutRtl = getResources().getConfiguration() .getLayoutDirection() == LAYOUT_DIRECTION_RTL; } @Override public void addView(View child) { reversParams(child.getLayoutParams()); if (mIsLayoutReverse) { super.addView(child, 0); } else { if (mIsLayoutRtl) { super.addView(child); } else { super.addView(child, 0); } } @Override public void addView(View child, ViewGroup.LayoutParams params) { reversParams(params); if (mIsLayoutReverse) { super.addView(child, 0, params); } else { if (mIsLayoutRtl) { super.addView(child, params); } else { super.addView(child, 0, params); } } @Override public void onRtlPropertiesChanged(int layoutDirection) { super.onRtlPropertiesChanged(layoutDirection); updateOrder(); } public void setAlternativeOrder(boolean alternative) { mIsAlternativeOrder = alternative; updateOrder(); protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); updateRTLOrder(); } /** * In landscape, the LinearLayout is not auto mirrored since it is vertical. Therefore we * have to do it manually */ private void updateOrder() { boolean isLayoutRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL; boolean isLayoutReverse = isLayoutRtl ^ mIsAlternativeOrder; if (mIsLayoutReverse != isLayoutReverse) { // reversity changed, swap the order of all views. private void updateRTLOrder() { boolean isLayoutRtl = getResources().getConfiguration() .getLayoutDirection() == LAYOUT_DIRECTION_RTL; if (mIsLayoutRtl != isLayoutRtl) { // RTL changed, swap the order of all views. int childCount = getChildCount(); ArrayList<View> childList = new ArrayList<>(childCount); for (int i = 0; i < childCount; i++) { Loading @@ -96,7 +87,7 @@ public class ReverseLinearLayout extends LinearLayout { for (int i = childCount - 1; i >= 0; i--) { super.addView(childList.get(i)); } mIsLayoutReverse = isLayoutReverse; mIsLayoutRtl = isLayoutRtl; } } Loading