Primer paso de la investigacion. Se aportan el .apk, las carpetas con el apk extraido y el apk descompilado. El archivo API_DOCUMENTATION.md es un archivo donde se anotaran los descubrimientos del funcionamiento de la API, y los .py son scripts para probar la funcionalidad de la API con los métodos que vayamos encontrando. Finalmente, los archivos .js son scripts de Frida para extraer informacion de la APP durante la ejecucion.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
package com.google.firebase.abt;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class AbtException extends Exception {
|
||||
public AbtException(String str) {
|
||||
super(str);
|
||||
}
|
||||
|
||||
public AbtException(String str, Exception exc) {
|
||||
super(str, exc);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
package com.google.firebase.abt;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class AbtExperimentInfo {
|
||||
static final String EXPERIMENT_ID_KEY = "experimentId";
|
||||
static final String TRIGGER_EVENT_KEY = "triggerEvent";
|
||||
static final String VARIANT_ID_KEY = "variantId";
|
||||
private final String experimentId;
|
||||
private final Date experimentStartTime;
|
||||
private final long timeToLiveInMillis;
|
||||
private final String triggerEventName;
|
||||
private final long triggerTimeoutInMillis;
|
||||
private final String variantId;
|
||||
static final String EXPERIMENT_START_TIME_KEY = "experimentStartTime";
|
||||
static final String TIME_TO_LIVE_KEY = "timeToLiveMillis";
|
||||
static final String TRIGGER_TIMEOUT_KEY = "triggerTimeoutMillis";
|
||||
private static final String[] ALL_REQUIRED_KEYS = {"experimentId", EXPERIMENT_START_TIME_KEY, TIME_TO_LIVE_KEY, TRIGGER_TIMEOUT_KEY, "variantId"};
|
||||
static final DateFormat protoTimestampStringParser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US);
|
||||
|
||||
public AbtExperimentInfo(String str, String str2, String str3, Date date, long j4, long j5) {
|
||||
this.experimentId = str;
|
||||
this.variantId = str2;
|
||||
this.triggerEventName = str3;
|
||||
this.experimentStartTime = date;
|
||||
this.triggerTimeoutInMillis = j4;
|
||||
this.timeToLiveInMillis = j5;
|
||||
}
|
||||
|
||||
public static AbtExperimentInfo fromConditionalUserProperty(AnalyticsConnector.ConditionalUserProperty conditionalUserProperty) {
|
||||
String str = conditionalUserProperty.triggerEventName;
|
||||
if (str == null) {
|
||||
str = "";
|
||||
}
|
||||
return new AbtExperimentInfo(conditionalUserProperty.name, String.valueOf(conditionalUserProperty.value), str, new Date(conditionalUserProperty.creationTimestamp), conditionalUserProperty.triggerTimeout, conditionalUserProperty.timeToLive);
|
||||
}
|
||||
|
||||
public static AbtExperimentInfo fromMap(Map<String, String> map) throws AbtException {
|
||||
validateExperimentInfoMap(map);
|
||||
try {
|
||||
return new AbtExperimentInfo(map.get("experimentId"), map.get("variantId"), map.containsKey(TRIGGER_EVENT_KEY) ? map.get(TRIGGER_EVENT_KEY) : "", protoTimestampStringParser.parse(map.get(EXPERIMENT_START_TIME_KEY)), Long.parseLong(map.get(TRIGGER_TIMEOUT_KEY)), Long.parseLong(map.get(TIME_TO_LIVE_KEY)));
|
||||
} catch (NumberFormatException e4) {
|
||||
throw new AbtException("Could not process experiment: one of the durations could not be converted into a long.", e4);
|
||||
} catch (ParseException e5) {
|
||||
throw new AbtException("Could not process experiment: parsing experiment start time failed.", e5);
|
||||
}
|
||||
}
|
||||
|
||||
public static void validateAbtExperimentInfo(AbtExperimentInfo abtExperimentInfo) throws AbtException {
|
||||
validateExperimentInfoMap(abtExperimentInfo.toStringMap());
|
||||
}
|
||||
|
||||
private static void validateExperimentInfoMap(Map<String, String> map) throws AbtException {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
for (String str : ALL_REQUIRED_KEYS) {
|
||||
if (!map.containsKey(str)) {
|
||||
arrayList.add(str);
|
||||
}
|
||||
}
|
||||
if (!arrayList.isEmpty()) {
|
||||
throw new AbtException(String.format("The following keys are missing from the experiment info map: %s", arrayList));
|
||||
}
|
||||
}
|
||||
|
||||
public String getExperimentId() {
|
||||
return this.experimentId;
|
||||
}
|
||||
|
||||
public long getStartTimeInMillisSinceEpoch() {
|
||||
return this.experimentStartTime.getTime();
|
||||
}
|
||||
|
||||
public long getTimeToLiveInMillis() {
|
||||
return this.timeToLiveInMillis;
|
||||
}
|
||||
|
||||
public String getTriggerEventName() {
|
||||
return this.triggerEventName;
|
||||
}
|
||||
|
||||
public long getTriggerTimeoutInMillis() {
|
||||
return this.triggerTimeoutInMillis;
|
||||
}
|
||||
|
||||
public String getVariantId() {
|
||||
return this.variantId;
|
||||
}
|
||||
|
||||
public AnalyticsConnector.ConditionalUserProperty toConditionalUserProperty(String str) {
|
||||
AnalyticsConnector.ConditionalUserProperty conditionalUserProperty = new AnalyticsConnector.ConditionalUserProperty();
|
||||
conditionalUserProperty.origin = str;
|
||||
conditionalUserProperty.creationTimestamp = getStartTimeInMillisSinceEpoch();
|
||||
conditionalUserProperty.name = this.experimentId;
|
||||
conditionalUserProperty.value = this.variantId;
|
||||
conditionalUserProperty.triggerEventName = TextUtils.isEmpty(this.triggerEventName) ? null : this.triggerEventName;
|
||||
conditionalUserProperty.triggerTimeout = this.triggerTimeoutInMillis;
|
||||
conditionalUserProperty.timeToLive = this.timeToLiveInMillis;
|
||||
return conditionalUserProperty;
|
||||
}
|
||||
|
||||
public Map<String, String> toStringMap() {
|
||||
HashMap hashMap = new HashMap();
|
||||
hashMap.put("experimentId", this.experimentId);
|
||||
hashMap.put("variantId", this.variantId);
|
||||
hashMap.put(TRIGGER_EVENT_KEY, this.triggerEventName);
|
||||
hashMap.put(EXPERIMENT_START_TIME_KEY, protoTimestampStringParser.format(this.experimentStartTime));
|
||||
hashMap.put(TRIGGER_TIMEOUT_KEY, Long.toString(this.triggerTimeoutInMillis));
|
||||
hashMap.put(TIME_TO_LIVE_KEY, Long.toString(this.timeToLiveInMillis));
|
||||
return hashMap;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.google.firebase.abt;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class BuildConfig {
|
||||
public static final String BUILD_TYPE = "release";
|
||||
public static final boolean DEBUG = false;
|
||||
public static final String LIBRARY_PACKAGE_NAME = "com.google.firebase.abt";
|
||||
public static final String VERSION_NAME = "21.1.1";
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
package com.google.firebase.abt;
|
||||
|
||||
import android.content.Context;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
import com.google.firebase.inject.Provider;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class FirebaseABTesting {
|
||||
static final String ABT_PREFERENCES = "com.google.firebase.abt";
|
||||
static final String ORIGIN_LAST_KNOWN_START_TIME_KEY_FORMAT = "%s_lastKnownExperimentStartTime";
|
||||
private final Provider<AnalyticsConnector> analyticsConnector;
|
||||
private Integer maxUserProperties = null;
|
||||
private final String originService;
|
||||
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
/* loaded from: classes3.dex */
|
||||
public @interface OriginService {
|
||||
public static final String INAPP_MESSAGING = "fiam";
|
||||
public static final String REMOTE_CONFIG = "frc";
|
||||
}
|
||||
|
||||
public FirebaseABTesting(Context context, Provider<AnalyticsConnector> provider, String str) {
|
||||
this.analyticsConnector = provider;
|
||||
this.originService = str;
|
||||
}
|
||||
|
||||
private void addExperimentToAnalytics(AnalyticsConnector.ConditionalUserProperty conditionalUserProperty) {
|
||||
this.analyticsConnector.get().setConditionalUserProperty(conditionalUserProperty);
|
||||
}
|
||||
|
||||
private void addExperiments(List<AbtExperimentInfo> list) {
|
||||
ArrayDeque arrayDeque = new ArrayDeque(getAllExperimentsInAnalytics());
|
||||
int maxUserPropertiesInAnalytics = getMaxUserPropertiesInAnalytics();
|
||||
for (AbtExperimentInfo abtExperimentInfo : list) {
|
||||
while (arrayDeque.size() >= maxUserPropertiesInAnalytics) {
|
||||
removeExperimentFromAnalytics(((AnalyticsConnector.ConditionalUserProperty) arrayDeque.pollFirst()).name);
|
||||
}
|
||||
AnalyticsConnector.ConditionalUserProperty conditionalUserProperty = abtExperimentInfo.toConditionalUserProperty(this.originService);
|
||||
addExperimentToAnalytics(conditionalUserProperty);
|
||||
arrayDeque.offer(conditionalUserProperty);
|
||||
}
|
||||
}
|
||||
|
||||
private static List<AbtExperimentInfo> convertMapsToExperimentInfos(List<Map<String, String>> list) throws AbtException {
|
||||
ArrayList arrayList = new ArrayList();
|
||||
Iterator<Map<String, String>> it = list.iterator();
|
||||
while (it.hasNext()) {
|
||||
arrayList.add(AbtExperimentInfo.fromMap(it.next()));
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
private boolean experimentsListContainsExperiment(List<AbtExperimentInfo> list, AbtExperimentInfo abtExperimentInfo) {
|
||||
String experimentId = abtExperimentInfo.getExperimentId();
|
||||
String variantId = abtExperimentInfo.getVariantId();
|
||||
for (AbtExperimentInfo abtExperimentInfo2 : list) {
|
||||
if (abtExperimentInfo2.getExperimentId().equals(experimentId) && abtExperimentInfo2.getVariantId().equals(variantId)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private List<AnalyticsConnector.ConditionalUserProperty> getAllExperimentsInAnalytics() {
|
||||
return this.analyticsConnector.get().getConditionalUserProperties(this.originService, "");
|
||||
}
|
||||
|
||||
private ArrayList<AbtExperimentInfo> getExperimentsToAdd(List<AbtExperimentInfo> list, List<AbtExperimentInfo> list2) {
|
||||
ArrayList<AbtExperimentInfo> arrayList = new ArrayList<>();
|
||||
for (AbtExperimentInfo abtExperimentInfo : list) {
|
||||
if (!experimentsListContainsExperiment(list2, abtExperimentInfo)) {
|
||||
arrayList.add(abtExperimentInfo);
|
||||
}
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
private ArrayList<AnalyticsConnector.ConditionalUserProperty> getExperimentsToRemove(List<AbtExperimentInfo> list, List<AbtExperimentInfo> list2) {
|
||||
ArrayList<AnalyticsConnector.ConditionalUserProperty> arrayList = new ArrayList<>();
|
||||
for (AbtExperimentInfo abtExperimentInfo : list) {
|
||||
if (!experimentsListContainsExperiment(list2, abtExperimentInfo)) {
|
||||
arrayList.add(abtExperimentInfo.toConditionalUserProperty(this.originService));
|
||||
}
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
private int getMaxUserPropertiesInAnalytics() {
|
||||
if (this.maxUserProperties == null) {
|
||||
this.maxUserProperties = Integer.valueOf(this.analyticsConnector.get().getMaxUserProperties(this.originService));
|
||||
}
|
||||
return this.maxUserProperties.intValue();
|
||||
}
|
||||
|
||||
private void removeExperimentFromAnalytics(String str) {
|
||||
this.analyticsConnector.get().clearConditionalUserProperty(str, null, null);
|
||||
}
|
||||
|
||||
private void removeExperiments(Collection<AnalyticsConnector.ConditionalUserProperty> collection) {
|
||||
Iterator<AnalyticsConnector.ConditionalUserProperty> it = collection.iterator();
|
||||
while (it.hasNext()) {
|
||||
removeExperimentFromAnalytics(it.next().name);
|
||||
}
|
||||
}
|
||||
|
||||
private void replaceAllExperimentsWith(List<AbtExperimentInfo> list) throws AbtException {
|
||||
if (list.isEmpty()) {
|
||||
removeAllExperiments();
|
||||
return;
|
||||
}
|
||||
List<AbtExperimentInfo> allExperiments = getAllExperiments();
|
||||
removeExperiments(getExperimentsToRemove(allExperiments, list));
|
||||
addExperiments(getExperimentsToAdd(list, allExperiments));
|
||||
}
|
||||
|
||||
private void throwAbtExceptionIfAnalyticsIsNull() throws AbtException {
|
||||
if (this.analyticsConnector.get() == null) {
|
||||
throw new AbtException("The Analytics SDK is not available. Please check that the Analytics SDK is included in your app dependencies.");
|
||||
}
|
||||
}
|
||||
|
||||
public List<AbtExperimentInfo> getAllExperiments() throws AbtException {
|
||||
throwAbtExceptionIfAnalyticsIsNull();
|
||||
List<AnalyticsConnector.ConditionalUserProperty> allExperimentsInAnalytics = getAllExperimentsInAnalytics();
|
||||
ArrayList arrayList = new ArrayList();
|
||||
Iterator<AnalyticsConnector.ConditionalUserProperty> it = allExperimentsInAnalytics.iterator();
|
||||
while (it.hasNext()) {
|
||||
arrayList.add(AbtExperimentInfo.fromConditionalUserProperty(it.next()));
|
||||
}
|
||||
return arrayList;
|
||||
}
|
||||
|
||||
public void removeAllExperiments() throws AbtException {
|
||||
throwAbtExceptionIfAnalyticsIsNull();
|
||||
removeExperiments(getAllExperimentsInAnalytics());
|
||||
}
|
||||
|
||||
public void replaceAllExperiments(List<Map<String, String>> list) throws AbtException {
|
||||
throwAbtExceptionIfAnalyticsIsNull();
|
||||
if (list == null) {
|
||||
throw new IllegalArgumentException("The replacementExperiments list is null.");
|
||||
}
|
||||
replaceAllExperimentsWith(convertMapsToExperimentInfos(list));
|
||||
}
|
||||
|
||||
public void reportActiveExperiment(AbtExperimentInfo abtExperimentInfo) throws AbtException {
|
||||
throwAbtExceptionIfAnalyticsIsNull();
|
||||
AbtExperimentInfo.validateAbtExperimentInfo(abtExperimentInfo);
|
||||
ArrayList arrayList = new ArrayList();
|
||||
Map<String, String> stringMap = abtExperimentInfo.toStringMap();
|
||||
stringMap.remove("triggerEvent");
|
||||
arrayList.add(AbtExperimentInfo.fromMap(stringMap));
|
||||
addExperiments(arrayList);
|
||||
}
|
||||
|
||||
public void validateRunningExperiments(List<AbtExperimentInfo> list) throws AbtException {
|
||||
throwAbtExceptionIfAnalyticsIsNull();
|
||||
removeExperiments(getExperimentsToRemove(getAllExperiments(), list));
|
||||
}
|
||||
}
|
||||
290
apk_decompiled/sources/com/google/firebase/abt/R.java
Normal file
290
apk_decompiled/sources/com/google/firebase/abt/R.java
Normal file
@@ -0,0 +1,290 @@
|
||||
package com.google.firebase.abt;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class R {
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class attr {
|
||||
public static final int alpha = 0x7f030031;
|
||||
public static final int coordinatorLayoutStyle = 0x7f03016c;
|
||||
public static final int font = 0x7f03022d;
|
||||
public static final int fontProviderAuthority = 0x7f03022f;
|
||||
public static final int fontProviderCerts = 0x7f030230;
|
||||
public static final int fontProviderFetchStrategy = 0x7f030231;
|
||||
public static final int fontProviderFetchTimeout = 0x7f030232;
|
||||
public static final int fontProviderPackage = 0x7f030233;
|
||||
public static final int fontProviderQuery = 0x7f030234;
|
||||
public static final int fontStyle = 0x7f030236;
|
||||
public static final int fontVariationSettings = 0x7f030237;
|
||||
public static final int fontWeight = 0x7f030238;
|
||||
public static final int keylines = 0x7f0302b5;
|
||||
public static final int layout_anchor = 0x7f0302c6;
|
||||
public static final int layout_anchorGravity = 0x7f0302c7;
|
||||
public static final int layout_behavior = 0x7f0302c9;
|
||||
public static final int layout_dodgeInsetEdges = 0x7f0302fa;
|
||||
public static final int layout_insetEdge = 0x7f030305;
|
||||
public static final int layout_keyline = 0x7f030306;
|
||||
public static final int statusBarBackground = 0x7f030488;
|
||||
public static final int ttcIndex = 0x7f030559;
|
||||
|
||||
private attr() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class color {
|
||||
public static final int notification_action_color_filter = 0x7f050315;
|
||||
public static final int notification_icon_bg_color = 0x7f050316;
|
||||
public static final int ripple_material_light = 0x7f050322;
|
||||
public static final int secondary_text_default_material_light = 0x7f050324;
|
||||
|
||||
private color() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class dimen {
|
||||
public static final int compat_button_inset_horizontal_material = 0x7f06006d;
|
||||
public static final int compat_button_inset_vertical_material = 0x7f06006e;
|
||||
public static final int compat_button_padding_horizontal_material = 0x7f06006f;
|
||||
public static final int compat_button_padding_vertical_material = 0x7f060070;
|
||||
public static final int compat_control_corner_material = 0x7f060071;
|
||||
public static final int compat_notification_large_icon_max_height = 0x7f060072;
|
||||
public static final int compat_notification_large_icon_max_width = 0x7f060073;
|
||||
public static final int notification_action_icon_size = 0x7f060385;
|
||||
public static final int notification_action_text_size = 0x7f060386;
|
||||
public static final int notification_big_circle_margin = 0x7f060387;
|
||||
public static final int notification_content_margin_start = 0x7f060388;
|
||||
public static final int notification_large_icon_height = 0x7f06038d;
|
||||
public static final int notification_large_icon_width = 0x7f06038e;
|
||||
public static final int notification_main_column_padding_top = 0x7f06038f;
|
||||
public static final int notification_media_narrow_margin = 0x7f060391;
|
||||
public static final int notification_right_icon_size = 0x7f060393;
|
||||
public static final int notification_right_side_padding_top = 0x7f060394;
|
||||
public static final int notification_small_icon_background_padding = 0x7f060395;
|
||||
public static final int notification_small_icon_size_as_large = 0x7f060396;
|
||||
public static final int notification_subtext_size = 0x7f060397;
|
||||
public static final int notification_top_pad = 0x7f06039b;
|
||||
public static final int notification_top_pad_large_text = 0x7f06039c;
|
||||
|
||||
private dimen() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class drawable {
|
||||
public static final int notification_action_background = 0x7f070181;
|
||||
public static final int notification_bg = 0x7f070182;
|
||||
public static final int notification_bg_low = 0x7f070183;
|
||||
public static final int notification_bg_low_normal = 0x7f070184;
|
||||
public static final int notification_bg_low_pressed = 0x7f070185;
|
||||
public static final int notification_bg_normal = 0x7f070186;
|
||||
public static final int notification_bg_normal_pressed = 0x7f070187;
|
||||
public static final int notification_icon_background = 0x7f070188;
|
||||
public static final int notification_template_icon_bg = 0x7f07018a;
|
||||
public static final int notification_template_icon_low_bg = 0x7f07018b;
|
||||
public static final int notification_tile_bg = 0x7f07018c;
|
||||
public static final int notify_panel_notification_icon_bg = 0x7f07018d;
|
||||
|
||||
private drawable() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class id {
|
||||
public static final int accessibility_action_clickable_span = 0x7f090013;
|
||||
public static final int accessibility_custom_action_0 = 0x7f090014;
|
||||
public static final int accessibility_custom_action_1 = 0x7f090015;
|
||||
public static final int accessibility_custom_action_10 = 0x7f090016;
|
||||
public static final int accessibility_custom_action_11 = 0x7f090017;
|
||||
public static final int accessibility_custom_action_12 = 0x7f090018;
|
||||
public static final int accessibility_custom_action_13 = 0x7f090019;
|
||||
public static final int accessibility_custom_action_14 = 0x7f09001a;
|
||||
public static final int accessibility_custom_action_15 = 0x7f09001b;
|
||||
public static final int accessibility_custom_action_16 = 0x7f09001c;
|
||||
public static final int accessibility_custom_action_17 = 0x7f09001d;
|
||||
public static final int accessibility_custom_action_18 = 0x7f09001e;
|
||||
public static final int accessibility_custom_action_19 = 0x7f09001f;
|
||||
public static final int accessibility_custom_action_2 = 0x7f090020;
|
||||
public static final int accessibility_custom_action_20 = 0x7f090021;
|
||||
public static final int accessibility_custom_action_21 = 0x7f090022;
|
||||
public static final int accessibility_custom_action_22 = 0x7f090023;
|
||||
public static final int accessibility_custom_action_23 = 0x7f090024;
|
||||
public static final int accessibility_custom_action_24 = 0x7f090025;
|
||||
public static final int accessibility_custom_action_25 = 0x7f090026;
|
||||
public static final int accessibility_custom_action_26 = 0x7f090027;
|
||||
public static final int accessibility_custom_action_27 = 0x7f090028;
|
||||
public static final int accessibility_custom_action_28 = 0x7f090029;
|
||||
public static final int accessibility_custom_action_29 = 0x7f09002a;
|
||||
public static final int accessibility_custom_action_3 = 0x7f09002b;
|
||||
public static final int accessibility_custom_action_30 = 0x7f09002c;
|
||||
public static final int accessibility_custom_action_31 = 0x7f09002d;
|
||||
public static final int accessibility_custom_action_4 = 0x7f09002e;
|
||||
public static final int accessibility_custom_action_5 = 0x7f09002f;
|
||||
public static final int accessibility_custom_action_6 = 0x7f090030;
|
||||
public static final int accessibility_custom_action_7 = 0x7f090031;
|
||||
public static final int accessibility_custom_action_8 = 0x7f090032;
|
||||
public static final int accessibility_custom_action_9 = 0x7f090033;
|
||||
public static final int action_container = 0x7f090045;
|
||||
public static final int action_divider = 0x7f090048;
|
||||
public static final int action_image = 0x7f09004a;
|
||||
public static final int action_text = 0x7f090051;
|
||||
public static final int actions = 0x7f090052;
|
||||
public static final int async = 0x7f090071;
|
||||
public static final int blocking = 0x7f090082;
|
||||
public static final int bottom = 0x7f090083;
|
||||
public static final int chronometer = 0x7f0900a9;
|
||||
public static final int dialog_button = 0x7f09010b;
|
||||
public static final int end = 0x7f090133;
|
||||
public static final int forever = 0x7f090152;
|
||||
public static final int icon = 0x7f090195;
|
||||
public static final int icon_group = 0x7f090196;
|
||||
public static final int info = 0x7f0901a9;
|
||||
public static final int italic = 0x7f0901be;
|
||||
public static final int left = 0x7f0901e2;
|
||||
public static final int line1 = 0x7f0901e9;
|
||||
public static final int line3 = 0x7f0901ea;
|
||||
public static final int none = 0x7f090264;
|
||||
public static final int normal = 0x7f090265;
|
||||
public static final int notification_background = 0x7f090269;
|
||||
public static final int notification_main_column = 0x7f09026a;
|
||||
public static final int notification_main_column_container = 0x7f09026b;
|
||||
public static final int right = 0x7f0902cd;
|
||||
public static final int right_icon = 0x7f0902cf;
|
||||
public static final int right_side = 0x7f0902d0;
|
||||
public static final int start = 0x7f090322;
|
||||
public static final int tag_accessibility_actions = 0x7f09035c;
|
||||
public static final int tag_accessibility_clickable_spans = 0x7f09035d;
|
||||
public static final int tag_accessibility_heading = 0x7f09035e;
|
||||
public static final int tag_accessibility_pane_title = 0x7f09035f;
|
||||
public static final int tag_screen_reader_focusable = 0x7f090363;
|
||||
public static final int tag_transition_group = 0x7f090365;
|
||||
public static final int tag_unhandled_key_event_manager = 0x7f090366;
|
||||
public static final int tag_unhandled_key_listeners = 0x7f090367;
|
||||
public static final int text = 0x7f09036d;
|
||||
public static final int text2 = 0x7f09036e;
|
||||
public static final int time = 0x7f09038e;
|
||||
public static final int title = 0x7f090393;
|
||||
public static final int top = 0x7f0903ac;
|
||||
|
||||
private id() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class integer {
|
||||
public static final int google_play_services_version = 0x7f0a0009;
|
||||
public static final int status_bar_notification_info_maxnum = 0x7f0a0045;
|
||||
|
||||
private integer() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class layout {
|
||||
public static final int custom_dialog = 0x7f0c0026;
|
||||
public static final int notification_action = 0x7f0c00a8;
|
||||
public static final int notification_action_tombstone = 0x7f0c00a9;
|
||||
public static final int notification_template_custom_big = 0x7f0c00aa;
|
||||
public static final int notification_template_icon_group = 0x7f0c00ab;
|
||||
public static final int notification_template_part_chronometer = 0x7f0c00ac;
|
||||
public static final int notification_template_part_time = 0x7f0c00ad;
|
||||
|
||||
private layout() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class raw {
|
||||
public static final int firebase_common_keep = 0x7f120000;
|
||||
|
||||
private raw() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class string {
|
||||
public static final int common_google_play_services_unknown_issue = 0x7f1300bc;
|
||||
public static final int status_bar_notification_info_overflow = 0x7f13023b;
|
||||
|
||||
private string() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class style {
|
||||
public static final int TextAppearance_Compat_Notification = 0x7f1401fb;
|
||||
public static final int TextAppearance_Compat_Notification_Info = 0x7f1401fc;
|
||||
public static final int TextAppearance_Compat_Notification_Line2 = 0x7f1401fd;
|
||||
public static final int TextAppearance_Compat_Notification_Time = 0x7f1401fe;
|
||||
public static final int TextAppearance_Compat_Notification_Title = 0x7f1401ff;
|
||||
public static final int Widget_Compat_NotificationActionContainer = 0x7f1403a1;
|
||||
public static final int Widget_Compat_NotificationActionText = 0x7f1403a2;
|
||||
public static final int Widget_Support_CoordinatorLayout = 0x7f1404d7;
|
||||
|
||||
private style() {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class styleable {
|
||||
public static final int ColorStateListItem_alpha = 0x00000003;
|
||||
public static final int ColorStateListItem_android_alpha = 0x00000001;
|
||||
public static final int ColorStateListItem_android_color = 0x00000000;
|
||||
public static final int ColorStateListItem_android_lStar = 0x00000002;
|
||||
public static final int ColorStateListItem_lStar = 0x00000004;
|
||||
public static final int CoordinatorLayout_Layout_android_layout_gravity = 0x00000000;
|
||||
public static final int CoordinatorLayout_Layout_layout_anchor = 0x00000001;
|
||||
public static final int CoordinatorLayout_Layout_layout_anchorGravity = 0x00000002;
|
||||
public static final int CoordinatorLayout_Layout_layout_behavior = 0x00000003;
|
||||
public static final int CoordinatorLayout_Layout_layout_dodgeInsetEdges = 0x00000004;
|
||||
public static final int CoordinatorLayout_Layout_layout_insetEdge = 0x00000005;
|
||||
public static final int CoordinatorLayout_Layout_layout_keyline = 0x00000006;
|
||||
public static final int CoordinatorLayout_keylines = 0x00000000;
|
||||
public static final int CoordinatorLayout_statusBarBackground = 0x00000001;
|
||||
public static final int FontFamilyFont_android_font = 0x00000000;
|
||||
public static final int FontFamilyFont_android_fontStyle = 0x00000002;
|
||||
public static final int FontFamilyFont_android_fontVariationSettings = 0x00000004;
|
||||
public static final int FontFamilyFont_android_fontWeight = 0x00000001;
|
||||
public static final int FontFamilyFont_android_ttcIndex = 0x00000003;
|
||||
public static final int FontFamilyFont_font = 0x00000005;
|
||||
public static final int FontFamilyFont_fontStyle = 0x00000006;
|
||||
public static final int FontFamilyFont_fontVariationSettings = 0x00000007;
|
||||
public static final int FontFamilyFont_fontWeight = 0x00000008;
|
||||
public static final int FontFamilyFont_ttcIndex = 0x00000009;
|
||||
public static final int FontFamily_fontProviderAuthority = 0x00000000;
|
||||
public static final int FontFamily_fontProviderCerts = 0x00000001;
|
||||
public static final int FontFamily_fontProviderFetchStrategy = 0x00000002;
|
||||
public static final int FontFamily_fontProviderFetchTimeout = 0x00000003;
|
||||
public static final int FontFamily_fontProviderPackage = 0x00000004;
|
||||
public static final int FontFamily_fontProviderQuery = 0x00000005;
|
||||
public static final int FontFamily_fontProviderSystemFontFamily = 0x00000006;
|
||||
public static final int GradientColorItem_android_color = 0x00000000;
|
||||
public static final int GradientColorItem_android_offset = 0x00000001;
|
||||
public static final int GradientColor_android_centerColor = 0x00000007;
|
||||
public static final int GradientColor_android_centerX = 0x00000003;
|
||||
public static final int GradientColor_android_centerY = 0x00000004;
|
||||
public static final int GradientColor_android_endColor = 0x00000001;
|
||||
public static final int GradientColor_android_endX = 0x0000000a;
|
||||
public static final int GradientColor_android_endY = 0x0000000b;
|
||||
public static final int GradientColor_android_gradientRadius = 0x00000005;
|
||||
public static final int GradientColor_android_startColor = 0x00000000;
|
||||
public static final int GradientColor_android_startX = 0x00000008;
|
||||
public static final int GradientColor_android_startY = 0x00000009;
|
||||
public static final int GradientColor_android_tileMode = 0x00000006;
|
||||
public static final int GradientColor_android_type = 0x00000002;
|
||||
public static final int[] ColorStateListItem = {android.R.attr.color, android.R.attr.alpha, 16844359, com.adif.elcanomovil.R.attr.alpha, com.adif.elcanomovil.R.attr.lStar};
|
||||
public static final int[] CoordinatorLayout = {com.adif.elcanomovil.R.attr.keylines, com.adif.elcanomovil.R.attr.statusBarBackground};
|
||||
public static final int[] CoordinatorLayout_Layout = {android.R.attr.layout_gravity, com.adif.elcanomovil.R.attr.layout_anchor, com.adif.elcanomovil.R.attr.layout_anchorGravity, com.adif.elcanomovil.R.attr.layout_behavior, com.adif.elcanomovil.R.attr.layout_dodgeInsetEdges, com.adif.elcanomovil.R.attr.layout_insetEdge, com.adif.elcanomovil.R.attr.layout_keyline};
|
||||
public static final int[] FontFamily = {com.adif.elcanomovil.R.attr.fontProviderAuthority, com.adif.elcanomovil.R.attr.fontProviderCerts, com.adif.elcanomovil.R.attr.fontProviderFetchStrategy, com.adif.elcanomovil.R.attr.fontProviderFetchTimeout, com.adif.elcanomovil.R.attr.fontProviderPackage, com.adif.elcanomovil.R.attr.fontProviderQuery, com.adif.elcanomovil.R.attr.fontProviderSystemFontFamily};
|
||||
public static final int[] FontFamilyFont = {android.R.attr.font, android.R.attr.fontWeight, android.R.attr.fontStyle, android.R.attr.ttcIndex, android.R.attr.fontVariationSettings, com.adif.elcanomovil.R.attr.font, com.adif.elcanomovil.R.attr.fontStyle, com.adif.elcanomovil.R.attr.fontVariationSettings, com.adif.elcanomovil.R.attr.fontWeight, com.adif.elcanomovil.R.attr.ttcIndex};
|
||||
public static final int[] GradientColor = {android.R.attr.startColor, android.R.attr.endColor, android.R.attr.type, android.R.attr.centerX, android.R.attr.centerY, android.R.attr.gradientRadius, android.R.attr.tileMode, android.R.attr.centerColor, android.R.attr.startX, android.R.attr.startY, android.R.attr.endX, android.R.attr.endY};
|
||||
public static final int[] GradientColorItem = {android.R.attr.color, android.R.attr.offset};
|
||||
|
||||
private styleable() {
|
||||
}
|
||||
}
|
||||
|
||||
private R() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.google.firebase.abt.component;
|
||||
|
||||
import android.content.Context;
|
||||
import com.google.firebase.abt.FirebaseABTesting;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
import com.google.firebase.inject.Provider;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class AbtComponent {
|
||||
private final Map<String, FirebaseABTesting> abtOriginInstances = new HashMap();
|
||||
private final Provider<AnalyticsConnector> analyticsConnector;
|
||||
private final Context appContext;
|
||||
|
||||
public AbtComponent(Context context, Provider<AnalyticsConnector> provider) {
|
||||
this.appContext = context;
|
||||
this.analyticsConnector = provider;
|
||||
}
|
||||
|
||||
public FirebaseABTesting createAbtInstance(String str) {
|
||||
return new FirebaseABTesting(this.appContext, this.analyticsConnector, str);
|
||||
}
|
||||
|
||||
public synchronized FirebaseABTesting get(String str) {
|
||||
try {
|
||||
if (!this.abtOriginInstances.containsKey(str)) {
|
||||
this.abtOriginInstances.put(str, createAbtInstance(str));
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
throw th;
|
||||
}
|
||||
return this.abtOriginInstances.get(str);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.google.firebase.abt.component;
|
||||
|
||||
import M2.a;
|
||||
import android.content.Context;
|
||||
import androidx.annotation.Keep;
|
||||
import com.google.firebase.abt.BuildConfig;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
import com.google.firebase.components.Component;
|
||||
import com.google.firebase.components.ComponentContainer;
|
||||
import com.google.firebase.components.ComponentRegistrar;
|
||||
import com.google.firebase.components.Dependency;
|
||||
import com.google.firebase.platforminfo.LibraryVersionComponent;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@Keep
|
||||
/* loaded from: classes3.dex */
|
||||
public class AbtRegistrar implements ComponentRegistrar {
|
||||
private static final String LIBRARY_NAME = "fire-abt";
|
||||
|
||||
public static /* synthetic */ AbtComponent a(ComponentContainer componentContainer) {
|
||||
return lambda$getComponents$0(componentContainer);
|
||||
}
|
||||
|
||||
public static /* synthetic */ AbtComponent lambda$getComponents$0(ComponentContainer componentContainer) {
|
||||
return new AbtComponent((Context) componentContainer.get(Context.class), componentContainer.getProvider(AnalyticsConnector.class));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.components.ComponentRegistrar
|
||||
public List<Component<?>> getComponents() {
|
||||
return Arrays.asList(Component.builder(AbtComponent.class).name(LIBRARY_NAME).add(Dependency.required((Class<?>) Context.class)).add(Dependency.optionalProvider((Class<?>) AnalyticsConnector.class)).factory(new a(0)).build(), LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user