static { density = ApplicationLoader.applicationContext.getResources().getDisplayMetrics().density; SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("primes", Context.MODE_PRIVATE); String primes = preferences.getString("primes", null); if (primes == null) { goodPrimes.add( "C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5B"); } else { try { byte[] bytes = Base64.decode(primes, Base64.DEFAULT); if (bytes != null) { SerializedData data = new SerializedData(bytes); int count = data.readInt32(); for (int a = 0; a < count; a++) { goodPrimes.add(data.readString()); } } } catch (Exception e) { FileLog.e("tmessages", e); goodPrimes.clear(); goodPrimes.add( "C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5B"); } } System.loadLibrary("tmessages"); }
public Datacenter(SerializedData data, int version) { if (version == 0) { datacenterId = data.readInt32(); String address = data.readString(); addresses.add(address); int port = data.readInt32(); ports.put(address, port); int len = data.readInt32(); if (len != 0) { authKey = data.readData(len); } len = data.readInt32(); if (len != 0) { authKeyId = data.readInt64(); } authorized = data.readInt32() != 0; len = data.readInt32(); for (int a = 0; a < len; a++) { ServerSalt salt = new ServerSalt(); salt.validSince = data.readInt32(); salt.validUntil = data.readInt32(); salt.value = data.readInt64(); if (authServerSaltSet == null) { authServerSaltSet = new ArrayList<ServerSalt>(); } authServerSaltSet.add(salt); } } else if (version == 1) { int currentVersion = data.readInt32(); if (currentVersion == 2 || currentVersion == 3 || currentVersion == 4) { datacenterId = data.readInt32(); if (currentVersion >= 3) { lastInitVersion = data.readInt32(); } int len = data.readInt32(); for (int a = 0; a < len; a++) { String address = data.readString(); addresses.add(address); ports.put(address, data.readInt32()); } len = data.readInt32(); if (len != 0) { authKey = data.readData(len); } if (currentVersion == 4) { authKeyId = data.readInt64(); } else { len = data.readInt32(); if (len != 0) { authKeyId = data.readInt64(); } } authorized = data.readInt32() != 0; len = data.readInt32(); for (int a = 0; a < len; a++) { ServerSalt salt = new ServerSalt(); salt.validSince = data.readInt32(); salt.validUntil = data.readInt32(); salt.value = data.readInt64(); if (authServerSaltSet == null) { authServerSaltSet = new ArrayList<ServerSalt>(); } authServerSaltSet.add(salt); } } } else if (version == 2) { } readCurrentAddressAndPortNum(); }
public static void loadConfig() { synchronized (sync) { final File configFile = new File(ApplicationLoader.applicationContext.getFilesDir(), "user.dat"); if (configFile.exists()) { try { SerializedData data = new SerializedData(configFile); int ver = data.readInt32(); if (ver == 1) { int constructor = data.readInt32(); currentUser = (TLRPC.TL_userSelf) TLClassStore.Instance().TLdeserialize(data, constructor); clientUserId = currentUser.id; clientActivated = true; MessagesStorage.lastDateValue = data.readInt32(); MessagesStorage.lastPtsValue = data.readInt32(); MessagesStorage.lastSeqValue = data.readInt32(); registeredForPush = data.readBool(); pushString = data.readString(); lastSendMessageId = data.readInt32(); lastLocalId = data.readInt32(); contactsHash = data.readString(); importHash = data.readString(); saveIncomingPhotos = data.readBool(); if (currentUser.status != null) { if (currentUser.status.expires != 0) { currentUser.status.was_online = currentUser.status.expires; } else { currentUser.status.expires = currentUser.status.was_online; } } MessagesStorage.lastQtsValue = data.readInt32(); MessagesStorage.lastSecretVersion = data.readInt32(); int val = data.readInt32(); if (val == 1) { MessagesStorage.secretPBytes = data.readByteArray(); } MessagesStorage.secretG = data.readInt32(); Utilities.stageQueue.postRunnable( new Runnable() { @Override public void run() { saveConfig(true, configFile); } }); } else if (ver == 2) { int constructor = data.readInt32(); currentUser = (TLRPC.TL_userSelf) TLClassStore.Instance().TLdeserialize(data, constructor); clientUserId = currentUser.id; clientActivated = true; SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences( "userconfing", Context.MODE_PRIVATE); registeredForPush = preferences.getBoolean("registeredForPush", false); pushString = preferences.getString("pushString", ""); lastSendMessageId = preferences.getInt("lastSendMessageId", -210000); lastLocalId = preferences.getInt("lastLocalId", -210000); contactsHash = preferences.getString("contactsHash", ""); importHash = preferences.getString("importHash", ""); saveIncomingPhotos = preferences.getBoolean("saveIncomingPhotos", false); } if (lastLocalId > -210000) { lastLocalId = -210000; } if (lastSendMessageId > -210000) { lastSendMessageId = -210000; } Utilities.stageQueue.postRunnable( new Runnable() { @Override public void run() { saveConfig(true, configFile); } }); } catch (Exception e) { FileLog.e("tmessages", e); } } else { SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences( "userconfing", Context.MODE_PRIVATE); registeredForPush = preferences.getBoolean("registeredForPush", false); pushString = preferences.getString("pushString", ""); lastSendMessageId = preferences.getInt("lastSendMessageId", -210000); lastLocalId = preferences.getInt("lastLocalId", -210000); contactsHash = preferences.getString("contactsHash", ""); importHash = preferences.getString("importHash", ""); saveIncomingPhotos = preferences.getBoolean("saveIncomingPhotos", false); String user = preferences.getString("user", null); if (user != null) { byte[] userBytes = Base64.decode(user, Base64.DEFAULT); if (userBytes != null) { SerializedData data = new SerializedData(userBytes); currentUser = (TLRPC.TL_userSelf) TLClassStore.Instance().TLdeserialize(data, data.readInt32()); clientUserId = currentUser.id; clientActivated = true; } } if (currentUser == null) { clientActivated = false; clientUserId = 0; } } } }