use of com.amplifyframework.core.InitializationStatus in project amplify-android by aws-amplify.
the class Category method initialize.
/**
* Initialize the category. This asynchronous call is made only after
* the category has been successfully configured. Whereas configuration is a short-lived
* synchronous phase of setup, initialization may require disk/network resources, etc.
* @param context An Android Context
* @return A category initialization result
*/
@NonNull
@WorkerThread
public final synchronized CategoryInitializationResult initialize(@NonNull Context context) {
final Map<String, InitializationResult> pluginInitializationResults = new HashMap<>();
if (!State.CONFIGURED.equals(state.get())) {
for (P plugin : getPlugins()) {
InitializationResult result = InitializationResult.failure(new AmplifyException("Tried to init before category was not configured.", "Call configure() on category, first."));
pluginInitializationResults.put(plugin.getPluginKey(), result);
}
} else {
state.set(State.CONFIGURING);
for (P plugin : getPlugins()) {
InitializationResult result;
try {
plugin.initialize(context);
result = InitializationResult.success();
} catch (AmplifyException pluginInitializationFailure) {
result = InitializationResult.failure(pluginInitializationFailure);
}
pluginInitializationResults.put(plugin.getPluginKey(), result);
}
}
final CategoryInitializationResult result = CategoryInitializationResult.with(pluginInitializationResults);
categoryInitializationResult.set(result);
if (result.isFailure()) {
state.set(State.INITIALIZATION_FAILED);
} else {
state.set(State.INITIALIZED);
}
HubChannel hubChannel = HubChannel.forCategoryType(getCategoryType());
InitializationStatus status = result.isFailure() ? InitializationStatus.FAILED : InitializationStatus.SUCCEEDED;
Amplify.Hub.publish(hubChannel, HubEvent.create(status, result));
return result;
}
use of com.amplifyframework.core.InitializationStatus in project amplify-android by aws-amplify.
the class CategoryInitializationResult method with.
/**
* Creates a CategoryInitializationResult using the results from initializing a collection
* of named plugins.
* @param pluginResults The results of initialization for a collection of plugins
* @return A category initialization result
*/
@NonNull
public static CategoryInitializationResult with(@NonNull Map<String, InitializationResult> pluginResults) {
Objects.requireNonNull(pluginResults);
InitializationStatus categoryStatus;
if (anyFailed(pluginResults)) {
categoryStatus = InitializationStatus.FAILED;
} else {
categoryStatus = InitializationStatus.SUCCEEDED;
}
return new CategoryInitializationResult(categoryStatus, pluginResults);
}
Aggregations