diff --git a/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java b/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java
index 7655840..881aaea 100644
--- a/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java
+++ b/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java
@@ -113,8 +113,7 @@
         mSubmitBtn.setOnClickListener(view -> handleSubmitAction());
         mCancelBtn.setOnClickListener(view -> handleCancelAction());
 
-        mUiController = new WifiConfigController2(this, rootView, mWifiEntry,
-                getMode(), false /* requestFocus */);
+        mUiController = new WifiConfigController2(this, rootView, mWifiEntry, getMode());
 
         /**
          * For this add WifiEntry UI, need to remove the Home button, so set related feature as
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index 17557aa..99907f3 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -193,7 +193,6 @@
     private ProxySettings mProxySettings = ProxySettings.UNASSIGNED;
     private ProxyInfo mHttpProxy = null;
     private StaticIpConfiguration mStaticIpConfiguration = null;
-    private boolean mRequestFocus = true;
 
     private String[] mLevels;
     private int mMode;
@@ -208,17 +207,10 @@
 
     public WifiConfigController2(WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry,
             int mode) {
-        this (parent, view, wifiEntry, mode, true /* requestFocus */);
-    }
-
-    public WifiConfigController2(WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry,
-            int mode, boolean requestFocus) {
         mConfigUi = parent;
-
         mView = view;
         mWifiEntry = wifiEntry;
         mContext = mConfigUi.getContext();
-        mRequestFocus = requestFocus;
 
         // Init Wi-Fi manager
         mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
@@ -443,10 +435,8 @@
             enableSubmitIfAppropriate();
         }
 
-        // After done view show and hide, request focus from parameter.
-        if (mRequestFocus) {
-            mView.findViewById(R.id.l_wifidialog).requestFocus();
-        }
+        // After done view show and hide, request focus
+        mView.findViewById(R.id.l_wifidialog).requestFocus();
     }
 
     @VisibleForTesting
