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; }