package com.jparkie.aizoban.views.fragments; import android.content.Context; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceFragment; import android.support.v7.app.ActionBarActivity; import android.widget.Toast; import com.jparkie.aizoban.R; import com.jparkie.aizoban.presenters.SettingsPresenter; import com.jparkie.aizoban.presenters.SettingsPresenterImpl; import com.jparkie.aizoban.presenters.mapper.SettingsMapper; import com.jparkie.aizoban.views.SettingsView; public class SettingsFragment extends PreferenceFragment implements SettingsView, SettingsMapper, Preference.OnPreferenceClickListener { public static final String TAG = SettingsFragment.class.getSimpleName(); private SettingsPresenter mSettingsPresenter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mSettingsPresenter = new SettingsPresenterImpl(this, this); addPreferencesFromResource(R.xml.preferences); findPreference(getString(R.string.preference_view_google_play_key)).setOnPreferenceClickListener(this); findPreference(getString(R.string.preference_view_disclaimer_key)).setOnPreferenceClickListener(this); findPreference(getString(R.string.preference_clear_latest_key)).setOnPreferenceClickListener(this); findPreference(getString(R.string.preference_clear_favourite_key)).setOnPreferenceClickListener(this); findPreference(getString(R.string.preference_clear_recent_key)).setOnPreferenceClickListener(this); findPreference(getString(R.string.preference_clear_image_cache_key)).setOnPreferenceClickListener(this); findPreference(getString(R.string.preference_view_open_source_licenses_key)).setOnPreferenceClickListener(this); mSettingsPresenter.initializeDownloadDirectory(); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mSettingsPresenter.initializeViews(); } // SettingsView: @Override public void initializeToolbar() { if (getActivity() instanceof ActionBarActivity) { ((ActionBarActivity)getActivity()).getSupportActionBar().setTitle(R.string.fragment_settings); ((ActionBarActivity)getActivity()).getSupportActionBar().setSubtitle(null); } } @Override public void toastClearedLatest() { Toast.makeText(getActivity(), R.string.toast_cleared_latest, Toast.LENGTH_SHORT).show(); } @Override public void toastClearedFavourite() { Toast.makeText(getActivity(), R.string.toast_cleared_favourite, Toast.LENGTH_SHORT).show(); } @Override public void toastClearedRecent() { Toast.makeText(getActivity(), R.string.toast_cleared_recent, Toast.LENGTH_SHORT).show(); } @Override public void toastClearedImageCache() { Toast.makeText(getActivity(), R.string.toast_cleared_image_cache, Toast.LENGTH_SHORT).show(); } @Override public void toastExternalStorageError() { Toast.makeText(getActivity(), R.string.toast_external_storage_error, Toast.LENGTH_SHORT).show(); } @Override public Context getContext() { return getActivity(); } // SettingsMapper: @Override public ListPreference getDownloadStoragePreference() { return (ListPreference)findPreference(getString(R.string.preference_download_storage_key)); } // Preference.OnPreferenceClickListener: @Override public boolean onPreferenceClick(Preference preference) { return mSettingsPresenter.onPreferenceClick(preference); } }