类android.preference.TwoStatePreference源码实例Demo

下面列出了怎么用android.preference.TwoStatePreference的API类实例代码及写法,或者点击链接到github查看源代码。

@TargetApi(Build.VERSION_CODES.M)
private boolean checkPermissions(String name) {
    PreferenceScreen screen = getPreferenceScreen();
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

    // Check if permission was revoked
    if ((name == null || "disable_on_call".equals(name)) && prefs.getBoolean("disable_on_call", false))
        if (!Util.hasPhoneStatePermission(this)) {
            prefs.edit().putBoolean("disable_on_call", false).apply();
            ((TwoStatePreference) screen.findPreference("disable_on_call")).setChecked(false);

            requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CALL);

            if (name != null)
                return false;
        }

    return true;
}
 
@Override
public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
    if (TextUtils.equals(key, PREF_ACCOUNT_NAME)) {
        refreshSyncSettingsUI();
    } else if (TextUtils.equals(key, PREF_ENABLE_CLOUD_SYNC)) {
        mEnableSyncPreference = (TwoStatePreference) findPreference(PREF_ENABLE_SYNC_NOW);
        final boolean syncEnabled = prefs.getBoolean(PREF_ENABLE_CLOUD_SYNC, false);
        if (isSyncEnabled()) {
            mEnableSyncPreference.setSummary(getString(R.string.cloud_sync_summary));
        } else {
            mEnableSyncPreference.setSummary(getString(R.string.cloud_sync_summary_disabled));
        }
        AccountStateChangedListener.onSyncPreferenceChanged(getSignedInAccountName(),
                syncEnabled);
    }
}
 
@Override
public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
    if (TextUtils.equals(key, PREF_ACCOUNT_NAME)) {
        refreshSyncSettingsUI();
    } else if (TextUtils.equals(key, PREF_ENABLE_CLOUD_SYNC)) {
        mEnableSyncPreference = (TwoStatePreference) findPreference(PREF_ENABLE_SYNC_NOW);
        final boolean syncEnabled = prefs.getBoolean(PREF_ENABLE_CLOUD_SYNC, false);
        if (isSyncEnabled()) {
            mEnableSyncPreference.setSummary(getString(R.string.cloud_sync_summary));
        } else {
            mEnableSyncPreference.setSummary(getString(R.string.cloud_sync_summary_disabled));
        }
        AccountStateChangedListener.onSyncPreferenceChanged(getSignedInAccountName(),
                syncEnabled);
    }
}
 
源代码4 项目: go-bees   文件: MonitoringSettingsFragment.java
/**
 * Update monitoring preference.
 *
 * @param preference preference to update.
 * @param value      new value.
 */
private void updatePreference(Preference preference, Object value) {
    // Get value if not passed
    Object newVal;
    if (value == null) {
        if (preference instanceof VNTNumberPickerPreference) {
            newVal = PreferenceManager.getDefaultSharedPreferences(preference.getContext())
                    .getInt(preference.getKey(), Integer.parseInt(preference.getSummary().toString()));
        } else if (preference instanceof TwoStatePreference) {
            newVal = PreferenceManager.getDefaultSharedPreferences(preference.getContext())
                    .getBoolean(preference.getKey(), true);
        } else {
            newVal = PreferenceManager.getDefaultSharedPreferences(preference.getContext())
                    .getString(preference.getKey(), "");
        }
    } else {
        newVal = value;
    }
    // Update preference
    updateAlgorithm(preference, newVal);
    updateSummary(preference, newVal);
}
 
源代码5 项目: Noyze   文件: ConfigurationActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Accountant.getInstance(getActivity());
    getActivity().setTitle(getString(R.string.labs_title));
    addPreferencesFromResource(R.xml.lab_preferences);

    // Set whether the preference should be checked or not.
    Preference pref = findPreference("MediaControllerService");

    // For builds other than KitKat, hide RemoteController API.
    if (null != pref) pref.setOnPreferenceChangeListener(this);

    // Add out listeners and state change stuff.
    if (pref instanceof TwoStatePreference) {
        notifPref = (TwoStatePreference) pref;
        updateNotifPref();
    }
}
 
源代码6 项目: NetGuard   文件: ActivitySettings.java
@TargetApi(Build.VERSION_CODES.M)
private boolean checkPermissions(String name) {
    PreferenceScreen screen = getPreferenceScreen();
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

    // Check if permission was revoked
    if ((name == null || "disable_on_call".equals(name)) && prefs.getBoolean("disable_on_call", false))
        if (!Util.hasPhoneStatePermission(this)) {
            prefs.edit().putBoolean("disable_on_call", false).apply();
            ((TwoStatePreference) screen.findPreference("disable_on_call")).setChecked(false);

            requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_CALL);

            if (name != null)
                return false;
        }

    return true;
}
 
源代码7 项目: Noyze   文件: ConfigurationActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Accountant.getInstance(getActivity());
    getActivity().setTitle(getString(R.string.labs_title));
    addPreferencesFromResource(R.xml.lab_preferences);

    // Set whether the preference should be checked or not.
    Preference pref = findPreference("MediaControllerService");

    // For builds other than KitKat, hide RemoteController API.
    if (null != pref) pref.setOnPreferenceChangeListener(this);

    // Add out listeners and state change stuff.
    if (pref instanceof TwoStatePreference) {
        notifPref = (TwoStatePreference) pref;
        updateNotifPref();
    }
}
 
源代码8 项目: Indic-Keyboard   文件: AccountsSettingsFragment.java
@Override
public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
    if (TextUtils.equals(key, PREF_ACCOUNT_NAME)) {
        refreshSyncSettingsUI();
    } else if (TextUtils.equals(key, PREF_ENABLE_CLOUD_SYNC)) {
        mEnableSyncPreference = (TwoStatePreference) findPreference(PREF_ENABLE_SYNC_NOW);
        final boolean syncEnabled = prefs.getBoolean(PREF_ENABLE_CLOUD_SYNC, false);
        if (isSyncEnabled()) {
            mEnableSyncPreference.setSummary(getString(R.string.cloud_sync_summary));
        } else {
            mEnableSyncPreference.setSummary(getString(R.string.cloud_sync_summary_disabled));
        }
        AccountStateChangedListener.onSyncPreferenceChanged(getSignedInAccountName(),
                syncEnabled);
    }
}
 
源代码9 项目: openboard   文件: DebugSettingsFragment.java
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    addPreferencesFromResource(R.xml.prefs_screen_debug);

    if (!Settings.SHOULD_SHOW_LXX_SUGGESTION_UI) {
        removePreference(DebugSettings.PREF_SHOULD_SHOW_LXX_SUGGESTION_UI);
    }

    final PreferenceGroup dictDumpPreferenceGroup =
            (PreferenceGroup)findPreference(PREF_KEY_DUMP_DICTS);
    for (final String dictName : DictionaryFacilitatorImpl.DICT_TYPE_TO_CLASS.keySet()) {
        final Preference pref = new DictDumpPreference(getActivity(), dictName);
        pref.setOnPreferenceClickListener(this);
        dictDumpPreferenceGroup.addPreference(pref);
    }
    final Resources res = getResources();
    setupKeyPreviewAnimationDuration(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_DURATION,
            res.getInteger(R.integer.config_key_preview_show_up_duration));
    setupKeyPreviewAnimationDuration(DebugSettings.PREF_KEY_PREVIEW_DISMISS_DURATION,
            res.getInteger(R.integer.config_key_preview_dismiss_duration));
    final float defaultKeyPreviewShowUpStartScale = ResourceUtils.getFloatFromFraction(
            res, R.fraction.config_key_preview_show_up_start_scale);
    final float defaultKeyPreviewDismissEndScale = ResourceUtils.getFloatFromFraction(
            res, R.fraction.config_key_preview_dismiss_end_scale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_X_SCALE,
            defaultKeyPreviewShowUpStartScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_Y_SCALE,
            defaultKeyPreviewShowUpStartScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_X_SCALE,
            defaultKeyPreviewDismissEndScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_Y_SCALE,
            defaultKeyPreviewDismissEndScale);
    setupKeyboardHeight(
            DebugSettings.PREF_KEYBOARD_HEIGHT_SCALE, SettingsValues.DEFAULT_SIZE_SCALE);

    mServiceNeedsRestart = false;
    mDebugMode = (TwoStatePreference) findPreference(DebugSettings.PREF_DEBUG_MODE);
    updateDebugMode();
}
 
源代码10 项目: tracker-control-android   文件: ActivitySettings.java
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    PreferenceScreen screen = getPreferenceScreen();
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

    boolean granted = (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED);

    if (requestCode == REQUEST_CALL) {
        prefs.edit().putBoolean("disable_on_call", granted).apply();
        ((TwoStatePreference) screen.findPreference("disable_on_call")).setChecked(granted);
    }

    if (granted)
        ServiceSinkhole.reload("permission granted", this, false);
}
 
@Override
public void onCreate(final Bundle icicle) {
    super.onCreate(icicle);
    addPreferencesFromResource(R.xml.prefs_screen_accounts);

    mAccountSwitcher = findPreference(PREF_ACCCOUNT_SWITCHER);
    mEnableSyncPreference = (TwoStatePreference) findPreference(PREF_ENABLE_SYNC_NOW);
    mSyncNowPreference = findPreference(PREF_SYNC_NOW);
    mClearSyncDataPreference = findPreference(PREF_CLEAR_SYNC_DATA);

    if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) {
        final Preference enableMetricsLogging =
                findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
        final Resources res = getResources();
        if (enableMetricsLogging != null) {
            final String enableMetricsLoggingTitle = res.getString(
                    R.string.enable_metrics_logging, getApplicationName());
            enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
        }
    } else {
        removePreference(Settings.PREF_ENABLE_METRICS_LOGGING);
    }

    if (!ProductionFlags.ENABLE_USER_HISTORY_DICTIONARY_SYNC) {
        removeSyncPreferences();
    } else {
        // Disable by default till we are sure we can enable this.
        disableSyncPreferences();
        new ManagedProfileCheckerTask(this).execute();
    }
}
 
@Override
public boolean onPreferenceClick(final Preference preference) {
    final TwoStatePreference syncPreference = (TwoStatePreference) preference;
    if (syncPreference.isChecked()) {
        // Uncheck for now.
        syncPreference.setChecked(false);

        // Show opt-in.
        final AlertDialog optInDialog = new AlertDialog.Builder(getActivity())
                .setTitle(R.string.cloud_sync_title)
                .setMessage(R.string.cloud_sync_opt_in_text)
                .setPositiveButton(R.string.account_select_ok,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(final DialogInterface dialog,
                                                final int which) {
                                if (which == DialogInterface.BUTTON_POSITIVE) {
                                    final Context context = getActivity();
                                    final String[] accountsForLogin =
                                            LoginAccountUtils.getAccountsForLogin(context);
                                    createAccountPicker(accountsForLogin,
                                            getSignedInAccountName(),
                                            new AccountChangedListener(syncPreference))
                                            .show();
                                }
                            }
                })
                .setNegativeButton(R.string.cloud_sync_cancel, null)
                .create();
        optInDialog.setOnShowListener(this);
        optInDialog.show();
    }
    return true;
}
 
源代码13 项目: Android-Keyboard   文件: DebugSettingsFragment.java
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    addPreferencesFromResource(R.xml.prefs_screen_debug);

    if (!Settings.SHOULD_SHOW_LXX_SUGGESTION_UI) {
        removePreference(DebugSettings.PREF_SHOULD_SHOW_LXX_SUGGESTION_UI);
    }

    final PreferenceGroup dictDumpPreferenceGroup =
            (PreferenceGroup)findPreference(PREF_KEY_DUMP_DICTS);
    for (final String dictName : DictionaryFacilitatorImpl.DICT_TYPE_TO_CLASS.keySet()) {
        final Preference pref = new DictDumpPreference(getActivity(), dictName);
        pref.setOnPreferenceClickListener(this);
        dictDumpPreferenceGroup.addPreference(pref);
    }
    final Resources res = getResources();
    setupKeyPreviewAnimationDuration(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_DURATION,
            res.getInteger(R.integer.config_key_preview_show_up_duration));
    setupKeyPreviewAnimationDuration(DebugSettings.PREF_KEY_PREVIEW_DISMISS_DURATION,
            res.getInteger(R.integer.config_key_preview_dismiss_duration));
    final float defaultKeyPreviewShowUpStartScale = ResourceUtils.getFloatFromFraction(
            res, R.fraction.config_key_preview_show_up_start_scale);
    final float defaultKeyPreviewDismissEndScale = ResourceUtils.getFloatFromFraction(
            res, R.fraction.config_key_preview_dismiss_end_scale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_X_SCALE,
            defaultKeyPreviewShowUpStartScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_Y_SCALE,
            defaultKeyPreviewShowUpStartScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_X_SCALE,
            defaultKeyPreviewDismissEndScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_Y_SCALE,
            defaultKeyPreviewDismissEndScale);
    setupKeyboardHeight(
            DebugSettings.PREF_KEYBOARD_HEIGHT_SCALE, SettingsValues.DEFAULT_SIZE_SCALE);

    mServiceNeedsRestart = false;
    mDebugMode = (TwoStatePreference) findPreference(DebugSettings.PREF_DEBUG_MODE);
    updateDebugMode();
}
 
@Override
public void onCreate(final Bundle icicle) {
    super.onCreate(icicle);
    addPreferencesFromResource(R.xml.prefs_screen_accounts);

    mAccountSwitcher = findPreference(PREF_ACCCOUNT_SWITCHER);
    mEnableSyncPreference = (TwoStatePreference) findPreference(PREF_ENABLE_SYNC_NOW);
    mSyncNowPreference = findPreference(PREF_SYNC_NOW);
    mClearSyncDataPreference = findPreference(PREF_CLEAR_SYNC_DATA);

    if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) {
        final Preference enableMetricsLogging =
                findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
        final Resources res = getResources();
        if (enableMetricsLogging != null) {
            final String enableMetricsLoggingTitle = res.getString(
                    R.string.enable_metrics_logging, getApplicationName());
            enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
        }
    } else {
        removePreference(Settings.PREF_ENABLE_METRICS_LOGGING);
    }

    if (!ProductionFlags.ENABLE_USER_HISTORY_DICTIONARY_SYNC) {
        removeSyncPreferences();
    } else {
        // Disable by default till we are sure we can enable this.
        disableSyncPreferences();
        new ManagedProfileCheckerTask(this).execute();
    }
}
 
@Override
public boolean onPreferenceClick(final Preference preference) {
    final TwoStatePreference syncPreference = (TwoStatePreference) preference;
    if (syncPreference.isChecked()) {
        // Uncheck for now.
        syncPreference.setChecked(false);

        // Show opt-in.
        final AlertDialog optInDialog = new AlertDialog.Builder(getActivity())
                .setTitle(R.string.cloud_sync_title)
                .setMessage(R.string.cloud_sync_opt_in_text)
                .setPositiveButton(R.string.account_select_ok,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(final DialogInterface dialog,
                                                final int which) {
                                if (which == DialogInterface.BUTTON_POSITIVE) {
                                    final Context context = getActivity();
                                    final String[] accountsForLogin =
                                            LoginAccountUtils.getAccountsForLogin(context);
                                    createAccountPicker(accountsForLogin,
                                            getSignedInAccountName(),
                                            new AccountChangedListener(syncPreference))
                                            .show();
                                }
                            }
                })
                .setNegativeButton(R.string.cloud_sync_cancel, null)
                .create();
        optInDialog.setOnShowListener(this);
        optInDialog.show();
    }
    return true;
}
 
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    addPreferencesFromResource(R.xml.prefs_screen_debug);

    if (!Settings.SHOULD_SHOW_LXX_SUGGESTION_UI) {
        removePreference(DebugSettings.PREF_SHOULD_SHOW_LXX_SUGGESTION_UI);
    }

    final PreferenceGroup dictDumpPreferenceGroup =
            (PreferenceGroup)findPreference(PREF_KEY_DUMP_DICTS);
    for (final String dictName : DictionaryFacilitatorImpl.DICT_TYPE_TO_CLASS.keySet()) {
        final Preference pref = new DictDumpPreference(getActivity(), dictName);
        pref.setOnPreferenceClickListener(this);
        dictDumpPreferenceGroup.addPreference(pref);
    }
    final Resources res = getResources();
    setupKeyPreviewAnimationDuration(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_DURATION,
            res.getInteger(R.integer.config_key_preview_show_up_duration));
    setupKeyPreviewAnimationDuration(DebugSettings.PREF_KEY_PREVIEW_DISMISS_DURATION,
            res.getInteger(R.integer.config_key_preview_dismiss_duration));
    final float defaultKeyPreviewShowUpStartScale = ResourceUtils.getFloatFromFraction(
            res, R.fraction.config_key_preview_show_up_start_scale);
    final float defaultKeyPreviewDismissEndScale = ResourceUtils.getFloatFromFraction(
            res, R.fraction.config_key_preview_dismiss_end_scale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_X_SCALE,
            defaultKeyPreviewShowUpStartScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_Y_SCALE,
            defaultKeyPreviewShowUpStartScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_X_SCALE,
            defaultKeyPreviewDismissEndScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_Y_SCALE,
            defaultKeyPreviewDismissEndScale);
    setupKeyboardHeight(
            DebugSettings.PREF_KEYBOARD_HEIGHT_SCALE, SettingsValues.DEFAULT_SIZE_SCALE);

    mServiceNeedsRestart = false;
    mDebugMode = (TwoStatePreference) findPreference(DebugSettings.PREF_DEBUG_MODE);
    updateDebugMode();
}
 
源代码17 项目: always-on-amoled   文件: SettingsFragment.java
private void updateSpecialPreferences() {
    if (shouldEnableNotificationsAlerts && checkNotificationsPermission(context, false)) {
        ((TwoStatePreference) findPreference("notifications_alerts")).setChecked(true);
    }
    if (((MaterialListPreference) findPreference("stop_delay")).getValue().equals("0"))
        findPreference("stop_delay").setSummary(R.string.settings_stop_delay_desc);
    else
        findPreference("stop_delay").setSummary("%s");
    findPreference("watchface_clock").setSummary(context.getResources().getStringArray(R.array.customize_clock)[prefs.clockStyle]);
    findPreference("watchface_date").setSummary(context.getResources().getStringArray(R.array.customize_date)[prefs.dateStyle]);
    findPreference("greenify_enabled").setSummary(isPackageInstalled("com.oasisfeng.greenify") ? context.getString(R.string.settings_greenify_integration_desc) : context.getString(R.string.settings_greenify_integration_desc_not_found));
    if (!isPackageInstalled("com.oasisfeng.greenify")) {
        ((SwitchPreference) findPreference("greenify_enabled")).setChecked(false);
    }
}
 
源代码18 项目: More-For-GO   文件: SettingsFragment.java
private void updatePermissionsBasedPreferences() {
    if (!hasDrawingPermission())
        ((TwoStatePreference) findPreference("overlay")).setChecked(false);
    else if (shouldAllowOverlay)
        ((TwoStatePreference) findPreference("overlay")).setChecked(true);

    if (!hasModifySettingsPermission())
        ((TwoStatePreference) findPreference("dim")).setChecked(false);
    else if (shouldAllowDim)
        ((TwoStatePreference) findPreference("dim")).setChecked(true);

    if (!hasDrawingPermission())
        ((TwoStatePreference) findPreference("show_fab")).setChecked(false);
    else if (shouldAllowFab)
        ((TwoStatePreference) findPreference("show_fab")).setChecked(true);

    if (!hasModifySettingsPermission())
        ((TwoStatePreference) findPreference("maximize_brightness")).setChecked(false);
    else if (shouldAllowMaximizeBrightness)
        ((TwoStatePreference) findPreference("maximize_brightness")).setChecked(true);

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        findPreference("screen_of_proximity").setEnabled(false);
        ((TwoStatePreference) findPreference("screen_of_proximity")).setChecked(false);
    }
    if (!hasModifySecurePermission())
        ((TwoStatePreference) findPreference("extreme_battery_saver")).setChecked(false);
}
 
源代码19 项目: island   文件: SettingsActivity.java
@Override public void onCreate(final Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	final TwoStatePreference pref_show_admin_message = (TwoStatePreference) findPreference(getString(R.string.key_show_admin_message));
	final DevicePolicies policies;
	if (SDK_INT >= N && (policies = new DevicePolicies(getActivity())).isActiveDeviceOwner()) {
		pref_show_admin_message.setChecked(policies.invoke(DevicePolicyManager::getShortSupportMessage) != null);
		pref_show_admin_message.setOnPreferenceChangeListener((pref, value) -> {
			final boolean enabled = value == Boolean.TRUE;
			policies.execute(DevicePolicyManager::setShortSupportMessage, enabled ? getText(R.string.device_admin_support_message_short) : null);
			policies.execute(DevicePolicyManager::setLongSupportMessage, enabled ? getText(R.string.device_admin_support_message_long) : null);
			return true;
		});
	} else if (pref_show_admin_message != null) removeLeafPreference(getPreferenceScreen(), pref_show_admin_message);
}
 
源代码20 项目: NetGuard   文件: ActivitySettings.java
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    PreferenceScreen screen = getPreferenceScreen();
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

    boolean granted = (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED);

    if (requestCode == REQUEST_CALL) {
        prefs.edit().putBoolean("disable_on_call", granted).apply();
        ((TwoStatePreference) screen.findPreference("disable_on_call")).setChecked(granted);
    }

    if (granted)
        ServiceSinkhole.reload("permission granted", this, false);
}
 
源代码21 项目: Dashchan   文件: BasePreferenceFragment.java
@Override
public boolean checkDependency(Preference dependencyPreference) {
	if (dependencyPreference instanceof TwoStatePreference) {
		return ((TwoStatePreference) dependencyPreference).isChecked() == positive;
	}
	return false;
}
 
源代码22 项目: AcDisplay   文件: PreferenceFragment.java
/**
 * {@inheritDoc}
 */
@Override
public void setValue(@NonNull Preference preference,
                     @NonNull ConfigBase.Option option,
                     @NonNull Object value) {
    TwoStatePreference cbp = (TwoStatePreference) preference;
    cbp.setChecked((Boolean) value);
}
 
源代码23 项目: Indic-Keyboard   文件: AccountsSettingsFragment.java
@Override
public void onCreate(final Bundle icicle) {
    super.onCreate(icicle);
    addPreferencesFromResource(R.xml.prefs_screen_accounts);

    mAccountSwitcher = findPreference(PREF_ACCCOUNT_SWITCHER);
    mEnableSyncPreference = (TwoStatePreference) findPreference(PREF_ENABLE_SYNC_NOW);
    mSyncNowPreference = findPreference(PREF_SYNC_NOW);
    mClearSyncDataPreference = findPreference(PREF_CLEAR_SYNC_DATA);

    if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) {
        final Preference enableMetricsLogging =
                findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
        final Resources res = getResources();
        if (enableMetricsLogging != null) {
            final String enableMetricsLoggingTitle = res.getString(
                    R.string.enable_metrics_logging, getApplicationName());
            enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
        }
    } else {
        removePreference(Settings.PREF_ENABLE_METRICS_LOGGING);
    }

    if (!ProductionFlags.ENABLE_USER_HISTORY_DICTIONARY_SYNC) {
        removeSyncPreferences();
    } else {
        // Disable by default till we are sure we can enable this.
        disableSyncPreferences();
        new ManagedProfileCheckerTask(this).execute();
    }
}
 
源代码24 项目: Indic-Keyboard   文件: AccountsSettingsFragment.java
@Override
public boolean onPreferenceClick(final Preference preference) {
    final TwoStatePreference syncPreference = (TwoStatePreference) preference;
    if (syncPreference.isChecked()) {
        // Uncheck for now.
        syncPreference.setChecked(false);

        // Show opt-in.
        final AlertDialog optInDialog = new AlertDialog.Builder(getActivity())
                .setTitle(R.string.cloud_sync_title)
                .setMessage(R.string.cloud_sync_opt_in_text)
                .setPositiveButton(R.string.account_select_ok,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(final DialogInterface dialog,
                                                final int which) {
                                if (which == DialogInterface.BUTTON_POSITIVE) {
                                    final Context context = getActivity();
                                    final String[] accountsForLogin =
                                            LoginAccountUtils.getAccountsForLogin(context);
                                    createAccountPicker(accountsForLogin,
                                            getSignedInAccountName(),
                                            new AccountChangedListener(syncPreference))
                                            .show();
                                }
                            }
                })
                .setNegativeButton(R.string.cloud_sync_cancel, null)
                .create();
        optInDialog.setOnShowListener(this);
        optInDialog.show();
    }
    return true;
}
 
源代码25 项目: Indic-Keyboard   文件: DebugSettingsFragment.java
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    addPreferencesFromResource(R.xml.prefs_screen_debug);

    if (!Settings.SHOULD_SHOW_LXX_SUGGESTION_UI) {
        removePreference(DebugSettings.PREF_SHOULD_SHOW_LXX_SUGGESTION_UI);
    }

    final PreferenceGroup dictDumpPreferenceGroup =
            (PreferenceGroup)findPreference(PREF_KEY_DUMP_DICTS);
    for (final String dictName : DictionaryFacilitatorImpl.DICT_TYPE_TO_CLASS.keySet()) {
        final Preference pref = new DictDumpPreference(getActivity(), dictName);
        pref.setOnPreferenceClickListener(this);
        dictDumpPreferenceGroup.addPreference(pref);
    }
    final Resources res = getResources();
    setupKeyPreviewAnimationDuration(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_DURATION,
            res.getInteger(R.integer.config_key_preview_show_up_duration));
    setupKeyPreviewAnimationDuration(DebugSettings.PREF_KEY_PREVIEW_DISMISS_DURATION,
            res.getInteger(R.integer.config_key_preview_dismiss_duration));
    final float defaultKeyPreviewShowUpStartScale = ResourceUtils.getFloatFromFraction(
            res, R.fraction.config_key_preview_show_up_start_scale);
    final float defaultKeyPreviewDismissEndScale = ResourceUtils.getFloatFromFraction(
            res, R.fraction.config_key_preview_dismiss_end_scale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_X_SCALE,
            defaultKeyPreviewShowUpStartScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_Y_SCALE,
            defaultKeyPreviewShowUpStartScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_X_SCALE,
            defaultKeyPreviewDismissEndScale);
    setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_Y_SCALE,
            defaultKeyPreviewDismissEndScale);

    mServiceNeedsRestart = false;
    mDebugMode = (TwoStatePreference) findPreference(DebugSettings.PREF_DEBUG_MODE);
    updateDebugMode();
}
 
AccountChangedListener(final TwoStatePreference dependentPreference) {
    mDependentPreference = dependentPreference;
}
 
AccountChangedListener(final TwoStatePreference dependentPreference) {
    mDependentPreference = dependentPreference;
}
 
源代码28 项目: MiPushFramework   文件: ManageSpaceActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.fragmented_preferences);

    Context context = getActivity();

    //Too bad in ui thread

    //TODO: Three messages seem to be too much, and need separate strings for toast.
    getPreferenceScreen().findPreference("clear_history").setOnPreferenceClickListener(preference -> {
        Toast.makeText(context, getString(R.string.settings_clear_history) + getString(R.string.start), Toast.LENGTH_SHORT).show();
        EventDb.deleteHistory(context, null);
        Toast.makeText(context, getString(R.string.settings_clear_history) + getString(R.string.end), Toast.LENGTH_SHORT).show();
        return true;
    });

    getPreferenceScreen().findPreference("clear_log").setOnPreferenceClickListener(preference -> {
        Toast.makeText(context, getString(R.string.settings_clear_log) + getString(R.string.start), Toast.LENGTH_SHORT).show();
        LogUtils.clearLog(context);
        Toast.makeText(context, getString(R.string.settings_clear_log) + getString(R.string.end), Toast.LENGTH_SHORT).show();
        return true;
    });


    getPreferenceScreen().findPreference("mock_notification").setOnPreferenceClickListener(preference -> {
        String packageName = Constants.MANAGER_APP_NAME;
        Date date = new Date();
        String title = context.getString(R.string.debug_test_title);
        String description = context.getString(R.string.debug_test_content) + date.toString();
        NotificationController.test(context, packageName, title, description);
        return true;
    });


    PackageManager pm = context.getPackageManager();
    ComponentName componentName = new ComponentName(Constants.SERVICE_APP_NAME, EmptyActivity.OnePlus.class.getName());
    boolean disabled = pm.getComponentEnabledSetting(componentName) == COMPONENT_ENABLED_STATE_DISABLED;

    TwoStatePreference preferencePushIcon = (TwoStatePreference) getPreferenceScreen().findPreference("activity_push_icon");
    preferencePushIcon.setChecked(!disabled);
    preferencePushIcon.setOnPreferenceClickListener(preference -> {
        TwoStatePreference switchPreference = (TwoStatePreference) preference;
        boolean enableLauncher = switchPreference.isChecked();
        pm.setComponentEnabledSetting(componentName,
                enableLauncher ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : COMPONENT_ENABLED_STATE_DISABLED,
                PackageManager.DONT_KILL_APP);
        return true;
    });

    Preference iceboxSupported = getPreferenceScreen().findPreference("IceboxSupported");
    if (!Utils.isAppInstalled(IceBox.PACKAGE_NAME)) {
        iceboxSupported.setEnabled(false);
        iceboxSupported.setTitle(R.string.settings_icebox_not_installed);
    } else {
        iceboxSupported.setOnPreferenceChangeListener((preference, newValue) -> {
            Boolean value = (Boolean) newValue;
            if (value) {
                if (ContextCompat.checkSelfPermission(getActivity(), IceBox.SDK_PERMISSION) != PackageManager.PERMISSION_GRANTED) {
                    ActivityCompat.requestPermissions(getActivity(), new String[]{IceBox.SDK_PERMISSION}, 0x233);
                } else {
                    Toast.makeText(context, getString(R.string.icebox_permission_granted), Toast.LENGTH_SHORT).show();
                }
            }
            return true;
        });

    }


}
 
源代码29 项目: always-on-amoled   文件: SettingsFragment.java
@Override
public boolean onPreferenceChange(final Preference preference, Object o) {
    prefs.apply();
    Utils.logDebug("Preference change", preference.getKey() + " Value:" + o.toString());

    if (preference.getKey().equals("notifications_alerts")) {
        if ((boolean) o)
            return checkNotificationsPermission(context, true);
        return true;
    }
    if (preference.getKey().equals("raise_to_wake")) {
        if (!Utils.hasFingerprintSensor(context))
            askDeviceAdmin(R.string.settings_raise_to_wake_device_admin);
        restartService();
    }
    if (preference.getKey().equals("stop_delay"))
        if (!Utils.hasFingerprintSensor(context))
            askDeviceAdmin(R.string.settings_raise_to_wake_device_admin);
    if (preference.getKey().equals("persistent_notification") && !(boolean) o) {
        Snackbar.make(rootView, R.string.warning_1_harm_performance, 10000).setAction(R.string.action_revert, v -> {
            ((CheckBoxPreference) preference).setChecked(true);
            restartService();
        }).show();
        restartService();
    }
    if (preference.getKey().equals("enabled")) {
        context.sendBroadcast(new Intent(TOGGLED));
        restartService();
    }
    if (preference.getKey().equals("proximity_to_lock")) {
        if (Shell.SU.available() || (Utils.isAndroidNewerThanL() && !Build.MANUFACTURER.equalsIgnoreCase("samsung")))
            return true;
        else {
            DevicePolicyManager mDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
            if ((mDPM != null && mDPM.isAdminActive(mAdminName))) {
                return true;
            }
            new AlertDialog.Builder(getActivity()).setTitle(getString(android.R.string.dialog_alert_title) + "!")
                    .setMessage(getString(R.string.warning_7_disable_fingerprint))
                    .setPositiveButton(getString(android.R.string.yes), (dialogInterface, i) -> {
                        askDeviceAdmin(R.string.settings_raise_to_wake_device_admin);
                    })
                    .setNegativeButton(getString(android.R.string.no), (dialogInterface, i) -> {
                        dialogInterface.dismiss();
                    })
                    .show();
            return false;
        }
    }
    if (preference.getKey().equals("startafterlock") && !(boolean) o)
        Snackbar.make(rootView, R.string.warning_4_device_not_secured, 10000).setAction(R.string.action_revert, v -> ((CheckBoxPreference) preference).setChecked(true)).show();
    if (preference.getKey().equals("doze_mode") && (boolean) o) {
        if (Shell.SU.available()) {
            if (!DozeManager.isDumpPermissionGranted(context))
                DozeManager.grantPermission(context, "android.permission.DUMP");
            if (!DozeManager.isDevicePowerPermissionGranted(context))
                DozeManager.grantPermission(context, "android.permission.DEVICE_POWER");
            return true;
        }
        Snackbar.make(rootView, R.string.warning_11_no_root, Snackbar.LENGTH_LONG).show();
        return false;
    }
    if (preference.getKey().equals("greenify_enabled") && (boolean) o) {
        if (!isPackageInstalled("com.oasisfeng.greenify")) {
            openPlayStoreUrl("com.oasisfeng.greenify", context);
            return false;
        }
    }
    if (preference.getKey().equals("camera_shortcut") || preference.getKey().equals("google_now_shortcut")) {
        try {
            if (!hasUsageAccess()) {
                Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
                PackageManager packageManager = getActivity().getPackageManager();
                if (intent.resolveActivity(packageManager) != null) {
                    startActivity(intent);
                } else {
                    Toast.makeText(context, "Please grant usage access permission manually for the app, your device can't do it automatically.", Toast.LENGTH_LONG).show();
                }
                return false;
            }
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
    }
    if (preference.getKey().equals("battery_saver"))
        if ((boolean) o) {
            ((TwoStatePreference) findPreference("doze_mode")).setChecked(true);
            setUpBatterySaverPermission();
        }
    return true;
}
 
源代码30 项目: Indic-Keyboard   文件: AccountsSettingsFragment.java
AccountChangedListener(final TwoStatePreference dependentPreference) {
    mDependentPreference = dependentPreference;
}