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

Unverified Commit 733e55f0 authored by Wolfram Liebchen's avatar Wolfram Liebchen Committed by Michael Bestas
Browse files

Network traffic with automatic units [1/2]

A new network traffic display unit option "automatic" offers
a compact display of the network traffic by using at maximum
three digits and an abbreviated unit string.
Comes in handy for situations with reduced space in the
status bar.

Change-Id: I01582a3eaa73fa6845776c5b131ddc1e0deabe39
parent 4aff3e93
Loading
Loading
Loading
Loading
+34 −0
Original line number Original line Diff line number Diff line
@@ -392,6 +392,7 @@
        <item>@string/network_traffic_units_megabits</item>
        <item>@string/network_traffic_units_megabits</item>
        <item>@string/network_traffic_units_kilobytes</item>
        <item>@string/network_traffic_units_kilobytes</item>
        <item>@string/network_traffic_units_megabytes</item>
        <item>@string/network_traffic_units_megabytes</item>
        <item>@string/network_traffic_units_auto</item>
    </string-array>
    </string-array>


    <string-array name="network_traffic_units_values" translatable="false">
    <string-array name="network_traffic_units_values" translatable="false">
@@ -399,6 +400,39 @@
        <item>1</item>
        <item>1</item>
        <item>2</item>
        <item>2</item>
        <item>3</item>
        <item>3</item>
        <item>4</item>
    </string-array>

    <string-array name="network_traffic_show_units_entries" translatable="false">
        <item>@string/network_traffic_show_units_off</item>
        <item>@string/network_traffic_show_units_on</item>
        <item>@string/network_traffic_show_units_compact</item>
    </string-array>

    <string-array name="network_traffic_show_units_values" translatable="false">
        <item>0</item>
        <item>1</item>
        <item>2</item>
    </string-array>

    <string-array name="network_traffic_show_units_entries_bits" translatable="false">
        <item>@string/network_traffic_show_units_off</item>
        <item>@string/network_traffic_show_units_on</item>
    </string-array>

    <string-array name="network_traffic_show_units_values_bits" translatable="false">
        <item>0</item>
        <item>1</item>
    </string-array>

    <string-array name="network_traffic_show_units_entries_auto" translatable="false">
        <item>@string/network_traffic_show_units_on</item>
        <item>@string/network_traffic_show_units_compact</item>
    </string-array>

    <string-array name="network_traffic_show_units_values_auto" translatable="false">
        <item>1</item>
        <item>2</item>
    </string-array>
    </string-array>


    <!-- Sms limit -->
    <!-- Sms limit -->
+4 −0
Original line number Original line Diff line number Diff line
@@ -516,7 +516,11 @@
    <string name="network_traffic_units_megabits">Megabits per second (Mb/s)</string>
    <string name="network_traffic_units_megabits">Megabits per second (Mb/s)</string>
    <string name="network_traffic_units_kilobytes">Kilobytes per second (kB/s)</string>
    <string name="network_traffic_units_kilobytes">Kilobytes per second (kB/s)</string>
    <string name="network_traffic_units_megabytes">Megabytes per second (MB/s)</string>
    <string name="network_traffic_units_megabytes">Megabytes per second (MB/s)</string>
    <string name="network_traffic_units_auto">Automatic (kB/s or MB/s)</string>
    <string name="network_traffic_show_units">Show units</string>
    <string name="network_traffic_show_units">Show units</string>
    <string name="network_traffic_show_units_off">Off</string>
    <string name="network_traffic_show_units_on">On</string>
    <string name="network_traffic_show_units_compact">Compact</string>
    <string name="network_traffic_show_units_summary">Whether to show traffic measurement units in the statusbar</string>
    <string name="network_traffic_show_units_summary">Whether to show traffic measurement units in the statusbar</string>
    <string name="network_traffic_disabled_clock">Network traffic disabled due to clock position</string>
    <string name="network_traffic_disabled_clock">Network traffic disabled due to clock position</string>


+5 −3
Original line number Original line Diff line number Diff line
@@ -35,10 +35,12 @@
        android:summary="%s"
        android:summary="%s"
        android:title="@string/network_traffic_units_title" />
        android:title="@string/network_traffic_units_title" />


    <lineageos.preference.LineageSecureSettingSwitchPreference
    <DropDownPreference
        android:defaultValue="true"
        android:entries="@array/network_traffic_show_units_entries"
        android:entryValues="@array/network_traffic_show_units_values"
        android:key="network_traffic_show_units"
        android:key="network_traffic_show_units"
        android:summary="@string/network_traffic_show_units_summary"
        android:persistent="false"
        android:summary="%s"
        android:title="@string/network_traffic_show_units" />
        android:title="@string/network_traffic_show_units" />


</PreferenceScreen>
</PreferenceScreen>
+51 −2
Original line number Original line Diff line number Diff line
@@ -29,11 +29,21 @@ public class NetworkTrafficSettings extends SettingsPreferenceFragment
    private static final int POSITION_CENTER = 1;
    private static final int POSITION_CENTER = 1;
    private static final int POSITION_END = 2;
    private static final int POSITION_END = 2;


    private static final int UNITS_KILOBITS = 0;
    private static final int UNITS_MEGABITS = 1;
    private static final int UNITS_KILOBYTES = 2;
    private static final int UNITS_MEGABYTES = 3;
    private static final int UNITS_AUTOBYTES = 4;

    private static final int SHOW_UNITS_OFF = 0;
    private static final int SHOW_UNITS_ON = 1;
    private static final int SHOW_UNITS_COMPACT = 2;

    private DropDownPreference mNetTrafficMode;
    private DropDownPreference mNetTrafficMode;
    private DropDownPreference mNetTrafficPosition;
    private DropDownPreference mNetTrafficPosition;
    private LineageSecureSettingSwitchPreference mNetTrafficAutohide;
    private LineageSecureSettingSwitchPreference mNetTrafficAutohide;
    private DropDownPreference mNetTrafficUnits;
    private DropDownPreference mNetTrafficUnits;
    private LineageSecureSettingSwitchPreference mNetTrafficShowUnits;
    private DropDownPreference mNetTrafficShowUnits;


    @Override
    @Override
    public void onCreate(Bundle savedInstanceState) {
    public void onCreate(Bundle savedInstanceState) {
@@ -90,11 +100,12 @@ public class NetworkTrafficSettings extends SettingsPreferenceFragment
        mNetTrafficUnits = findPreference(LineageSettings.Secure.NETWORK_TRAFFIC_UNITS);
        mNetTrafficUnits = findPreference(LineageSettings.Secure.NETWORK_TRAFFIC_UNITS);
        mNetTrafficUnits.setOnPreferenceChangeListener(this);
        mNetTrafficUnits.setOnPreferenceChangeListener(this);
        int units = LineageSettings.Secure.getInt(resolver,
        int units = LineageSettings.Secure.getInt(resolver,
                LineageSettings.Secure.NETWORK_TRAFFIC_UNITS, /* Mbps */ 1);
                LineageSettings.Secure.NETWORK_TRAFFIC_UNITS, UNITS_KILOBYTES);
        mNetTrafficUnits.setValue(String.valueOf(units));
        mNetTrafficUnits.setValue(String.valueOf(units));


        mNetTrafficShowUnits = findPreference(LineageSettings.Secure.NETWORK_TRAFFIC_SHOW_UNITS);
        mNetTrafficShowUnits = findPreference(LineageSettings.Secure.NETWORK_TRAFFIC_SHOW_UNITS);
        mNetTrafficShowUnits.setOnPreferenceChangeListener(this);
        mNetTrafficShowUnits.setOnPreferenceChangeListener(this);
        adjustShowUnitsState(units, resolver);


        updateEnabledStates(mode);
        updateEnabledStates(mode);
    }
    }
@@ -114,10 +125,48 @@ public class NetworkTrafficSettings extends SettingsPreferenceFragment
            int units = Integer.parseInt((String) newValue);
            int units = Integer.parseInt((String) newValue);
            LineageSettings.Secure.putInt(getActivity().getContentResolver(),
            LineageSettings.Secure.putInt(getActivity().getContentResolver(),
                    LineageSettings.Secure.NETWORK_TRAFFIC_UNITS, units);
                    LineageSettings.Secure.NETWORK_TRAFFIC_UNITS, units);
            adjustShowUnitsState(units, getActivity().getContentResolver());
        } else if (preference == mNetTrafficShowUnits) {
            int showUnits = Integer.valueOf((String) newValue);
            LineageSettings.Secure.putInt(getActivity().getContentResolver(),
                    LineageSettings.Secure.NETWORK_TRAFFIC_SHOW_UNITS, showUnits);
        }
        }
        return true;
        return true;
    }
    }


    private void adjustShowUnitsState(int units, ContentResolver resolver) {
        int showUnits = LineageSettings.Secure.getInt(resolver,
                LineageSettings.Secure.NETWORK_TRAFFIC_SHOW_UNITS, SHOW_UNITS_ON);
        if (units == UNITS_KILOBYTES || units == UNITS_MEGABYTES) {
            // off, on, compact
            mNetTrafficShowUnits.setEntries(R.array.network_traffic_show_units_entries);
            mNetTrafficShowUnits.setEntryValues(R.array.network_traffic_show_units_values);
        } else {
            boolean putShowUnits = false;
            if (units == UNITS_AUTOBYTES) {
                if (showUnits == SHOW_UNITS_OFF) {
                    showUnits = SHOW_UNITS_COMPACT;
                    putShowUnits = true;
                }
                // on, compact
                mNetTrafficShowUnits.setEntries(R.array.network_traffic_show_units_entries_auto);
                mNetTrafficShowUnits.setEntryValues(R.array.network_traffic_show_units_values_auto);
            } else {
                if (showUnits == SHOW_UNITS_COMPACT) {
                    showUnits = SHOW_UNITS_ON;
                    putShowUnits = true;
                }
                // off, on
                mNetTrafficShowUnits.setEntries(R.array.network_traffic_show_units_entries_bits);
                mNetTrafficShowUnits.setEntryValues(R.array.network_traffic_show_units_values_bits);
            }
            if (putShowUnits)
                LineageSettings.Secure.putInt(resolver,
                        LineageSettings.Secure.NETWORK_TRAFFIC_SHOW_UNITS, showUnits);
        }
        mNetTrafficShowUnits.setValue(String.valueOf(showUnits));
    }

    private void updateEnabledStates(int mode) {
    private void updateEnabledStates(int mode) {
        final boolean enabled = mode != 0;
        final boolean enabled = mode != 0;
        mNetTrafficPosition.setEnabled(enabled);
        mNetTrafficPosition.setEnabled(enabled);