[Wi-Fi] Fix crash when launch Wi-Fi detail from slice

Wi-Fi slice does not been applied to WifiTracker2, should not
launch the UI component for WifiTracker2.

Bug: 151065311
Test: manual
      Settings -> disable/enable Wi-Fi -> click the connected Wi-Fi
      See if Wi-Fi detail carshed.
Change-Id: I9cea305db85aab1bb694c21f95b81afd6a35321e
This commit is contained in:
Arc Wang
2020-03-10 11:06:59 +08:00
parent be753c3543
commit 3fd7e31e3c

View File

@@ -38,7 +38,6 @@ import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.FeatureFlagUtils;
import androidx.annotation.VisibleForTesting;
import androidx.core.graphics.drawable.IconCompat;
@@ -55,10 +54,8 @@ import com.android.settings.slices.SliceBackgroundWorker;
import com.android.settings.slices.SliceBuilderUtils;
import com.android.settings.wifi.WifiDialogActivity;
import com.android.settings.wifi.WifiSettings;
import com.android.settings.wifi.WifiSettings2;
import com.android.settings.wifi.WifiUtils;
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2;
import com.android.settingslib.wifi.AccessPoint;
import java.util.Arrays;
@@ -253,16 +250,13 @@ public class WifiSlice implements CustomSliceable {
accessPoint.saveWifiState(extras);
if (accessPoint.isActive()) {
final SubSettingLauncher launcher = new SubSettingLauncher(mContext)
final Intent intent = new SubSettingLauncher(mContext)
.setTitleRes(R.string.pref_title_network_details)
.setDestination(WifiNetworkDetailsFragment.class.getName())
.setArguments(extras)
.setSourceMetricsCategory(SettingsEnums.WIFI);
if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
launcher.setDestination(WifiNetworkDetailsFragment2.class.getName());
} else {
launcher.setDestination(WifiNetworkDetailsFragment.class.getName());
}
return getActivityAction(requestCode, launcher.toIntent(), icon, title);
.setSourceMetricsCategory(SettingsEnums.WIFI)
.toIntent();
return getActivityAction(requestCode, intent, icon, title);
} else if (WifiUtils.getConnectingType(accessPoint) != WifiUtils.CONNECT_TYPE_OTHERS) {
final Intent intent = new Intent(mContext, ConnectToWifiHandler.class)
.putExtra(WifiDialogActivity.KEY_ACCESS_POINT_STATE, extras);
@@ -326,21 +320,11 @@ public class WifiSlice implements CustomSliceable {
public Intent getIntent() {
final String screenTitle = mContext.getText(R.string.wifi_settings).toString();
final Uri contentUri = new Uri.Builder().appendPath(KEY_WIFI).build();
Intent intent;
if (FeatureFlagUtils.isEnabled(mContext, FeatureFlagUtils.SETTINGS_WIFITRACKER2)) {
intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext,
WifiSettings2.class.getName(), KEY_WIFI, screenTitle,
SettingsEnums.DIALOG_WIFI_AP_EDIT)
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
.setData(contentUri);
} else {
intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext,
final Intent intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext,
WifiSettings.class.getName(), KEY_WIFI, screenTitle,
SettingsEnums.DIALOG_WIFI_AP_EDIT)
.setClassName(mContext.getPackageName(), SubSettings.class.getName())
.setData(contentUri);
}
return intent;
}