summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/wifi
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2011-09-09 17:06:05 -0700
committerIrfan Sheriff <isheriff@google.com>2011-09-16 10:46:58 -0700
commit2592083c1fa0ab3f7e0f5bd5240160785c5544ee (patch)
tree00fa0a86599ac1b372b3153566753f63941a3da8 /src/com/android/settings/wifi
parentec10578884e3c23b3585bccde76e9c12978dda05 (diff)
downloadpackages_apps_Settings-2592083c1fa0ab3f7e0f5bd5240160785c5544ee.zip
packages_apps_Settings-2592083c1fa0ab3f7e0f5bd5240160785c5544ee.tar.gz
packages_apps_Settings-2592083c1fa0ab3f7e0f5bd5240160785c5544ee.tar.bz2
Update p2p settings UI
- Add self device information on settings - Add remove group option Bug: 5332330 Change-Id: I5de4fa1e92a5182e10269fe5c2b78f1f6313fb63
Diffstat (limited to 'src/com/android/settings/wifi')
-rw-r--r--src/com/android/settings/wifi/p2p/WifiP2pSettings.java72
1 files changed, 70 insertions, 2 deletions
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
index 985f8c5..f6588b9 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
@@ -36,7 +36,10 @@ import android.os.Bundle;
import android.os.Message;
import android.preference.Preference;
import android.preference.PreferenceActivity;
+import android.preference.PreferenceCategory;
+import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
+import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
@@ -59,7 +62,8 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
private static final String TAG = "WifiP2pSettings";
private static final int MENU_ID_SEARCH = Menu.FIRST;
private static final int MENU_ID_CREATE_GROUP = Menu.FIRST + 1;
- private static final int MENU_ID_ADVANCED = Menu.FIRST +2;
+ private static final int MENU_ID_REMOVE_GROUP = Menu.FIRST + 2;
+ private static final int MENU_ID_ADVANCED = Menu.FIRST +3;
private final IntentFilter mIntentFilter = new IntentFilter();
@@ -70,9 +74,15 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
private OnClickListener mDisconnectListener;
private WifiP2pPeer mSelectedWifiPeer;
+ private PreferenceGroup mPeersGroup;
+ private Preference mThisDevicePref;
+
private static final int DIALOG_CONNECT = 1;
private static final int DIALOG_DISCONNECT = 2;
+ private WifiP2pDevice mThisDevice;
+ private WifiP2pDeviceList mPeers = new WifiP2pDeviceList();
+
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -91,6 +101,11 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
if (networkInfo.isConnected()) {
Log.d(TAG, "Connected");
}
+ } else if (WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION.equals(action)) {
+ mThisDevice = (WifiP2pDevice) intent.getParcelableExtra(
+ WifiP2pManager.EXTRA_WIFI_P2P_DEVICE);
+ Log.d(TAG, "Update device info: " + mThisDevice);
+ updateDevicePref();
}
}
};
@@ -103,6 +118,7 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
+ mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
final Activity activity = getActivity();
mWifiP2pManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
@@ -188,6 +204,8 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_ID_CREATE_GROUP, 0, R.string.wifi_p2p_menu_create_group)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+ menu.add(Menu.NONE, MENU_ID_REMOVE_GROUP, 0, R.string.wifi_p2p_menu_remove_group)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.wifi_p2p_menu_advanced)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
super.onCreateOptionsMenu(menu, inflater);
@@ -220,6 +238,18 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
});
}
return true;
+ case MENU_ID_REMOVE_GROUP:
+ if (mWifiP2pManager != null) {
+ mWifiP2pManager.removeGroup(mChannel, new WifiP2pManager.ActionListener() {
+ public void onSuccess() {
+ Log.d(TAG, " remove group success");
+ }
+ public void onFailure(int reason) {
+ Log.d(TAG, " remove group fail " + reason);
+ }
+ });
+ }
+ return true;
case MENU_ID_ADVANCED:
//TODO: add advanced settings for p2p
return true;
@@ -259,11 +289,49 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
}
public void onPeersAvailable(WifiP2pDeviceList peers) {
+
final PreferenceScreen preferenceScreen = getPreferenceScreen();
preferenceScreen.removeAll();
+ preferenceScreen.setOrderingAsAdded(true);
+
+ if (mPeersGroup == null) {
+ mPeersGroup = new PreferenceCategory(getActivity());
+ } else {
+ mPeersGroup.removeAll();
+ }
+
+ preferenceScreen.addPreference(mThisDevicePref);
+
+ mPeersGroup.setTitle(R.string.wifi_p2p_available_devices);
+ mPeersGroup.setEnabled(true);
+ preferenceScreen.addPreference(mPeersGroup);
+
+ mPeers = peers;
for (WifiP2pDevice peer: peers.getDeviceList()) {
- preferenceScreen.addPreference(new WifiP2pPeer(getActivity(), peer));
+ mPeersGroup.addPreference(new WifiP2pPeer(getActivity(), peer));
+ }
+ }
+
+ private void updateDevicePref() {
+ mThisDevicePref = new Preference(getActivity());
+
+ if (mThisDevice != null) {
+ if (TextUtils.isEmpty(mThisDevice.deviceName)) {
+ mThisDevicePref.setTitle(mThisDevice.deviceAddress);
+ } else {
+ mThisDevicePref.setTitle(mThisDevice.deviceName);
+ }
+
+ if (mThisDevice.status == WifiP2pDevice.CONNECTED) {
+ String[] statusArray = getActivity().getResources().getStringArray(
+ R.array.wifi_p2p_status);
+ mThisDevicePref.setSummary(statusArray[mThisDevice.status]);
+ }
+ mThisDevicePref.setPersistent(false);
+ mThisDevicePref.setEnabled(true);
+ mThisDevicePref.setSelectable(false);
}
+ onPeersAvailable(mPeers); //update UI
}
}