private void setInstanceEnabled()

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") + ".");
        }
    }