package android.source.tuangou.framework.store.beans; import android.source.tuangou.framework.ServiceManager; import android.source.tuangou.framework.net.JsonParser; import android.source.tuangou.framework.net.NetworkService; import android.source.tuangou.framework.store.Bean; import android.source.tuangou.framework.store.Database; import android.source.tuangou.framework.util.LogUtil; import android.source.tuangou.framework.util.StringUtil; import android.source.tuangou.util.Base64; import android.telephony.TelephonyManager; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.HashMap; import java.util.Map; import org.json.JSONException; import org.json.JSONObject; public class Preferences extends Bean{ private static Preferences instance; public static String requestKeyName = ""; private static final String tableName = "preferences"; private String requestKey; public Preferences(){ } //创建Preferences对象 public static Preferences getInstance(){ if (instance == null) instance = new Preferences(); return instance; } //数据库中创建表 public void createTable(){ String aobj[] = new String[1]; aobj[0] = "preferences"; //创建preferences表 String sql = StringUtil.simpleFormat("CREATE TABLE if not exists %s (key TEXT PRIMARY KEY, value TEXT, expire_time INTEGER);", aobj); if(db != null){ boolean flag = db.execSql(sql); } } public String get(String s){ StringBuilder stringbuilder = (new StringBuilder()). append("SELECT value from %s WHERE key=? AND (expire_time=-1 OR expire_time>"); //获取系统当前毫秒数,再转换成分钟数 long l = System.currentTimeMillis() / 1000L; String s1 = stringbuilder.append(l).append(")").toString(); Object aobj[] = new Object[1]; aobj[0] = "preferences"; //String s2 = String.format(s1, aobj); String sql = StringUtil.simpleFormat(s1, aobj); String asselectArgs[] = new String[1]; asselectArgs[0] = s; System.out.println("getCity sql = "+sql+" asselectArgs = "+asselectArgs); return db.getSingleString(sql, asselectArgs); } public String getDefault(String s, String s1) { String s2 = get(s); String s3; if (StringUtil.isEmpty(s2).booleanValue()) s3 = s1; else s3 = s2; return s3; } public String getRequestKey() { if (StringUtil.isEmpty(requestKey).booleanValue()) { String s = requestKeyName; String s1 = get(s); requestKey = s1; } return requestKey; } public void initRequestKey(TelephonyManager telephonymanager, String s, String s1) { if (!StringUtil.isEmpty(getRequestKey()).booleanValue()){ return; } else { String s2 = telephonymanager.getDeviceId(); if (!StringUtil.isEmpty(s2).booleanValue()){ try { String s3; String s4; String s5; String s6; MessageDigest messagedigest; MessageDigest messagedigest1; s3 = Base64.encodeToString(s2.getBytes(), 0); s4 = telephonymanager.getLine1Number(); if (s4 == null) s4 = ""; s5 = Base64.encodeToString(s4.getBytes(), 0); messagedigest = null; messagedigest1 = null; MessageDigest messagedigest2 = MessageDigest .getInstance("SHA-1"); messagedigest1 = messagedigest2; // messagedigest2 = MessageDigest.getInstance("MD5"); messagedigest = messagedigest2; HashMap hashmap = new HashMap(); HashMap hashmap1 = hashmap; String s8 = "deviceId"; String s9 = s3; Object obj = hashmap1.put(s8, s9); HashMap hashmap2 = hashmap; String s10 = "tel"; String s11 = s5; Object obj1 = hashmap2.put(s10, s11); String s12 = Base64.encodeToString(s1.getBytes(), 0); HashMap hashmap3 = hashmap; String s13 = s; String s14 = s12; Object obj2 = hashmap3.put(s13, s14); StringBuilder stringbuilder = new StringBuilder(); String s15 = s4; StringBuilder stringbuilder1 = stringbuilder.append(s15) .append("5jHJ@^9B32!"); StringBuilder stringbuilder2 = (new StringBuilder()) .append("`sFn+?ss00"); String s16 = s4; StringBuilder stringbuilder3 = stringbuilder2.append(s16); String s17 = s3; byte abyte0[] = stringbuilder3.append(s17).toString() .getBytes(); MessageDigest messagedigest3 = messagedigest; byte abyte1[] = abyte0; String s18 = StringUtil.fromBytes(messagedigest3 .digest(abyte1)); StringBuilder stringbuilder4 = stringbuilder1.append(s18); String s19 = s2; StringBuilder stringbuilder5 = stringbuilder4.append(s19); String s20 = s1; byte abyte2[] = stringbuilder5.append(s20).toString() .getBytes(); MessageDigest messagedigest4 = messagedigest1; byte abyte3[] = abyte2; String s21 = StringUtil.fromBytes(messagedigest4 .digest(abyte3)); StringBuilder stringbuilder6 = new StringBuilder(); String s22 = s4; StringBuilder stringbuilder7 = stringbuilder6.append(s22) .append("5jHJ@^9B32!"); StringBuilder stringbuilder8 = (new StringBuilder()) .append("`sFn+?ss00"); String s23 = s4; StringBuilder stringbuilder9 = stringbuilder8.append(s23); String s24 = s3; byte abyte4[] = stringbuilder9.append(s24).toString() .getBytes(); MessageDigest messagedigest5 = messagedigest; byte abyte5[] = abyte4; String s25 = StringUtil.fromBytes(messagedigest5 .digest(abyte5)); StringBuilder stringbuilder10 = stringbuilder7.append(s25); String s26 = s2; StringBuilder stringbuilder11 = stringbuilder10.append(s26); String s27 = s1; byte abyte6[] = stringbuilder11.append(s27).toString() .getBytes(); MessageDigest messagedigest6 = messagedigest1; byte abyte7[] = abyte6; String s28 = StringUtil.fromBytes(messagedigest6 .digest(abyte7)); HashMap hashmap4 = hashmap; String s29 = "sign"; String s30 = s28; Object obj3 = hashmap4.put(s29, s30); NetworkService networkservice = ServiceManager .getNetworkService(); String as[] = new String[0]; Preferences preferences = this; String as1[] = as; JsonParser1 mJsonParser1 = new JsonParser1(as); NetworkService networkservice1 = networkservice; String s31 = "http://api.tuan800.com/mobile_api/android/get_request_key"; HashMap hashmap5 = hashmap; Map map = networkservice1.postSync(s31, hashmap5, mJsonParser1); } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } } else{ return; } } } public void save(String key, String value){ save(key, value, 65535L); } public void save(String key, String value, long time){ Object aobj[] = new Object[1]; aobj[0] = "preferences"; String sql = StringUtil.simpleFormat("REPLACE INTO %s (key, value, expire_time) VALUES(?, ?, ?)", aobj); Object aobj1[] = new Object[3]; aobj1[0] = key; aobj1[1] = value; Long long1 = Long.valueOf(time); aobj1[2] = long1; System.out.println("sql = "+sql); for(int i = 0; i < aobj1.length; i++){ System.out.println("aobj1["+i+"] = "+aobj1[i]); } boolean flag = db.execSql(sql, aobj1); } static { requestKeyName = "requestKey"; } private class JsonParser1 extends JsonParser { final Preferences this$0; public JsonParser1(String as[]){ super(as); this$0 = Preferences.this; } public void parseJson(JSONObject jsonobject, Map map) throws JSONException{ if (jsonobject.getInt("status") == 0){ String s = jsonobject.getString("requestKey"); if (s != null && s.length() != 0) { Preferences preferences = Preferences.this; String s1 = Preferences.requestKeyName; preferences.save(s1, s); String s2 = requestKey = s; } } } } }