Merge "Fix a bug with a duplicate entry" into jb-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1380386..163a069 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1180,7 +1180,7 @@
     <!-- Summary text of the Wi-fi settings screen -->
     <string name="wifi_settings_summary">Set up &amp; manage wireless access points</string>
     <!-- Used in the 1st-level settings screen to turn on Wi-Fi  [CHAR LIMIT=NONE] -->
-    <string name="wifi_setup_wizard_title">Select Wi-Fi network</string>
+    <string name="wifi_setup_wizard_title">Wi-Fi network</string>
     <!-- Summary text when turning Wi-Fi or bluetooth on -->
     <string name="wifi_starting">Turning Wi-Fi on\u2026</string>
     <!-- Summary text when turning Wi-Fi or bluetooth off -->
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 5037ad3..8841a6b 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -137,8 +137,9 @@
     // this boolean extra specifies whether to auto finish when connection is established
     private static final String EXTRA_AUTO_FINISH_ON_CONNECT = "wifi_auto_finish_on_connect";
 
-    private static final String EXTRA_WIFI_SHOW_ACTION_BAR = "wifi_show_action_bar";
-    private static final String EXTRA_WIFI_SHOW_MENUS = "wifi_show_menus";
+    // this boolean extra is set if we are being invoked by the Setup Wizard
+    private static final String EXTRA_IS_FIRST_RUN = "firstRun";
+
     private static final String EXTRA_WIFI_DISABLE_BACK = "wifi_disable_back";
 
     // should Next button only be enabled when we have a connection?
@@ -152,8 +153,8 @@
     private AccessPoint mDlgAccessPoint;
     private Bundle mAccessPointSavedState;
 
-    // Menus are not shown by Setup Wizard
-    private boolean mShowMenu;
+    // the action bar uses a different set of controls for Setup Wizard
+    private boolean mSetupWizardMode;
 
     /* End of "used in Wifi Setup context" */
 
@@ -179,6 +180,14 @@
     }
 
     @Override
+    public void onCreate(Bundle icicle) {
+        // Set this flag early, as it's needed by getHelpResource(), which is called by super
+        mSetupWizardMode = getActivity().getIntent().getBooleanExtra(EXTRA_IS_FIRST_RUN, false);
+
+        super.onCreate(icicle);
+    }
+
+    @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         // We don't call super.onActivityCreated() here, since it assumes we already set up
         // Preference (probably in onCreate()), while WifiSettings exceptionally set it up in
@@ -268,9 +277,8 @@
             getView().setSystemUiVisibility(View.STATUS_BAR_DISABLE_BACK);
         }
 
-        // Action bar is hidden for Setup Wizard
-        final boolean showActionBar = intent.getBooleanExtra(EXTRA_WIFI_SHOW_ACTION_BAR, true);
-        if (showActionBar) {
+        // On/off switch is hidden for Setup Wizard
+        if (!mSetupWizardMode) {
             Switch actionBarSwitch = new Switch(activity);
 
             if (activity instanceof PreferenceActivity) {
@@ -294,13 +302,9 @@
         mEmptyView = (TextView) getView().findViewById(android.R.id.empty);
         getListView().setEmptyView(mEmptyView);
 
-        // Menu is hidden for Setup Wizard
-        mShowMenu = intent.getBooleanExtra(EXTRA_WIFI_SHOW_MENUS, true);
-        if (mShowMenu) {
+        if (!mSetupWizardMode) {
             registerForContextMenu(getListView());
         }
-        // FIXME: When WPS image button is implemented, use mShowMenu instead of always showing
-        // the options menu
         setHasOptionsMenu(true);
 
         // After confirming PreferenceScreen is available, we call super.
@@ -337,7 +341,15 @@
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         final boolean wifiIsEnabled = mWifiManager.isWifiEnabled();
-        if (mShowMenu) {
+        if (mSetupWizardMode) {
+            // FIXME: add setIcon() when graphics are available
+            menu.add(Menu.NONE, MENU_ID_WPS_PBC, 0, R.string.wifi_menu_wps_pbc)
+                    .setEnabled(wifiIsEnabled)
+                    .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
+            menu.add(Menu.NONE, MENU_ID_ADD_NETWORK, 0, R.string.wifi_add_network)
+                    .setEnabled(wifiIsEnabled)
+                    .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
+        } else {
             menu.add(Menu.NONE, MENU_ID_WPS_PBC, 0, R.string.wifi_menu_wps_pbc)
                     .setEnabled(wifiIsEnabled)
                     .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
@@ -359,11 +371,6 @@
             menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.wifi_menu_advanced)
                     //.setIcon(android.R.drawable.ic_menu_manage)
                     .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
-        } else {
-            // FIXME: Interim support for WPS, until ImageButton is available
-            menu.add(Menu.NONE, MENU_ID_WPS_PBC, 0, R.string.wifi_menu_wps_pbc)
-                    .setEnabled(wifiIsEnabled)
-                    .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
         }
         super.onCreateOptionsMenu(menu, inflater);
     }
@@ -889,10 +896,9 @@
 
     @Override
     protected int getHelpResource() {
-        // Setup Wizard has different help content
-        if (mShowMenu) {
-            return R.string.help_url_wifi;
+        if (mSetupWizardMode) {
+            return 0;
         }
-        return 0;
+        return R.string.help_url_wifi;
     }
 }