package androidx.browser.trusted; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.AsyncTask; import android.util.Log; import androidx.annotation.MainThread; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.FragmentTransaction; import com.google.common.util.concurrent.ListenableFuture; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.concurrent.Executor; /* loaded from: classes.dex */ public final class TrustedWebActivityServiceConnectionPool { private static final String TAG = "TWAConnectionPool"; private final Map mConnections = new HashMap(); private final Context mContext; private TrustedWebActivityServiceConnectionPool(@NonNull Context context) { this.mContext = context.getApplicationContext(); } @NonNull public static TrustedWebActivityServiceConnectionPool create(@NonNull Context context) { return new TrustedWebActivityServiceConnectionPool(context); } @NonNull @MainThread public ListenableFuture connect(@NonNull final Uri uri, @NonNull Set set, @NonNull Executor executor) { ConnectionHolder connectionHolder = this.mConnections.get(uri); if (connectionHolder != null) { return connectionHolder.getServiceWrapper(); } Intent createServiceIntent = createServiceIntent(this.mContext, uri, set, true); if (createServiceIntent == null) { return FutureUtils.immediateFailedFuture(new IllegalArgumentException("No service exists for scope")); } ConnectionHolder connectionHolder2 = new ConnectionHolder(new Runnable() { // from class: androidx.browser.trusted.TrustedWebActivityServiceConnectionPool$$ExternalSyntheticLambda0 @Override // java.lang.Runnable public final void run() { TrustedWebActivityServiceConnectionPool.this.lambda$connect$0(uri); } }); this.mConnections.put(uri, connectionHolder2); new BindToServiceAsyncTask(this.mContext, createServiceIntent, connectionHolder2).executeOnExecutor(executor, new Void[0]); return connectionHolder2.getServiceWrapper(); } /* JADX INFO: Access modifiers changed from: private */ public /* synthetic */ void lambda$connect$0(Uri uri) { this.mConnections.remove(uri); } public static class BindToServiceAsyncTask extends AsyncTask { private final Context mAppContext; private final ConnectionHolder mConnection; private final Intent mIntent; public BindToServiceAsyncTask(Context context, Intent intent, ConnectionHolder connectionHolder) { this.mAppContext = context.getApplicationContext(); this.mIntent = intent; this.mConnection = connectionHolder; } @Override // android.os.AsyncTask @Nullable public Exception doInBackground(Void... voidArr) { try { if (this.mAppContext.bindService(this.mIntent, this.mConnection, FragmentTransaction.TRANSIT_FRAGMENT_OPEN)) { return null; } this.mAppContext.unbindService(this.mConnection); return new IllegalStateException("Could not bind to the service"); } catch (SecurityException e) { Log.w(TrustedWebActivityServiceConnectionPool.TAG, "SecurityException while binding.", e); return e; } } @Override // android.os.AsyncTask public void onPostExecute(Exception exc) { if (exc != null) { this.mConnection.cancel(exc); } } } @MainThread public boolean serviceExistsForScope(@NonNull Uri uri, @NonNull Set set) { return (this.mConnections.get(uri) == null && createServiceIntent(this.mContext, uri, set, false) == null) ? false : true; } public void unbindAllConnections() { Iterator it = this.mConnections.values().iterator(); while (it.hasNext()) { this.mContext.unbindService(it.next()); } this.mConnections.clear(); } @Nullable private Intent createServiceIntent(Context context, Uri uri, Set set, boolean z) { if (set == null || set.size() == 0) { return null; } Intent intent = new Intent(); intent.setData(uri); intent.setAction("android.intent.action.VIEW"); Iterator it = context.getPackageManager().queryIntentActivities(intent, 65536).iterator(); String str = null; while (it.hasNext()) { String str2 = it.next().activityInfo.packageName; Iterator it2 = set.iterator(); while (true) { if (!it2.hasNext()) { break; } if (it2.next().matches(str2, context.getPackageManager())) { str = str2; break; } } } if (str == null) { if (z) { Log.w(TAG, "No TWA candidates for " + uri + " have been registered."); } return null; } Intent intent2 = new Intent(); intent2.setPackage(str); intent2.setAction(TrustedWebActivityService.ACTION_TRUSTED_WEB_ACTIVITY_SERVICE); ResolveInfo resolveService = context.getPackageManager().resolveService(intent2, 131072); if (resolveService == null) { if (z) { Log.w(TAG, "Could not find TWAService for " + str); } return null; } if (z) { StringBuilder sb = new StringBuilder(); sb.append("Found "); sb.append(resolveService.serviceInfo.name); sb.append(" to handle request for "); sb.append(uri); } Intent intent3 = new Intent(); intent3.setComponent(new ComponentName(str, resolveService.serviceInfo.name)); return intent3; } }