/* * Copyright (C) 2012 The CyanogenMod Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.jieehd.villain.toolkit.stats; import android.app.AlertDialog; import android.app.Dialog; import android.app.NotificationManager; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; import android.preference.PreferenceScreen; import com.jieehd.villain.toolkit.R; @SuppressWarnings("deprecation") public class AnonymousStats extends PreferenceActivity implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener, Preference.OnPreferenceChangeListener { private static final String VIEW_STATS = "pref_view_stats"; protected static final String ANONYMOUS_OPT_IN = "pref_anonymous_opt_in"; protected static final String ANONYMOUS_FIRST_BOOT = "pref_anonymous_first_boot"; protected static final String ANONYMOUS_LAST_CHECKED = "pref_anonymous_checked_in"; protected static final String ANONYMOUS_ALARM_SET = "pref_anonymous_alarm_set"; protected static final String ANONYMOUS_REPORTED_VERSION = "pref_anonymous_reported_version"; private CheckBoxPreference mEnableReporting; private Preference mViewStats; private Dialog mOkDialog; private boolean mOkClicked; private SharedPreferences mPrefs; private Context cx; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getPreferenceManager() != null) { addPreferencesFromResource(R.xml.annonymous_stats); PreferenceScreen prefSet = getPreferenceScreen(); mPrefs = this.getSharedPreferences("VRToolkit", Context.MODE_PRIVATE); mEnableReporting = (CheckBoxPreference) prefSet.findPreference(ANONYMOUS_OPT_IN); mViewStats = (Preference) prefSet.findPreference(VIEW_STATS); boolean firstBoot = mPrefs.getBoolean(ANONYMOUS_FIRST_BOOT, true); if (mEnableReporting.isChecked() && firstBoot) { mPrefs.edit().putBoolean(ANONYMOUS_FIRST_BOOT, false).apply(); ReportingServiceManager.launchService(cx); } NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); nm.cancel(1); } Preference view = (Preference) findPreference("preview"); view.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { // TODO Auto-generated method stub Intent i = new Intent(AnonymousStats.this, PreviewData.class); startActivity(i); return false; } }); } @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { if (preference == mEnableReporting) { if (mEnableReporting.isChecked()) { // Display the confirmation dialog mOkClicked = false; if (mOkDialog != null) { mOkDialog.dismiss(); mOkDialog = null; } mOkDialog = new AlertDialog.Builder(AnonymousStats.this).setMessage("Stats") .setTitle("About") .setIconAttribute(android.R.attr.alertDialogIcon) .setPositiveButton(android.R.string.yes, this) .setNeutralButton(("Learn More"), this) .setNegativeButton(android.R.string.no, this) .show(); mOkDialog.setOnDismissListener(this); } else { // Disable reporting mPrefs.edit().putBoolean(ANONYMOUS_OPT_IN, false).apply(); } } else if (preference == mViewStats) { // will add later Uri uri = Uri.parse(""); startActivity(new Intent(Intent.ACTION_VIEW, uri)); } else { // If we didn't handle it, let preferences handle it. return super.onPreferenceTreeClick(preferenceScreen, preference); } return true; } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { return false; } @Override public void onDismiss(DialogInterface dialog) { if (!mOkClicked) { mEnableReporting.setChecked(false); } } @Override public void onClick(DialogInterface dialog, int which) { if (which == DialogInterface.BUTTON_POSITIVE) { mOkClicked = true; mPrefs.edit().putBoolean(ANONYMOUS_OPT_IN, true).apply(); cx = getApplicationContext(); ReportingServiceManager.launchService(cx); } else if (which == DialogInterface.BUTTON_NEGATIVE){ mEnableReporting.setChecked(false); } else { //will add later Uri uri = Uri.parse(""); startActivity(new Intent(Intent.ACTION_VIEW, uri)); } } }