| /* |
| * Copyright 2019, The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package com.android.managedprovisioning.provisioning; |
| |
| import android.app.Activity; |
| import android.content.Intent; |
| import android.os.Bundle; |
| |
| import com.android.internal.annotations.VisibleForTesting; |
| import com.android.managedprovisioning.ManagedProvisioningScreens; |
| import com.android.managedprovisioning.common.AccessibilityContextMenuMaker; |
| import com.android.managedprovisioning.common.SettingsFacade; |
| import com.android.managedprovisioning.common.SetupGlifLayoutActivity; |
| import com.android.managedprovisioning.common.ThemeHelper; |
| import com.android.managedprovisioning.common.ThemeHelper.DefaultNightModeChecker; |
| import com.android.managedprovisioning.common.ThemeHelper.DefaultSetupWizardBridge; |
| import com.android.managedprovisioning.common.Utils; |
| import com.android.managedprovisioning.model.ProvisioningParams; |
| |
| import com.google.android.setupcompat.util.WizardManagerHelper; |
| |
| /** |
| * The first activity shown during provisioning. |
| */ |
| public class LandingActivity extends SetupGlifLayoutActivity { |
| private static final int ADMIN_INTEGRATED_FLOW_PREPARE_REQUEST_CODE = 1; |
| private final AccessibilityContextMenuMaker mContextMenuMaker; |
| private LandingActivityBridge mBridge; |
| private ProvisioningParams mParams; |
| |
| public LandingActivity() { |
| this(new Utils(), /* contextMenuMaker */ null, new SettingsFacade(), |
| new ThemeHelper(new DefaultNightModeChecker(), new DefaultSetupWizardBridge())); |
| } |
| |
| @VisibleForTesting |
| LandingActivity(Utils utils, AccessibilityContextMenuMaker contextMenuMaker, |
| SettingsFacade settingsFacade, ThemeHelper themeHelper) { |
| super(utils, settingsFacade, themeHelper); |
| mContextMenuMaker = contextMenuMaker != null |
| ? contextMenuMaker |
| : new AccessibilityContextMenuMaker(this); |
| } |
| |
| @Override |
| protected void onCreate(Bundle savedInstanceState) { |
| super.onCreate(savedInstanceState); |
| mParams = getIntent().getParcelableExtra(ProvisioningParams.EXTRA_PROVISIONING_PARAMS); |
| mBridge = createBridge(); |
| mBridge.initiateUi(this); |
| } |
| |
| protected LandingActivityBridge createBridge() { |
| return LandingActivityBridgeImpl.builder() |
| .setBridgeCallbacks(createBridgeCallbacks()) |
| .setParams(mParams) |
| .setInitializeLayoutParamsConsumer(LandingActivity.this::initializeLayoutParams) |
| .setUtils(mUtils) |
| .setAccessibilityContextMenuMaker(mContextMenuMaker) |
| .build(); |
| } |
| |
| private LandingActivityBridgeCallbacks createBridgeCallbacks() { |
| return new LandingActivityBridgeCallbacks() { |
| @Override |
| public void onNextButtonClicked() { |
| LandingActivity.this.onNextButtonClicked(); |
| } |
| |
| @Override |
| public void onContactYourItAdminClicked(Intent webIntent) { |
| getTransitionHelper().startActivityWithTransition( |
| LandingActivity.this, webIntent); |
| } |
| }; |
| } |
| |
| private void onNextButtonClicked() { |
| if (AdminIntegratedFlowPrepareActivity |
| .shouldRunPrepareActivity(mUtils, this, mParams)) { |
| Intent intent = new Intent(this, |
| getActivityForScreen(ManagedProvisioningScreens.ADMIN_INTEGRATED_PREPARE)); |
| WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent); |
| intent.putExtra(ProvisioningParams.EXTRA_PROVISIONING_PARAMS, mParams); |
| getTransitionHelper().startActivityForResultWithTransition( |
| this, intent, ADMIN_INTEGRATED_FLOW_PREPARE_REQUEST_CODE); |
| } else { |
| setResult(Activity.RESULT_OK); |
| getTransitionHelper().finishActivity(this); |
| } |
| } |
| |
| @Override |
| protected void onActivityResult(int requestCode, int resultCode, Intent data) { |
| if (requestCode == ADMIN_INTEGRATED_FLOW_PREPARE_REQUEST_CODE) { |
| setResult(resultCode); |
| getTransitionHelper().finishActivity(this); |
| } else { |
| super.onActivityResult(requestCode, resultCode, data); |
| } |
| } |
| } |