package net.typeblog.shelter.ui; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceFragmentCompat; import net.typeblog.shelter.R; public class SettingsFragment extends PreferenceFragmentCompat { private static final String SETTINGS_VERSION = "settings_version"; private static final String SETTINGS_SOURCE_CODE = "settings_source_code"; private static final String SETTINGS_BUG_REPORT = "settings_bug_report"; @Override public void onCreatePreferences(Bundle bundle, String s) { addPreferencesFromResource(R.xml.preferences_settings); // Set the displayed version try { findPreference(SETTINGS_VERSION).setSummary( getContext().getPackageManager().getPackageInfo( getContext().getPackageName(), 0).versionName); } catch (PackageManager.NameNotFoundException e) { // WTF? } // Open source code url on click findPreference(SETTINGS_SOURCE_CODE) .setOnPreferenceClickListener(this::openSummaryUrl); findPreference(SETTINGS_BUG_REPORT) .setOnPreferenceClickListener(this::openSummaryUrl); } private boolean openSummaryUrl(Preference pref) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(pref.getSummary().toString())); startActivity(intent); return true; } }