[Wi-Fi] Add a new fragment for configuring a new AccessPoint network.
When configuring a new access point in Wi-Fi settings page, it's hard to figure out there are some other option items after you tapping the "Advanced options" button. To improve it, use full screen fragment to present the configuration items, so user can see as many items as possible. Bug: 31052996 Test: Mock this fragment and check each button status run as expected. Change-Id: I1c8e552fcabb1414bb500d918ed61287bf4aece2
This commit is contained in:
@@ -50,10 +50,6 @@ import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
|
||||
import com.android.settings.LinkifyUtils;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.RestrictedSettingsFragment;
|
||||
@@ -61,8 +57,8 @@ import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.core.FeatureFlags;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settings.dashboard.SummaryLoader;
|
||||
import com.android.settings.datausage.DataUsageUtils;
|
||||
import com.android.settings.datausage.DataUsagePreference;
|
||||
import com.android.settings.datausage.DataUsageUtils;
|
||||
import com.android.settings.location.ScanningSettings;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.search.Indexable;
|
||||
@@ -84,6 +80,10 @@ import com.android.settingslib.wifi.WifiTrackerFactory;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
|
||||
/**
|
||||
* Two types of UI are provided here.
|
||||
*
|
||||
@@ -109,6 +109,8 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
@VisibleForTesting
|
||||
static final int ADD_NETWORK_REQUEST = 2;
|
||||
|
||||
static final int CONFIG_NETWORK_REQUEST = 3;
|
||||
|
||||
// Instance state keys
|
||||
private static final String SAVE_DIALOG_MODE = "dialog_mode";
|
||||
private static final String SAVE_DIALOG_ACCESS_POINT_STATE = "wifi_ap_state";
|
||||
@@ -427,6 +429,11 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
mWifiTracker.resumeScanning();
|
||||
}
|
||||
return;
|
||||
} else if (requestCode == CONFIG_NETWORK_REQUEST) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
handleConfigNetworkSubmitEvent(data);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
final boolean formerlyRestricted = mIsRestricted;
|
||||
@@ -559,7 +566,10 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
break;
|
||||
|
||||
default:
|
||||
showDialog(mSelectedAccessPoint, WifiConfigUiBase.MODE_CONNECT);
|
||||
final Bundle bundle = ((LongPressAccessPointPreference) preference).getExtras();
|
||||
mSelectedAccessPoint.saveWifiState(bundle);
|
||||
launchConfigNewNetworkFragment(mSelectedAccessPoint,
|
||||
WifiConfigUiBase.MODE_CONNECT, bundle);
|
||||
break;
|
||||
}
|
||||
} else if (preference == mAddWifiNetworkPreference) {
|
||||
@@ -1253,4 +1263,30 @@ public class WifiSettings extends RestrictedSettingsFragment
|
||||
return new SummaryProvider(activity, summaryLoader);
|
||||
}
|
||||
};
|
||||
|
||||
private void handleConfigNetworkSubmitEvent(Intent data) {
|
||||
final WifiConfiguration wifiConfiguration = data.getParcelableExtra(
|
||||
ConfigureAccessPointFragment.NETWORK_CONFIG_KEY);
|
||||
if (wifiConfiguration != null) {
|
||||
mWifiManager.save(wifiConfiguration, mSaveListener);
|
||||
|
||||
if (mSelectedAccessPoint != null) {
|
||||
connect(wifiConfiguration, false /*isSavedNetwork*/);
|
||||
}
|
||||
mWifiTracker.resumeScanning();
|
||||
}
|
||||
}
|
||||
|
||||
private void launchConfigNewNetworkFragment(AccessPoint accessPoint, int dialogMode,
|
||||
Bundle bundleForArguments) {
|
||||
mDialogMode = dialogMode;
|
||||
final CharSequence title = accessPoint.getTitle();
|
||||
new SubSettingLauncher(getContext())
|
||||
.setTitleText(title)
|
||||
.setDestination(ConfigureAccessPointFragment.class.getName())
|
||||
.setArguments(bundleForArguments)
|
||||
.setSourceMetricsCategory(getMetricsCategory())
|
||||
.setResultListener(this, CONFIG_NETWORK_REQUEST)
|
||||
.launch();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user