Add H@H support

This commit is contained in:
seven332 committed 2015-03-26 23:36:23 +08:00
1 parent 6b6c50f8cc
commit 0a2c442b75
10 files changed
+286 -83

No files matched your search

@@ -21,6 +21,7 @@ import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.util.Config;
@@ -76,6 +77,11 @@ public class EhInfo {
private String mPreviewMode;
private int mExculdeTagGroup;
private String mExculdeLanguage;
private String mHAHIp;
private String mHAHPort;
private String mHAHPasskey;
private static EhInfo sInstance;
private BitmapDrawable getAvatarFromFile() {
@@ -110,16 +116,28 @@ public class EhInfo {
mPreviewMode = Config.getPreviewMode();
mExculdeTagGroup = Config.getExculdeTagGroup();
mExculdeLanguage = Config.getExculdeLanguage();
mHAHIp = Config.getHAHIp();
mHAHPort = Config.getHAHPort();
mHAHPasskey = Config.getHAHPasskey();
updateUconfig();
};
}
private String getUconfigString(String previewMode) {
return new StringBuilder().append("cats_").append(mDefaultCat)
.append("-ts_").append(previewMode == null ? mPreviewMode : previewMode)
.append("-xns_").append(mExculdeTagGroup)
.append("-xl_").append(mExculdeLanguage)
.append("-tl_m-uh_y-tr_2-prn_n-dm_l-ar_0-rc_0-rx_0-ry_0-sa_y-oi_n-qb_n-tf_n-hp_-hk_-ms_n-mt_n")
.toString();
String proxy;
if (TextUtils.isEmpty(mHAHIp) || TextUtils.isEmpty(mHAHPort)) {
proxy = "";
} else {
proxy = mHAHIp + "%3A" + mHAHPort;
}
return "cats_" + mDefaultCat
+ "-ts_" + (previewMode == null ? mPreviewMode : previewMode)
+ "-xns_" + mExculdeTagGroup
+ "-xl_" + mExculdeLanguage
+ "-hp_" + proxy
+ "-hk_" + mHAHPasskey
+ "-prn_" + (TextUtils.isEmpty(proxy) ? "n" : "y")
+ "-tl_m-uh_y-tr_2-dm_l-ar_0-rc_0-rx_0-ry_0-sa_y-oi_n-qb_n-tf_n-ms_n-mt_n";
}
private void updateUconfig() {
@@ -186,6 +204,7 @@ public class EhInfo {
// Fake
sb.append("; igneous=");
sb.append("; lv=");
conn.setRequestProperty("Cookie", sb.toString());
}
@@ -266,4 +285,11 @@ public class EhInfo {
mExculdeLanguage = exculdeLanguage;
updateUconfig();
}
public void setHAHProxy(String ip, String port, String passkey) {
mHAHIp = ip;
mHAHPort = port;
mHAHPasskey = passkey;
updateUconfig();
}
}
@@ -198,6 +198,7 @@ public class SettingsActivity extends AbsPreferenceActivity {
private static final String KEY_CLEAR_SUGGESTIONS = "clear_suggestions";
private static final String KEY_PREVIEW_MODE = "preview_mode";
private static final String KEY_DEFAULT_FAVORITE = "default_favorite";
private static final String KEY_HAH_PROXY = "hah_proxy";
private Preference mListDefaultCategory;
private Preference mExculdeTagGroup;
@@ -205,6 +206,7 @@ public class SettingsActivity extends AbsPreferenceActivity {
private Preference mClearSuggestions;
private ListPreference mPreviewMode;
private ListPreference mDefaultFavorite;
private Preference mHAHProxy;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -222,6 +224,8 @@ public class SettingsActivity extends AbsPreferenceActivity {
mPreviewMode = (ListPreference) findPreference(KEY_PREVIEW_MODE);
mPreviewMode.setOnPreferenceChangeListener(this);
mDefaultFavorite = (ListPreference) findPreference(KEY_DEFAULT_FAVORITE);
mHAHProxy = findPreference(KEY_HAH_PROXY);
mHAHProxy.setOnPreferenceClickListener(this);
int i = 0;
String[] entrise = new String[Favorite.FAVORITE_TITLES.length + 1];
@@ -274,9 +278,11 @@ public class SettingsActivity extends AbsPreferenceActivity {
.setButtonListener(new MaterialAlertDialog.OnClickListener() {
@Override
public boolean onClick(MaterialAlertDialog dialog, int which) {
int newValue = getExculdeTagGroup(tl);
Config.setExculdeTagGroup(newValue);
EhInfo.getInstance(getActivity()).setExculdeTagGroup(newValue);
if (which == MaterialAlertDialog.POSITIVE) {
int newValue = getExculdeTagGroup(tl);
Config.setExculdeTagGroup(newValue);
EhInfo.getInstance(getActivity()).setExculdeTagGroup(newValue);
}
return true;
}
}).show();
@@ -290,9 +296,11 @@ public class SettingsActivity extends AbsPreferenceActivity {
.setButtonListener(new MaterialAlertDialog.OnClickListener() {
@Override
public boolean onClick(MaterialAlertDialog dialog, int which) {
String newValue = getExculdeLanguage(tl);
Config.setExculdeLanguage(newValue);
EhInfo.getInstance(getActivity()).setExculdeLanguage(newValue);
if (which == MaterialAlertDialog.POSITIVE) {
String newValue = getExculdeLanguage(tl);
Config.setExculdeLanguage(newValue);
EhInfo.getInstance(getActivity()).setExculdeLanguage(newValue);
}
return true;
}
}).show();
@@ -301,6 +309,34 @@ public class SettingsActivity extends AbsPreferenceActivity {
SearchRecentSuggestions suggestions = SuggestionHelper.getInstance(getActivity(),
SimpleSuggestionProvider.AUTHORITY, SimpleSuggestionProvider.MODE);
suggestions.clearHistory();
} else if (KEY_HAH_PROXY.equals(key)) {
LinearLayout ll = (LinearLayout) ViewUtils.inflateDialogView(R.layout.hah_proxy, false);
final EditText hahIp = (EditText) ll.findViewById(R.id.hah_ip);
final EditText hahPort = (EditText) ll.findViewById(R.id.hah_port);
final EditText hahPasskey = (EditText) ll.findViewById(R.id.hah_passkey);
hahIp.setText(Config.getHAHIp());
hahPort.setText(Config.getHAHPort());
hahPasskey.setText(Config.getHAHPasskey());
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 ip = hahIp.getText().toString();
String port = hahPort.getText().toString();
String passkey = hahPasskey.getText().toString();
Config.setHAHIp(ip);
Config.setHAHPort(port);
Config.setHAHPasskey(passkey);
EhInfo.getInstance(getActivity()).setHAHProxy(ip, port, passkey);
}
return true;
}
}).show();
}
return true;
}
@@ -253,6 +253,15 @@ public final class Config {
private static final String KEY_MAX_HISTORY_COUNT = "max_history_count";
private static final int DEFAULT_MAX_HISTORY_COUNT = 100;
private static final String KEY_HAH_IP = "hah_ip";
private static final String DEFAULT_HAH_IP = "";
private static final String KEY_HAH_PORT = "hah_port";
private static final String DEFAULT_HAH_PORT = "";
private static final String KEY_HAH_PASSKEY = "hah_passkey";
private static final String DEFAULT_HAH_PASSKEY = "";
public static int getDefaultCat() {
return getInt(KEY_DEFAULT_CAT, DEFAULT_DEFAULT_CAT);
}
@@ -293,6 +302,30 @@ public final class Config {
return getIntFromStr(KEY_MAX_HISTORY_COUNT, DEFAULT_MAX_HISTORY_COUNT);
}
public static void setHAHIp(String hahIp) {
setString(KEY_HAH_IP, hahIp);
}
public static String getHAHIp() {
return getString(KEY_HAH_IP, DEFAULT_HAH_IP);
}
public static void setHAHPort(String hahPort) {
setString(KEY_HAH_PORT, hahPort);
}
public static String getHAHPort() {
return getString(KEY_HAH_PORT, DEFAULT_HAH_PORT);
}
public static void setHAHPasskey(String hahPasskey) {
setString(KEY_HAH_PASSKEY, hahPasskey);
}
public static String getHAHPasskey() {
return getString(KEY_HAH_PASSKEY, DEFAULT_HAH_PASSKEY);
}
/****** Read ******/