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

Commit bf118ffb authored by Robert Greenwalt's avatar Robert Greenwalt Committed by Android (Google) Code Review
Browse files

Merge "Modify ApnEditor app for new APN schema." into ics-factoryrom

parents 943af0bc cd8b7c3d
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -520,6 +520,22 @@
        <item>IPV4V6</item>
    </string-array>

    <!-- Bearer Info used in APN editor -->
    <string-array name="bearer_entries">
        <item>LTE</item>
        <item>eHRPD</item>
        <item>Unspecified</item>
    </string-array>

    <string-array translatable="false" name="bearer_values">
        <!-- Do not translate. -->
        <item>14</item>
        <!-- Do not translate. -->
        <item>13</item>
        <!-- Do not translate. -->
        <item>0</item>
    </string-array>

    <!-- Apps on SD instalaltion location options in ApplicationSettings -->
    <string-array name="app_install_location_entries">
        <item>Internal device storage</item>
+6 −0
Original line number Diff line number Diff line
@@ -1872,6 +1872,12 @@
    <string name="apn_type">APN type</string>
    <!-- Edit access point labels: The protocol of the APN, e.g., "IPv4", "IPv6", or "IPv4/IPv6". -->
    <string name="apn_protocol">APN protocol</string>
    <!-- Edit enable/disable of APN -->
    <string name="carrier_enabled">APN Enable/Disable</string>
    <string name="carrier_enabled_summaryOn">APN Enabled</string>
    <string name="carrier_enabled_summaryOff">APN Disabled</string>
    <!-- Edit Beaerer Info of APN -->
    <string name="bearer">Bearer</string>
    <!-- Edit access point screen menu option to delete this APN -->
    <string name="menu_delete">Delete APN</string>
    <!-- APNs screen menu option to create a brand spanking new APN -->
+13 −0
Original line number Diff line number Diff line
@@ -121,4 +121,17 @@
        android:entries="@array/apn_protocol_entries"
        android:entryValues="@array/apn_protocol_values"
        />
    <CheckBoxPreference
        android:title="@string/carrier_enabled"
        android:key="carrier_enabled"
        android:enabled="false"
        android:summaryOn="@string/carrier_enabled_summaryOn"
        android:summaryOff="@@string/carrier_enabled_summaryOff"
        />
    <ListPreference
        android:title="@string/bearer"
        android:key="bearer"
        android:entries="@array/bearer_entries"
        android:entryValues="@array/bearer_values"
        />
</PreferenceScreen>   
+47 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.os.Bundle;
import android.os.SystemProperties;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.provider.Telephony;
@@ -50,6 +51,8 @@ public class ApnEditor extends PreferenceActivity
    private final static String SAVED_POS = "pos";
    private final static String KEY_AUTH_TYPE = "auth_type";
    private final static String KEY_PROTOCOL = "apn_protocol";
    private final static String KEY_CARRIER_ENABLED = "carrier_enabled";
    private final static String KEY_BEARER = "bearer";

    private static final int MENU_DELETE = Menu.FIRST;
    private static final int MENU_SAVE = Menu.FIRST + 1;
@@ -72,6 +75,8 @@ public class ApnEditor extends PreferenceActivity
    private ListPreference mAuthType;
    private EditTextPreference mApnType;
    private ListPreference mProtocol;
    private CheckBoxPreference mCarrierEnabled;
    private ListPreference mBearer;

    private String mCurMnc;
    private String mCurMcc;
@@ -103,6 +108,8 @@ public class ApnEditor extends PreferenceActivity
            Telephony.Carriers.AUTH_TYPE, // 14
            Telephony.Carriers.TYPE, // 15
            Telephony.Carriers.PROTOCOL, // 16
            Telephony.Carriers.CARRIER_ENABLED, // 17
            Telephony.Carriers.BEARER, // 18
    };

    private static final int ID_INDEX = 0;
@@ -121,6 +128,8 @@ public class ApnEditor extends PreferenceActivity
    private static final int AUTH_TYPE_INDEX = 14;
    private static final int TYPE_INDEX = 15;
    private static final int PROTOCOL_INDEX = 16;
    private static final int CARRIER_ENABLED_INDEX = 17;
    private static final int BEARER_INDEX = 18;


    @Override
@@ -150,6 +159,11 @@ public class ApnEditor extends PreferenceActivity
        mProtocol = (ListPreference) findPreference(KEY_PROTOCOL);
        mProtocol.setOnPreferenceChangeListener(this);

        mCarrierEnabled = (CheckBoxPreference) findPreference(KEY_CARRIER_ENABLED);

        mBearer = (ListPreference) findPreference(KEY_BEARER);
        mBearer.setOnPreferenceChangeListener(this);

        mRes = getResources();

        final Intent intent = getIntent();
@@ -247,6 +261,8 @@ public class ApnEditor extends PreferenceActivity
            }

            mProtocol.setValue(mCursor.getString(PROTOCOL_INDEX));
            mCarrierEnabled.setChecked(mCursor.getInt(CARRIER_ENABLED_INDEX)==1);
            mBearer.setValue(mCursor.getString(BEARER_INDEX));
        }

        mName.setSummary(checkNull(mName.getText()));
@@ -276,6 +292,8 @@ public class ApnEditor extends PreferenceActivity

        mProtocol.setSummary(
                checkNull(protocolDescription(mProtocol.getValue())));
        mBearer.setSummary(
                checkNull(bearerDescription(mBearer.getValue())));
    }

    /**
@@ -297,6 +315,20 @@ public class ApnEditor extends PreferenceActivity
        }
    }

    private String bearerDescription(String raw) {
        int mBearerIndex = mBearer.findIndexOfValue(raw);
        if (mBearerIndex == -1) {
            return null;
        } else {
            String[] values = mRes.getStringArray(R.array.bearer_entries);
            try {
                return values[mBearerIndex];
            } catch (ArrayIndexOutOfBoundsException e) {
                return null;
            }
        }
    }

    public boolean onPreferenceChange(Preference preference, Object newValue) {
        String key = preference.getKey();
        if (KEY_AUTH_TYPE.equals(key)) {
@@ -320,6 +352,16 @@ public class ApnEditor extends PreferenceActivity
            mProtocol.setSummary(protocol);
            mProtocol.setValue((String) newValue);
        }

        if (KEY_BEARER.equals(key)) {
            String bearer = bearerDescription((String) newValue);
            if (bearer == null) {
                return false;
            }
            mBearer.setValue((String) newValue);
            mBearer.setSummary(bearer);
        }

        return true;
    }

@@ -450,6 +492,11 @@ public class ApnEditor extends PreferenceActivity
            }
        }

        String bearerVal = mBearer.getValue();
        if (bearerVal != null) {
            values.put(Telephony.Carriers.BEARER, Integer.parseInt(bearerVal));
        }

        getContentResolver().update(mUri, values, null, null);

        return true;