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); mChannel.lockFields(USER_LOCKED_IMPORTANCE);
mBackend.updateChannel(mAppRow.pkg, mAppRow.uid, mChannel); 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, intent,
0 //PackageManager.MATCH_DEFAULT_ONLY 0 //PackageManager.MATCH_DEFAULT_ONLY
); );
if (DEBUG) Log.d(TAG, "Found " + resolveInfos.size() + " preference activities" if (DEBUG) {
+ (resolveInfos.size() == 0 ? " ;_;" : "")); Log.d(TAG, "Found " + resolveInfos.size() + " preference activities"
+ (resolveInfos.size() == 0 ? " ;_;" : ""));
}
for (ResolveInfo ri : resolveInfos) { for (ResolveInfo ri : resolveInfos) {
final ActivityInfo activityInfo = ri.activityInfo; final ActivityInfo activityInfo = ri.activityInfo;
final ApplicationInfo appInfo = activityInfo.applicationInfo; final ApplicationInfo appInfo = activityInfo.applicationInfo;
if (mAppRow.settingsIntent != null) { if (mAppRow.settingsIntent != null) {
if (DEBUG) Log.v(TAG, "Ignoring duplicate notification preference activity (" if (DEBUG) {
+ activityInfo.name + ") for package " Log.d(TAG, "Ignoring duplicate notification preference activity ("
+ activityInfo.packageName); + activityInfo.name + ") for package "
+ activityInfo.packageName);
}
continue; continue;
} }
mAppRow.settingsIntent = intent mAppRow.settingsIntent = intent
@@ -280,7 +284,7 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
public boolean onPreferenceChange(Preference preference, public boolean onPreferenceChange(Preference preference,
Object o) { Object o) {
boolean value = (Boolean) o; boolean value = (Boolean) o;
int importance = value ? IMPORTANCE_LOW : IMPORTANCE_NONE; int importance = value ? IMPORTANCE_LOW : IMPORTANCE_NONE;
channel.setImportance(importance); channel.setImportance(importance);
channel.lockFields( channel.lockFields(
NotificationChannel.USER_LOCKED_IMPORTANCE); NotificationChannel.USER_LOCKED_IMPORTANCE);
@@ -365,8 +369,10 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
String packageName = intent.getData().getSchemeSpecificPart(); String packageName = intent.getData().getSchemeSpecificPart();
if (mPkgInfo == null || TextUtils.equals(mPkgInfo.packageName, packageName)) { if (mPkgInfo == null || TextUtils.equals(mPkgInfo.packageName, packageName)) {
if (DEBUG) Log.d(TAG, "Package (" + packageName + ") removed. Removing" if (DEBUG) {
+ "NotificationSettingsBase."); Log.d(TAG, "Package (" + packageName + ") removed. Removing"
+ "NotificationSettingsBase.");
}
onPackageRemoved(); onPackageRemoved();
} }
} }
@@ -380,24 +386,6 @@ abstract public class NotificationSettingsBase extends DashboardFragment {
return left.getId().compareTo(right.getId()); 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 class ImportanceListener {
protected void onImportanceChanged() { protected void onImportanceChanged() {
final PreferenceScreen screen = getPreferenceScreen(); 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.location.ScanningSettings;
import com.android.settings.network.NetworkDashboardFragment; import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.nfc.PaymentSettings; 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.ConfigureNotificationSettings;
import com.android.settings.notification.SoundSettings; import com.android.settings.notification.SoundSettings;
import com.android.settings.notification.ZenModeAutomationSettings; import com.android.settings.notification.ZenModeAutomationSettings;
@@ -161,7 +157,6 @@ public final class SearchIndexableResources {
addIndex(TtsEnginePreferenceFragment.class); addIndex(TtsEnginePreferenceFragment.class);
addIndex(MagnificationPreferenceFragment.class); addIndex(MagnificationPreferenceFragment.class);
addIndex(AccessibilityShortcutPreferenceFragment.class); addIndex(AccessibilityShortcutPreferenceFragment.class);
addIndex(ChannelImportanceSettings.class);
addIndex(DreamSettings.class); addIndex(DreamSettings.class);
addIndex(SupportDashboardActivity.class); addIndex(SupportDashboardActivity.class);
addIndex(AutomaticStorageManagerSettings.class); addIndex(AutomaticStorageManagerSettings.class);
@@ -171,10 +166,6 @@ public final class SearchIndexableResources {
addIndex(LockscreenDashboardFragment.class); addIndex(LockscreenDashboardFragment.class);
addIndex(ZenModeBehaviorSettings.class); addIndex(ZenModeBehaviorSettings.class);
addIndex(ZenModeAutomationSettings.class); addIndex(ZenModeAutomationSettings.class);
addIndex(AppNotificationSettings.class);
addIndex(ChannelNotificationSettings.class);
addIndex(ChannelImportanceSettings.class);
addIndex(ChannelGroupNotificationSettings.class);
} }
private SearchIndexableResources() { private SearchIndexableResources() {

View File

@@ -7,6 +7,10 @@ com.android.settings.fuelgauge.AdvancedPowerUsageDetail
com.android.settings.development.featureflags.FeatureFlagsDashboard com.android.settings.development.featureflags.FeatureFlagsDashboard
com.android.settings.development.qstile.DevelopmentTileConfigFragment com.android.settings.development.qstile.DevelopmentTileConfigFragment
com.android.settings.deviceinfo.StorageProfileFragment 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.details.WifiNetworkDetailsFragment
com.android.settings.wifi.p2p.WifiP2pSettings com.android.settings.wifi.p2p.WifiP2pSettings
com.android.settings.enterprise.ApplicationListFragment$AdminGrantedPermissionCamera com.android.settings.enterprise.ApplicationListFragment$AdminGrantedPermissionCamera