package com.xabber.android.ui.preferences; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import com.xabber.android.R; import com.xabber.android.data.account.AccountItem; import com.xabber.android.data.account.AccountManager; import com.xabber.android.data.entity.AccountJid; import com.xabber.android.data.log.LogManager; import com.xabber.android.ui.activity.PreferenceSummaryHelperActivity; import java.util.Collection; public class SecuritySettingsFragment extends android.preference.PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener { private static final String LOG_TAG = SecuritySettingsFragment.class.getSimpleName(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preference_security); PreferenceSummaryHelperActivity.updateSummary(getPreferenceScreen()); } @Override public void onResume() { super.onResume(); PreferenceManager.getDefaultSharedPreferences(getActivity()) .registerOnSharedPreferenceChangeListener(this); } @Override public void onPause() { super.onPause(); PreferenceManager.getDefaultSharedPreferences(getActivity()) .unregisterOnSharedPreferenceChangeListener(this); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals(getString(R.string.security_check_certificate_key))) { boolean checkCertificate = sharedPreferences.getBoolean(key, getResources().getBoolean(R.bool.security_check_certificate_default)); LogManager.i(LOG_TAG, "Check certificate preference changed. new value " + checkCertificate); // reconnect all enabled account to apply and check changes Collection<AccountJid> enabledAccounts = AccountManager.getInstance().getAllAccounts(); for (AccountJid accountJid : enabledAccounts) { AccountItem accountItem = AccountManager.getInstance().getAccount(accountJid); if (accountItem != null) { accountItem.recreateConnection(); } } } } }