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

Commit 102b2382 authored by jianzhou's avatar jianzhou Committed by Xiaojing Zhang
Browse files

Settings: Add multi-language APN name support

Add a new column "localized_name" to the carriers database for
multi-language APN name support.

If a localized APN name is available, the dispalyed APN name
will be replaced to the localized APN name.

Change-Id: I3d9a59161807eb2f531a9f6fc42c2d7cef9e3ccc
parent 70359a38
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -982,6 +982,18 @@
    <string name="apn_protocol" msgid="3272222921649348640">"APN 协议"</string>
    <string name="apn_roaming_protocol" msgid="3386954381510788422">"APN 漫游协议"</string>
    <string name="apn_ppp_number">"PPP 拨叫号码""</string>
    <!-- apn names for carriers -->
    <string name="APN_NAME_CMNET">中国移动NET</string>
    <string name="APN_NAME_CMWAP">中国移动WAP</string>
    <string name="APN_NAME_CMMMS">中国移动彩信设置</string>
    <string name="APN_NAME_CUWAP">沃3G手机上网</string>
    <string name="APN_NAME_CUNET">沃3G连接互联网</string>
    <string name="APN_NAME_CUMMS">联通彩信</string>
    <string name="APN_NAME_CUSUPL">联通AGPS</string>
    <string name="APN_NAME_CTNET">中国电信互联网设置 CTNET</string>
    <string name="APN_NAME_CTWAP">中国电信WAP设置 CTWAP</string>
    <string name="APN_NAME_CTLTE">中国电信互联网设置 ctlte</string>
    <string name="APN_NAME_CTMMS">中国电信彩信设置 CTWAP</string>
    <string name="carrier_enabled" msgid="407655861175280806">"APN 启用/停用"</string>
    <string name="carrier_enabled_summaryOn" msgid="6338915271908057531">"APN 已启用"</string>
    <string name="carrier_enabled_summaryOff" msgid="4300790190221203756">"未启用 APN"</string>
+12 −0
Original line number Diff line number Diff line
@@ -2466,6 +2466,18 @@
    <string name="screen_pinning_description" msgid="7091642350452605379">"開啟時,您可以使用螢幕固定功能讓目前的畫面持續顯示,直到取消固定為止。\n\n如何使用螢幕固定功能:\n\n1. 確認螢幕固定功能已開啟。\n\n2. 開啟您要固定的畫面。\n\n3. 輕觸總覽按鈕。\n\n4. 輕觸圖釘圖示。"</string>
    <string name="managed_user_title" msgid="8101244883654409696">"工作設定檔"</string>
    <string name="experimental_preference" msgid="7083015446690681376">"(實驗性)"</string>
    <!-- apn names for carriers -->
    <string name="APN_NAME_CMNET">中國移動NET</string>
    <string name="APN_NAME_CMWAP">中國移動WAP</string>
    <string name="APN_NAME_CMMMS">中國移動彩信設置</string>
    <string name="APN_NAME_CUWAP">沃3G手機上網</string>
    <string name="APN_NAME_CUNET">沃3G連接互聯網</string>
    <string name="APN_NAME_CUMMS">聯通彩信</string>
    <string name="APN_NAME_CUSUPL">聯通AGPS</string>
    <string name="APN_NAME_CTNET">中國電信互聯網設置 CTNET</string>
    <string name="APN_NAME_CTWAP">中國電信WAP設置 CTWAP</string>
    <string name="APN_NAME_CTLTE">中國電信互聯網設置 ctlte</string>
    <string name="APN_NAME_CTMMS">中國電信彩信設置 CTWAP</string>
    <string name="display_auto_rotate_title" msgid="6176450657107806043">"當裝置旋轉時"</string>
    <string name="display_auto_rotate_rotate" msgid="4544299861233497728">"旋轉畫面內容"</string>
    <string name="display_auto_rotate_stay_in_portrait" msgid="292745182318093651">"保持直向畫面"</string>
+28 −0
Original line number Diff line number Diff line
@@ -2471,6 +2471,20 @@
    <!-- Edit access point labels: PPP number -->
    <string name="apn_ppp_number">APN PPP phone number</string>
    <string name="ppp_number">ppp_number</string>
    <!-- Localized APN name -->
    <string name="localized_name">localized_name</string>
    <!-- apn names for carriers -->
    <string name="APN_NAME_CMNET">CMNET</string>
    <string name="APN_NAME_CMWAP">CMWAP</string>
    <string name="APN_NAME_CMMMS">CMMMS</string>
    <string name="APN_NAME_CUWAP">China Unicom WAP</string>
    <string name="APN_NAME_CUNET">China Unicom NET</string>
    <string name="APN_NAME_CUMMS">China Unicom MMS</string>
    <string name="APN_NAME_CUSUPL">China Unicom AGPS</string>
    <string name="APN_NAME_CTNET">CTNET</string>
    <string name="APN_NAME_CTWAP">CTWAP</string>
    <string name="APN_NAME_CTLTE">ctlte</string>
    <string name="APN_NAME_CTMMS">CTWAP</string>
    <!-- Edit enable/disable of APN -->
    <string name="carrier_enabled">APN enable/disable</string>
    <string name="carrier_enabled_summaryOn">APN enabled</string>
@@ -6101,6 +6115,20 @@
    <string name="wifi_to_gsm_connect_type_title">WLAN->Cellular hint</string>
    <string name="wifi2cell_connect_type">"wifi_gsm_connect_type"</string>

    <!-- Lock-to-app title [CHAR LIMIT=24] -->
    <string name="lock_to_app_title">Lock-to-app</string>
    <!-- Description of lock-to-app feature [CHAR LIMIT=105] -->
    <string name="lock_to_app_description">Lock-to-app locks the display in a single app.\n\n\nTo start Lock-to-app</string>
    <!-- Lock-to-app starting instruction 1. [CHAR LIMIT=45] -->
    <string name="lock_to_app_start_step1">1\t\tTurn the setting on</string>
    <!-- Lock-to-app starting instruction 2. [CHAR LIMIT=55] -->
    <string name="lock_to_app_start_step2">2\t\tStart an app you want</string>
    <!-- Lock-to-app starting instruction 3. The $ is not actually shown or
         translated, it is a marker of where the recents icon shows up. [CHAR LIMIT=60] -->
    <string name="lock_to_app_start_step3">3\t\tPress and hold the recent apps button $</string>
    <!-- Label for whether should use screen lock or not. [CHAR LIMIT=30]-->
    <string name="lock_to_app_screen_lock">Use screen lock</string>

    <string name="usb_charging_title">Charging</string>
    <string name="usb_charging_summary">Lets you disable all data and file transfer connection with computer and put device in charging only mode.</string>
    <string name="primary_sub_select_title">Default 4G/3G Subscription</string>
+10 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.preference.PreferenceActivity;
import android.provider.Telephony;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
@@ -128,7 +129,8 @@ public class ApnEditor extends PreferenceActivity
            Telephony.Carriers.ROAMING_PROTOCOL, // 19
            Telephony.Carriers.MVNO_TYPE,   // 20
            Telephony.Carriers.MVNO_MATCH_DATA,  // 21
            "ppp_number"  // 22
            "ppp_number",  // 22
            "localized_name"  //23
    };

    private static final int ID_INDEX = 0;
@@ -153,6 +155,7 @@ public class ApnEditor extends PreferenceActivity
    private static final int MVNO_TYPE_INDEX = 20;
    private static final int MVNO_MATCH_DATA_INDEX = 21;
    private static final int PPP_NUMBER_INDEX = 22;
    private static final int LOCALIZED_NAME_INDEX = 23;


    @Override
@@ -318,6 +321,12 @@ public class ApnEditor extends PreferenceActivity
                }
            }

            String localizedName = ApnSettings.getLocalizedName(
                    this, mCursor,LOCALIZED_NAME_INDEX);
            if (!TextUtils.isEmpty(localizedName)) {
                mName.setText(localizedName);
            }

        }

        mName.setSummary(checkNull(mName.getText()));
+26 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources.NotFoundException;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
@@ -43,6 +44,7 @@ import android.provider.Telephony;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -77,6 +79,7 @@ public class ApnSettings extends SettingsPreferenceFragment implements
    private static final int APN_INDEX = 2;
    private static final int TYPES_INDEX = 3;
    private static final int RO_INDEX = 4;
    private static final int LOCALIZED_NAME_INDEX = 5;

    private static final int MENU_NEW = Menu.FIRST;
    private static final int MENU_RESTORE = Menu.FIRST + 1;
@@ -217,7 +220,7 @@ public class ApnSettings extends SettingsPreferenceFragment implements
    private void fillList() {
        String where = getOperatorNumericSelection();
        Cursor cursor = getContentResolver().query(getUri(Telephony.Carriers.CONTENT_URI),
                new String[] {"_id", "name", "apn", "type", "read_only"}, where, null,
                new String[] {"_id", "name", "apn", "type", "read_only", "localized_name"}, where, null,
                Telephony.Carriers.DEFAULT_SORT_ORDER);

        if (cursor != null) {
@@ -235,6 +238,11 @@ public class ApnSettings extends SettingsPreferenceFragment implements
                String type = cursor.getString(TYPES_INDEX);
                boolean readOnly = (cursor.getInt(RO_INDEX) == 1);

                String localizedName = getLocalizedName(getActivity(), cursor, LOCALIZED_NAME_INDEX);
                if (!TextUtils.isEmpty(localizedName)) {
                    name = localizedName;
                }

                ApnPreference pref = new ApnPreference(getActivity());

                pref.setApnReadOnly(readOnly);
@@ -264,6 +272,23 @@ public class ApnSettings extends SettingsPreferenceFragment implements
        }
    }

    public static String getLocalizedName(Context context, Cursor cursor, int index) {
        // If can find a localized name, replace the APN name with it
        String resName = cursor.getString(index);
        String localizedName = null;
        if (resName != null && !resName.isEmpty()) {
            int resId = context.getResources().getIdentifier(resName, "string",
                    context.getPackageName());
            try {
                localizedName = context.getResources().getString(resId);
                Log.d(TAG, "Replaced apn name with localized name");
            } catch (NotFoundException e) {
                Log.e(TAG, "Got execption while getting the localized apn name.", e);
            }
        }
        return localizedName;
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        if (!mUnavailable) {