Initial import of ADIF API reverse-engineering toolkit
This commit is contained in:
127
apk_decompiled/sources/com/google/firebase/messaging/Store.java
Normal file
127
apk_decompiled/sources/com/google/firebase/messaging/Store.java
Normal file
@@ -0,0 +1,127 @@
|
||||
package com.google.firebase.messaging;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public class Store {
|
||||
static final String NO_BACKUP_FILE = "com.google.android.gms.appid-no-backup";
|
||||
static final String PREFERENCES = "com.google.android.gms.appid";
|
||||
private static final String SCOPE_ALL = "*";
|
||||
private static final String STORE_KEY_TOKEN = "|T|";
|
||||
final SharedPreferences store;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class Token {
|
||||
private static final String KEY_APP_VERSION = "appVersion";
|
||||
private static final String KEY_TIMESTAMP = "timestamp";
|
||||
private static final String KEY_TOKEN = "token";
|
||||
private static final long REFRESH_PERIOD_MILLIS = TimeUnit.DAYS.toMillis(7);
|
||||
final String appVersion;
|
||||
final long timestamp;
|
||||
final String token;
|
||||
|
||||
private Token(String str, String str2, long j4) {
|
||||
this.token = str;
|
||||
this.appVersion = str2;
|
||||
this.timestamp = j4;
|
||||
}
|
||||
|
||||
public static String encode(String str, String str2, long j4) {
|
||||
try {
|
||||
JSONObject jSONObject = new JSONObject();
|
||||
jSONObject.put("token", str);
|
||||
jSONObject.put("appVersion", str2);
|
||||
jSONObject.put(KEY_TIMESTAMP, j4);
|
||||
return jSONObject.toString();
|
||||
} catch (JSONException e4) {
|
||||
Log.w(Constants.TAG, "Failed to encode token: " + e4);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static Token parse(String str) {
|
||||
if (TextUtils.isEmpty(str)) {
|
||||
return null;
|
||||
}
|
||||
if (!str.startsWith("{")) {
|
||||
return new Token(str, null, 0L);
|
||||
}
|
||||
try {
|
||||
JSONObject jSONObject = new JSONObject(str);
|
||||
return new Token(jSONObject.getString("token"), jSONObject.getString("appVersion"), jSONObject.getLong(KEY_TIMESTAMP));
|
||||
} catch (JSONException e4) {
|
||||
Log.w(Constants.TAG, "Failed to parse token: " + e4);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean needsRefresh(String str) {
|
||||
return System.currentTimeMillis() > this.timestamp + REFRESH_PERIOD_MILLIS || !str.equals(this.appVersion);
|
||||
}
|
||||
}
|
||||
|
||||
public Store(Context context) {
|
||||
this.store = context.getSharedPreferences(PREFERENCES, 0);
|
||||
checkForRestore(context, NO_BACKUP_FILE);
|
||||
}
|
||||
|
||||
private void checkForRestore(Context context, String str) {
|
||||
File file = new File(D.h.getNoBackupFilesDir(context), str);
|
||||
if (file.exists()) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (!file.createNewFile() || isEmpty()) {
|
||||
return;
|
||||
}
|
||||
Log.i(Constants.TAG, "App restored, clearing state");
|
||||
deleteAll();
|
||||
} catch (IOException e4) {
|
||||
if (Log.isLoggable(Constants.TAG, 3)) {
|
||||
Log.d(Constants.TAG, "Error creating file in no backup dir: " + e4.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String createTokenKey(String str, String str2) {
|
||||
return str + STORE_KEY_TOKEN + str2 + "|*";
|
||||
}
|
||||
|
||||
public synchronized void deleteAll() {
|
||||
this.store.edit().clear().commit();
|
||||
}
|
||||
|
||||
public synchronized void deleteToken(String str, String str2) {
|
||||
String createTokenKey = createTokenKey(str, str2);
|
||||
SharedPreferences.Editor edit = this.store.edit();
|
||||
edit.remove(createTokenKey);
|
||||
edit.commit();
|
||||
}
|
||||
|
||||
public synchronized Token getToken(String str, String str2) {
|
||||
return Token.parse(this.store.getString(createTokenKey(str, str2), null));
|
||||
}
|
||||
|
||||
public synchronized boolean isEmpty() {
|
||||
return this.store.getAll().isEmpty();
|
||||
}
|
||||
|
||||
public synchronized void saveToken(String str, String str2, String str3, String str4) {
|
||||
String encode = Token.encode(str3, str4, System.currentTimeMillis());
|
||||
if (encode == null) {
|
||||
return;
|
||||
}
|
||||
SharedPreferences.Editor edit = this.store.edit();
|
||||
edit.putString(createTokenKey(str, str2), encode);
|
||||
edit.commit();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user