jimu-decompiled/sources/com/facebook/AccessToken.java
2025-05-13 19:24:51 +02:00

321 lines
14 KiB
Java

package com.facebook;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
import com.facebook.internal.Utility;
import com.facebook.internal.Validate;
import com.ubt.jimu.controller.data.widget.JockstickDataConverter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/* loaded from: classes.dex */
public final class AccessToken implements Parcelable {
public static final String ACCESS_TOKEN_KEY = "access_token";
private static final String APPLICATION_ID_KEY = "application_id";
private static final int CURRENT_JSON_FORMAT = 1;
private static final String DECLINED_PERMISSIONS_KEY = "declined_permissions";
private static final String EXPIRES_AT_KEY = "expires_at";
public static final String EXPIRES_IN_KEY = "expires_in";
private static final String LAST_REFRESH_KEY = "last_refresh";
private static final String PERMISSIONS_KEY = "permissions";
private static final String SOURCE_KEY = "source";
private static final String TOKEN_KEY = "token";
public static final String USER_ID_KEY = "user_id";
private static final String VERSION_KEY = "version";
private final String applicationId;
private final Set<String> declinedPermissions;
private final Date expires;
private final Date lastRefresh;
private final Set<String> permissions;
private final AccessTokenSource source;
private final String token;
private final String userId;
private static final Date MAX_DATE = new Date(Long.MAX_VALUE);
private static final Date DEFAULT_EXPIRATION_TIME = MAX_DATE;
private static final Date DEFAULT_LAST_REFRESH_TIME = new Date();
private static final AccessTokenSource DEFAULT_ACCESS_TOKEN_SOURCE = AccessTokenSource.FACEBOOK_APPLICATION_WEB;
public static final Parcelable.Creator<AccessToken> CREATOR = new Parcelable.Creator() { // from class: com.facebook.AccessToken.2
@Override // android.os.Parcelable.Creator
public AccessToken createFromParcel(Parcel parcel) {
return new AccessToken(parcel);
}
@Override // android.os.Parcelable.Creator
public AccessToken[] newArray(int i) {
return new AccessToken[i];
}
};
public interface AccessTokenCreationCallback {
void a(AccessToken accessToken);
void a(FacebookException facebookException);
}
public interface AccessTokenRefreshCallback {
void a(AccessToken accessToken);
void a(FacebookException facebookException);
}
public AccessToken(String str, String str2, String str3, Collection<String> collection, Collection<String> collection2, AccessTokenSource accessTokenSource, Date date, Date date2) {
Validate.a(str, "accessToken");
Validate.a(str2, "applicationId");
Validate.a(str3, "userId");
this.expires = date == null ? DEFAULT_EXPIRATION_TIME : date;
this.permissions = Collections.unmodifiableSet(collection != null ? new HashSet(collection) : new HashSet());
this.declinedPermissions = Collections.unmodifiableSet(collection2 != null ? new HashSet(collection2) : new HashSet());
this.token = str;
this.source = accessTokenSource == null ? DEFAULT_ACCESS_TOKEN_SOURCE : accessTokenSource;
this.lastRefresh = date2 == null ? DEFAULT_LAST_REFRESH_TIME : date2;
this.applicationId = str2;
this.userId = str3;
}
private void appendPermissions(StringBuilder sb) {
sb.append(" permissions:");
if (this.permissions == null) {
sb.append("null");
return;
}
sb.append("[");
sb.append(TextUtils.join(", ", this.permissions));
sb.append("]");
}
/* JADX INFO: Access modifiers changed from: private */
public static AccessToken createFromBundle(List<String> list, Bundle bundle, AccessTokenSource accessTokenSource, Date date, String str) {
String string = bundle.getString(ACCESS_TOKEN_KEY);
Date a = Utility.a(bundle, EXPIRES_IN_KEY, date);
String string2 = bundle.getString("user_id");
if (Utility.c(string) || a == null) {
return null;
}
return new AccessToken(string, str, string2, list, null, accessTokenSource, a, new Date());
}
static AccessToken createFromJSONObject(JSONObject jSONObject) throws JSONException {
if (jSONObject.getInt("version") > 1) {
throw new FacebookException("Unknown AccessToken serialization format.");
}
String string = jSONObject.getString(TOKEN_KEY);
Date date = new Date(jSONObject.getLong(EXPIRES_AT_KEY));
JSONArray jSONArray = jSONObject.getJSONArray(PERMISSIONS_KEY);
JSONArray jSONArray2 = jSONObject.getJSONArray(DECLINED_PERMISSIONS_KEY);
Date date2 = new Date(jSONObject.getLong(LAST_REFRESH_KEY));
return new AccessToken(string, jSONObject.getString(APPLICATION_ID_KEY), jSONObject.getString("user_id"), Utility.b(jSONArray), Utility.b(jSONArray2), AccessTokenSource.valueOf(jSONObject.getString("source")), date, date2);
}
static AccessToken createFromLegacyCache(Bundle bundle) {
List<String> permissionsFromBundle = getPermissionsFromBundle(bundle, "com.facebook.TokenCachingStrategy.Permissions");
List<String> permissionsFromBundle2 = getPermissionsFromBundle(bundle, "com.facebook.TokenCachingStrategy.DeclinedPermissions");
String a = LegacyTokenHelper.a(bundle);
if (Utility.c(a)) {
a = FacebookSdk.c();
}
String str = a;
String c = LegacyTokenHelper.c(bundle);
try {
return new AccessToken(c, str, Utility.a(c).getString(JockstickDataConverter.ID), permissionsFromBundle, permissionsFromBundle2, LegacyTokenHelper.b(bundle), LegacyTokenHelper.a(bundle, "com.facebook.TokenCachingStrategy.ExpirationDate"), LegacyTokenHelper.a(bundle, "com.facebook.TokenCachingStrategy.LastRefreshDate"));
} catch (JSONException unused) {
return null;
}
}
public static void createFromNativeLinkingIntent(Intent intent, final String str, final AccessTokenCreationCallback accessTokenCreationCallback) {
Validate.a(intent, "intent");
if (intent.getExtras() == null) {
accessTokenCreationCallback.a(new FacebookException("No extras found on intent"));
return;
}
final Bundle bundle = new Bundle(intent.getExtras());
String string = bundle.getString(ACCESS_TOKEN_KEY);
if (string == null || string.isEmpty()) {
accessTokenCreationCallback.a(new FacebookException("No access token found on intent"));
return;
}
String string2 = bundle.getString("user_id");
if (string2 == null || string2.isEmpty()) {
Utility.a(string, new Utility.GraphMeRequestWithCacheCallback() { // from class: com.facebook.AccessToken.1
@Override // com.facebook.internal.Utility.GraphMeRequestWithCacheCallback
public void a(JSONObject jSONObject) {
try {
bundle.putString("user_id", jSONObject.getString(JockstickDataConverter.ID));
accessTokenCreationCallback.a(AccessToken.createFromBundle(null, bundle, AccessTokenSource.FACEBOOK_APPLICATION_WEB, new Date(), str));
} catch (JSONException unused) {
accessTokenCreationCallback.a(new FacebookException("Unable to generate access token due to missing user id"));
}
}
@Override // com.facebook.internal.Utility.GraphMeRequestWithCacheCallback
public void a(FacebookException facebookException) {
accessTokenCreationCallback.a(facebookException);
}
});
} else {
accessTokenCreationCallback.a(createFromBundle(null, bundle, AccessTokenSource.FACEBOOK_APPLICATION_WEB, new Date(), str));
}
}
@SuppressLint({"FieldGetter"})
static AccessToken createFromRefresh(AccessToken accessToken, Bundle bundle) {
AccessTokenSource accessTokenSource = accessToken.source;
if (accessTokenSource != AccessTokenSource.FACEBOOK_APPLICATION_WEB && accessTokenSource != AccessTokenSource.FACEBOOK_APPLICATION_NATIVE && accessTokenSource != AccessTokenSource.FACEBOOK_APPLICATION_SERVICE) {
throw new FacebookException("Invalid token source: " + accessToken.source);
}
Date a = Utility.a(bundle, EXPIRES_IN_KEY, new Date(0L));
String string = bundle.getString(ACCESS_TOKEN_KEY);
if (Utility.c(string)) {
return null;
}
return new AccessToken(string, accessToken.applicationId, accessToken.getUserId(), accessToken.getPermissions(), accessToken.getDeclinedPermissions(), accessToken.source, a, new Date());
}
public static AccessToken getCurrentAccessToken() {
return AccessTokenManager.d().b();
}
static List<String> getPermissionsFromBundle(Bundle bundle, String str) {
ArrayList<String> stringArrayList = bundle.getStringArrayList(str);
return stringArrayList == null ? Collections.emptyList() : Collections.unmodifiableList(new ArrayList(stringArrayList));
}
public static void refreshCurrentAccessTokenAsync() {
AccessTokenManager.d().a((AccessTokenRefreshCallback) null);
}
public static void setCurrentAccessToken(AccessToken accessToken) {
AccessTokenManager.d().a(accessToken);
}
private String tokenToString() {
return this.token == null ? "null" : FacebookSdk.a(LoggingBehavior.INCLUDE_ACCESS_TOKENS) ? this.token : "ACCESS_TOKEN_REMOVED";
}
@Override // android.os.Parcelable
public int describeContents() {
return 0;
}
public boolean equals(Object obj) {
String str;
if (this == obj) {
return true;
}
if (!(obj instanceof AccessToken)) {
return false;
}
AccessToken accessToken = (AccessToken) obj;
return this.expires.equals(accessToken.expires) && this.permissions.equals(accessToken.permissions) && this.declinedPermissions.equals(accessToken.declinedPermissions) && this.token.equals(accessToken.token) && this.source == accessToken.source && this.lastRefresh.equals(accessToken.lastRefresh) && ((str = this.applicationId) != null ? str.equals(accessToken.applicationId) : accessToken.applicationId == null) && this.userId.equals(accessToken.userId);
}
public String getApplicationId() {
return this.applicationId;
}
public Set<String> getDeclinedPermissions() {
return this.declinedPermissions;
}
public Date getExpires() {
return this.expires;
}
public Date getLastRefresh() {
return this.lastRefresh;
}
public Set<String> getPermissions() {
return this.permissions;
}
public AccessTokenSource getSource() {
return this.source;
}
public String getToken() {
return this.token;
}
public String getUserId() {
return this.userId;
}
public int hashCode() {
int hashCode = (((((((((((527 + this.expires.hashCode()) * 31) + this.permissions.hashCode()) * 31) + this.declinedPermissions.hashCode()) * 31) + this.token.hashCode()) * 31) + this.source.hashCode()) * 31) + this.lastRefresh.hashCode()) * 31;
String str = this.applicationId;
return ((hashCode + (str == null ? 0 : str.hashCode())) * 31) + this.userId.hashCode();
}
public boolean isExpired() {
return new Date().after(this.expires);
}
JSONObject toJSONObject() throws JSONException {
JSONObject jSONObject = new JSONObject();
jSONObject.put("version", 1);
jSONObject.put(TOKEN_KEY, this.token);
jSONObject.put(EXPIRES_AT_KEY, this.expires.getTime());
jSONObject.put(PERMISSIONS_KEY, new JSONArray((Collection) this.permissions));
jSONObject.put(DECLINED_PERMISSIONS_KEY, new JSONArray((Collection) this.declinedPermissions));
jSONObject.put(LAST_REFRESH_KEY, this.lastRefresh.getTime());
jSONObject.put("source", this.source.name());
jSONObject.put(APPLICATION_ID_KEY, this.applicationId);
jSONObject.put("user_id", this.userId);
return jSONObject;
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{AccessToken");
sb.append(" token:");
sb.append(tokenToString());
appendPermissions(sb);
sb.append("}");
return sb.toString();
}
@Override // android.os.Parcelable
public void writeToParcel(Parcel parcel, int i) {
parcel.writeLong(this.expires.getTime());
parcel.writeStringList(new ArrayList(this.permissions));
parcel.writeStringList(new ArrayList(this.declinedPermissions));
parcel.writeString(this.token);
parcel.writeString(this.source.name());
parcel.writeLong(this.lastRefresh.getTime());
parcel.writeString(this.applicationId);
parcel.writeString(this.userId);
}
public static void refreshCurrentAccessTokenAsync(AccessTokenRefreshCallback accessTokenRefreshCallback) {
AccessTokenManager.d().a(accessTokenRefreshCallback);
}
AccessToken(Parcel parcel) {
this.expires = new Date(parcel.readLong());
ArrayList arrayList = new ArrayList();
parcel.readStringList(arrayList);
this.permissions = Collections.unmodifiableSet(new HashSet(arrayList));
arrayList.clear();
parcel.readStringList(arrayList);
this.declinedPermissions = Collections.unmodifiableSet(new HashSet(arrayList));
this.token = parcel.readString();
this.source = AccessTokenSource.valueOf(parcel.readString());
this.lastRefresh = new Date(parcel.readLong());
this.applicationId = parcel.readString();
this.userId = parcel.readString();
}
}