in sdk/appcenter/src/main/java/com/microsoft/appcenter/AppCenter.java [1108:1159]
private void setInstanceEnabled(boolean enabled) {
/* Update channel state. */
mChannel.setEnabled(enabled);
/* Un-subscribe app callbacks if we were enabled and now disabled. */
boolean previouslyEnabled = isInstanceEnabled();
boolean switchToDisabled = previouslyEnabled && !enabled;
boolean switchToEnabled = !previouslyEnabled && enabled;
/* Update uncaught exception subscription. */
if (switchToEnabled) {
mUncaughtExceptionHandler.register();
NetworkStateHelper.getSharedInstance(mApplication).reopen();
} else if (switchToDisabled) {
mUncaughtExceptionHandler.unregister();
NetworkStateHelper.getSharedInstance(mApplication).close();
}
/* Update state now if true, services are checking this. */
if (enabled) {
SharedPreferencesManager.putBoolean(PrefStorageConstants.KEY_ENABLED, true);
}
/* Send started services. */
if (!mStartedServicesNamesToLog.isEmpty() && switchToEnabled) {
sendStartServiceLog();
}
/* Apply change to services. */
for (AppCenterService service : mServices) {
/* Forward status change. */
if (service.isInstanceEnabled() != enabled) {
service.setInstanceEnabled(enabled);
}
}
/* Update state now if false, services are checking if enabled while disabling. */
if (!enabled) {
SharedPreferencesManager.putBoolean(PrefStorageConstants.KEY_ENABLED, false);
}
/* Log current state. */
if (switchToDisabled) {
AppCenterLog.info(LOG_TAG, "App Center has been disabled.");
} else if (switchToEnabled) {
AppCenterLog.info(LOG_TAG, "App Center has been enabled.");
} else {
AppCenterLog.info(LOG_TAG, "App Center has already been " + (enabled ? "enabled" : "disabled") + ".");
}
}