package com.lechucksoftware.proxy.proxysettings.ui.fragments; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; import com.afollestad.materialdialogs.MaterialDialog; import com.lechucksoftware.proxy.proxysettings.App; import com.lechucksoftware.proxy.proxysettings.R; import com.lechucksoftware.proxy.proxysettings.constants.AndroidMarket; import com.lechucksoftware.proxy.proxysettings.ui.activities.AboutActivity; import com.lechucksoftware.proxy.proxysettings.ui.activities.ChangeLogActivity; import com.lechucksoftware.proxy.proxysettings.ui.activities.MasterActivity; import com.lechucksoftware.proxy.proxysettings.ui.base.BaseActivity; import com.lechucksoftware.proxy.proxysettings.ui.base.BasePreferenceFragment; import com.lechucksoftware.proxy.proxysettings.ui.dialogs.likeapp.DonateDialog; import com.lechucksoftware.proxy.proxysettings.utils.UIUtils; import com.lechucksoftware.proxy.proxysettings.utils.Utils; public class HelpPrefsFragment extends BasePreferenceFragment { private Preference whatsNewPref; private Preference changeLogPref; private Preference aboutPref; private Preference sendFeedbackPref; private Preference betaTestPref; private Preference appRatePref; private Preference shareApp; private Preference contactPref; private Preference donatePref; // private Preference aboutPref; public static HelpPrefsFragment newInstance(int sectionNumber) { HelpPrefsFragment fragment = new HelpPrefsFragment(); Bundle args = new Bundle(); args.putInt(ARG_SECTION_NUMBER, sectionNumber); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.help_preferences); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = super.onCreateView(inflater, container, savedInstanceState); setHasOptionsMenu(true); changeLogPref = findPreference("pref_full_changelog"); changeLogPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { Intent i = new Intent(getActivity(), ChangeLogActivity.class); startActivity(i); return true; } }); contactPref = findPreference("pref_contact"); contactPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { // TODO: Create ContacsDialog in order to let the user decide how to contact us Utils.sendFeedbackMail(getActivity()); return true; } }); final String appVersionName = Utils.getAppVersionName(getActivity()); aboutPref = findPreference("pref_about"); aboutPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { Intent i = new Intent(getActivity(), AboutActivity.class); startActivity(i); return true; } }); aboutPref.setSummary(appVersionName); appRatePref = findPreference("pref_issues"); appRatePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/shouldit/proxy-settings/issues/new"))); return true; } }); betaTestPref = findPreference("pref_betatest"); betaTestPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { showBetaTestDialog(); return true; } }); appRatePref = findPreference("pref_rate_app"); appRatePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { Utils.startMarketActivity(getActivity()); return true; } }); donatePref = findPreference("pref_donate"); donatePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { DonateDialog.showDonateDialog((BaseActivity) getActivity()); return true; } }); // shareApp = findPreference("pref_share_app"); // shareApp.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() // { // @Override // public boolean onPreferenceClick(Preference preference) // { // // // } // }); // sendFeedbackPref = findPreference("pref_send_feedback"); // sendFeedbackPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() // { // @Override // public boolean onPreferenceClick(Preference preference) // { // Intent i = new Intent(Intent.ACTION_SEND); ////i.setType("text/plain"); //use this line for testing in the emulator // i.setType("message/rfc822"); // use from live device // i.putExtra(Intent.EXTRA_EMAIL, new String[]{"info@shouldit.net"}); // i.putExtra(Intent.EXTRA_SUBJECT, "User feedback for Proxy Settings" + appVersionName); // startActivity(i); // return true; // } // }); if (App.getInstance().activeMarket != AndroidMarket.PLAY) { getPreferenceScreen().removePreference(betaTestPref); getPreferenceScreen().removePreference(donatePref); } return v; } @Override public void onAttach(Activity activity) { super.onAttach(activity); if (activity instanceof MasterActivity) { ((MasterActivity) activity).onSectionAttached(getArguments().getInt(ARG_SECTION_NUMBER)); } } private void showBetaTestDialog() { MaterialDialog dialog = UIUtils.getBetaTestDialog(getActivity()); dialog.show(); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); MasterActivity master = (MasterActivity) getActivity(); if (master != null && !master.isDrawerOpen()) { // Only show items in the action bar relevant to this screen // if the drawer is not showing. Otherwise, let the drawer // decide what to show in the action bar. // inflater.inflate(R.menu.main, menu); master.restoreActionBar(); } } }