From 78bcb037ac8f62e2737cd37a40896f9b8f1634ca Mon Sep 17 00:00:00 2001 From: seven332 Date: Sat, 14 Jun 2014 01:49:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Google=20Analytics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AndroidManifest.xml | 4 +- res/layout/dialog.xml | 1 + res/raw/change_log | 6 +++ res/values-zh-rCN/strings.xml | 12 +++++- res/values/strings.xml | 11 ++++- res/xml/about_settings.xml | 16 +++++++ src/com/hippo/ehviewer/StartActivity.java | 43 ++++++++++++++++--- .../hippo/ehviewer/ui/AbstractActivity.java | 15 +++++++ .../ehviewer/ui/AbstractFragmentActivity.java | 14 ++++++ .../ui/AbstractPreferenceActivity.java | 14 ++++++ .../ehviewer/ui/AbstractSlidingActivity.java | 14 ++++++ .../hippo/ehviewer/ui/SettingsActivity.java | 10 +++++ src/com/hippo/ehviewer/util/Config.java | 21 +++++++++ 13 files changed, 170 insertions(+), 11 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index be64231fa..a12ec23b1 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -15,8 +15,8 @@ --> + android:versionCode="17" + android:versionName="0.5.2" > 我愿意 不! + + 数据统计 + 您是否愿意将使用情况发送给开发者?这对开发者维护该应用有很大帮助。在发送使用情况的同时也会发送部分设备信息(譬如设备型号、系统版本)。开发者承诺不收集任何个人身份信息数据(譬如姓名、电话号码、电邮地址)。\n\n数据收集过程采用 Google Analytics。\nGOOGLE ANALYTICS(分析)服务条款:http://www.google.com/analytics/terms/cn.html\nGoogle隐私权和条款:http://www.google.com/intl/zh-CN/policies\n\n您以后可以在设置中修改选择 + 检查网络 我不在意 @@ -196,11 +200,17 @@ 源码 更新 自动检查更新 - 每日第一次启动时检查更新 + 每日第一次启动时检查更新 从不自动检查更新 检查更新 点击检查更新 更新服务器 + 数据统计 + 启用数据统计 + 感谢您对本应用的支持 + 感谢您使用本应用 + 关于数据统计 + 若您启用了数据统计,本应用会将您的使用情况发送给开发者。这对开发者维护该应用有很大帮助。在发送使用情况的同时也会发送部分设备信息(譬如设备型号、系统版本)。开发者承诺不收集任何个人身份信息数据(譬如姓名、电话号码、电邮地址)。\n\n数据收集过程采用 Google Analytics。\nGOOGLE ANALYTICS(分析)服务条款:http://www.google.com/analytics/terms/cn.html\nGoogle隐私权和条款:http://www.google.com/intl/zh-CN/policies 显示 屏幕方向 diff --git a/res/values/strings.xml b/res/values/strings.xml index d725a3fa2..14b3be9da 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -26,6 +26,10 @@ Yes, I would NO ! + + Usage statistics + 您是否愿意将使用情况发送给开发者?这对开发者维护该应用有很大帮助。在发送使用情况的同时也会发送部分设备信息(譬如设备型号、系统版本)。开发者承诺不收集任何个人身份信息数据(譬如姓名、电话号码、电邮地址)。\n\n数据收集过程采用 Google Analytics。\nGOOGLE ANALYTICS(分析)服务条款:http://www.google.com/analytics/terms/us.html\nGoogle隐私权和条款:http://www.google.com/intl/us/policies\n\n您以后可以在设置中修改选择 + Checking network I don\'t care @@ -205,7 +209,12 @@ Check for update Tap to check for update Update server - + Statistics + Enable statistics + Thanks for you help + Anyway, thanks being my little hippo + About statistics + 若您启用了数据统计,本应用会将您的使用情况发送给开发者。这对开发者维护该应用有很大帮助。在发送使用情况的同时也会发送部分设备信息(譬如设备型号、系统版本)。开发者承诺不收集任何个人身份信息数据(譬如姓名、电话号码、电邮地址)。\n\n数据收集过程采用 Google Analytics。\nGOOGLE ANALYTICS(分析)服务条款:http://www.google.com/analytics/terms/cn.html\nGoogle隐私权和条款:http://www.google.com/intl/zh-CN/policies Portrait Landscape diff --git a/res/xml/about_settings.xml b/res/xml/about_settings.xml index 9dda19623..c085e4d31 100644 --- a/res/xml/about_settings.xml +++ b/res/xml/about_settings.xml @@ -64,4 +64,20 @@ + + + + + + + + \ No newline at end of file diff --git a/src/com/hippo/ehviewer/StartActivity.java b/src/com/hippo/ehviewer/StartActivity.java index 85dc8dd8f..328e7c2a0 100644 --- a/src/com/hippo/ehviewer/StartActivity.java +++ b/src/com/hippo/ehviewer/StartActivity.java @@ -42,9 +42,10 @@ import android.widget.LinearLayout; public class StartActivity extends Activity { private static final int CHECK_WARING = 0; - private static final int CHECK_NETWORK = 1; - private static final int CHECK_CRASH = 2; - private static final int CHECK_EXTERNAL_STORAGE = 3; + private static final int CHECK_ANALYTICS = 1; + private static final int CHECK_NETWORK = 2; + private static final int CHECK_CRASH = 3; + private static final int CHECK_EXTERNAL_STORAGE = 4; private String lastCrash; private boolean isAnimationOver = false; @@ -61,7 +62,7 @@ public class StartActivity extends Activity { ((AlertButton)v).dialog.dismiss(); Config.allowed(); - check(CHECK_NETWORK); + check(CHECK_ANALYTICS); } }).setNegativeButton(R.string.dailog_waring_no, new View.OnClickListener() { @@ -73,6 +74,27 @@ public class StartActivity extends Activity { }).create(); } + private AlertDialog createAllowAnalyicsDialog() { + return new DialogBuilder(this).setCancelable(false) + .setTitle(R.string.dailog_analyics_title) + .setLongMessage(R.string.dailog_analyics_plain) + .setPositiveButton(android.R.string.ok, new View.OnClickListener() { + @Override + public void onClick(View v) { + ((AlertButton)v).dialog.dismiss(); + Config.setAllowAnalyics(true); + check(CHECK_NETWORK); + } + }).setNegativeButton(android.R.string.cancel, new View.OnClickListener() { + @Override + public void onClick(View v) { + ((AlertButton)v).dialog.dismiss(); + Config.setAllowAnalyics(false); + check(CHECK_NETWORK); + } + }).create(); + } + private AlertDialog createNetworkErrorDialog() { return new DialogBuilder(this).setCancelable(false) .setTitle(R.string.error).setMessage(R.string.em_no_network) @@ -199,9 +221,10 @@ public class StartActivity extends Activity { /** * Order is * 1. check waring - * 2. check network - * 3. check crash - * 4. check external storage + * 2. check analyics + * 3. check network + * 4. check crash + * 5. check external storage * * @param order */ @@ -212,6 +235,12 @@ public class StartActivity extends Activity { createWarningDialog().show(); return; } + case CHECK_ANALYTICS: + if (!Config.getSetAnalyics()) { + Config.setSetAnalyics(true); + createAllowAnalyicsDialog().show(); + return; + } case CHECK_NETWORK: if (!isNetworkAvailable()) { createNetworkErrorDialog().show(); diff --git a/src/com/hippo/ehviewer/ui/AbstractActivity.java b/src/com/hippo/ehviewer/ui/AbstractActivity.java index 7591e53d8..aa2ad6c87 100644 --- a/src/com/hippo/ehviewer/ui/AbstractActivity.java +++ b/src/com/hippo/ehviewer/ui/AbstractActivity.java @@ -16,6 +16,7 @@ package com.hippo.ehviewer.ui; +import com.google.analytics.tracking.android.EasyTracker; import com.hippo.ehviewer.util.Config; import android.app.Activity; @@ -39,4 +40,18 @@ public abstract class AbstractActivity extends Activity { if (screenOri != getRequestedOrientation()) setRequestedOrientation(screenOri); } + + @Override + public void onStart() { + super.onStart(); + if (Config.getAllowAnalyics()) + EasyTracker.getInstance(this).activityStart(this); + } + + @Override + public void onStop() { + super.onStop(); + if (Config.getAllowAnalyics()) + EasyTracker.getInstance(this).activityStop(this); + } } diff --git a/src/com/hippo/ehviewer/ui/AbstractFragmentActivity.java b/src/com/hippo/ehviewer/ui/AbstractFragmentActivity.java index bc95ce715..0bc453b22 100644 --- a/src/com/hippo/ehviewer/ui/AbstractFragmentActivity.java +++ b/src/com/hippo/ehviewer/ui/AbstractFragmentActivity.java @@ -19,6 +19,7 @@ package com.hippo.ehviewer.ui; import android.os.Bundle; import android.support.v4.app.FragmentActivity; +import com.google.analytics.tracking.android.EasyTracker; import com.hippo.ehviewer.util.Config; public abstract class AbstractFragmentActivity extends FragmentActivity { @@ -40,4 +41,17 @@ public abstract class AbstractFragmentActivity extends FragmentActivity { setRequestedOrientation(screenOri); } + @Override + public void onStart() { + super.onStart(); + if (Config.getAllowAnalyics()) + EasyTracker.getInstance(this).activityStart(this); + } + + @Override + public void onStop() { + super.onStop(); + if (Config.getAllowAnalyics()) + EasyTracker.getInstance(this).activityStop(this); + } } diff --git a/src/com/hippo/ehviewer/ui/AbstractPreferenceActivity.java b/src/com/hippo/ehviewer/ui/AbstractPreferenceActivity.java index 76ec1c1fc..7b5bc9f59 100644 --- a/src/com/hippo/ehviewer/ui/AbstractPreferenceActivity.java +++ b/src/com/hippo/ehviewer/ui/AbstractPreferenceActivity.java @@ -16,6 +16,7 @@ package com.hippo.ehviewer.ui; +import com.google.analytics.tracking.android.EasyTracker; import com.hippo.ehviewer.util.Config; import android.os.Bundle; @@ -40,4 +41,17 @@ public class AbstractPreferenceActivity extends PreferenceActivity { setRequestedOrientation(screenOri); } + @Override + public void onStart() { + super.onStart(); + if (Config.getAllowAnalyics()) + EasyTracker.getInstance(this).activityStart(this); + } + + @Override + public void onStop() { + super.onStop(); + if (Config.getAllowAnalyics()) + EasyTracker.getInstance(this).activityStop(this); + } } diff --git a/src/com/hippo/ehviewer/ui/AbstractSlidingActivity.java b/src/com/hippo/ehviewer/ui/AbstractSlidingActivity.java index 748e9fa27..99ce9c69a 100644 --- a/src/com/hippo/ehviewer/ui/AbstractSlidingActivity.java +++ b/src/com/hippo/ehviewer/ui/AbstractSlidingActivity.java @@ -18,6 +18,7 @@ package com.hippo.ehviewer.ui; import android.os.Bundle; +import com.google.analytics.tracking.android.EasyTracker; import com.hippo.ehviewer.util.Config; import com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivity; @@ -40,4 +41,17 @@ public class AbstractSlidingActivity extends SlidingActivity { setRequestedOrientation(screenOri); } + @Override + public void onStart() { + super.onStart(); + if (Config.getAllowAnalyics()) + EasyTracker.getInstance(this).activityStart(this); + } + + @Override + public void onStop() { + super.onStop(); + if (Config.getAllowAnalyics()) + EasyTracker.getInstance(this).activityStop(this); + } } diff --git a/src/com/hippo/ehviewer/ui/SettingsActivity.java b/src/com/hippo/ehviewer/ui/SettingsActivity.java index 4af079db0..4e97fcc30 100644 --- a/src/com/hippo/ehviewer/ui/SettingsActivity.java +++ b/src/com/hippo/ehviewer/ui/SettingsActivity.java @@ -505,6 +505,7 @@ public class SettingsActivity extends AbstractPreferenceActivity { private static final String KEY_WEBSITE = "website"; private static final String KEY_SOURCE = "source"; private static final String KEY_CHECK_UPDATE = "check_for_update"; + private static final String KEY_ABOUT_ANALYICS = "about_analyics"; private Preference mAuthor; private Preference mChangelog; @@ -512,6 +513,7 @@ public class SettingsActivity extends AbstractPreferenceActivity { private Preference mWebsite; private Preference mSource; private Preference mCheckUpdate; + private Preference mAboutAnalyics; @Override public void onCreate(Bundle savedInstanceState) { @@ -530,6 +532,8 @@ public class SettingsActivity extends AbstractPreferenceActivity { mSource.setOnPreferenceClickListener(this); mCheckUpdate = (Preference)findPreference(KEY_CHECK_UPDATE); mCheckUpdate.setOnPreferenceClickListener(this); + mAboutAnalyics = (Preference)findPreference(KEY_ABOUT_ANALYICS); + mAboutAnalyics.setOnPreferenceClickListener(this); } @Override @@ -616,6 +620,12 @@ public class SettingsActivity extends AbstractPreferenceActivity { UpdateHelper.setEnabled(true); } }).checkUpdate(); + + } else if (KEY_ABOUT_ANALYICS.equals(key)) { + new DialogBuilder(mActivity).setTitle(R.string.about_analyics_title) + .setLongMessage(R.string.about_analyics_comment) + .setSimpleNegativeButton() + .create().show(); } return true; } diff --git a/src/com/hippo/ehviewer/util/Config.java b/src/com/hippo/ehviewer/util/Config.java index a46193e83..17472aa97 100644 --- a/src/com/hippo/ehviewer/util/Config.java +++ b/src/com/hippo/ehviewer/util/Config.java @@ -62,6 +62,11 @@ public class Config { private static final String KEY_DEFAULT_FAVORITE = "default_favorite"; private static final String DEFAULT_DEFAULT_FAVORITE = "-2"; + private static final String KEY_SET_ANALYTICS = "set_analyics"; + private static final boolean DEFAULT_SET_ANALYTICS = false; + private static final String KEY_ALLOW_ANALYTICS = "allow_analyics"; + private static final boolean DEFAULT_ALLOW_ANALYTICS = false; + private static boolean mInit = false; private static Context mContext; @@ -289,4 +294,20 @@ public class Config { public static void setDefaultFavorite(int defaultFavorite) { mConfigPre.edit().putString(KEY_DEFAULT_FAVORITE, String.valueOf(defaultFavorite)).apply(); } + + public static boolean getSetAnalyics() { + return mConfigPre.getBoolean(KEY_SET_ANALYTICS, DEFAULT_SET_ANALYTICS); + } + + public static void setSetAnalyics(boolean setAnalyics) { + mConfigPre.edit().putBoolean(KEY_SET_ANALYTICS, setAnalyics).apply(); + } + + public static boolean getAllowAnalyics() { + return mConfigPre.getBoolean(KEY_ALLOW_ANALYTICS, DEFAULT_ALLOW_ANALYTICS); + } + + public static void setAllowAnalyics(boolean setAnalyics) { + mConfigPre.edit().putBoolean(KEY_ALLOW_ANALYTICS, setAnalyics).apply(); + } }