From 01cf1a8be4fbd50c9a737c4c4b40e271a340eae0 Mon Sep 17 00:00:00 2001 From: seven332 Date: Wed, 15 Apr 2015 16:18:17 +0800 Subject: [PATCH] Add login via cookie --- .../hippo/ehviewer/ui/SettingsActivity.java | 25 ++++++++++ app/src/main/res/layout/login_via_cookie.xml | 50 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/advanced_settings.xml | 4 ++ 4 files changed, 80 insertions(+) create mode 100644 app/src/main/res/layout/login_via_cookie.xml diff --git a/app/src/main/java/com/hippo/ehviewer/ui/SettingsActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/SettingsActivity.java index c1c35140b..22e44a378 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/SettingsActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/SettingsActivity.java @@ -687,8 +687,10 @@ public class SettingsActivity extends AbsPreferenceActivity { Preference.OnPreferenceClickListener { private static final String KEY_FIX_DIRNAME = "fix_dirname"; + private static final String KEY_LOGIN_VIA_COOKIE = "login_via_cookie"; private Preference mFixDirname; + private Preference mLoginViaCookie; @Override public void onCreate(Bundle savedInstanceState) { @@ -697,6 +699,8 @@ public class SettingsActivity extends AbsPreferenceActivity { mFixDirname = findPreference(KEY_FIX_DIRNAME); mFixDirname.setOnPreferenceClickListener(this); + mLoginViaCookie = findPreference(KEY_LOGIN_VIA_COOKIE); + mLoginViaCookie.setOnPreferenceClickListener(this); } @Override @@ -795,6 +799,27 @@ public class SettingsActivity extends AbsPreferenceActivity { }); } }.start(); + + } else if (KEY_LOGIN_VIA_COOKIE.equals(key)) { + LinearLayout ll = (LinearLayout) ViewUtils.inflateDialogView(R.layout.login_via_cookie, false); + final EditText ipbMemberId = (EditText) ll.findViewById(R.id.ipb_member_id); + final EditText ipbPassHash = (EditText) ll.findViewById(R.id.ipb_pass_hash); + + new MaterialAlertDialog.Builder(getActivity()).setTitle(R.string.hah_proxy_title) + .setView(ll, true).setPositiveButton(android.R.string.ok).setNegativeButton(android.R.string.cancel) + .setButtonListener(new MaterialAlertDialog.OnClickListener() { + @Override + public boolean onClick(MaterialAlertDialog dialog, int which) { + if (which == MaterialAlertDialog.POSITIVE) { + String id = ipbMemberId.getText().toString(); + String hash = ipbPassHash.getText().toString(); + EhInfo ehInfo = EhInfo.getInstance(getActivity()); + ehInfo.setCookie("ipb_member_id=" + id + "; ipb_pass_hash=" + hash); + ehInfo.login("User", "User"); + } + return true; + } + }).show(); } return true; } diff --git a/app/src/main/res/layout/login_via_cookie.xml b/app/src/main/res/layout/login_via_cookie.xml new file mode 100644 index 000000000..53f2ff949 --- /dev/null +++ b/app/src/main/res/layout/login_via_cookie.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 921a3932b..925adee0c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -291,6 +291,7 @@ Others Fix download folder name Download folder name will be human readable. It is OK to leave me alone. + Login via cookie Start fixing No need to fix %d item(s) fixed diff --git a/app/src/main/res/xml/advanced_settings.xml b/app/src/main/res/xml/advanced_settings.xml index 26f0d0f92..e1ab0c8c9 100644 --- a/app/src/main/res/xml/advanced_settings.xml +++ b/app/src/main/res/xml/advanced_settings.xml @@ -77,5 +77,9 @@ android:title="@string/fix_dirname_title" android:summary="@string/fix_dirname_title_summary" /> + +