Merge "Register the rule for injected apps" into sc-v2-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 7199dd5..a29089a 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -292,16 +292,23 @@
android:icon="@drawable/ic_homepage_network"
android:exported="true"
android:configChanges="orientation|keyboardHidden|screenSize">
- <intent-filter android:priority="1">
- <action android:name="android.settings.WIFI_SETTINGS" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.wifi.WifiSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
+ <!-- Keep compatibility with old shortcuts. -->
+ <activity-alias
+ android:name="Settings$WifiSettings2Activity"
+ android:targetActivity="Settings$WifiSettingsActivity"
+ android:label="@string/wifi_settings"
+ android:icon="@drawable/ic_homepage_network"
+ android:exported="true">
+ <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+ android:value="com.android.settings.wifi.WifiSettings" />
+ </activity-alias>
+
<activity
android:name="Settings$NetworkProviderSettingsActivity"
android:label="@string/provider_internet_settings"
@@ -313,6 +320,10 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter android:priority="1">
+ <action android:name="android.settings.WIFI_SETTINGS" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter android:priority="1">
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
index e9dcea1..d57c0c2 100644
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
+++ b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
@@ -17,7 +17,6 @@
package com.android.settings.activityembedding;
import android.app.Activity;
-import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -26,7 +25,6 @@
import androidx.annotation.NonNull;
import androidx.window.embedding.ActivityFilter;
-import androidx.window.embedding.ActivityRule;
import androidx.window.embedding.SplitController;
import androidx.window.embedding.SplitPairFilter;
import androidx.window.embedding.SplitPairRule;
@@ -36,7 +34,6 @@
import com.android.settings.SubSettings;
import com.android.settings.Utils;
import com.android.settings.homepage.SettingsHomepageActivity;
-import com.android.settings.overlay.FeatureFactory;
import java.util.HashSet;
import java.util.Set;
@@ -73,8 +70,6 @@
null /* secondaryIntentAction */,
true /* finishPrimaryWithSecondary */,
true /* finishSecondaryWithPrimary */);
- // Set rules here to show full screen for specified Activity.
- registerAlwaysExpandRule();
}
/** Register a SplitPairRule for 2-pane. */
@@ -98,16 +93,6 @@
LayoutDirection.LOCALE));
}
- private void registerAlwaysExpandRule() {
- final Set<ActivityFilter> activityFilters = new HashSet<>();
-
- final Intent searchIntent = FeatureFactory.getFactory(mContext).getSearchFeatureProvider()
- .buildSearchIntent(mContext, SettingsEnums.SETTINGS_HOMEPAGE);
- addActivityFilter(activityFilters, searchIntent);
-
- mSplitController.registerRule(new ActivityRule(activityFilters, true /* alwaysExpand */));
- }
-
private void registerHomepagePlaceholderRule() {
final Set<ActivityFilter> activityFilters = new HashSet<>();
addActivityFilter(activityFilters, SettingsHomepageActivity.class);
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index 8a4929a..349bb82 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -19,6 +19,8 @@
import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_ENABLED;
import static android.os.UserManager.DISALLOW_CONFIG_WIFI;
+import static com.android.settings.Settings.WifiSettingsActivity;
+
import android.app.Activity;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
@@ -27,6 +29,7 @@
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.location.LocationManager;
import android.net.NetworkTemplate;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
@@ -277,6 +280,17 @@
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
+ if (!FeatureFlagUtils.isEnabled(getContext(), FeatureFlagUtils.SETTINGS_PROVIDER_MODEL)) {
+ final Intent intent = new Intent(getContext(), WifiSettingsActivity.class);
+ final Bundle extras = getActivity().getIntent().getExtras();
+ if (extras != null) {
+ intent.putExtras(extras);
+ }
+ getContext().startActivity(intent);
+ finish();
+ return;
+ }
+
mAirplaneModeEnabler = new AirplaneModeEnabler(getContext(), this);
// TODO(b/37429702): Add animations and preference comparator back after initial screen is
@@ -464,7 +478,9 @@
@Override
public void onDestroy() {
- mAirplaneModeEnabler.close();
+ if (mAirplaneModeEnabler != null) {
+ mAirplaneModeEnabler.close();
+ }
super.onDestroy();
}
@@ -756,7 +772,10 @@
if (context == null) {
return;
}
- if (isWifiEnabled || !mWifiManager.isScanAlwaysAvailable()) {
+
+ final LocationManager locationManager = context.getSystemService(LocationManager.class);
+ if (isWifiEnabled || !locationManager.isLocationEnabled()
+ || !mWifiManager.isScanAlwaysAvailable()) {
mWifiStatusMessagePreference.setVisible(false);
return;
}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index e048849..be8bf3a 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -38,6 +38,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
+import android.location.LocationManager;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.os.Bundle;
@@ -98,6 +99,8 @@
@Mock
private UserManager mUserManager;
@Mock
+ private LocationManager mLocationManager;
+ @Mock
private AirplaneModeEnabler mAirplaneModeEnabler;
@Mock
private DataUsagePreference mDataUsagePreference;
@@ -133,6 +136,7 @@
doReturn(mPowerManager).when(mContext).getSystemService(PowerManager.class);
doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
+ doReturn(mLocationManager).when(mContext).getSystemService(LocationManager.class);
when(mUserManager.hasBaseUserRestriction(any(), any())).thenReturn(true);
doReturn(mContext).when(mPreferenceManager).getContext();
mNetworkProviderSettings.mAddWifiNetworkPreference = new AddWifiNetworkPreference(mContext);
@@ -543,19 +547,41 @@
}
@Test
- public void setWifiScanMessage_wifiOffScanOn_footerIsVisible() {
+ public void setWifiScanMessage_wifiOffLocationOnScanOn_footerIsVisible() {
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
+ when(mLocationManager.isLocationEnabled()).thenReturn(true);
mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false);
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.isVisible()).isTrue();
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.getTitle().length())
- .isNotEqualTo(0);
+ .isNotEqualTo(0);
}
@Test
- public void setWifiScanMessage_wifiOffScanOff_footerIsInvisible() {
+ public void setWifiScanMessage_wifiOffLocationOnScanOff_footerIsInvisible() {
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false);
+ when(mLocationManager.isLocationEnabled()).thenReturn(true);
+
+ mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false);
+
+ assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.isVisible()).isFalse();
+ }
+
+ @Test
+ public void setWifiScanMessage_wifiOffLocationOffScanOn_footerIsInvisible() {
+ when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
+ when(mLocationManager.isLocationEnabled()).thenReturn(false);
+
+ mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false);
+
+ assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.isVisible()).isFalse();
+ }
+
+ @Test
+ public void setWifiScanMessage_wifiOffLocationOffScanOff_footerIsInvisible() {
+ when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false);
+ when(mLocationManager.isLocationEnabled()).thenReturn(false);
mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false);