Merge "Prevent crash in Search from Stack overflow"

This commit is contained in:
TreeHugger Robot
2017-11-09 20:18:58 +00:00
committed by Android (Google) Code Review
5 changed files with 20 additions and 48 deletions

View File

@@ -163,15 +163,4 @@ public class ChannelImportanceSettings extends NotificationSettingsBase
mChannel.lockFields(USER_LOCKED_IMPORTANCE);
mBackend.updateChannel(mAppRow.pkg, mAppRow.uid, mChannel);
}
// This page exists per notification channel; should not be included
// in search
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(
Context context, boolean enabled) {
return null;
}
};
}

View File

@@ -208,15 +208,19 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
intent,
0 //PackageManager.MATCH_DEFAULT_ONLY
);
if (DEBUG) Log.d(TAG, "Found " + resolveInfos.size() + " preference activities"
+ (resolveInfos.size() == 0 ? " ;_;" : ""));
if (DEBUG) {
Log.d(TAG, "Found " + resolveInfos.size() + " preference activities"
+ (resolveInfos.size() == 0 ? " ;_;" : ""));
}
for (ResolveInfo ri : resolveInfos) {
final ActivityInfo activityInfo = ri.activityInfo;
final ApplicationInfo appInfo = activityInfo.applicationInfo;
if (mAppRow.settingsIntent != null) {
if (DEBUG) Log.v(TAG, "Ignoring duplicate notification preference activity ("
+ activityInfo.name + ") for package "
+ activityInfo.packageName);
if (DEBUG) {
Log.d(TAG, "Ignoring duplicate notification preference activity ("
+ activityInfo.name + ") for package "
+ activityInfo.packageName);
}
continue;
}
mAppRow.settingsIntent = intent
@@ -280,7 +284,7 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
public boolean onPreferenceChange(Preference preference,
Object o) {
boolean value = (Boolean) o;
int importance = value ? IMPORTANCE_LOW : IMPORTANCE_NONE;
int importance = value ? IMPORTANCE_LOW : IMPORTANCE_NONE;
channel.setImportance(importance);
channel.lockFields(
NotificationChannel.USER_LOCKED_IMPORTANCE);
@@ -365,8 +369,10 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
public void onReceive(Context context, Intent intent) {
String packageName = intent.getData().getSchemeSpecificPart();
if (mPkgInfo == null || TextUtils.equals(mPkgInfo.packageName, packageName)) {
if (DEBUG) Log.d(TAG, "Package (" + packageName + ") removed. Removing"
+ "NotificationSettingsBase.");
if (DEBUG) {
Log.d(TAG, "Package (" + packageName + ") removed. Removing"
+ "NotificationSettingsBase.");
}
onPackageRemoved();
}
}
@@ -380,24 +386,6 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
return left.getId().compareTo(right.getId());
};
/**
* These screens aren't searchable - they only make sense in the context of an app, so
* surfacing a generic version would be impossible.
*/
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
return new ArrayList<>();
}
@Override
public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
return getPreferenceControllers(context);
}
};
protected class ImportanceListener {
protected void onImportanceChanged() {
final PreferenceScreen screen = getPreferenceScreen();

View File

@@ -64,10 +64,6 @@ import com.android.settings.location.LocationSettings;
import com.android.settings.location.ScanningSettings;
import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.nfc.PaymentSettings;
import com.android.settings.notification.AppNotificationSettings;
import com.android.settings.notification.ChannelGroupNotificationSettings;
import com.android.settings.notification.ChannelImportanceSettings;
import com.android.settings.notification.ChannelNotificationSettings;
import com.android.settings.notification.ConfigureNotificationSettings;
import com.android.settings.notification.SoundSettings;
import com.android.settings.notification.ZenModeAutomationSettings;
@@ -161,7 +157,6 @@ public final class SearchIndexableResources {
addIndex(TtsEnginePreferenceFragment.class);
addIndex(MagnificationPreferenceFragment.class);
addIndex(AccessibilityShortcutPreferenceFragment.class);
addIndex(ChannelImportanceSettings.class);
addIndex(DreamSettings.class);
addIndex(SupportDashboardActivity.class);
addIndex(AutomaticStorageManagerSettings.class);
@@ -171,10 +166,6 @@ public final class SearchIndexableResources {
addIndex(LockscreenDashboardFragment.class);
addIndex(ZenModeBehaviorSettings.class);
addIndex(ZenModeAutomationSettings.class);
addIndex(AppNotificationSettings.class);
addIndex(ChannelNotificationSettings.class);
addIndex(ChannelImportanceSettings.class);
addIndex(ChannelGroupNotificationSettings.class);
}
private SearchIndexableResources() {

View File

@@ -7,6 +7,10 @@ com.android.settings.fuelgauge.AdvancedPowerUsageDetail
com.android.settings.development.featureflags.FeatureFlagsDashboard
com.android.settings.development.qstile.DevelopmentTileConfigFragment
com.android.settings.deviceinfo.StorageProfileFragment
com.android.settings.notification.ChannelNotificationSettings
com.android.settings.notification.ChannelImportanceSettings
com.android.settings.notification.ChannelGroupNotificationSettings
com.android.settings.notification.AppNotificationSettings
com.android.settings.wifi.details.WifiNetworkDetailsFragment
com.android.settings.wifi.p2p.WifiP2pSettings
com.android.settings.enterprise.ApplicationListFragment$AdminGrantedPermissionCamera
@@ -15,4 +19,4 @@ com.android.settings.enterprise.ApplicationListFragment$AdminGrantedPermissionMi
com.android.settings.enterprise.ApplicationListFragment$EnterpriseInstalledPackages
com.android.settings.enterprise.EnterpriseSetDefaultAppsListFragment
com.android.settings.wifi.tether.WifiTetherSettings
com.android.settings.wifi.SavedAccessPointsWifiSettings
com.android.settings.wifi.SavedAccessPointsWifiSettings

View File

@@ -79,4 +79,4 @@ com.android.settings.IccLockSettings
com.android.settings.TetherSettings
com.android.settings.ApnEditor
com.android.settings.UserCredentialsSettings
com.android.settings.TestingSettings
com.android.settings.TestingSettings