Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4c1b594 authored by Adnan Begovic's avatar Adnan Begovic Committed by Steve Kondik
Browse files

Settings: Update Anonymous Stats Implementation.

Change-Id: I0347b4401563acff1a9f488cde5d53bb76b02c10
parent a43ff2c9
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -182,14 +182,6 @@
                android:resource="@id/wifi_settings" />
        </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"
+5 −8
Original line number Diff line number Diff line
@@ -19,17 +19,14 @@
    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>
+0 −6
Original line number Diff line number Diff line
@@ -29,12 +29,6 @@
            android:summary="@string/blacklist_summary"
            android:fragment="com.android.settings.blacklist.BlacklistSettings" />

        <com.android.settings.cyanogenmod.SecureSettingSwitchPreference
            android:key="stats_collection"
            android:title="@string/stats_collection_title"
            android:summary="@string/stats_collection_summary"
            android:defaultValue="true" />

        <Preference
            android:key="whisperpush"
            android:title="@string/whisperpush_title"
+3 −88
Original line number Diff line number Diff line
/*
 * 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.
@@ -16,38 +16,19 @@

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));
        }
    }
}