diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 3c635eb5197..dba61d66443 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2438,7 +2438,7 @@
+ android:value="com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureSettings" />
+ android:value="com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureDetails" />
+ settings:controller="com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureDetailPreferenceController" />
-
+
+ android:fragment="com.android.settings.datausage.UnrestrictedDataAccess"
+ settings:controller="com.android.settings.applications.specialaccess.DataSaverController" />
diff --git a/res/xml/picture_in_picture_settings.xml b/res/xml/picture_in_picture_settings.xml
index b7091df374d..35839cdc148 100644
--- a/res/xml/picture_in_picture_settings.xml
+++ b/res/xml/picture_in_picture_settings.xml
@@ -17,4 +17,7 @@
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
+ android:key="picture_in_picture_screen"
+ android:title="@string/picture_in_picture_title"
+ settings:controller="com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureScreenPreferenceController" />
diff --git a/res/xml/premium_sms_settings.xml b/res/xml/premium_sms_settings.xml
index 7bcf11e4661..17d12978b2d 100644
--- a/res/xml/premium_sms_settings.xml
+++ b/res/xml/premium_sms_settings.xml
@@ -17,4 +17,7 @@
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
+ android:key="premium_sms_screen"
+ android:title="@string/premium_sms_access"
+ settings:controller="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsScreenPreferenceController" />
diff --git a/res/xml/special_access.xml b/res/xml/special_access.xml
index 574686ad759..552f0fc585e 100644
--- a/res/xml/special_access.xml
+++ b/res/xml/special_access.xml
@@ -73,15 +73,15 @@
+ settings:controller="com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureController" />
+ android:fragment="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsAccess"
+ settings:controller="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsController" />
diff --git a/res/xml/zen_access_settings.xml b/res/xml/zen_access_settings.xml
index 35cfdb8e70b..48dc1af2136 100644
--- a/res/xml/zen_access_settings.xml
+++ b/res/xml/zen_access_settings.xml
@@ -17,4 +17,5 @@
diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
index ae40d67717f..80f01fc2f11 100755
--- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
+++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
@@ -44,6 +44,8 @@ import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.applications.manageapplications.ManageApplications;
+import com.android.settings.applications.specialaccess.pictureinpicture
+ .PictureInPictureDetailPreferenceController;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settingslib.RestrictedLockUtils;
@@ -281,7 +283,7 @@ public class AppInfoDashboardFragment extends DashboardFragment
mAppEntry = appEntry;
}
- PackageInfo getPackageInfo() {
+ public PackageInfo getPackageInfo() {
return mPackageInfo;
}
diff --git a/src/com/android/settings/applications/specialaccess/DataSaverController.java b/src/com/android/settings/applications/specialaccess/DataSaverController.java
index 56687d7aa4f..c169d7fc891 100644
--- a/src/com/android/settings/applications/specialaccess/DataSaverController.java
+++ b/src/com/android/settings/applications/specialaccess/DataSaverController.java
@@ -31,7 +31,7 @@ public class DataSaverController extends BasePreferenceController {
@AvailabilityStatus
public int getAvailabilityStatus() {
return mContext.getResources().getBoolean(R.bool.config_show_data_saver)
- ? AVAILABLE
+ ? AVAILABLE_UNSEARCHABLE
: UNSUPPORTED_ON_DEVICE;
}
}
\ No newline at end of file
diff --git a/src/com/android/settings/applications/specialaccess/ZenAccessController.java b/src/com/android/settings/applications/specialaccess/ZenAccessController.java
index 41344a3ebad..ada5d9d6db7 100644
--- a/src/com/android/settings/applications/specialaccess/ZenAccessController.java
+++ b/src/com/android/settings/applications/specialaccess/ZenAccessController.java
@@ -30,7 +30,7 @@ public class ZenAccessController extends BasePreferenceController {
@Override
public int getAvailabilityStatus() {
return !ActivityManager.isLowRamDeviceStatic()
- ? AVAILABLE
+ ? AVAILABLE_UNSEARCHABLE
: UNSUPPORTED_ON_DEVICE;
}
}
diff --git a/src/com/android/settings/applications/specialaccess/PictureInPictureController.java b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureController.java
similarity index 90%
rename from src/com/android/settings/applications/specialaccess/PictureInPictureController.java
rename to src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureController.java
index 6666605c1cc..714b662a7b8 100644
--- a/src/com/android/settings/applications/specialaccess/PictureInPictureController.java
+++ b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.applications.specialaccess;
+package com.android.settings.applications.specialaccess.pictureinpicture;
import android.app.ActivityManager;
import android.content.Context;
@@ -30,7 +30,7 @@ public class PictureInPictureController extends BasePreferenceController {
@Override
public int getAvailabilityStatus() {
return !ActivityManager.isLowRamDeviceStatic()
- ? AVAILABLE
+ ? AVAILABLE_UNSEARCHABLE
: UNSUPPORTED_ON_DEVICE;
}
}
diff --git a/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceController.java b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetailPreferenceController.java
similarity index 93%
rename from src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceController.java
rename to src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetailPreferenceController.java
index 75582cbc157..a2ece7212dc 100644
--- a/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetailPreferenceController.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.applications.appinfo;
+package com.android.settings.applications.specialaccess.pictureinpicture;
import android.content.Context;
import android.content.pm.PackageInfo;
@@ -23,6 +23,7 @@ import android.os.UserHandle;
import android.util.Log;
import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.applications.appinfo.AppInfoPreferenceControllerBase;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
diff --git a/src/com/android/settings/applications/appinfo/PictureInPictureDetails.java b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetails.java
similarity index 98%
rename from src/com/android/settings/applications/appinfo/PictureInPictureDetails.java
rename to src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetails.java
index 4f7dd9a8302..120a318c2c2 100644
--- a/src/com/android/settings/applications/appinfo/PictureInPictureDetails.java
+++ b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetails.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.settings.applications.appinfo;
+package com.android.settings.applications.specialaccess.pictureinpicture;
import static android.app.AppOpsManager.MODE_ALLOWED;
import static android.app.AppOpsManager.MODE_ERRORED;
diff --git a/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureScreenPreferenceController.java b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureScreenPreferenceController.java
new file mode 100644
index 00000000000..def600848da
--- /dev/null
+++ b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureScreenPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications.specialaccess.pictureinpicture;
+
+import android.app.ActivityManager;
+import android.content.Context;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class PictureInPictureScreenPreferenceController extends BasePreferenceController {
+
+ public PictureInPictureScreenPreferenceController(Context context,
+ String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return !ActivityManager.isLowRamDeviceStatic()
+ ? AVAILABLE
+ : UNSUPPORTED_ON_DEVICE;
+ }
+}
diff --git a/src/com/android/settings/applications/appinfo/PictureInPictureSettings.java b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java
similarity index 86%
rename from src/com/android/settings/applications/appinfo/PictureInPictureSettings.java
rename to src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java
index df961834d9d..e380bb5d22f 100644
--- a/src/com/android/settings/applications/appinfo/PictureInPictureSettings.java
+++ b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.android.settings.applications.appinfo;
+package com.android.settings.applications.specialaccess.pictureinpicture;
import static android.content.pm.PackageManager.GET_ACTIVITIES;
@@ -27,6 +27,7 @@ import android.content.pm.UserInfo;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
+import android.provider.SearchIndexableResource;
import android.util.IconDrawableFactory;
import android.util.Pair;
import android.view.View;
@@ -35,8 +36,11 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.applications.AppInfoBase;
-import com.android.settings.notification.EmptyTextSettings;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
import com.android.settings.widget.AppPreference;
+import com.android.settings.widget.EmptyTextSettings;
+import com.android.settingslib.search.SearchIndexable;
import java.text.Collator;
import java.util.ArrayList;
@@ -48,11 +52,12 @@ import androidx.preference.Preference;
import androidx.preference.Preference.OnPreferenceClickListener;
import androidx.preference.PreferenceScreen;
+@SearchIndexable
public class PictureInPictureSettings extends EmptyTextSettings {
- private static final String TAG = PictureInPictureSettings.class.getSimpleName();
@VisibleForTesting
static final List IGNORE_PACKAGE_LIST = new ArrayList<>();
+
static {
IGNORE_PACKAGE_LIST.add("com.android.systemui");
}
@@ -72,9 +77,9 @@ public class PictureInPictureSettings extends EmptyTextSettings {
public final int compare(Pair a,
Pair b) {
- CharSequence sa = a.first.loadLabel(mPm);
+ CharSequence sa = a.first.loadLabel(mPm);
if (sa == null) sa = a.first.name;
- CharSequence sb = b.first.loadLabel(mPm);
+ CharSequence sb = b.first.loadLabel(mPm);
if (sb == null) sb = b.first.name;
int nameCmp = mCollator.compare(sa.toString(), sb.toString());
if (nameCmp != 0) {
@@ -92,7 +97,7 @@ public class PictureInPictureSettings extends EmptyTextSettings {
/**
* @return true if the package has any activities that declare that they support
- * picture-in-picture.
+ * picture-in-picture.
*/
public static boolean checkPackageHasPictureInPictureActivities(String packageName,
@@ -192,7 +197,7 @@ public class PictureInPictureSettings extends EmptyTextSettings {
/**
* @return the list of applications for the given user and all their profiles that have
- * activities which support PiP.
+ * activities which support PiP.
*/
ArrayList> collectPipApps(int userId) {
final ArrayList> pipApps = new ArrayList<>();
@@ -213,4 +218,18 @@ public class PictureInPictureSettings extends EmptyTextSettings {
}
return pipApps;
}
+
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ final ArrayList result = new ArrayList<>();
+
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.picture_in_picture_settings;
+ result.add(sir);
+ return result;
+ }
+ };
}
diff --git a/src/com/android/settings/applications/PremiumSmsAccess.java b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java
similarity index 82%
rename from src/com/android/settings/applications/PremiumSmsAccess.java
rename to src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java
index ab54c455fde..dd940db492a 100644
--- a/src/com/android/settings/applications/PremiumSmsAccess.java
+++ b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java
@@ -1,23 +1,26 @@
/*
* Copyright (C) 2016 The Android Open Source Project
*
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
-package com.android.settings.applications;
+package com.android.settings.applications.specialaccess.premiumsms;
import android.annotation.Nullable;
import android.app.Application;
import android.content.Context;
import android.os.Bundle;
+import android.provider.SearchIndexableResource;
import android.view.View;
import com.android.internal.annotations.VisibleForTesting;
@@ -25,16 +28,21 @@ import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.telephony.SmsUsageMonitor;
import com.android.settings.R;
import com.android.settings.applications.AppStateBaseBridge.Callback;
+import com.android.settings.applications.AppStateSmsPremBridge;
import com.android.settings.applications.AppStateSmsPremBridge.SmsState;
-import com.android.settings.notification.EmptyTextSettings;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
+import com.android.settings.widget.EmptyTextSettings;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.applications.ApplicationsState.Callbacks;
import com.android.settingslib.applications.ApplicationsState.Session;
+import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.FooterPreference;
import java.util.ArrayList;
+import java.util.List;
import androidx.preference.DropDownPreference;
import androidx.preference.Preference;
@@ -42,7 +50,9 @@ import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.PreferenceScreen;
import androidx.preference.PreferenceViewHolder;
-public class PremiumSmsAccess extends EmptyTextSettings implements Callback, Callbacks, OnPreferenceChangeListener {
+@SearchIndexable
+public class PremiumSmsAccess extends EmptyTextSettings
+ implements Callback, Callbacks, OnPreferenceChangeListener {
private ApplicationsState mApplicationsState;
private AppStateSmsPremBridge mSmsBackend;
@@ -233,4 +243,18 @@ public class PremiumSmsAccess extends EmptyTextSettings implements Callback, Cal
super.onBindViewHolder(holder);
}
}
+
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ final ArrayList result = new ArrayList<>();
+
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.premium_sms_settings;
+ result.add(sir);
+ return result;
+ }
+ };
}
diff --git a/src/com/android/settings/applications/specialaccess/PremiumSmsController.java b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsController.java
similarity index 90%
rename from src/com/android/settings/applications/specialaccess/PremiumSmsController.java
rename to src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsController.java
index 0e8c198f3b2..158fe3cfd41 100644
--- a/src/com/android/settings/applications/specialaccess/PremiumSmsController.java
+++ b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.applications.specialaccess;
+package com.android.settings.applications.specialaccess.premiumsms;
import android.content.Context;
@@ -30,7 +30,7 @@ public class PremiumSmsController extends BasePreferenceController {
@AvailabilityStatus
public int getAvailabilityStatus() {
return mContext.getResources().getBoolean(R.bool.config_show_premium_sms)
- ? AVAILABLE
+ ? AVAILABLE_UNSEARCHABLE
: UNSUPPORTED_ON_DEVICE;
}
}
\ No newline at end of file
diff --git a/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsScreenPreferenceController.java b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsScreenPreferenceController.java
new file mode 100644
index 00000000000..582e75ea5d7
--- /dev/null
+++ b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsScreenPreferenceController.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications.specialaccess.premiumsms;
+
+import android.content.Context;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+public class PremiumSmsScreenPreferenceController extends BasePreferenceController {
+
+ public PremiumSmsScreenPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @AvailabilityStatus
+ public int getAvailabilityStatus() {
+ return mContext.getResources().getBoolean(R.bool.config_show_premium_sms)
+ ? AVAILABLE
+ : UNSUPPORTED_ON_DEVICE;
+ }
+}
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 64afd942406..a325c4c4f3e 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -42,14 +42,14 @@ import com.android.settings.applications.VrListenerSettings;
import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
import com.android.settings.applications.appinfo.DrawOverlayDetails;
import com.android.settings.applications.appinfo.ExternalSourcesDetails;
-import com.android.settings.applications.appinfo.PictureInPictureDetails;
-import com.android.settings.applications.appinfo.PictureInPictureSettings;
import com.android.settings.applications.appinfo.WriteSettingsDetails;
import com.android.settings.applications.appops.BackgroundCheckSummary;
import com.android.settings.applications.assist.ManageAssist;
import com.android.settings.applications.manageapplications.ManageApplications;
import com.android.settings.applications.managedomainurls.ManageDomainUrls;
import com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminSettings;
+import com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureDetails;
+import com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureSettings;
import com.android.settings.backup.PrivacySettings;
import com.android.settings.backup.ToggleBackupSettingFragment;
import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
diff --git a/src/com/android/settings/datausage/DataSaverSummary.java b/src/com/android/settings/datausage/DataSaverSummary.java
index 6482f87182a..97334aa529a 100644
--- a/src/com/android/settings/datausage/DataSaverSummary.java
+++ b/src/com/android/settings/datausage/DataSaverSummary.java
@@ -15,7 +15,10 @@
package com.android.settings.datausage;
import android.app.Application;
+import android.content.Context;
import android.os.Bundle;
+import android.provider.SearchIndexableResource;
+import android.telephony.SubscriptionManager;
import android.widget.Switch;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -24,17 +27,22 @@ import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.applications.AppStateBaseBridge.Callback;
import com.android.settings.datausage.DataSaverBackend.Listener;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
import com.android.settings.widget.SwitchBar;
import com.android.settings.widget.SwitchBar.OnSwitchChangeListener;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.applications.ApplicationsState.Callbacks;
import com.android.settingslib.applications.ApplicationsState.Session;
+import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
+import java.util.List;
import androidx.preference.Preference;
+@SearchIndexable
public class DataSaverSummary extends SettingsPreferenceFragment
implements OnSwitchChangeListener, Listener, Callback, Callbacks {
@@ -94,7 +102,7 @@ public class DataSaverSummary extends SettingsPreferenceFragment
@Override
public void onSwitchChanged(Switch switchView, boolean isChecked) {
- synchronized(this) {
+ synchronized (this) {
if (mSwitching) {
return;
}
@@ -115,7 +123,7 @@ public class DataSaverSummary extends SettingsPreferenceFragment
@Override
public void onDataSaverChanged(boolean isDataSaving) {
- synchronized(this) {
+ synchronized (this) {
mSwitchBar.setChecked(isDataSaving);
mSwitching = false;
}
@@ -190,4 +198,25 @@ public class DataSaverSummary extends SettingsPreferenceFragment
public void onLoadEntriesCompleted() {
}
+
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ final ArrayList result = new ArrayList<>();
+
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.data_saver;
+ result.add(sir);
+ return result;
+ }
+
+ @Override
+ protected boolean isPageSearchEnabled(Context context) {
+ return DataUsageUtils.hasMobileData(context)
+ && DataUsageUtils.getDefaultSubscriptionId(context)
+ != SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+ };
}
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index 58a5a8f1f95..ee8a6c8eafb 100644
--- a/src/com/android/settings/datausage/DataUsageSummary.java
+++ b/src/com/android/settings/datausage/DataUsageSummary.java
@@ -51,8 +51,7 @@ import androidx.preference.PreferenceScreen;
* Settings preference fragment that displays data usage summary.
*/
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class DataUsageSummary extends DataUsageBaseFragment implements Indexable,
- DataUsageEditController {
+public class DataUsageSummary extends DataUsageBaseFragment implements DataUsageEditController {
private static final String TAG = "DataUsageSummary";
@@ -379,6 +378,9 @@ public class DataUsageSummary extends DataUsageBaseFragment implements Indexable
// This title is named Wifi, and will confuse users.
keys.add(KEY_WIFI_USAGE_TITLE);
+ // Duplicate entry for "Data saver"
+ keys.add(KEY_RESTRICT_BACKGROUND);
+
return keys;
}
};
diff --git a/src/com/android/settings/datausage/UnrestrictedDataAccess.java b/src/com/android/settings/datausage/UnrestrictedDataAccess.java
index 17fb67e5eff..b8d47b1a543 100644
--- a/src/com/android/settings/datausage/UnrestrictedDataAccess.java
+++ b/src/com/android/settings/datausage/UnrestrictedDataAccess.java
@@ -16,6 +16,7 @@ package com.android.settings.datausage;
import android.content.Context;
import android.os.Bundle;
+import android.provider.SearchIndexableResource;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -24,9 +25,16 @@ import android.view.View;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppFilter;
+import com.android.settingslib.search.SearchIndexable;
+import java.util.ArrayList;
+import java.util.List;
+
+@SearchIndexable
public class UnrestrictedDataAccess extends DashboardFragment {
private static final String TAG = "UnrestrictedDataAccess";
@@ -108,4 +116,18 @@ public class UnrestrictedDataAccess extends DashboardFragment {
protected int getPreferenceScreenResId() {
return R.xml.unrestricted_data_access_settings;
}
+
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ final ArrayList result = new ArrayList<>();
+
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.unrestricted_data_access_settings;
+ result.add(sir);
+ return result;
+ }
+ };
}
diff --git a/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceController.java b/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceController.java
index dc6b7feb4af..4a2307f28fe 100644
--- a/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceController.java
+++ b/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceController.java
@@ -21,6 +21,7 @@ import android.os.UserHandle;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
import com.android.settings.applications.AppStateBaseBridge;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.dashboard.DashboardFragment;
@@ -83,7 +84,9 @@ public class UnrestrictedDataAccessPreferenceController extends BasePreferenceCo
@Override
public int getAvailabilityStatus() {
- return AVAILABLE;
+ return mContext.getResources().getBoolean(R.bool.config_show_data_saver)
+ ? AVAILABLE_UNSEARCHABLE
+ : UNSUPPORTED_ON_DEVICE;
}
@Override
diff --git a/src/com/android/settings/notification/ZenAccessSettings.java b/src/com/android/settings/notification/ZenAccessSettings.java
index 8c69f63c190..1dbd295bdf1 100644
--- a/src/com/android/settings/notification/ZenAccessSettings.java
+++ b/src/com/android/settings/notification/ZenAccessSettings.java
@@ -36,6 +36,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.RemoteException;
+import android.provider.SearchIndexableResource;
import android.provider.Settings.Secure;
import android.text.TextUtils;
import android.util.ArraySet;
@@ -47,7 +48,11 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
import com.android.settings.widget.AppSwitchPreference;
+import com.android.settings.widget.EmptyTextSettings;
+import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
import java.util.Collections;
@@ -58,6 +63,7 @@ import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
+@SearchIndexable
public class ZenAccessSettings extends EmptyTextSettings {
private final String TAG = "ZenAccessSettings";
@@ -336,4 +342,18 @@ public class ZenAccessSettings extends EmptyTextSettings {
.create();
}
}
+
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ final ArrayList result = new ArrayList<>();
+
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.zen_access_settings;
+ result.add(sir);
+ return result;
+ }
+ };
}
diff --git a/src/com/android/settings/utils/ManagedServiceSettings.java b/src/com/android/settings/utils/ManagedServiceSettings.java
index 83443333d4d..7a78fc94426 100644
--- a/src/com/android/settings/utils/ManagedServiceSettings.java
+++ b/src/com/android/settings/utils/ManagedServiceSettings.java
@@ -38,8 +38,8 @@ import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.notification.EmptyTextSettings;
import com.android.settings.widget.AppSwitchPreference;
+import com.android.settings.widget.EmptyTextSettings;
import com.android.settingslib.applications.ServiceListing;
import java.util.List;
diff --git a/src/com/android/settings/notification/EmptyTextSettings.java b/src/com/android/settings/widget/EmptyTextSettings.java
similarity index 97%
rename from src/com/android/settings/notification/EmptyTextSettings.java
rename to src/com/android/settings/widget/EmptyTextSettings.java
index 4ac3d52d1d5..24f0a821f4b 100644
--- a/src/com/android/settings/notification/EmptyTextSettings.java
+++ b/src/com/android/settings/widget/EmptyTextSettings.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.notification;
+package com.android.settings.widget;
import android.annotation.Nullable;
import android.os.Bundle;
diff --git a/tests/robotests/assets/grandfather_not_implementing_index_provider b/tests/robotests/assets/grandfather_not_implementing_index_provider
index dfa4fba7f16..c3cb8971b6c 100644
--- a/tests/robotests/assets/grandfather_not_implementing_index_provider
+++ b/tests/robotests/assets/grandfather_not_implementing_index_provider
@@ -13,18 +13,16 @@ com.android.settings.accounts.ManagedProfileSettings
com.android.settings.applications.appinfo.AppInfoDashboardFragment
com.android.settings.applications.appinfo.DrawOverlayDetails
com.android.settings.applications.appinfo.ExternalSourcesDetails
-com.android.settings.applications.appinfo.PictureInPictureDetails
-com.android.settings.applications.appinfo.PictureInPictureSettings
com.android.settings.applications.appinfo.WriteSettingsDetails
com.android.settings.applications.AppLaunchSettings
com.android.settings.applications.AppStorageSettings
com.android.settings.applications.ConfirmConvertToFbe
com.android.settings.applications.DirectoryAccessDetails
-com.android.settings.applications.PremiumSmsAccess
com.android.settings.applications.ProcessStatsDetail
com.android.settings.applications.ProcessStatsSummary
com.android.settings.applications.ProcessStatsUi
com.android.settings.applications.RunningServices
+com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureDetails
com.android.settings.applications.UsageAccessDetails
com.android.settings.applications.VrListenerSettings
com.android.settings.backup.ToggleBackupSettingFragment
@@ -34,9 +32,7 @@ com.android.settings.bluetooth.BluetoothPairingDetail
com.android.settings.bluetooth.DevicePickerFragment
com.android.settings.datausage.AppDataUsage
com.android.settings.datausage.BillingCycleSettings
-com.android.settings.datausage.DataSaverSummary
com.android.settings.datausage.DataUsageList
-com.android.settings.datausage.UnrestrictedDataAccess
com.android.settings.datetime.timezone.TimeZoneSettings
com.android.settings.development.featureflags.FeatureFlagsDashboard
com.android.settings.development.qstile.DevelopmentTileConfigFragment
@@ -67,7 +63,6 @@ com.android.settings.notification.ChannelNotificationSettings
com.android.settings.notification.NotificationAccessSettings
com.android.settings.notification.NotificationStation
com.android.settings.notification.RedactionInterstitial$RedactionInterstitialFragment
-com.android.settings.notification.ZenAccessSettings
com.android.settings.notification.ZenModeEventRuleSettings
com.android.settings.notification.ZenModeScheduleRuleSettings
com.android.settings.password.ChooseLockGeneric$ChooseLockGenericFragment
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetailPreferenceControllerTest.java
similarity index 95%
rename from tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetailPreferenceControllerTest.java
index 802bf7b2482..8355d788988 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetailPreferenceControllerTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.applications.appinfo;
+package com.android.settings.applications.specialaccess.pictureinpicture;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import com.android.settings.R;
+import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureDetailsTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetailsTest.java
similarity index 97%
rename from tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureDetailsTest.java
rename to tests/robotests/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetailsTest.java
index b804b228ea8..eb96d9406fa 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetailsTest.java
@@ -11,10 +11,10 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
-package com.android.settings.applications.appinfo;
+package com.android.settings.applications.specialaccess.pictureinpicture;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.nullable;
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureSettingsTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettingsTest.java
similarity index 98%
rename from tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureSettingsTest.java
rename to tests/robotests/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettingsTest.java
index eb982070174..1d1be504051 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettingsTest.java
@@ -11,10 +11,10 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
-package com.android.settings.applications.appinfo;
+package com.android.settings.applications.specialaccess.pictureinpicture;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyInt;
diff --git a/tests/robotests/src/com/android/settings/applications/PremiumSmsAccessTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccessTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/applications/PremiumSmsAccessTest.java
rename to tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccessTest.java
index e9cb6debf76..ff4ac9f954f 100644
--- a/tests/robotests/src/com/android/settings/applications/PremiumSmsAccessTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccessTest.java
@@ -11,10 +11,10 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
-package com.android.settings.applications;
+package com.android.settings.applications.specialaccess.premiumsms;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Matchers.eq;
@@ -24,6 +24,7 @@ import android.content.Context;
import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.telephony.SmsUsageMonitor;
+import com.android.settings.applications.specialaccess.premiumsms.PremiumSmsAccess;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/PremiumSmsControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsControllerTest.java
similarity index 80%
rename from tests/robotests/src/com/android/settings/applications/specialaccess/PremiumSmsControllerTest.java
rename to tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsControllerTest.java
index 8f16da7022e..35a93c1a9b6 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/PremiumSmsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsControllerTest.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.android.settings.applications.specialaccess;
+package com.android.settings.applications.specialaccess.premiumsms;
+import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
@@ -44,13 +45,13 @@ public class PremiumSmsControllerTest {
}
@Test
- public void testPremiumSms_byDefault_shouldBeShown() {
- assertThat(mController.isAvailable()).isTrue();
+ public void getAvailability_byDefault_shouldBeShown() {
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
}
@Test
@Config(qualifiers = "mcc999")
- public void testPremiumSms_ifDisabled_shouldNotBeShown() {
+ public void getAvailability_disabled_returnUnavailable() {
assertThat(mController.isAvailable()).isFalse();
}
}
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsScreenPreferenceControllerTest.java
new file mode 100644
index 00000000000..29ab15be0c1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsScreenPreferenceControllerTest.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications.specialaccess.premiumsms;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class PremiumSmsScreenPreferenceControllerTest {
+
+ private Context mContext;
+ private PremiumSmsScreenPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application.getApplicationContext());
+ mController = new PremiumSmsScreenPreferenceController(mContext, "key");
+ }
+
+ @Test
+ public void getAvailability_byDefault_shouldBeShown() {
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ @Config(qualifiers = "mcc999")
+ public void getAvailability_disabled_returnUnavailable() {
+ assertThat(mController.isAvailable()).isFalse();
+ }
+}