| /* |
| * Copyright (C) 2014 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.settings; |
| |
| import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_FIRST_RUN; |
| import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SETUP_FLOW; |
| |
| import android.content.Context; |
| import android.content.Intent; |
| import android.os.Bundle; |
| import android.sysprop.SetupWizardProperties; |
| |
| import com.google.android.setupcompat.util.WizardManagerHelper; |
| import com.google.android.setupdesign.util.ThemeHelper; |
| |
| import java.util.Arrays; |
| |
| |
| public class SetupWizardUtils { |
| |
| public static String getThemeString(Intent intent) { |
| String theme = intent.getStringExtra(WizardManagerHelper.EXTRA_THEME); |
| if (theme == null) { |
| theme = SetupWizardProperties.theme().orElse(""); |
| } |
| return theme; |
| } |
| |
| public static int getTheme(Context context, Intent intent) { |
| String theme = getThemeString(intent); |
| // TODO(yukl): Move to ThemeResolver and add any additional required attributes in |
| // onApplyThemeResource using Theme overlays |
| if (theme != null) { |
| if (WizardManagerHelper.isAnySetupWizard(intent)) { |
| if (ThemeHelper.isSetupWizardDayNightEnabled(context)) { |
| switch (theme) { |
| case ThemeHelper.THEME_GLIF_V4_LIGHT: |
| case ThemeHelper.THEME_GLIF_V4: |
| return R.style.GlifV4Theme_DayNight; |
| case ThemeHelper.THEME_GLIF_V3_LIGHT: |
| case ThemeHelper.THEME_GLIF_V3: |
| return R.style.GlifV3Theme_DayNight; |
| case ThemeHelper.THEME_GLIF_V2_LIGHT: |
| case ThemeHelper.THEME_GLIF_V2: |
| return R.style.GlifV2Theme_DayNight; |
| case ThemeHelper.THEME_GLIF_LIGHT: |
| case ThemeHelper.THEME_GLIF: |
| return R.style.GlifTheme_DayNight; |
| } |
| } else { |
| switch (theme) { |
| case ThemeHelper.THEME_GLIF_V4_LIGHT: |
| return R.style.GlifV4Theme_Light; |
| case ThemeHelper.THEME_GLIF_V4: |
| return R.style.GlifV4Theme; |
| case ThemeHelper.THEME_GLIF_V3_LIGHT: |
| return R.style.GlifV3Theme_Light; |
| case ThemeHelper.THEME_GLIF_V3: |
| return R.style.GlifV3Theme; |
| case ThemeHelper.THEME_GLIF_V2_LIGHT: |
| return R.style.GlifV2Theme_Light; |
| case ThemeHelper.THEME_GLIF_V2: |
| return R.style.GlifV2Theme; |
| case ThemeHelper.THEME_GLIF_LIGHT: |
| return R.style.GlifTheme_Light; |
| case ThemeHelper.THEME_GLIF: |
| return R.style.GlifTheme; |
| } |
| } |
| } else { |
| switch (theme) { |
| case ThemeHelper.THEME_GLIF_V4_LIGHT: |
| case ThemeHelper.THEME_GLIF_V4: |
| return R.style.GlifV4Theme; |
| case ThemeHelper.THEME_GLIF_V3_LIGHT: |
| case ThemeHelper.THEME_GLIF_V3: |
| return R.style.GlifV3Theme; |
| case ThemeHelper.THEME_GLIF_V2_LIGHT: |
| case ThemeHelper.THEME_GLIF_V2: |
| return R.style.GlifV2Theme; |
| case ThemeHelper.THEME_GLIF_LIGHT: |
| case ThemeHelper.THEME_GLIF: |
| return R.style.GlifTheme; |
| } |
| } |
| } |
| return R.style.GlifTheme; |
| } |
| |
| public static int getTransparentTheme(Context context, Intent intent) { |
| int transparentTheme; |
| final int suwTheme = getTheme(context, intent); |
| if (ThemeHelper.isSetupWizardDayNightEnabled(context)) { |
| transparentTheme = R.style.GlifV2Theme_DayNight_Transparent; |
| } else { |
| transparentTheme = R.style.GlifV2Theme_Light_Transparent; |
| } |
| if (suwTheme == R.style.GlifV3Theme_DayNight) { |
| transparentTheme = R.style.GlifV3Theme_DayNight_Transparent; |
| } else if (suwTheme == R.style.GlifV3Theme_Light) { |
| transparentTheme = R.style.GlifV3Theme_Light_Transparent; |
| } else if (suwTheme == R.style.GlifV2Theme_DayNight) { |
| transparentTheme = R.style.GlifV2Theme_DayNight_Transparent; |
| } else if (suwTheme == R.style.GlifV2Theme_Light) { |
| transparentTheme = R.style.GlifV2Theme_Light_Transparent; |
| } else if (suwTheme == R.style.GlifTheme_DayNight) { |
| transparentTheme = R.style.SetupWizardTheme_DayNight_Transparent; |
| } else if (suwTheme == R.style.GlifTheme_Light) { |
| transparentTheme = R.style.SetupWizardTheme_Light_Transparent; |
| } else if (suwTheme == R.style.GlifV3Theme) { |
| transparentTheme = R.style.GlifV3Theme_Transparent; |
| } else if (suwTheme == R.style.GlifV2Theme) { |
| transparentTheme = R.style.GlifV2Theme_Transparent; |
| } else if (suwTheme == R.style.GlifTheme) { |
| transparentTheme = R.style.SetupWizardTheme_Transparent; |
| } |
| return transparentTheme; |
| } |
| |
| public static void copySetupExtras(Intent fromIntent, Intent toIntent) { |
| WizardManagerHelper.copyWizardManagerExtras(fromIntent, toIntent); |
| } |
| |
| public static Bundle copyLifecycleExtra(Bundle srcBundle, Bundle dstBundle) { |
| for (String key : |
| Arrays.asList( |
| EXTRA_IS_FIRST_RUN, |
| EXTRA_IS_SETUP_FLOW)) { |
| dstBundle.putBoolean(key, srcBundle.getBoolean(key, false)); |
| } |
| return dstBundle; |
| } |
| } |