in AppCenterLoaderApp/appcenter-loader/src/main/java/com/microsoft/appcenter/loader/AppCenterLoader.java [61:159]
public boolean onCreate() {
mApplication = getApplication();
String appSecret = mApplication.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE).getString(APP_SECRET_SHARED_PREFERENCES_KEY, getStringResource(APP_SECRET_KEY));
String transmissionTargetToken = getStringResource(TRANSMISSION_TARGET_TOKEN_KEY);
int startupTypeInt = mApplication.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE).getInt(STARTUP_TYPE_SHARED_PREFERENCES_KEY, Integer.parseInt(getStringResource(STARTUP_TYPE_KEY)));
StartupType startupType = StartupType.values()[startupTypeInt];
/*
* If app secret isn't found in resources, return immediately. It's possible that resources
* weren't added properly.
*/
if (appSecret == null) {
AppCenterLog.error(AppCenterLog.LOG_TAG, "Failed to retrieve app secret from " +
"resources. App Center cannot be started.");
return false;
}
List<Class<? extends AppCenterService>> classes = new ArrayList<>();
if (isTrueValue(getStringResource(USE_ANALYTICS_KEY)) &&
isModuleAvailable("com.microsoft.appcenter.analytics.Analytics", "Analytics")) {
classes.add(Analytics.class);
}
// We start crash service in .Net code, to give app an opportunity to assign handlers after crash and restart in Awake method
// if (isTrueValue(getStringResource(USE_CRASHES_KEY)) &&
// isModuleAvailable("com.microsoft.appcenter.crashes.Crashes", "Crashes")) {
// classes.add(Crashes.class);
// }
if (isTrueValue(getStringResource(USE_DISTRIBUTE_KEY)) &&
isModuleAvailable("com.microsoft.appcenter.distribute.Distribute", "Distribute")) {
if (isTrueValue(getStringResource(ENABLE_DISTRIBUTE_FOR_DEBUGGABLE_BUILD_KEY))) {
Distribute.setEnabledForDebuggableBuild(true);
}
if (isTrueValue(getStringResource(USE_CUSTOM_API_URL_KEY))) {
String customApiUrl = getStringResource(CUSTOM_API_URL_KEY);
if (customApiUrl != null) {
Distribute.setApiUrl(customApiUrl);
}
}
if (isTrueValue(getStringResource(USE_CUSTOM_INSTALL_URL_KEY))) {
String customInstallUrl = getStringResource(CUSTOM_INSTALL_URL_KEY);
if (customInstallUrl != null) {
Distribute.setInstallUrl(customInstallUrl);
}
}
String updateTrackValue = getStringResource(UPDATE_TRACK_KEY);
if (updateTrackValue != null) {
Distribute.setUpdateTrack(Integer.parseInt(updateTrackValue));
}
if (isTrueValue(getStringResource(DISTRIBUTE_DISABLE_AUTOMATIC_CHECK_FOR_UPDATE_KEY))) {
Distribute.disableAutomaticCheckForUpdate();
}
}
int logLevel = Integer.parseInt(getStringResource(INITIAL_LOG_LEVEL_KEY));
AppCenter.setLogLevel(logLevel);
String customLogUrl = mApplication.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE).getString(LOG_URL_SHARED_PREFERENCES_KEY, null);
if (customLogUrl != null) {
AppCenter.setLogUrl(customLogUrl);
} else if (isTrueValue(getStringResource(USE_CUSTOM_LOG_URL_KEY))) {
customLogUrl = getStringResource(CUSTOM_LOG_URL_KEY);
if (customLogUrl != null) {
AppCenter.setLogUrl(customLogUrl);
}
}
if (!isTrueValue(getStringResource(ALLOW_NETWORK_REQUESTS_KEY))) {
AppCenter.setNetworkRequestsAllowed(false);
}
if (isTrueValue(getStringResource(ENABLE_MANUAL_SESSION_TRACKER_KEY))) {
Analytics.enableManualSessionTracker();
}
if (startupType == SKIP_START) {
return true;
}
SetMaxStorageSize();
String appIdArg = "";
switch (startupType) {
case APP_SECRET:
appIdArg = appSecret;
break;
case TARGET:
appIdArg = String.format("target=%s", transmissionTargetToken);
break;
case BOTH:
appIdArg = String.format("appsecret=%s;target=%s", appSecret, transmissionTargetToken);
break;
case NO_SECRET:
if (classes.size() > 0) {
Class<? extends AppCenterService>[] classesArray = GetClassesArray(classes);
AppCenter.start(mApplication, classesArray);
}
return true;
}
if (classes.size() > 0) {
Class<? extends AppCenterService>[] classesArray = GetClassesArray(classes);
AppCenter.start(mApplication, appIdArg, classesArray);
} else {
AppCenter.configure(mApplication, appIdArg);
}
return true;
}