Update new API in debug settings

Bug: 5247957
Change-Id: I594e55a928a2870cb153b042df74a2b354bee073
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 0ecb8a9..44dc845 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -33,8 +33,7 @@
 import android.net.wifi.WifiConfiguration.ProxySettings;
 import android.net.wifi.WifiConfiguration.Status;
 import android.net.wifi.WifiInfo;
-import android.net.wifi.Wps;
-import android.net.wifi.Wps.Setup;
+import android.net.wifi.WpsInfo;
 import android.security.Credentials;
 import android.security.KeyStore;
 import android.text.Editable;
@@ -484,20 +483,20 @@
         return MANUAL;
     }
 
-    Wps getWpsConfig() {
-        Wps config = new Wps();
+    WpsInfo getWpsConfig() {
+        WpsInfo config = new WpsInfo();
         switch (mNetworkSetupSpinner.getSelectedItemPosition()) {
             case WPS_PBC:
-                config.setup = Setup.PBC;
+                config.setup = WpsInfo.PBC;
                 break;
             case WPS_KEYPAD:
-                config.setup = Setup.KEYPAD;
+                config.setup = WpsInfo.KEYPAD;
                 break;
             case WPS_DISPLAY:
-                config.setup = Setup.DISPLAY;
+                config.setup = WpsInfo.DISPLAY;
                 break;
             default:
-                config.setup = Setup.INVALID;
+                config.setup = WpsInfo.INVALID;
                 Log.e(TAG, "WPS not selected type");
                 return config;
         }
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pDialog.java b/src/com/android/settings/wifi/p2p/WifiP2pDialog.java
index 8c06168..e688905 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pDialog.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pDialog.java
@@ -19,8 +19,7 @@
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.net.wifi.Wps;
-import android.net.wifi.Wps.Setup;
+import android.net.wifi.WpsInfo;
 import android.net.wifi.p2p.WifiP2pConfig;
 import android.net.wifi.p2p.WifiP2pDevice;
 import android.os.Bundle;
@@ -64,21 +63,21 @@
     public WifiP2pConfig getConfig() {
         WifiP2pConfig config = new WifiP2pConfig();
         config.deviceAddress = mDeviceAddress.getText().toString();
-        config.wps = new Wps();
+        config.wps = new WpsInfo();
         switch (mWpsSetupIndex) {
             case WPS_PBC:
-                config.wps.setup = Setup.PBC;
+                config.wps.setup = WpsInfo.PBC;
                 break;
             case WPS_KEYPAD:
-                config.wps.setup = Setup.KEYPAD;
+                config.wps.setup = WpsInfo.KEYPAD;
                 config.wps.pin = ((TextView) mView.findViewById(R.id.wps_pin)).
                         getText().toString();
                 break;
             case WPS_DISPLAY:
-                config.wps.setup = Setup.DISPLAY;
+                config.wps.setup = WpsInfo.DISPLAY;
                 break;
             default:
-                config.wps.setup = Setup.PBC;
+                config.wps.setup = WpsInfo.PBC;
                 break;
         }
         return config;
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pEnabler.java b/src/com/android/settings/wifi/p2p/WifiP2pEnabler.java
index b812d97..0747d64 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pEnabler.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pEnabler.java
@@ -23,7 +23,6 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.net.wifi.p2p.WifiP2pManager;
-import android.os.Handler;
 import android.os.Message;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
@@ -39,7 +38,6 @@
     private final Context mContext;
     private final CheckBoxPreference mCheckBox;
     private final IntentFilter mIntentFilter;
-    private final Handler mHandler = new WifiP2pHandler();
     private WifiP2pManager mWifiP2pManager;
     private WifiP2pManager.Channel mChannel;
 
@@ -61,7 +59,7 @@
 
         mWifiP2pManager = (WifiP2pManager) context.getSystemService(Context.WIFI_P2P_SERVICE);
         if (mWifiP2pManager != null) {
-            mChannel = mWifiP2pManager.initialize(mContext, mHandler);
+            mChannel = mWifiP2pManager.initialize(mContext, mContext.getMainLooper(), null);
             if (mChannel == null) {
                 //Failure to set up connection
                 Log.e(TAG, "Failed to set up connection with wifi p2p service");
@@ -116,24 +114,4 @@
         }
     }
 
-    private class WifiP2pHandler extends Handler {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case WifiP2pManager.HANDLER_DISCONNECTION:
-                    //Failure to set up connection
-                    Log.e(TAG, "Lost connection with wifi p2p service");
-                    mWifiP2pManager = null;
-                    mCheckBox.setEnabled(false);
-                    break;
-                case WifiP2pManager.ENABLE_P2P_FAILED:
-                    mCheckBox.setEnabled(true);
-                    break;
-                default:
-                    //Ignore
-                    break;
-            }
-        }
-    }
-
 }
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pPeer.java b/src/com/android/settings/wifi/p2p/WifiP2pPeer.java
index 35ae15a..1eb810e 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pPeer.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pPeer.java
@@ -22,7 +22,6 @@
 import android.net.wifi.WifiManager;
 import android.net.wifi.p2p.WifiP2pManager;
 import android.net.wifi.p2p.WifiP2pDevice;
-import android.net.wifi.p2p.WifiP2pDevice.Status;
 import android.preference.Preference;
 import android.text.TextUtils;
 import android.view.View;
@@ -74,7 +73,7 @@
 
         // devices go in the order of the status
         if (device.status != other.device.status) {
-            return device.status.ordinal() < other.device.status.ordinal() ? -1 : 1;
+            return device.status < other.device.status ? -1 : 1;
         }
 
         // Sort by name/address
@@ -99,6 +98,6 @@
         Context context = getContext();
         mSignal.setImageLevel(getLevel());
         String[] statusArray = context.getResources().getStringArray(R.array.wifi_p2p_status);
-        setSummary(statusArray[device.status.ordinal()]);
+        setSummary(statusArray[device.status]);
     }
 }
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
index d832012..985f8c5 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pSettings.java
@@ -31,8 +31,8 @@
 import android.net.wifi.p2p.WifiP2pDevice;
 import android.net.wifi.p2p.WifiP2pDeviceList;
 import android.net.wifi.p2p.WifiP2pManager;
+import android.net.wifi.p2p.WifiP2pManager.PeerListListener;
 import android.os.Bundle;
-import android.os.Handler;
 import android.os.Message;
 import android.preference.Preference;
 import android.preference.PreferenceActivity;
@@ -53,7 +53,8 @@
 /*
  * Displays Wi-fi p2p settings UI
  */
-public class WifiP2pSettings extends SettingsPreferenceFragment {
+public class WifiP2pSettings extends SettingsPreferenceFragment
+        implements PeerListListener {
 
     private static final String TAG = "WifiP2pSettings";
     private static final int MENU_ID_SEARCH = Menu.FIRST;
@@ -62,7 +63,6 @@
 
 
     private final IntentFilter mIntentFilter = new IntentFilter();
-    private final Handler mHandler = new WifiP2pHandler();
     private WifiP2pManager mWifiP2pManager;
     private WifiP2pManager.Channel mChannel;
     private WifiP2pDialog mConnectDialog;
@@ -81,17 +81,15 @@
             if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) {
                 //TODO: nothing right now
             } else if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) {
-                if (mWifiP2pManager != null) mWifiP2pManager.requestPeers(mChannel);
+                if (mWifiP2pManager != null) {
+                    mWifiP2pManager.requestPeers(mChannel, WifiP2pSettings.this);
+                }
             } else if (WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION.equals(action)) {
                 if (mWifiP2pManager == null) return;
                 NetworkInfo networkInfo = (NetworkInfo) intent.getParcelableExtra(
                         WifiP2pManager.EXTRA_NETWORK_INFO);
                 if (networkInfo.isConnected()) {
-                    Log.d(TAG, "Start peer connections");
-                    mWifiP2pManager.startPeerCommunication();
-                } else {
-                    Log.d(TAG, "Stop peer connections");
-                    mWifiP2pManager.stopPeerCommunication();
+                    Log.d(TAG, "Connected");
                 }
             }
         }
@@ -109,7 +107,7 @@
         final Activity activity = getActivity();
         mWifiP2pManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
         if (mWifiP2pManager != null) {
-            mChannel = mWifiP2pManager.initialize(activity, mHandler);
+            mChannel = mWifiP2pManager.initialize(activity, getActivity().getMainLooper(), null);
             if (mChannel == null) {
                 //Failure to set up connection
                 Log.e(TAG, "Failed to set up connection with wifi p2p service");
@@ -126,7 +124,15 @@
                 if (which == DialogInterface.BUTTON_POSITIVE) {
                     WifiP2pConfig config = mConnectDialog.getConfig();
                     if (mWifiP2pManager != null) {
-                        mWifiP2pManager.connect(mChannel, config);
+                        mWifiP2pManager.connect(mChannel, config,
+                                new WifiP2pManager.ActionListener() {
+                            public void onSuccess() {
+                                Log.d(TAG, " connect success");
+                            }
+                            public void onFailure(int reason) {
+                                Log.d(TAG, " connect fail " + reason);
+                            }
+                        });
                     }
                 }
             }
@@ -138,7 +144,14 @@
             public void onClick(DialogInterface dialog, int which) {
                 if (which == DialogInterface.BUTTON_POSITIVE) {
                     if (mWifiP2pManager != null) {
-                        mWifiP2pManager.removeGroup(mChannel);
+                        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);
+                            }
+                        });
                     }
                 }
             }
@@ -151,7 +164,16 @@
         super.onResume();
         getActivity().registerReceiver(mReceiver, mIntentFilter);
 
-        if (mWifiP2pManager != null) mWifiP2pManager.discoverPeers(mChannel);
+        if (mWifiP2pManager != null) {
+            mWifiP2pManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener() {
+                            public void onSuccess() {
+                                Log.d(TAG, " discover success");
+                            }
+                            public void onFailure(int reason) {
+                                Log.d(TAG, " discover fail " + reason);
+                            }
+                        });
+        }
     }
 
     @Override
@@ -176,12 +198,26 @@
         switch (item.getItemId()) {
             case MENU_ID_SEARCH:
                 if (mWifiP2pManager != null) {
-                    mWifiP2pManager.discoverPeers(mChannel);
+                    mWifiP2pManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener() {
+                            public void onSuccess() {
+                                Log.d(TAG, " discover success");
+                            }
+                            public void onFailure(int reason) {
+                                Log.d(TAG, " discover fail " + reason);
+                            }
+                        });
                 }
                 return true;
             case MENU_ID_CREATE_GROUP:
                 if (mWifiP2pManager != null) {
-                    mWifiP2pManager.createGroup(mChannel);
+                    mWifiP2pManager.createGroup(mChannel, new WifiP2pManager.ActionListener() {
+                            public void onSuccess() {
+                                Log.d(TAG, " create group success");
+                            }
+                            public void onFailure(int reason) {
+                                Log.d(TAG, " create group fail " + reason);
+                            }
+                        });
                 }
                 return true;
             case MENU_ID_ADVANCED:
@@ -195,7 +231,7 @@
     public boolean onPreferenceTreeClick(PreferenceScreen screen, Preference preference) {
         if (preference instanceof WifiP2pPeer) {
             mSelectedWifiPeer = (WifiP2pPeer) preference;
-            if (mSelectedWifiPeer.device.status == WifiP2pDevice.Status.CONNECTED) {
+            if (mSelectedWifiPeer.device.status == WifiP2pDevice.CONNECTED) {
                 showDialog(DIALOG_DISCONNECT);
             } else {
                 showDialog(DIALOG_CONNECT);
@@ -222,7 +258,7 @@
         return null;
     }
 
-    private void updatePeers(WifiP2pDeviceList peers) {
+    public void onPeersAvailable(WifiP2pDeviceList peers) {
         final PreferenceScreen preferenceScreen = getPreferenceScreen();
         preferenceScreen.removeAll();
 
@@ -230,24 +266,4 @@
             preferenceScreen.addPreference(new WifiP2pPeer(getActivity(), peer));
         }
     }
-
-    private class WifiP2pHandler extends Handler {
-        @Override
-        public void handleMessage(Message message) {
-            switch (message.what) {
-                case WifiP2pManager.HANDLER_DISCONNECTION:
-                    //Failure to set up connection
-                    Log.e(TAG, "Lost connection with wifi p2p service");
-                    mWifiP2pManager = null;
-                    break;
-                case WifiP2pManager.RESPONSE_PEERS:
-                    updatePeers(mWifiP2pManager.peersInResponse(message));
-                    break;
-                default:
-                    //Ignore
-                    break;
-            }
-        }
-    }
-
 }