am 735f312b
: Merge "Update p2p settings UI"
* commit '735f312beb39fd45b8cce0544042487968a30e18': Update p2p settings UI
This commit is contained in:
@@ -1344,8 +1344,12 @@
|
|||||||
<string name="wifi_p2p_menu_search">Search</string>
|
<string name="wifi_p2p_menu_search">Search</string>
|
||||||
<!-- Menu option to create a group-->
|
<!-- Menu option to create a group-->
|
||||||
<string name="wifi_p2p_menu_create_group">Create group</string>
|
<string name="wifi_p2p_menu_create_group">Create group</string>
|
||||||
|
<!-- Menu option to remove a group-->
|
||||||
|
<string name="wifi_p2p_menu_remove_group">Remove group</string>
|
||||||
<!-- Menu option to Wi-Fi p2p advanced settings -->
|
<!-- Menu option to Wi-Fi p2p advanced settings -->
|
||||||
<string name="wifi_p2p_menu_advanced">Advanced</string>
|
<string name="wifi_p2p_menu_advanced">Advanced</string>
|
||||||
|
<!-- Title for available p2p devices -->
|
||||||
|
<string name="wifi_p2p_available_devices">Available Devices</string>
|
||||||
|
|
||||||
<!-- Wifi AP settings-->
|
<!-- Wifi AP settings-->
|
||||||
<!-- Label for wifi tether checkbox. Toggles Access Point on/off -->
|
<!-- Label for wifi tether checkbox. Toggles Access Point on/off -->
|
||||||
|
@@ -36,7 +36,10 @@ import android.os.Bundle;
|
|||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceActivity;
|
import android.preference.PreferenceActivity;
|
||||||
|
import android.preference.PreferenceCategory;
|
||||||
|
import android.preference.PreferenceGroup;
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
@@ -59,7 +62,8 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
|
|||||||
private static final String TAG = "WifiP2pSettings";
|
private static final String TAG = "WifiP2pSettings";
|
||||||
private static final int MENU_ID_SEARCH = Menu.FIRST;
|
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_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();
|
private final IntentFilter mIntentFilter = new IntentFilter();
|
||||||
@@ -70,9 +74,15 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
|
|||||||
private OnClickListener mDisconnectListener;
|
private OnClickListener mDisconnectListener;
|
||||||
private WifiP2pPeer mSelectedWifiPeer;
|
private WifiP2pPeer mSelectedWifiPeer;
|
||||||
|
|
||||||
|
private PreferenceGroup mPeersGroup;
|
||||||
|
private Preference mThisDevicePref;
|
||||||
|
|
||||||
private static final int DIALOG_CONNECT = 1;
|
private static final int DIALOG_CONNECT = 1;
|
||||||
private static final int DIALOG_DISCONNECT = 2;
|
private static final int DIALOG_DISCONNECT = 2;
|
||||||
|
|
||||||
|
private WifiP2pDevice mThisDevice;
|
||||||
|
private WifiP2pDeviceList mPeers = new WifiP2pDeviceList();
|
||||||
|
|
||||||
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
@@ -91,6 +101,11 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
|
|||||||
if (networkInfo.isConnected()) {
|
if (networkInfo.isConnected()) {
|
||||||
Log.d(TAG, "Connected");
|
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_STATE_CHANGED_ACTION);
|
||||||
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
|
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
|
||||||
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
|
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
|
||||||
|
mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
|
||||||
|
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
mWifiP2pManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
|
mWifiP2pManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
|
||||||
@@ -188,6 +204,8 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
|
|||||||
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
||||||
menu.add(Menu.NONE, MENU_ID_CREATE_GROUP, 0, R.string.wifi_p2p_menu_create_group)
|
menu.add(Menu.NONE, MENU_ID_CREATE_GROUP, 0, R.string.wifi_p2p_menu_create_group)
|
||||||
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
.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)
|
menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.wifi_p2p_menu_advanced)
|
||||||
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
||||||
super.onCreateOptionsMenu(menu, inflater);
|
super.onCreateOptionsMenu(menu, inflater);
|
||||||
@@ -220,6 +238,18 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
return true;
|
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:
|
case MENU_ID_ADVANCED:
|
||||||
//TODO: add advanced settings for p2p
|
//TODO: add advanced settings for p2p
|
||||||
return true;
|
return true;
|
||||||
@@ -259,11 +289,49 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onPeersAvailable(WifiP2pDeviceList peers) {
|
public void onPeersAvailable(WifiP2pDeviceList peers) {
|
||||||
|
|
||||||
final PreferenceScreen preferenceScreen = getPreferenceScreen();
|
final PreferenceScreen preferenceScreen = getPreferenceScreen();
|
||||||
preferenceScreen.removeAll();
|
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()) {
|
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user