summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/menu/carrier_select_options.xml24
-rw-r--r--res/xml/carrier_select.xml18
-rw-r--r--src/com/android/phone/NetworkSetting.java87
3 files changed, 95 insertions, 34 deletions
diff --git a/res/menu/carrier_select_options.xml b/res/menu/carrier_select_options.xml
new file mode 100644
index 000000000..cfbbae940
--- /dev/null
+++ b/res/menu/carrier_select_options.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The CyanogenMod Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ parent="@android:style/Theme.Material.Settings">
+ <item
+ android:id="@+id/action_search_networks"
+ android:icon="@*android:drawable/ic_menu_refresh"
+ android:title="@string/search_networks"
+ android:showAsAction="ifRoom|withText" />
+</menu>
diff --git a/res/xml/carrier_select.xml b/res/xml/carrier_select.xml
index bc223f165..8f0ccc804 100644
--- a/res/xml/carrier_select.xml
+++ b/res/xml/carrier_select.xml
@@ -13,17 +13,15 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- android:key="list_networks_key"
- android:title="@string/label_available">
- <Preference
- android:key="button_srch_netwrks_key"
- android:title="@string/search_networks"
- android:summary="@string/sum_search_networks"
- android:persistent="false"/>
- <Preference
- android:key="button_auto_select_key"
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+ <Preference
+ android:key="button_auto_select_key"
android:title="@string/select_automatically"
android:summary="@string/sum_select_automatically"
android:persistent="false"/>
+
+ <PreferenceCategory
+ android:title="@string/label_available"
+ android:key="list_networks_key">
+ </PreferenceCategory>
</PreferenceScreen>
diff --git a/src/com/android/phone/NetworkSetting.java b/src/com/android/phone/NetworkSetting.java
index 5ce541ff9..58840fdf8 100644
--- a/src/com/android/phone/NetworkSetting.java
+++ b/src/com/android/phone/NetworkSetting.java
@@ -16,6 +16,7 @@
package com.android.phone;
+import android.app.ActionBar;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.ComponentName;
@@ -38,6 +39,9 @@ import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.telephony.SubscriptionManager;
import com.android.internal.telephony.CommandException;
@@ -70,7 +74,6 @@ public class NetworkSetting extends PreferenceActivity
//String keys for preference lookup
private static final String LIST_NETWORKS_KEY = "list_networks_key";
- private static final String BUTTON_SRCH_NETWRKS_KEY = "button_srch_netwrks_key";
private static final String BUTTON_AUTO_SELECT_KEY = "button_auto_select_key";
//map of network controls to the network data.
@@ -87,9 +90,11 @@ public class NetworkSetting extends PreferenceActivity
//preference objects
private PreferenceGroup mNetworkList;
- private Preference mSearchButton;
private Preference mAutoSelect;
+ //Menu Item(s)
+ private MenuItem mSearchButton;
+
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
@@ -102,7 +107,7 @@ public class NetworkSetting extends PreferenceActivity
case EVENT_NETWORK_SELECTION_DONE:
if (DBG) log("hideProgressPanel");
removeDialog(DIALOG_NETWORK_SELECTION);
- getPreferenceScreen().setEnabled(true);
+ mNetworkList.setEnabled(true);
ar = (AsyncResult) msg.obj;
if (ar.exception != null) {
@@ -128,7 +133,7 @@ public class NetworkSetting extends PreferenceActivity
// this exception, and Log it.
Log.w(LOG_TAG, "[NetworksList] Fail to dismiss auto select dialog ", e);
}
- getPreferenceScreen().setEnabled(true);
+ mNetworkList.setEnabled(true);
ar = (AsyncResult) msg.obj;
if (ar.exception != null) {
@@ -192,10 +197,7 @@ public class NetworkSetting extends PreferenceActivity
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
boolean handled = false;
- if (preference == mSearchButton) {
- loadNetworksList();
- handled = true;
- } else if (preference == mAutoSelect) {
+ if (preference == mAutoSelect) {
selectNetworkAutomatic();
handled = true;
} else {
@@ -232,9 +234,9 @@ public class NetworkSetting extends PreferenceActivity
if (!mIsForeground) {
finish();
} else {
- getPreferenceScreen().setEnabled(true);
+ mNetworkList.setEnabled(true);
clearList();
- displayEmptyNetworkList(true);
+ displayEmptyNetworkList();
}
}
@@ -259,6 +261,12 @@ public class NetworkSetting extends PreferenceActivity
addPreferencesFromResource(R.xml.carrier_select);
+ //Provide "Back"-Arrow in ActionBar
+ final ActionBar actionBar = getActionBar();
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ }
+
int subId;
Intent intent = getIntent();
if (intent != null && intent.getExtras() != null) {
@@ -271,7 +279,6 @@ public class NetworkSetting extends PreferenceActivity
mNetworkList = (PreferenceGroup) getPreferenceScreen().findPreference(LIST_NETWORKS_KEY);
mNetworkMap = new HashMap<Preference, OperatorInfo>();
- mSearchButton = getPreferenceScreen().findPreference(BUTTON_SRCH_NETWRKS_KEY);
mAutoSelect = getPreferenceScreen().findPreference(BUTTON_AUTO_SELECT_KEY);
// Start the Network Query service, and bind it.
@@ -286,6 +293,37 @@ public class NetworkSetting extends PreferenceActivity
}
@Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu items for use in the action bar
+ MenuInflater inflater = getMenuInflater();
+ inflater.inflate(R.menu.carrier_select_options, menu);
+
+ mSearchButton = menu.findItem(R.id.action_search_networks);
+
+ return super.onCreateOptionsMenu(menu);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Handle presses on the action bar items
+ if (item == mSearchButton) {
+ loadNetworksList();
+ return true;
+ } else if (item.getItemId() == android.R.id.home) {
+ finish();
+ return true;
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ private void enableSearchButton (boolean enabled) {
+ if (mSearchButton != null) {
+ mSearchButton.setEnabled(enabled);
+ }
+ }
+
+ @Override
public void onResume() {
super.onResume();
mIsForeground = true;
@@ -358,12 +396,19 @@ public class NetworkSetting extends PreferenceActivity
(id == DIALOG_NETWORK_AUTO_SELECT)) {
// when the dialogs come up, we'll need to indicate that
// we're in a busy state to dissallow further input.
- getPreferenceScreen().setEnabled(false);
+ mNetworkList.setEnabled(false);
}
}
- private void displayEmptyNetworkList(boolean flag) {
- mNetworkList.setTitle(flag ? R.string.empty_networks_list : R.string.label_available);
+
+ private void displayEmptyNetworkList() {
+ //Add "no networks"-text as a disabled preference
+ Preference emptyPref = new Preference(this);
+ emptyPref.setTitle(R.string.empty_networks_list);
+ emptyPref.setSelectable(false);
+ emptyPref.setEnabled(false);
+
+ mNetworkList.addPreference(emptyPref);
}
private void displayNetworkSeletionInProgress(String networkStr) {
@@ -445,8 +490,6 @@ public class NetworkSetting extends PreferenceActivity
}
}
}
-
- displayEmptyNetworkList(false);
}
/**
@@ -480,17 +523,15 @@ public class NetworkSetting extends PreferenceActivity
if (DBG) log("Fail to dismiss network load list dialog " + e);
}
- getPreferenceScreen().setEnabled(true);
+ mNetworkList.setEnabled(true);
clearList();
if (status != NetworkQueryService.QUERY_OK) {
if (DBG) log("error while querying available networks");
displayNetworkQueryFailed(status);
- displayEmptyNetworkList(true);
+ displayEmptyNetworkList();
} else {
if (result != null){
- displayEmptyNetworkList(false);
-
TelephonyManager telephonyManager =
(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String simOperatorName = telephonyManager.getSimOperatorName();
@@ -530,7 +571,7 @@ public class NetworkSetting extends PreferenceActivity
if (DBG) log(" " + ni);
}
} else {
- displayEmptyNetworkList(true);
+ displayEmptyNetworkList();
}
}
}
@@ -556,9 +597,7 @@ public class NetworkSetting extends PreferenceActivity
}
private void clearList() {
- for (Preference p : mNetworkMap.keySet()) {
- mNetworkList.removePreference(p);
- }
+ mNetworkList.removeAll();
mNetworkMap.clear();
}