OSDN Git Service

Settings: Update Anonymous Stats Implementation.
authorAdnan Begovic <adnan@cyngn.com>
Thu, 23 Apr 2015 22:40:01 +0000 (15:40 -0700)
committerAdnan Begovic <adnan@cyngn.com>
Mon, 23 Nov 2015 22:26:11 +0000 (14:26 -0800)
Change-Id: I0347b4401563acff1a9f488cde5d53bb76b02c10

AndroidManifest.xml
res/xml/anonymous_stats.xml
res/xml/privacy_settings_cyanogenmod.xml
src/com/android/settings/cmstats/AnonymousStats.java

index 2ec10e0..0d51f3e 100644 (file)
                 android:value="true" />
         </activity>
 
-        <activity android:name="Settings$AnonymousStatsActivity"
-                android:label="@string/anonymous_statistics_title"
-                android:configChanges="orientation|keyboardHidden|screenSize"
-                android:clearTaskOnLaunch="true">
-            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.cmstats.AnonymousStats" />
-        </activity>
-
         <!-- Keep compatibility with old shortcuts. -->
         <activity-alias android:name=".wifi.WifiSettings"
                 android:taskAffinity="com.android.settings"
index 6c4621e..7cc5875 100644 (file)
     android:title="@string/anonymous_statistics_title"
     xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
 
-    <CheckBoxPreference
-        android:key="pref_anonymous_opt_in"
-        android:defaultValue="true"
-        android:title="@string/enable_reporting_title" />
+    <com.android.settings.cyanogenmod.SecureSettingSwitchPreference
+            android:key="stats_collection"
+            android:title="@string/stats_collection_title"
+            android:summary="@string/stats_collection_summary"
+            android:defaultValue="true" />
 
     <PreferenceScreen
         android:title="@string/preview_data_title"
         android:fragment="com.android.settings.cmstats.PreviewData" />
 
-    <Preference
-        android:key="pref_view_stats"
-        android:title="@string/view_stats_title" />
-
 </PreferenceScreen>
index efdfb6f..bbb508c 100644 (file)
@@ -33,5 +33,6 @@
             android:title="@string/block_notifications_title"
             android:summary="@string/block_notifications_summary"
             android:fragment="com.android.settings.cyanogenmod.SpamList" />
+        </Preference>
 
 </PreferenceScreen>
index 4f1e10a..8a90ffe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012 The CyanogenMod Project
+ * Copyright (C) 2015 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.
 
 package com.android.settings.cmstats;
 
-import android.app.AlertDialog;
-import android.app.Dialog;
 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.PreferenceScreen;
+
 
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 
-public class AnonymousStats extends SettingsPreferenceFragment implements
-        DialogInterface.OnClickListener, DialogInterface.OnDismissListener,
-        Preference.OnPreferenceChangeListener {
-    private static final String VIEW_STATS = "pref_view_stats";
-
+public class AnonymousStats extends SettingsPreferenceFragment {
     private static final String PREF_FILE_NAME = "CMStats";
     /* package */ static final String ANONYMOUS_OPT_IN = "pref_anonymous_opt_in";
     /* package */ static final String ANONYMOUS_LAST_CHECKED = "pref_anonymous_checked_in";
 
-    private CheckBoxPreference mEnableReporting;
-    private Preference mViewStats;
-
-    private Dialog mOkDialog;
-    private boolean mOkClicked;
-
-    private SharedPreferences mPrefs;
-
     public static SharedPreferences getPreferences(Context context) {
         return context.getSharedPreferences(PREF_FILE_NAME, 0);
     }
@@ -55,72 +36,6 @@ public class AnonymousStats extends SettingsPreferenceFragment implements
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
         addPreferencesFromResource(R.xml.anonymous_stats);
-
-        mPrefs = getPreferences(getActivity());
-
-        PreferenceScreen prefSet = getPreferenceScreen();
-        mEnableReporting = (CheckBoxPreference) prefSet.findPreference(ANONYMOUS_OPT_IN);
-        mViewStats = (Preference) prefSet.findPreference(VIEW_STATS);
-    }
-
-    @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 = new AlertDialog.Builder(getActivity())
-                        .setMessage(R.string.anonymous_statistics_warning)
-                        .setTitle(R.string.anonymous_statistics_warning_title)
-                        .setIcon(android.R.drawable.ic_dialog_alert)
-                        .setPositiveButton(android.R.string.yes, this)
-                        .setNeutralButton(R.string.anonymous_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) {
-            // Display the stats page
-            Uri uri = Uri.parse("http://stats.cyanogenmod.org");
-            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();
-            ReportingServiceManager.launchService(getActivity());
-        } else if (which == DialogInterface.BUTTON_NEGATIVE) {
-            mEnableReporting.setChecked(false);
-        } else {
-            Uri uri = Uri.parse("http://www.cyanogenmod.org/blog/cmstats-what-it-is-and-why-you-should-opt-in");
-            startActivity(new Intent(Intent.ACTION_VIEW, uri));
-        }
     }
 }