OSDN Git Service

Wimax : 4G settings menu and 4G MAC address.
authortk.mun <tk.mun@samsung.com>
Thu, 13 Oct 2011 13:56:18 +0000 (22:56 +0900)
committerRobert Greenwalt <rgreenwalt@google.com>
Tue, 8 Nov 2011 01:16:18 +0000 (17:16 -0800)
1. Show the 4G menu.
2. Show the 4G MAC address
3. Execute 4G setting apk.

Change-Id: I14adc4775d35afe3398ddba4fd91c739011a06fa
Signed-off-by: tk.mun <tk.mun@samsung.com>
bug:5486930

AndroidManifest.xml
res/values/bools.xml
res/values/config.xml
res/values/strings.xml
res/xml/device_info_status.xml
res/xml/wireless_settings.xml
src/com/android/settings/WirelessSettings.java
src/com/android/settings/deviceinfo/Status.java

index 6a17bb9..485e4ed 100644 (file)
@@ -25,6 +25,8 @@
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.WRITE_CONTACTS" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.ACCESS_WIMAX_STATE" />
+    <uses-permission android:name="android.permission.CHANGE_WIMAX_STATE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
     <uses-permission android:name="android.permission.INTERNET" />
index a7e6ac8..278859b 100644 (file)
@@ -22,4 +22,7 @@
     <!-- Whether the power control widget is enabled for this device. Should be overridden for 
          specific product builds. -->
     <bool name="has_powercontrol_widget">true</bool>
+
+    <!-- Display additional System Update menu if true -->
+    <bool name="config_additional_system_update_setting_enable">false</bool>
 </resources>
index 4b08c42..4119b6a 100755 (executable)
@@ -19,4 +19,7 @@
     <!-- If false, MIN is displayed. If true, MSID is displayed. -->
     <bool name="config_msid_enable" translatable="false">false</bool>
 
+    <string name="additional_system_update" translatable="false"></string>
+    <string name="additional_system_update_menu" translatable="false"></string>
+
 </resources>
index f9e9c89..2ed1f13 100644 (file)
@@ -3431,6 +3431,9 @@ found in the list of installed apps.</string>
     <!-- Messaage shown in dialog when you can't manually sync -->
     <string name="cant_sync_dialog_message">Sync for this item is currently disabled. To change this setting, temporarily turn on background data and automatic sync.</string>
 
+    <string name="wimax_settings">4G settings</string>
+    <string name="wimax_settings_summary">Set up &amp; manage 4G network and modem</string>
+    <string name="status_wimax_mac_address">4G MAC address</string>
     <!-- This is displayed to the user when the device needs to be decrypted -->
     <string name="enter_password">Type password to decrypt storage</string>
     <!-- This is displayed when the password is entered incorrectly -->
@@ -3764,4 +3767,9 @@ found in the list of installed apps.</string>
     <!-- Representation of a numerical percentage. [CHAR LIMIT=8] -->
     <string name="percentage"><xliff:g id="number" example="30">%d</xliff:g>%%</string>
 
+    <!-- A menu item in "About phone" that allows the user to update the phone with settings
+    from their cell phone carrier. The use of the string is similar to the string
+    "system_update_settings_list_item_title" in this project. [CHAR LIMIT=25] -->
+    <string name="additional_system_update_settings_list_item_title">Additional system updates</string>
+
 </resources>
index 19e22f4..aaa90a9 100644 (file)
         android:title="@string/status_up_time"
         android:summary="@string/device_info_not_available"
         android:persistent="false" />
-
+    <Preference android:key="wimax_mac_address"
+        style="?android:attr/preferenceInformationStyle"
+        android:title="@string/status_wimax_mac_address"
+        android:summary="@string/device_info_not_available"
+        android:persistent="false" />
 </PreferenceScreen>
index 134461d..20ffd8e 100644 (file)
         android:key="tether_settings"
         android:title="@string/tether_settings_title_all" />
 
+    <PreferenceScreen
+        android:key="wimax_settings"
+        android:title="@string/wimax_settings"
+        android:summary="@string/wimax_settings_summary" >
+        <intent
+            android:action="android.intent.action.MAIN"
+            android:targetPackage="com.android.settings.wimax"
+            android:targetClass="com.android.settings.wimax.WimaxSettings" />
+    </PreferenceScreen>
+
     <CheckBoxPreference
         android:key="toggle_nfc"
         android:title="@string/nfc_quick_toggle_title"
index 0ed781f..13f6902 100644 (file)
@@ -43,6 +43,7 @@ public class WirelessSettings extends SettingsPreferenceFragment {
 
     private static final String KEY_TOGGLE_AIRPLANE = "toggle_airplane";
     private static final String KEY_TOGGLE_NFC = "toggle_nfc";
+    private static final String KEY_WIMAX_SETTINGS = "wimax_settings";
     private static final String KEY_ANDROID_BEAM_SETTINGS = "android_beam_settings";
     private static final String KEY_VPN_SETTINGS = "vpn_settings";
     private static final String KEY_TOGGLE_WIFI_P2P = "toggle_wifi_p2p";
@@ -109,6 +110,20 @@ public class WirelessSettings extends SettingsPreferenceFragment {
         String toggleable = Settings.System.getString(activity.getContentResolver(),
                 Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
 
+        //enable/disable wimax depending on the value in config.xml
+        boolean isWimaxEnabled = this.getResources().getBoolean(
+                com.android.internal.R.bool.config_wimaxEnabled);
+        if (!isWimaxEnabled) {
+            PreferenceScreen root = getPreferenceScreen();
+            Preference ps = (Preference) findPreference(KEY_WIMAX_SETTINGS);
+            if (ps != null) root.removePreference(ps);
+        } else {
+            if (toggleable == null || !toggleable.contains(Settings.System.RADIO_WIMAX )
+                    && isWimaxEnabled) {
+                Preference ps = (Preference) findPreference(KEY_WIMAX_SETTINGS);
+                ps.setDependency(KEY_TOGGLE_AIRPLANE);
+            }
+        }
         // Manually set dependencies for Wifi when not toggleable.
         if (toggleable == null || !toggleable.contains(Settings.System.RADIO_WIFI)) {
             findPreference(KEY_VPN_SETTINGS).setDependency(KEY_TOGGLE_AIRPLANE);
index d7116c1..c315acd 100644 (file)
@@ -22,6 +22,8 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.res.Resources;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.os.BatteryManager;
@@ -33,6 +35,7 @@ import android.os.SystemClock;
 import android.os.SystemProperties;
 import android.preference.Preference;
 import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.PhoneStateListener;
 import android.telephony.ServiceState;
@@ -83,7 +86,7 @@ public class Status extends PreferenceActivity {
     private static final String KEY_BT_ADDRESS = "bt_address";
     private static final String KEY_SERIAL_NUMBER = "serial_number";
     private static final String KEY_ICC_ID = "icc_id";
-
+    private static final String KEY_WIMAX_MAC_ADDRESS = "wimax_mac_address";
     private static final String[] PHONE_RELATED_ENTRIES = {
         KEY_DATA_STATE,
         KEY_SERVICE_STATE,
@@ -248,6 +251,7 @@ public class Status extends PreferenceActivity {
             mPhoneStateReceiver.notifyServiceState(EVENT_SERVICE_STATE_CHANGED);
         }
 
+        setWimaxStatus();
         setWifiStatus();
         setBtStatus();
         setIpAddressStatus();
@@ -409,6 +413,21 @@ public class Status extends PreferenceActivity {
         }
     }
 
+    private void setWimaxStatus() {
+        ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
+        NetworkInfo ni = cm.getNetworkInfo(ConnectivityManager.TYPE_WIMAX);
+
+        if (ni == null) {
+            PreferenceScreen root = getPreferenceScreen();
+            Preference ps = (Preference) findPreference(KEY_WIMAX_MAC_ADDRESS);
+            if (ps != null) root.removePreference(ps);
+        } else {
+            Preference wimaxMacAddressPref = findPreference(KEY_WIMAX_MAC_ADDRESS);
+            String macAddress = SystemProperties.get("net.wimax.mac.address",
+                    getString(R.string.status_unavailable));
+            wimaxMacAddressPref.setSummary(macAddress);
+        }
+    }
     private void setWifiStatus() {
         WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
         WifiInfo wifiInfo = wifiManager.getConnectionInfo();