package org.bookdash.android.presentation.settings; import android.content.Intent; import android.os.Bundle; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceFragmentCompat; import org.bookdash.android.Injection; import org.bookdash.android.R; import org.bookdash.android.data.settings.SettingsApiImpl; import java.util.ArrayList; import za.co.riggaroo.materialhelptutorial.TutorialItem; import za.co.riggaroo.materialhelptutorial.tutorial.MaterialTutorialActivity; public class SettingsFragment extends PreferenceFragmentCompat implements SettingsContract.View { public static final String TUTORIAL_DISPLAY_KEY = "tutorial_display_key"; SettingsPresenter presenter; @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { presenter = new SettingsPresenter(Injection.provideTutorialRepo(getContext()), Injection.provideAnalytics(), Injection.provideSettingsRepo(getContext())); presenter.attachView(this); addPreferencesFromResource(R.xml.app_preferences); setupTutorialDisplayPreference(); setupNewBookNotificationPreference(); } private void setupTutorialDisplayPreference() { Preference tutorialPreferenceItem = findPreference(TUTORIAL_DISPLAY_KEY); tutorialPreferenceItem.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { presenter.openTutorialScreen(); return true; } }); } private void setupNewBookNotificationPreference() { Preference notificationPreference = findPreference(SettingsApiImpl.PREF_IS_SUBSCRIBED_NEW_BOOK_NOTIFICATIONS); notificationPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(final Preference preference, final Object newValue) { presenter.setNewBookNotificationSubscriptionStatus((Boolean) newValue); return true; } }); } @Override public void showTutorialScreen(ArrayList<TutorialItem> tutorialItems) { Intent mainAct = new Intent(getContext(), MaterialTutorialActivity.class); mainAct.putParcelableArrayListExtra(MaterialTutorialActivity.MATERIAL_TUTORIAL_ARG_TUTORIAL_ITEMS, tutorialItems); startActivity(mainAct); } }