Add a few pages to search index.

- Data saver
- A few special permission access pages
   - Picture-in-picture
   - Premium sms
   - do not disturb access
- And a unrelated cleanup: move EmptyTextFragment from
  notification/ to widget/

Bug: 70720645
Test: robotests
Change-Id: I6a87f712bf81f9fd32fa9a3826fba851ca748409
This commit is contained in:
Fan Zhang
2018-07-10 15:46:31 -07:00
parent dc313813e6
commit 4560ab7a35
34 changed files with 326 additions and 65 deletions

View File

@@ -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<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
final ArrayList<SearchIndexableResource> 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;
}
};
}

View File

@@ -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;
}
};

View File

@@ -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<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
final ArrayList<SearchIndexableResource> result = new ArrayList<>();
final SearchIndexableResource sir = new SearchIndexableResource(context);
sir.xmlResId = R.xml.unrestricted_data_access_settings;
result.add(sir);
return result;
}
};
}

View File

@@ -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