コード例 #1
0
  @Override
  public boolean onPreferenceChange(Preference preference, Object newValue) {
    // CrashDumpUploadPreference listens to its own PreferenceChanged to update its text.
    // We have replaced the listener. If we do run into a CrashDumpUploadPreference change,
    // we will call onPreferenceChange to change the displayed text.
    if (preference instanceof CrashDumpUploadPreference) {
      ((CrashDumpUploadPreference) preference).onPreferenceChange(preference, newValue);
    }

    // NetworkPredictionPreference listens to its own PreferenceChanged to update its text.
    // We have replaced the listener. If we do run into a NetworkPredictionPreference change,
    // we will call onPreferenceChange to change the displayed text.
    if (preference instanceof NetworkPredictionPreference) {
      ((NetworkPredictionPreference) preference).onPreferenceChange(preference, newValue);
    }

    String key = preference.getKey();
    if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
      PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
    } else if (PREF_SAFE_BROWSING.equals(key)) {
      PrefServiceBridge.getInstance().setSafeBrowsingEnabled((boolean) newValue);
    } else if (PREF_SAFE_BROWSING_EXTENDED_REPORTING.equals(key)) {
      PrefServiceBridge.getInstance().setSafeBrowsingExtendedReportingEnabled((boolean) newValue);
    } else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
      PrefServiceBridge.getInstance()
          .setNetworkPredictionOptions(NetworkPredictionOptions.stringToEnum((String) newValue));
      PrecacheLauncher.updatePrecachingEnabled(getActivity());
    } else if (PREF_NETWORK_PREDICTIONS_NO_CELLULAR.equals(key)) {
      PrefServiceBridge.getInstance()
          .setNetworkPredictionOptions(
              (boolean) newValue
                  ? NetworkPredictionOptions.NETWORK_PREDICTION_ALWAYS
                  : NetworkPredictionOptions.NETWORK_PREDICTION_NEVER);
      PrecacheLauncher.updatePrecachingEnabled(getActivity());
    } else if (PREF_NAVIGATION_ERROR.equals(key)) {
      PrefServiceBridge.getInstance().setResolveNavigationErrorEnabled((boolean) newValue);
    } else if (PREF_CRASH_DUMP_UPLOAD_NO_CELLULAR.equals(key)) {
      PrefServiceBridge.getInstance().setCrashReporting((boolean) newValue);
    } else if (PREF_CRASH_DUMP_UPLOAD.equals(key)) {
      PrivacyPreferencesManager.getInstance(getActivity()).setUploadCrashDump((String) newValue);
    }

    return true;
  }