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

244 lines
11 KiB
Java

package com.facebook;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.facebook.AccessToken;
import com.facebook.GraphRequest;
import com.facebook.GraphRequestBatch;
import com.facebook.internal.Utility;
import com.facebook.internal.Validate;
import com.liulishuo.filedownloader.model.FileDownloadModel;
import java.util.Date;
import java.util.HashSet;
import java.util.Locale;
import java.util.concurrent.atomic.AtomicBoolean;
import org.json.JSONArray;
import org.json.JSONObject;
/* loaded from: classes.dex */
final class AccessTokenManager {
private static volatile AccessTokenManager f;
private final LocalBroadcastManager a;
private final AccessTokenCache b;
private AccessToken c;
private AtomicBoolean d = new AtomicBoolean(false);
private Date e = new Date(0);
private static class RefreshResult {
public String a;
public int b;
private RefreshResult() {
}
}
AccessTokenManager(LocalBroadcastManager localBroadcastManager, AccessTokenCache accessTokenCache) {
Validate.a(localBroadcastManager, "localBroadcastManager");
Validate.a(accessTokenCache, "accessTokenCache");
this.a = localBroadcastManager;
this.b = accessTokenCache;
}
static AccessTokenManager d() {
if (f == null) {
synchronized (AccessTokenManager.class) {
if (f == null) {
f = new AccessTokenManager(LocalBroadcastManager.a(FacebookSdk.b()), new AccessTokenCache());
}
}
}
return f;
}
private boolean e() {
if (this.c == null) {
return false;
}
Long valueOf = Long.valueOf(new Date().getTime());
return this.c.getSource().canExtendToken() && valueOf.longValue() - this.e.getTime() > 3600000 && valueOf.longValue() - this.c.getLastRefresh().getTime() > 86400000;
}
AccessToken b() {
return this.c;
}
boolean c() {
AccessToken b = this.b.b();
if (b == null) {
return false;
}
a(b, false);
return true;
}
private static GraphRequest b(AccessToken accessToken, GraphRequest.Callback callback) {
return new GraphRequest(accessToken, "me/permissions", new Bundle(), HttpMethod.GET, callback);
}
void a(AccessToken accessToken) {
a(accessToken, true);
}
private void a(AccessToken accessToken, boolean z) {
AccessToken accessToken2 = this.c;
this.c = accessToken;
this.d.set(false);
this.e = new Date(0L);
if (z) {
if (accessToken != null) {
this.b.a(accessToken);
} else {
this.b.a();
Utility.a(FacebookSdk.b());
}
}
if (Utility.a(accessToken2, accessToken)) {
return;
}
a(accessToken2, accessToken);
}
/* JADX INFO: Access modifiers changed from: private */
public void b(final AccessToken.AccessTokenRefreshCallback accessTokenRefreshCallback) {
final AccessToken accessToken = this.c;
if (accessToken == null) {
if (accessTokenRefreshCallback != null) {
accessTokenRefreshCallback.a(new FacebookException("No current access token to refresh"));
}
} else {
if (!this.d.compareAndSet(false, true)) {
if (accessTokenRefreshCallback != null) {
accessTokenRefreshCallback.a(new FacebookException("Refresh already in progress"));
return;
}
return;
}
this.e = new Date();
final HashSet hashSet = new HashSet();
final HashSet hashSet2 = new HashSet();
final AtomicBoolean atomicBoolean = new AtomicBoolean(false);
final RefreshResult refreshResult = new RefreshResult();
GraphRequestBatch graphRequestBatch = new GraphRequestBatch(b(accessToken, new GraphRequest.Callback(this) { // from class: com.facebook.AccessTokenManager.2
@Override // com.facebook.GraphRequest.Callback
public void a(GraphResponse graphResponse) {
JSONArray optJSONArray;
JSONObject b = graphResponse.b();
if (b == null || (optJSONArray = b.optJSONArray("data")) == null) {
return;
}
atomicBoolean.set(true);
for (int i = 0; i < optJSONArray.length(); i++) {
JSONObject optJSONObject = optJSONArray.optJSONObject(i);
if (optJSONObject != null) {
String optString = optJSONObject.optString("permission");
String optString2 = optJSONObject.optString(FileDownloadModel.STATUS);
if (!Utility.c(optString) && !Utility.c(optString2)) {
String lowerCase = optString2.toLowerCase(Locale.US);
if (lowerCase.equals("granted")) {
hashSet.add(optString);
} else if (lowerCase.equals("declined")) {
hashSet2.add(optString);
} else {
Log.w("AccessTokenManager", "Unexpected status: " + lowerCase);
}
}
}
}
}
}), a(accessToken, new GraphRequest.Callback(this) { // from class: com.facebook.AccessTokenManager.3
@Override // com.facebook.GraphRequest.Callback
public void a(GraphResponse graphResponse) {
JSONObject b = graphResponse.b();
if (b == null) {
return;
}
refreshResult.a = b.optString(AccessToken.ACCESS_TOKEN_KEY);
refreshResult.b = b.optInt("expires_at");
}
}));
graphRequestBatch.a(new GraphRequestBatch.Callback() { // from class: com.facebook.AccessTokenManager.4
@Override // com.facebook.GraphRequestBatch.Callback
public void a(GraphRequestBatch graphRequestBatch2) {
AccessToken accessToken2 = null;
try {
if (AccessTokenManager.d().b() != null && AccessTokenManager.d().b().getUserId() == accessToken.getUserId()) {
if (!atomicBoolean.get() && refreshResult.a == null && refreshResult.b == 0) {
if (accessTokenRefreshCallback != null) {
accessTokenRefreshCallback.a(new FacebookException("Failed to refresh access token"));
}
AccessTokenManager.this.d.set(false);
AccessToken.AccessTokenRefreshCallback accessTokenRefreshCallback2 = accessTokenRefreshCallback;
return;
}
AccessToken accessToken3 = new AccessToken(refreshResult.a != null ? refreshResult.a : accessToken.getToken(), accessToken.getApplicationId(), accessToken.getUserId(), atomicBoolean.get() ? hashSet : accessToken.getPermissions(), atomicBoolean.get() ? hashSet2 : accessToken.getDeclinedPermissions(), accessToken.getSource(), refreshResult.b != 0 ? new Date(refreshResult.b * 1000) : accessToken.getExpires(), new Date());
try {
AccessTokenManager.d().a(accessToken3);
AccessTokenManager.this.d.set(false);
AccessToken.AccessTokenRefreshCallback accessTokenRefreshCallback3 = accessTokenRefreshCallback;
if (accessTokenRefreshCallback3 != null) {
accessTokenRefreshCallback3.a(accessToken3);
return;
}
return;
} catch (Throwable th) {
th = th;
accessToken2 = accessToken3;
AccessTokenManager.this.d.set(false);
AccessToken.AccessTokenRefreshCallback accessTokenRefreshCallback4 = accessTokenRefreshCallback;
if (accessTokenRefreshCallback4 != null && accessToken2 != null) {
accessTokenRefreshCallback4.a(accessToken2);
}
throw th;
}
}
if (accessTokenRefreshCallback != null) {
accessTokenRefreshCallback.a(new FacebookException("No current access token to refresh"));
}
AccessTokenManager.this.d.set(false);
AccessToken.AccessTokenRefreshCallback accessTokenRefreshCallback5 = accessTokenRefreshCallback;
} catch (Throwable th2) {
th = th2;
}
}
});
graphRequestBatch.c();
}
}
private void a(AccessToken accessToken, AccessToken accessToken2) {
Intent intent = new Intent("com.facebook.sdk.ACTION_CURRENT_ACCESS_TOKEN_CHANGED");
intent.putExtra("com.facebook.sdk.EXTRA_OLD_ACCESS_TOKEN", accessToken);
intent.putExtra("com.facebook.sdk.EXTRA_NEW_ACCESS_TOKEN", accessToken2);
this.a.a(intent);
}
void a() {
if (e()) {
a((AccessToken.AccessTokenRefreshCallback) null);
}
}
private static GraphRequest a(AccessToken accessToken, GraphRequest.Callback callback) {
Bundle bundle = new Bundle();
bundle.putString("grant_type", "fb_extend_sso_token");
return new GraphRequest(accessToken, "oauth/access_token", bundle, HttpMethod.GET, callback);
}
void a(final AccessToken.AccessTokenRefreshCallback accessTokenRefreshCallback) {
if (Looper.getMainLooper().equals(Looper.myLooper())) {
b(accessTokenRefreshCallback);
} else {
new Handler(Looper.getMainLooper()).post(new Runnable() { // from class: com.facebook.AccessTokenManager.1
@Override // java.lang.Runnable
public void run() {
AccessTokenManager.this.b(accessTokenRefreshCallback);
}
});
}
}
}