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

Commit cbb2ec23 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Profiles: Add 4g as connection options for profiles (2/2)"

parents 67fffa7b 12516493
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -35,6 +35,16 @@
        <item>Enable</item>
    </string-array>

    <!-- Profile 2G-3G and 4G mode options. -->
    <string-array name="profile_networkmode_entries_4g" translatable="false">
        <item>@string/profile_networkmode_2g</item>
        <item>@string/profile_networkmode_3g</item>
        <item>@string/profile_networkmode_4g</item>
        <item>@string/profile_networkmode_2g3g</item>
        <item>@string/profile_networkmode_2g3g4g</item>
        <item>@string/profile_action_none</item>
    </string-array>

    <!-- Profile 2G-3G mode options. -->
    <string-array name="profile_networkmode_entries" translatable="false">
        <item>@string/profile_networkmode_2g</item>
+3 −0
Original line number Diff line number Diff line
@@ -75,7 +75,9 @@
    <!-- Profile network mode -->
    <string name="profile_networkmode_2g">2G</string>
    <string name="profile_networkmode_3g">3G</string>
    <string name="profile_networkmode_4g">4G</string>
    <string name="profile_networkmode_2g3g">2G/3G</string>
    <string name="profile_networkmode_2g3g4g">2G/3G/4G</string>

    <!-- Profile Config screen PreferenceGroup titles -->
    <string name="profile_connectionoverrides_title">Connection overrides</string>
@@ -140,6 +142,7 @@
    <string name="toggleData">Mobile Data</string>
    <string name="toggleSync">Data Sync</string>
    <string name="toggle2g3g">2G/3G</string>
    <string name="toggle2g3g4g">2G/3G/4G</string>
    <string name="toggleWimax">WiMAX</string>
    <string name="toggleNfc">NFC</string>

+65 −24
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ import com.android.settings.profiles.actions.item.VolumeStreamItem;
import java.util.ArrayList;
import java.util.List;

import static android.app.ConnectionSettings.PROFILE_CONNECTION_2G3G;
import static android.app.ConnectionSettings.PROFILE_CONNECTION_2G3G4G;
import static android.app.ConnectionSettings.PROFILE_CONNECTION_BLUETOOTH;
import static android.app.ConnectionSettings.PROFILE_CONNECTION_GPS;
import static android.app.ConnectionSettings.PROFILE_CONNECTION_MOBILEDATA;
@@ -173,7 +173,7 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
            final TelephonyManager tm =
                    (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE);
            if (tm.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {
                mItems.add(generateConnectionOverrideItem(PROFILE_CONNECTION_2G3G));
                mItems.add(generateConnectionOverrideItem(PROFILE_CONNECTION_2G3G4G));
            }
        }
        if (WimaxHelper.isWimaxSupported(getActivity())) {
@@ -615,6 +615,43 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
        builder.show();
    }

    private void requestMobileConnectionOverrideDialog(final ConnectionSettings setting) {
        if (setting == null) {
            throw new UnsupportedOperationException("connection setting cannot be null yo");
        }
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        final String[] connectionNames =
                getResources().getStringArray(R.array.profile_networkmode_entries_4g);

        int defaultIndex = ConnectionOverrideItem.CM_MODE_UNCHANGED; // no action
        if (setting.isOverride()) {
            defaultIndex = setting.getValue();
        }

        builder.setTitle(ConnectionOverrideItem.getConnectionTitle(setting.getConnectionId()));
        builder.setSingleChoiceItems(connectionNames, defaultIndex,
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int item) {
                        switch (item) {
                            case ConnectionOverrideItem.CM_MODE_UNCHANGED:
                                setting.setOverride(false);
                                break;
                            default:
                                setting.setOverride(true);
                                setting.setValue(item);
                        }
                        mProfile.setConnectionSettings(setting);
                        mAdapter.notifyDataSetChanged();
                        updateProfile();
                        dialog.dismiss();
                    }
                });

        builder.setNegativeButton(android.R.string.cancel, null);
        builder.show();
    }

    public void requestVolumeDialog(int streamId,
                                    final StreamSettings streamSettings) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
@@ -752,7 +789,11 @@ public class SetupActionsFragment extends SettingsPreferenceFragment
            requestRingModeDialog(item.getSettings());
        } else if (itemAtPosition instanceof ConnectionOverrideItem) {
            ConnectionOverrideItem item = (ConnectionOverrideItem) itemAtPosition;
            if (item.getConnectionType() == ConnectionSettings.PROFILE_CONNECTION_2G3G4G) {
                requestMobileConnectionOverrideDialog(item.getSettings());
            } else {
                requestConnectionOverrideDialog(item.getSettings());
            }
        } else if (itemAtPosition instanceof VolumeStreamItem) {
            VolumeStreamItem item = (VolumeStreamItem) itemAtPosition;
            requestVolumeDialog(item.getStreamType(), item.getSettings());
+35 −6
Original line number Diff line number Diff line
@@ -28,6 +28,13 @@ public class ConnectionOverrideItem implements Item {
    int mConnectionId;
    ConnectionSettings mConnectionSettings;

    public static final int CM_MODE_2G = 0;
    public static final int CM_MODE_3G = 1;
    public static final int CM_MODE_4G = 2;
    public static final int CM_MODE_2G3G = 3;
    public static final int CM_MODE_ALL = 4;
    public static final int CM_MODE_UNCHANGED = 5;

    public ConnectionOverrideItem(int connectionId, ConnectionSettings settings) {
        mConnectionId = connectionId;
        if (settings == null) {
@@ -71,8 +78,8 @@ public class ConnectionOverrideItem implements Item {
                return R.string.toggleBluetooth;
            case ConnectionSettings.PROFILE_CONNECTION_MOBILEDATA:
                return R.string.toggleData;
            case ConnectionSettings.PROFILE_CONNECTION_2G3G:
                return R.string.toggle2g3g;
            case ConnectionSettings.PROFILE_CONNECTION_2G3G4G:
                return R.string.toggle2g3g4g;
            case ConnectionSettings.PROFILE_CONNECTION_GPS:
                return R.string.toggleGPS;
            case ConnectionSettings.PROFILE_CONNECTION_NFC:
@@ -89,7 +96,26 @@ public class ConnectionOverrideItem implements Item {
    }

    public int getSummary() {
        if (mConnectionSettings != null && mConnectionSettings.isOverride()) {
        if (mConnectionSettings != null) {
            if (mConnectionId == ConnectionSettings.PROFILE_CONNECTION_2G3G4G) { // different options
                if (mConnectionSettings.isOverride()) {
                    switch (mConnectionSettings.getValue()) {
                        case CM_MODE_2G:
                            return R.string.profile_networkmode_2g;
                        case CM_MODE_3G:
                            return R.string.profile_networkmode_3g;
                        case CM_MODE_4G:
                            return R.string.profile_networkmode_4g;
                        case CM_MODE_2G3G:
                            return R.string.profile_networkmode_2g3g;
                        default:
                        case CM_MODE_ALL:
                            return R.string.profile_networkmode_2g3g4g;
                    }
                } else {
                    return R.string.profile_action_none;
                }
            } else if (mConnectionSettings.isOverride()) { // enabled, disabled, or none
                if (mConnectionSettings.getValue() == 1) {
                    return R.string.profile_action_enable;
                } else {
@@ -98,6 +124,9 @@ public class ConnectionOverrideItem implements Item {
            } else {
                return R.string.profile_action_none;
            }
        } else {
            return R.string.profile_action_none;
        }
    }

    public ConnectionSettings getSettings() {