Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ee7589c0 authored by Irfan Sheriff's avatar Irfan Sheriff Committed by Android (Google) Code Review
Browse files

Merge "Fix p2p settings crash" into jb-dev

parents 409433e9 db3d4bb8
Loading
Loading
Loading
Loading
+25 −5
Original line number Diff line number Diff line
@@ -89,6 +89,8 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
    private static final int DIALOG_CANCEL_CONNECT = 2;
    private static final int DIALOG_RENAME = 3;

    private static final String SAVE_DIALOG_PEER = "PEER_STATE";

    private WifiP2pDevice mThisDevice;
    private WifiP2pDeviceList mPeers = new WifiP2pDeviceList();

@@ -134,8 +136,7 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
    };

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
    public void onActivityCreated(Bundle savedInstanceState) {
        addPreferencesFromResource(R.xml.wifi_p2p_settings);

        mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
@@ -157,6 +158,11 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
            Log.e(TAG, "mWifiP2pManager is null !");
        }

        if (savedInstanceState != null && savedInstanceState.containsKey(SAVE_DIALOG_PEER)) {
            WifiP2pDevice device = savedInstanceState.getParcelable(SAVE_DIALOG_PEER);
            mSelectedWifiPeer = new WifiP2pPeer(getActivity(), device);
        }

        mRenameListener = new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
@@ -229,6 +235,8 @@ public class WifiP2pSettings extends SettingsPreferenceFragment

        mPeersGroup = new PreferenceCategory(getActivity());
        mPeersGroup.setTitle(R.string.wifi_p2p_peer_devices);

        super.onActivityCreated(savedInstanceState);
    }

    @Override
@@ -336,14 +344,19 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
    @Override
    public Dialog onCreateDialog(int id) {
        if (id == DIALOG_DISCONNECT) {
            int stringId = (mConnectedDevices > 1) ? R.string.wifi_p2p_disconnect_multiple_message :
                    R.string.wifi_p2p_disconnect_message;
            String deviceName = TextUtils.isEmpty(mSelectedWifiPeer.device.deviceName) ?
                    mSelectedWifiPeer.device.deviceAddress :
                    mSelectedWifiPeer.device.deviceName;
            String msg;
            if (mConnectedDevices > 1) {
                msg = getActivity().getString(R.string.wifi_p2p_disconnect_multiple_message,
                        deviceName, mConnectedDevices - 1);
            } else {
                msg = getActivity().getString(R.string.wifi_p2p_disconnect_message, deviceName);
            }
            AlertDialog dialog = new AlertDialog.Builder(getActivity())
                .setTitle(R.string.wifi_p2p_disconnect_title)
                .setMessage(getActivity().getString(stringId, deviceName))
                .setMessage(msg)
                .setPositiveButton(getActivity().getString(R.string.dlg_ok), mDisconnectListener)
                .setNegativeButton(getActivity().getString(R.string.dlg_cancel), null)
                .create();
@@ -374,6 +387,13 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
        return null;
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        if (mSelectedWifiPeer != null) {
            outState.putParcelable(SAVE_DIALOG_PEER, mSelectedWifiPeer.device);
        }
    }

    public void onPeersAvailable(WifiP2pDeviceList peers) {
        mPeersGroup.removeAll();