/* * Copyright (C) 2016 Glucosio Foundation * * This file is part of Glucosio. * * Glucosio is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3. * * Glucosio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Glucosio. If not, see <http://www.gnu.org/licenses/>. * * */ package org.glucosio.android.activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import android.widget.Toast; import java.util.Locale; import org.glucosio.android.GlucosioApplication; import org.glucosio.android.R; import org.glucosio.android.analytics.Analytics; import org.glucosio.android.tools.network.GlucosioExternalLinks; import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper; public class AboutActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.preferences_about); getFragmentManager().beginTransaction() .replace(R.id.aboutPreferencesFrame, new MyPreferenceFragment()).commit(); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(getString(R.string.preferences_about_glucosio)); } public boolean onOptionsItemSelected(MenuItem item) { finish(); return true; } @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); } public static class MyPreferenceFragment extends PreferenceFragment { @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.about_preference); final Preference licencesPref = (Preference) findPreference("preference_licences"); final Preference ratePref = (Preference) findPreference("preference_rate"); final Preference feedbackPref = (Preference) findPreference("preference_feedback"); final Preference privacyPref = (Preference) findPreference("preference_privacy"); final Preference termsPref = (Preference) findPreference("preference_terms"); final Preference versionPref = (Preference) findPreference("preference_version"); final Preference thanksPref = (Preference) findPreference("preference_thanks"); termsPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { ExternalLinkActivity.launch( getActivity(), getString(R.string.preferences_terms), GlucosioExternalLinks.TERMS); addTermsAnalyticsEvent("Glucosio Terms opened"); return false; } }); licencesPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { ExternalLinkActivity.launch( getActivity(), getString(R.string.preferences_licences_open), GlucosioExternalLinks.LICENSES); addTermsAnalyticsEvent("Glucosio Licence opened"); return false; } }); ratePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=org.glucosio.android")); startActivity(intent); return false; } }); feedbackPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { // Open email intent Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:hello@glucosio.org")); boolean activityExists = emailIntent.resolveActivityInfo(getActivity().getPackageManager(), 0) != null; if (activityExists) { startActivity(emailIntent); } else { Toast.makeText(getActivity().getApplicationContext(), getResources().getString(R.string.menu_support_error1), Toast.LENGTH_LONG).show(); } return false; } }); privacyPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { ExternalLinkActivity.launch( getActivity(), getString(R.string.preferences_privacy), GlucosioExternalLinks.PRIVACY); addTermsAnalyticsEvent("Glucosio Privacy opened"); return false; } }); thanksPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { ExternalLinkActivity.launch( getActivity(), getString(R.string.preferences_contributors), GlucosioExternalLinks.THANKS); addTermsAnalyticsEvent("Glucosio Contributors opened"); return false; } }); versionPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { int easterEggCount; @Override public boolean onPreferenceClick(Preference preference) { if (easterEggCount == 6) { String uri = String.format(Locale.ENGLISH, "geo:%f,%f", 40.794010, 17.124583); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); getActivity().startActivity(intent); easterEggCount = 0; } else { this.easterEggCount = easterEggCount + 1; } return false; } }); } private void addTermsAnalyticsEvent(String action) { Analytics analytics = ((GlucosioApplication) getActivity().getApplication()).getAnalytics(); analytics.reportAction("Preferences", action); } } }