diff --git a/res/layout/popular_warning.xml b/res/layout/popular_warning.xml new file mode 100644 index 000000000..205bc8ddb --- /dev/null +++ b/res/layout/popular_warning.xml @@ -0,0 +1,41 @@ + + + + + + + + + + \ No newline at end of file diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 0118fabda..bdd9a031d 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -165,6 +165,9 @@ 删除失败 设为默认收藏夹 + + 该页面中的内容基于数据统计,您尚未开启数据统计。若开启数据统计,您的行为将对该页面产生影响。是否现在开启数据统计? + 显示 主题 @@ -327,6 +330,7 @@ 感觉快要窒息了 + 不再显示 重试 本地 标签 diff --git a/res/values/strings.xml b/res/values/strings.xml index 3dfe744b2..fe430a597 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -166,6 +166,9 @@ Failed to delete Set it as default favorite + + 该页面中的内容基于数据统计,您尚未开启数据统计。若开启了数据统计,您的行为将对该页面产生影响。是否现在开启数据统计? + Display Theme @@ -334,6 +337,7 @@ DISASTER + Never show me this dialog Retry Local Tag diff --git a/src/com/hippo/ehviewer/ehclient/EhClient.java b/src/com/hippo/ehviewer/ehclient/EhClient.java index 5a8decf8f..317080b01 100644 --- a/src/com/hippo/ehviewer/ehclient/EhClient.java +++ b/src/com/hippo/ehviewer/ehclient/EhClient.java @@ -1689,7 +1689,7 @@ public class EhClient { public static int getType(String type) { int i; for (i = 0; i < CATEGORY_STRINGS.length - 1; i++) { - if (CATEGORY_STRINGS[i].equals(type)) + if (CATEGORY_STRINGS[i].equalsIgnoreCase(type)) break; } return CATEGORY_VALUES[i]; diff --git a/src/com/hippo/ehviewer/ui/MangaListActivity.java b/src/com/hippo/ehviewer/ui/MangaListActivity.java index d4dbc3070..26af8ac7d 100644 --- a/src/com/hippo/ehviewer/ui/MangaListActivity.java +++ b/src/com/hippo/ehviewer/ui/MangaListActivity.java @@ -58,6 +58,7 @@ import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import android.net.Uri; import android.os.Bundle; +import android.preference.PreferenceActivity; import android.app.ActionBar; import android.app.AlertDialog; import android.app.SearchManager; @@ -914,6 +915,38 @@ public class MangaListActivity extends AbstractGalleryActivity } } + private void showPopularWarningDialog() { + DialogBuilder db = new DialogBuilder(MangaListActivity.this). + setCancelable(false). + setView(R.layout.popular_warning, false); + db.setTitle(R.string.about_analyics_title); + ViewGroup vg = db.getCustomLayout(); + final CheckBox cb = (CheckBox)vg.findViewById(R.id.set_default); + db.setPositiveButton(android.R.string.ok, new View.OnClickListener() { + @Override + public void onClick(View v) { + ((AlertButton)v).dialog.dismiss(); + if (cb.isChecked()) + Config.setPopularWarning(false); + + Intent intent = new Intent(MangaListActivity.this, + SettingsActivity.class); + intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.AboutFragment.class.getName()); + intent.putExtra(PreferenceActivity.EXTRA_NO_HEADERS, true); + startActivity(intent); + } + }); + db.setNegativeButton(android.R.string.cancel, new View.OnClickListener() { + @Override + public void onClick(View v) { + ((AlertButton)v).dialog.dismiss(); + if (cb.isChecked()) + Config.setPopularWarning(false); + } + }); + db.create().show(); + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -1070,6 +1103,10 @@ public class MangaListActivity extends AbstractGalleryActivity refresh(true); showContent(); + + // Show dialog + if (!Config.getAllowAnalyics() && Config.getPopularWarning()) + showPopularWarningDialog(); } break; diff --git a/src/com/hippo/ehviewer/ui/SettingsActivity.java b/src/com/hippo/ehviewer/ui/SettingsActivity.java index 4e97fcc30..924e73c04 100644 --- a/src/com/hippo/ehviewer/ui/SettingsActivity.java +++ b/src/com/hippo/ehviewer/ui/SettingsActivity.java @@ -71,6 +71,12 @@ public class SettingsActivity extends AbstractPreferenceActivity { @SuppressWarnings("unused") private static String TAG = "Settings"; + public static final String KEY_FRAGMENT = "FRAGMENT"; + public static final int DEFAULT = -0x1; + public static final int DISPLAY = 0x0; + public static final int DATA = 0x1; + public static final int ABOUT = 0x2; + private SystemBarConfig mSystemBarConfig; private List mFragments; private ListView mListView; @@ -136,6 +142,17 @@ public class SettingsActivity extends AbstractPreferenceActivity { originPaddingBottom = mListView.getPaddingBottom(); adjustPadding(); + + /* + switch (savedInstanceState.getInt(KEY_FRAGMENT, DEFAULT)) { + case DISPLAY: + this.star.startPreferenceFragment(fragment, true); + break; + case DATA: + break; + case ABOUT: + break; + }*/ } @Override @@ -497,7 +514,8 @@ public class SettingsActivity extends AbstractPreferenceActivity { } public static class AboutFragment extends TranslucentPreferenceFragment - implements Preference.OnPreferenceClickListener{ + implements Preference.OnPreferenceClickListener, + Preference.OnPreferenceChangeListener { private static final String KEY_AUTHOR = "author"; private static final String KEY_CHANGELOG = "changelog"; @@ -505,6 +523,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_ALLOW_ANALYICS = "allow_analyics"; private static final String KEY_ABOUT_ANALYICS = "about_analyics"; private Preference mAuthor; @@ -513,6 +532,7 @@ public class SettingsActivity extends AbstractPreferenceActivity { private Preference mWebsite; private Preference mSource; private Preference mCheckUpdate; + private CheckBoxPreference mAllowAnalyics; private Preference mAboutAnalyics; @Override @@ -532,6 +552,8 @@ public class SettingsActivity extends AbstractPreferenceActivity { mSource.setOnPreferenceClickListener(this); mCheckUpdate = (Preference)findPreference(KEY_CHECK_UPDATE); mCheckUpdate.setOnPreferenceClickListener(this); + mAllowAnalyics = (CheckBoxPreference)findPreference(KEY_ALLOW_ANALYICS); + mAllowAnalyics.setOnPreferenceChangeListener(this); mAboutAnalyics = (Preference)findPreference(KEY_ABOUT_ANALYICS); mAboutAnalyics.setOnPreferenceClickListener(this); } @@ -629,5 +651,15 @@ public class SettingsActivity extends AbstractPreferenceActivity { } return true; } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + final String key = preference.getKey(); + if (KEY_ALLOW_ANALYICS.equals(key)) { + if (!(Boolean)newValue) + Config.setPopularWarning(true); + } + return true; + } } } diff --git a/src/com/hippo/ehviewer/util/Config.java b/src/com/hippo/ehviewer/util/Config.java index 17472aa97..b1ab9e07b 100644 --- a/src/com/hippo/ehviewer/util/Config.java +++ b/src/com/hippo/ehviewer/util/Config.java @@ -66,6 +66,8 @@ public class Config { 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 final String KEY_POPULAR_WARNING = "popular_warning"; + private static final boolean DEFAULT_POPULAR_WARNING = true; private static boolean mInit = false; @@ -309,5 +311,15 @@ public class Config { public static void setAllowAnalyics(boolean setAnalyics) { mConfigPre.edit().putBoolean(KEY_ALLOW_ANALYTICS, setAnalyics).apply(); + if (!setAnalyics) + setPopularWarning(true); + } + + public static boolean getPopularWarning() { + return mConfigPre.getBoolean(KEY_POPULAR_WARNING, DEFAULT_POPULAR_WARNING); + } + + public static void setPopularWarning(boolean popularWarning) { + mConfigPre.edit().putBoolean(KEY_POPULAR_WARNING, popularWarning).apply(); } }