1 package com.android.onboarding.contracts.setupwizard 2 3 import com.android.onboarding.contracts.NodeAwareIntentScope 4 import com.android.onboarding.contracts.NodeAwareIntentSerializer 5 import com.android.onboarding.contracts.OnboardingNodeId 6 import com.google.android.setupcompat.util.WizardManagerHelper 7 import javax.inject.Inject 8 9 class SuwArgumentsSerializer @Inject constructor(@OnboardingNodeId override val nodeId: Long) : 10 NodeAwareIntentSerializer<SuwArguments> { 11 writenull12 override fun NodeAwareIntentScope.write(value: SuwArguments) { 13 intent[WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW] = value::isSuwSuggestedActionFlow 14 intent[WizardManagerHelper.EXTRA_IS_SETUP_FLOW] = value::isSetupFlow 15 intent[WizardManagerHelper.EXTRA_IS_PRE_DEFERRED_SETUP] = value::preDeferredSetup 16 intent[WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP] = value::deferredSetup 17 intent[WizardManagerHelper.EXTRA_IS_FIRST_RUN] = value::firstRun 18 intent[WizardManagerHelper.EXTRA_IS_PORTAL_SETUP] = value::portalSetup 19 intent[EXTRA_WIZARD_BUNDLE] = value::wizardBundle 20 intent[WizardManagerHelper.EXTRA_THEME] = value::theme 21 intent[EXTRA_HAS_MULTIPLE_USERS] = value::hasMultipleUsers 22 intent[EXTRA_IS_SUBACTIVITY_FIRST_LAUNCHED] = value::isSubactivityFirstLaunched 23 } 24 readnull25 override fun NodeAwareIntentScope.read(): SuwArguments = 26 object : SuwArguments { 27 override val isSuwSuggestedActionFlow by 28 boolean(WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW).required 29 override val isSetupFlow by boolean(WizardManagerHelper.EXTRA_IS_SETUP_FLOW).required 30 override val preDeferredSetup by 31 boolean(WizardManagerHelper.EXTRA_IS_PRE_DEFERRED_SETUP).required 32 override val deferredSetup by boolean(WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP).required 33 override val firstRun by boolean(WizardManagerHelper.EXTRA_IS_FIRST_RUN).required 34 override val portalSetup by boolean(WizardManagerHelper.EXTRA_IS_PORTAL_SETUP).required 35 override val wizardBundle by bundle(EXTRA_WIZARD_BUNDLE).required 36 override val theme by string(WizardManagerHelper.EXTRA_THEME).required 37 override val hasMultipleUsers by boolean(EXTRA_HAS_MULTIPLE_USERS) 38 override val isSubactivityFirstLaunched by boolean(EXTRA_IS_SUBACTIVITY_FIRST_LAUNCHED) 39 } 40 41 private companion object { 42 const val EXTRA_IS_SUBACTIVITY_FIRST_LAUNCHED = "isSubactivityFirstLaunched" 43 const val EXTRA_HAS_MULTIPLE_USERS = "hasMultipleUsers" 44 const val EXTRA_WIZARD_BUNDLE = "wizardBundle" 45 } 46 } 47