diff --git a/res/values/strings.xml b/res/values/strings.xml
index 58e2cfb99b8..f5cc36425cb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1420,15 +1420,17 @@
Peer devices
Couldn\'t connect.
+
+ Failed to rename device.
Disconnect?
-
+
If you disconnect, your connection with %1$s will end.
-
+
If you disconnect, your connection with %1$s and %2$s other devices will end.
Cancel invitation?
-
+
Do you want to cancel invitation to connect with %1$s?
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
index 7c1fd250107..5f296b5ebd6 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
@@ -47,6 +47,7 @@ import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import android.widget.EditText;
import android.widget.Switch;
import android.widget.Toast;
@@ -71,9 +72,11 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
private final IntentFilter mIntentFilter = new IntentFilter();
private WifiP2pManager mWifiP2pManager;
private WifiP2pManager.Channel mChannel;
+ private OnClickListener mRenameListener;
private OnClickListener mDisconnectListener;
private OnClickListener mCancelConnectListener;
private WifiP2pPeer mSelectedWifiPeer;
+ private EditText mDeviceNameText;
private boolean mWifiP2pEnabled;
private boolean mWifiP2pSearching;
@@ -84,6 +87,7 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
private static final int DIALOG_DISCONNECT = 1;
private static final int DIALOG_CANCEL_CONNECT = 2;
+ private static final int DIALOG_RENAME = 3;
private WifiP2pDevice mThisDevice;
private WifiP2pDeviceList mPeers = new WifiP2pDeviceList();
@@ -153,6 +157,28 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
Log.e(TAG, "mWifiP2pManager is null !");
}
+ mRenameListener = new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ if (which == DialogInterface.BUTTON_POSITIVE) {
+ if (mWifiP2pManager != null) {
+ mWifiP2pManager.setDeviceName(mChannel,
+ mDeviceNameText.getText().toString(),
+ new WifiP2pManager.ActionListener() {
+ public void onSuccess() {
+ if (DBG) Log.d(TAG, " device rename success");
+ }
+ public void onFailure(int reason) {
+ Toast.makeText(getActivity(),
+ R.string.wifi_p2p_failed_rename_message,
+ Toast.LENGTH_LONG).show();
+ }
+ });
+ }
+ }
+ }
+ };
+
//disconnect dialog listener
mDisconnectListener = new OnClickListener() {
@Override
@@ -258,7 +284,7 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
startSearch();
return true;
case MENU_ID_RENAME:
- //TODO: handle rename
+ showDialog(DIALOG_RENAME);
return true;
}
return super.onOptionsItemSelected(item);
@@ -335,6 +361,15 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
.setNegativeButton(getActivity().getString(R.string.dlg_cancel), null)
.create();
return dialog;
+ } else if (id == DIALOG_RENAME) {
+ mDeviceNameText = new EditText(getActivity());
+ AlertDialog dialog = new AlertDialog.Builder(getActivity())
+ .setTitle(R.string.wifi_p2p_menu_rename)
+ .setView(mDeviceNameText)
+ .setPositiveButton(getActivity().getString(R.string.dlg_ok), mRenameListener)
+ .setNegativeButton(getActivity().getString(R.string.dlg_cancel), null)
+ .create();
+ return dialog;
}
return null;
}