Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b22ed423 authored by Jesse Chan's avatar Jesse Chan Committed by Bruno Martins
Browse files

SystemUI: add navbar button layout inversion tuning



Change-Id: Id6a76c635b3d3927a2ffd8e0c2d912473d7dcde3
Signed-off-by: default avatarJesse Chan <jc@lineageos.org>
parent cc5fe878
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -133,4 +133,7 @@
    <string name="quick_settings_location_detail_mode_battery_saving_description">Use Wi\u2011Fi, Bluetooth, or cellular networks to determine location</string>
    <!-- [CHAR LIMIT=130] Location detail panel, description for sensors only mode -->
    <string name="quick_settings_location_detail_mode_sensors_only_description">Use GPS to determine your location</string>

    <!-- SysUI Tuner: Button that controls inversion of layout of navigation bar [CHAR LIMIT=60] -->
    <string name="nav_bar_layout_inverse">Invert button layout</string>
</resources>
+4 −0
Original line number Diff line number Diff line
@@ -26,6 +26,10 @@
        android:entries="@array/nav_bar_layouts"
        android:entryValues="@array/nav_bar_layouts_values" />

    <com.android.systemui.tuner.TunerSwitch
        android:key="sysui_nav_bar_inverse"
        android:title="@string/nav_bar_layout_inverse" />

    <com.android.systemui.tuner.RadioListPreference
        android:key="type_left"
        android:title="@string/left_nav_bar_button_type"
+11 −1
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ public class NavigationBarInflaterView extends FrameLayout
    public static final String NAV_BAR_VIEWS = "sysui_nav_bar";
    public static final String NAV_BAR_LEFT = "sysui_nav_bar_left";
    public static final String NAV_BAR_RIGHT = "sysui_nav_bar_right";
    public static final String NAV_BAR_INVERSE = "sysui_nav_bar_inverse";

    public static final String MENU_IME = "menu_ime";
    public static final String BACK = "back";
@@ -96,6 +97,8 @@ public class NavigationBarInflaterView extends FrameLayout

    private boolean mAlternativeOrder;

    private boolean mInverseLayout;

    public NavigationBarInflaterView(Context context, AttributeSet attrs) {
        super(context, attrs);
        createInflaters();
@@ -141,7 +144,7 @@ public class NavigationBarInflaterView extends FrameLayout
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
        Dependency.get(TunerService.class).addTunable(this, NAV_BAR_VIEWS, NAV_BAR_LEFT,
                NAV_BAR_RIGHT);
                NAV_BAR_RIGHT, NAV_BAR_INVERSE);
        Dependency.get(PluginManager.class).addPluginListener(this,
                NavBarButtonProvider.class, true /* Allow multiple */);
    }
@@ -163,6 +166,10 @@ public class NavigationBarInflaterView extends FrameLayout
        } else if (NAV_BAR_LEFT.equals(key) || NAV_BAR_RIGHT.equals(key)) {
            clearViews();
            inflateLayout(mCurrentLayout);
        } else if (NAV_BAR_INVERSE.equals(key)) {
            mInverseLayout = newValue != null && Integer.parseInt(newValue) != 0;
            clearViews();
            inflateLayout(mCurrentLayout);
        }
    }

@@ -218,6 +225,9 @@ public class NavigationBarInflaterView extends FrameLayout
        if (newLayout == null) {
            newLayout = getDefaultLayout();
        }
        if (mInverseLayout) {
            newLayout = newLayout.replace("recent", "back").replaceFirst("back", "recent");
        }
        String[] sets = newLayout.split(GRAVITY_SEPARATOR, 3);
        String[] start = sets[0].split(BUTTON_SEPARATOR);
        String[] center = sets[1].split(BUTTON_SEPARATOR);