package com.google.firebase.components; import android.util.Log; import com.google.firebase.dynamicloading.ComponentLoader; import com.google.firebase.events.Publisher; import com.google.firebase.events.Subscriber; import com.google.firebase.inject.Deferred; import com.google.firebase.inject.Provider; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicReference; /* loaded from: classes3.dex */ public class ComponentRuntime implements ComponentContainer, ComponentLoader { private static final Provider> EMPTY_PROVIDER = new g(1); private final ComponentRegistrarProcessor componentRegistrarProcessor; private final Map, Provider> components; private final AtomicReference eagerComponentsInitializedWith; private final EventBus eventBus; private final Map, Provider> lazyInstanceMap; private final Map, LazySet> lazySetMap; private Set processedCoroutineDispatcherInterfaces; private final List> unprocessedRegistrarProviders; /* loaded from: classes3.dex */ public static final class Builder { private final Executor defaultExecutor; private final List> lazyRegistrars = new ArrayList(); private final List> additionalComponents = new ArrayList(); private ComponentRegistrarProcessor componentRegistrarProcessor = ComponentRegistrarProcessor.NOOP; public Builder(Executor executor) { this.defaultExecutor = executor; } public static /* synthetic */ ComponentRegistrar lambda$addComponentRegistrar$0(ComponentRegistrar componentRegistrar) { return componentRegistrar; } public Builder addComponent(Component component) { this.additionalComponents.add(component); return this; } public Builder addComponentRegistrar(ComponentRegistrar componentRegistrar) { this.lazyRegistrars.add(new c(componentRegistrar, 1)); return this; } public Builder addLazyComponentRegistrars(Collection> collection) { this.lazyRegistrars.addAll(collection); return this; } public ComponentRuntime build() { return new ComponentRuntime(this.defaultExecutor, this.lazyRegistrars, this.additionalComponents, this.componentRegistrarProcessor); } public Builder setProcessor(ComponentRegistrarProcessor componentRegistrarProcessor) { this.componentRegistrarProcessor = componentRegistrarProcessor; return this; } } public /* synthetic */ ComponentRuntime(Executor executor, Iterable iterable, Collection collection, ComponentRegistrarProcessor componentRegistrarProcessor, AnonymousClass1 anonymousClass1) { this(executor, iterable, collection, componentRegistrarProcessor); } public static Builder builder(Executor executor) { return new Builder(executor); } private void discoverComponents(List> list) { ArrayList arrayList = new ArrayList(); synchronized (this) { Iterator> it = this.unprocessedRegistrarProviders.iterator(); while (it.hasNext()) { try { ComponentRegistrar componentRegistrar = it.next().get(); if (componentRegistrar != null) { list.addAll(this.componentRegistrarProcessor.processRegistrar(componentRegistrar)); it.remove(); } } catch (InvalidRegistrarException e4) { it.remove(); Log.w("ComponentDiscovery", "Invalid component registrar.", e4); } } Iterator> it2 = list.iterator(); while (it2.hasNext()) { Object[] array = it2.next().getProvidedInterfaces().toArray(); int length = array.length; int i = 0; while (true) { if (i < length) { Object obj = array[i]; if (obj.toString().contains("kotlinx.coroutines.CoroutineDispatcher")) { if (this.processedCoroutineDispatcherInterfaces.contains(obj.toString())) { it2.remove(); break; } this.processedCoroutineDispatcherInterfaces.add(obj.toString()); } i++; } } } if (this.components.isEmpty()) { CycleDetector.detect(list); } else { ArrayList arrayList2 = new ArrayList(this.components.keySet()); arrayList2.addAll(list); CycleDetector.detect(arrayList2); } for (final Component component : list) { this.components.put(component, new Lazy(new Provider() { // from class: com.google.firebase.components.d @Override // com.google.firebase.inject.Provider public final Object get() { Object lambda$discoverComponents$0; lambda$discoverComponents$0 = ComponentRuntime.this.lambda$discoverComponents$0(component); return lambda$discoverComponents$0; } })); } arrayList.addAll(processInstanceComponents(list)); arrayList.addAll(processSetComponents()); processDependencies(); } Iterator it3 = arrayList.iterator(); while (it3.hasNext()) { ((Runnable) it3.next()).run(); } maybeInitializeEagerComponents(); } private void doInitializeEagerComponents(Map, Provider> map, boolean z3) { for (Map.Entry, Provider> entry : map.entrySet()) { Component key = entry.getKey(); Provider value = entry.getValue(); if (key.isAlwaysEager() || (key.isEagerInDefaultApp() && z3)) { value.get(); } } this.eventBus.enablePublishingAndFlushPending(); } private static List iterableToList(Iterable iterable) { ArrayList arrayList = new ArrayList(); Iterator it = iterable.iterator(); while (it.hasNext()) { arrayList.add(it.next()); } return arrayList; } public /* synthetic */ Object lambda$discoverComponents$0(Component component) { return component.getFactory().create(new RestrictedComponentContainer(component, this)); } public static /* synthetic */ ComponentRegistrar lambda$toProviders$1(ComponentRegistrar componentRegistrar) { return componentRegistrar; } private void maybeInitializeEagerComponents() { Boolean bool = this.eagerComponentsInitializedWith.get(); if (bool != null) { doInitializeEagerComponents(this.components, bool.booleanValue()); } } private void processDependencies() { for (Component component : this.components.keySet()) { for (Dependency dependency : component.getDependencies()) { if (dependency.isSet() && !this.lazySetMap.containsKey(dependency.getInterface())) { this.lazySetMap.put(dependency.getInterface(), LazySet.fromCollection(Collections.EMPTY_SET)); } else if (this.lazyInstanceMap.containsKey(dependency.getInterface())) { continue; } else { if (dependency.isRequired()) { throw new MissingDependencyException("Unsatisfied dependency for component " + component + ": " + dependency.getInterface()); } if (!dependency.isSet()) { this.lazyInstanceMap.put(dependency.getInterface(), OptionalProvider.empty()); } } } } } private List processInstanceComponents(List> list) { ArrayList arrayList = new ArrayList(); for (Component component : list) { if (component.isValue()) { Provider provider = this.components.get(component); for (Qualified qualified : component.getProvidedInterfaces()) { if (this.lazyInstanceMap.containsKey(qualified)) { arrayList.add(new e(0, (OptionalProvider) this.lazyInstanceMap.get(qualified), provider)); } else { this.lazyInstanceMap.put(qualified, provider); } } } } return arrayList; } private List processSetComponents() { ArrayList arrayList = new ArrayList(); HashMap hashMap = new HashMap(); for (Map.Entry, Provider> entry : this.components.entrySet()) { Component key = entry.getKey(); if (!key.isValue()) { Provider value = entry.getValue(); for (Qualified qualified : key.getProvidedInterfaces()) { if (!hashMap.containsKey(qualified)) { hashMap.put(qualified, new HashSet()); } ((Set) hashMap.get(qualified)).add(value); } } } for (Map.Entry entry2 : hashMap.entrySet()) { if (this.lazySetMap.containsKey(entry2.getKey())) { LazySet lazySet = this.lazySetMap.get(entry2.getKey()); Iterator it = ((Set) entry2.getValue()).iterator(); while (it.hasNext()) { arrayList.add(new e(1, lazySet, (Provider) it.next())); } } else { this.lazySetMap.put((Qualified) entry2.getKey(), LazySet.fromCollection((Collection) entry2.getValue())); } } return arrayList; } private static Iterable> toProviders(Iterable iterable) { ArrayList arrayList = new ArrayList(); Iterator it = iterable.iterator(); while (it.hasNext()) { arrayList.add(new c(it.next(), 0)); } return arrayList; } public Collection> getAllComponentsForTest() { return this.components.keySet(); } @Override // com.google.firebase.components.ComponentContainer public Deferred getDeferred(Qualified qualified) { Provider provider = getProvider(qualified); return provider == null ? OptionalProvider.empty() : provider instanceof OptionalProvider ? (OptionalProvider) provider : OptionalProvider.of(provider); } @Override // com.google.firebase.components.ComponentContainer public synchronized Provider getProvider(Qualified qualified) { Preconditions.checkNotNull(qualified, "Null interface requested."); return (Provider) this.lazyInstanceMap.get(qualified); } public void initializeAllComponentsForTests() { Iterator> it = this.components.values().iterator(); while (it.hasNext()) { it.next().get(); } } public void initializeEagerComponents(boolean z3) { HashMap hashMap; AtomicReference atomicReference = this.eagerComponentsInitializedWith; Boolean valueOf = Boolean.valueOf(z3); while (!atomicReference.compareAndSet(null, valueOf)) { if (atomicReference.get() != null) { return; } } synchronized (this) { hashMap = new HashMap(this.components); } doInitializeEagerComponents(hashMap, z3); } @Override // com.google.firebase.components.ComponentContainer public synchronized Provider> setOfProvider(Qualified qualified) { LazySet lazySet = this.lazySetMap.get(qualified); if (lazySet != null) { return lazySet; } return (Provider>) EMPTY_PROVIDER; } @Deprecated public ComponentRuntime(Executor executor, Iterable iterable, Component... componentArr) { this(executor, toProviders(iterable), Arrays.asList(componentArr), ComponentRegistrarProcessor.NOOP); } private ComponentRuntime(Executor executor, Iterable> iterable, Collection> collection, ComponentRegistrarProcessor componentRegistrarProcessor) { this.components = new HashMap(); this.lazyInstanceMap = new HashMap(); this.lazySetMap = new HashMap(); this.processedCoroutineDispatcherInterfaces = new HashSet(); this.eagerComponentsInitializedWith = new AtomicReference<>(); EventBus eventBus = new EventBus(executor); this.eventBus = eventBus; this.componentRegistrarProcessor = componentRegistrarProcessor; ArrayList arrayList = new ArrayList(); arrayList.add(Component.of(eventBus, (Class) EventBus.class, (Class[]) new Class[]{Subscriber.class, Publisher.class})); arrayList.add(Component.of(this, (Class) ComponentLoader.class, (Class[]) new Class[0])); for (Component component : collection) { if (component != null) { arrayList.add(component); } } this.unprocessedRegistrarProviders = iterableToList(iterable); discoverComponents(arrayList); } @Override // com.google.firebase.dynamicloading.ComponentLoader public void discoverComponents() { synchronized (this) { try { if (this.unprocessedRegistrarProviders.isEmpty()) { return; } discoverComponents(new ArrayList()); } catch (Throwable th) { throw th; } } } }