Merge \\"Revert \\"Fix navigation bar order in seascape\\"\\" into nyc-mr1-dev am: ce715e4922
am: 6ab4f6a102
Change-Id: If3b1ba9b80f19ace63db170f9c36fcbed3a2e52e
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -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++) {
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user