package com.nilhcem.bblfr.ui.settings; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceCategory; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; import com.nilhcem.bblfr.BBLApplication; import com.nilhcem.bblfr.R; import com.nilhcem.bblfr.core.prefs.Preferences; import com.nilhcem.bblfr.core.utils.AppUtils; import com.nilhcem.bblfr.core.utils.IntentUtils; import javax.inject.Inject; import timber.log.Timber; public class SettingsFragment extends PreferenceFragment { @Inject Preferences mPrefs; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); BBLApplication.get(getActivity()).component().inject(this); PreferenceManager manager = getPreferenceManager(); manager.setSharedPreferencesName(Preferences.PREFS_NAME); manager.setSharedPreferencesMode(Context.MODE_PRIVATE); addPreferencesFromResource(R.xml.preferences); initMode(); initVersion(); initRateApp(); initPreferenceLink("prefs_dev_link"); initPreferenceLink("prefs_bblfr_link"); initPreferenceLink("prefs_sources_link"); } private void initMode() { Preference modePref = findPreference("prefs_mode"); modePref.setTitle(getString(R.string.settings_data_hr_title)); modePref.setSummary(getString(mPrefs.isUsingHrMode() ? R.string.settings_data_hr_leave_summary : R.string.settings_data_hr_enter_summary)); modePref.setOnPreferenceClickListener(preference -> { Timber.d("Change mode"); mPrefs.toggleMode(); Activity context = getActivity(); context.finish(); IntentUtils.restartApp(context); return true; }); } private void initVersion() { findPreference("prefs_app_version").setSummary(AppUtils.getVersion()); } private void initRateApp() { Preference ratePref = findPreference("prefs_rate_link"); if (AppUtils.wasInstalledFromGooglePlay(getActivity())) { ratePref.setOnPreferenceClickListener(preference -> { IntentUtils.startGooglePlayIntent(getActivity()); return true; }); } else { ((PreferenceCategory) findPreference("prefs_about")).removePreference(ratePref); } } private void initPreferenceLink(String prefName) { findPreference(prefName).setOnPreferenceClickListener(preference -> { IntentUtils.startSiteIntent(getActivity(), preference.getSummary().toString()); return true; }); } }