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 declinedPermissions; private final Date expires; private final Date lastRefresh; private final Set 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 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 collection, Collection 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 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 permissionsFromBundle = getPermissionsFromBundle(bundle, "com.facebook.TokenCachingStrategy.Permissions"); List 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 getPermissionsFromBundle(Bundle bundle, String str) { ArrayList 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 getDeclinedPermissions() { return this.declinedPermissions; } public Date getExpires() { return this.expires; } public Date getLastRefresh() { return this.lastRefresh; } public Set 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(); } }