package com.fastebro.androidrgbtool.settings; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import com.fastebro.androidrgbtool.R; public class AboutFragment extends PreferenceFragment { private OnPreferenceSelectedListener onPreferenceSelectedListener; public interface OnPreferenceSelectedListener { void onPreferenceWithUriSelected(Uri uri); void onPreferenceSendEmailSelected(String[] addresses, String subject); } public AboutFragment() {} @SuppressWarnings("deprecation") @Override public void onAttach(Activity activity) { super.onAttach(activity); try { onPreferenceSelectedListener = (OnPreferenceSelectedListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnPreferenceSelectedListener"); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.about); } @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { if (preference.getIntent() != null && preference.getIntent().getData() != null) { if (preference.getIntent().getAction().equals(Intent.ACTION_SENDTO)) { onPreferenceSelectedListener.onPreferenceSendEmailSelected(new String[]{preference.getIntent() .getData().toString()}, getString(R .string.app_name)); } else { onPreferenceSelectedListener.onPreferenceWithUriSelected(preference.getIntent().getData()); } return true; } return super.onPreferenceTreeClick(preferenceScreen, preference); } }