blob: 538c1db7fd42440f92d0412e4b9b910f171b7856 [file] [log] [blame]
cretin450328b872015-01-15 16:04:44 -08001/*
2 * Copyright (C) 2013 The CyanogenMod Project
Tommy Webb83338c42024-01-11 16:12:08 +00003 * Copyright (C) 2017-2024 The LineageOS Project
cretin450328b872015-01-15 16:04:44 -08004 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
Michael Bestasc83309e2018-02-03 17:42:13 +020018package org.lineageos.setupwizard;
cretin450328b872015-01-15 16:04:44 -080019
cretin450328b872015-01-15 16:04:44 -080020import android.app.Application;
Artem Borisovfbf886e2020-12-07 13:43:19 +000021import android.app.StatusBarManager;
cretin453593f032016-04-20 16:21:05 -070022import android.os.Bundle;
cretin45f654deb2015-04-14 17:28:37 -070023import android.os.Handler;
Oliver Scottf58c0f42024-01-08 14:52:12 -050024import android.os.Looper;
cretin45d4cea552016-04-25 11:00:04 -070025import android.util.Log;
cretin450328b872015-01-15 16:04:44 -080026
Michael Bestasc83309e2018-02-03 17:42:13 +020027import org.lineageos.setupwizard.util.SetupWizardUtils;
cretin450d31b312015-03-09 14:49:31 -070028
cretin450328b872015-01-15 16:04:44 -080029public class SetupWizardApp extends Application {
30
31 public static final String TAG = SetupWizardApp.class.getSimpleName();
Michael Bestasb7b34b92021-08-25 19:13:30 +030032 // Verbose logging
cretin45d4cea552016-04-25 11:00:04 -070033 public static final boolean LOGV = Log.isLoggable(TAG, Log.VERBOSE);
cretin450328b872015-01-15 16:04:44 -080034
Timi Rautamäkif6dbf842021-08-24 19:19:25 +000035 public static final String ACTION_ACCESSIBILITY_SETTINGS =
36 "android.settings.ACCESSIBILITY_SETTINGS_FOR_SUW";
Tommy Webb63bbec02023-12-20 11:59:48 -050037 public static final String ACTION_FINISHED = "org.lineageos.setupwizard.SETUP_FINISHED";
Michael Bestasb7b34b92021-08-25 19:13:30 +030038 public static final String ACTION_SETUP_COMPLETE =
39 "org.lineageos.setupwizard.LINEAGE_SETUP_COMPLETE";
Michael Bestas334cd1b2021-10-09 01:55:56 +030040 public static final String ACTION_SETUP_NETWORK = "android.settings.NETWORK_PROVIDER_SETUP";
Chirayu Desaie372bc02020-05-28 00:26:19 +053041 public static final String ACTION_SETUP_BIOMETRIC = "android.settings.BIOMETRIC_ENROLL";
Ricardo Cerqueira83316022016-08-10 12:33:05 +010042 public static final String ACTION_SETUP_LOCKSCREEN = "com.android.settings.SETUP_LOCK_SCREEN";
Michael Bestasb7b34b92021-08-25 19:13:30 +030043 public static final String ACTION_RESTORE_FROM_BACKUP =
44 "com.stevesoltys.seedvault.RESTORE_BACKUP";
cretin45d4cea552016-04-25 11:00:04 -070045 public static final String ACTION_EMERGENCY_DIAL = "com.android.phone.EmergencyDialer.DIAL";
cretin45d4cea552016-04-25 11:00:04 -070046 public static final String ACTION_LOAD = "com.android.wizard.LOAD";
47
cretin45d4cea552016-04-25 11:00:04 -070048 public static final String EXTRA_HAS_MULTIPLE_USERS = "hasMultipleUsers";
d34db28f9c02015-07-07 17:30:20 -070049 public static final String EXTRA_TITLE = "title";
50 public static final String EXTRA_DETAILS = "details";
cretin45d4cea552016-04-25 11:00:04 -070051 public static final String EXTRA_SCRIPT_URI = "scriptUri";
52 public static final String EXTRA_ACTION_ID = "actionId";
53 public static final String EXTRA_RESULT_CODE = "com.android.setupwizard.ResultCode";
Abhisek Devkotaaadbc732018-01-31 01:33:59 -080054 public static final String EXTRA_PREFS_SHOW_BUTTON_BAR = "extra_prefs_show_button_bar";
Michael Bestasb3789b82021-08-24 02:01:57 +030055 public static final String EXTRA_PREFS_SHOW_SKIP = "extra_prefs_show_skip";
Timi Rautamäki40215f62021-11-03 11:53:10 +000056 public static final String EXTRA_PREFS_SHOW_SKIP_TV = "extra_show_skip_network";
Abhisek Devkotaaadbc732018-01-31 01:33:59 -080057 public static final String EXTRA_PREFS_SET_BACK_TEXT = "extra_prefs_set_back_text";
Michael Bestasb3789b82021-08-24 02:01:57 +030058 public static final String EXTRA_ENABLE_NEXT_ON_CONNECT = "wifi_enable_next_on_connect";
cretin450328b872015-01-15 16:04:44 -080059
cretin453593f032016-04-20 16:21:05 -070060 public static final String KEY_SEND_METRICS = "send_metrics";
61 public static final String DISABLE_NAV_KEYS = "disable_nav_keys";
Timie90cf312020-12-23 13:28:00 +010062 public static final String ENABLE_RECOVERY_UPDATE = "enable_recovery_update";
63 public static final String UPDATE_RECOVERY_PROP = "persist.vendor.recovery_update";
cretin45e001f972015-02-19 13:01:28 -080064
Timi Rautamäkie83f9e12022-03-16 13:21:30 +000065 public static final String NAVIGATION_OPTION_KEY = "navigation_option";
66
cretin45f654deb2015-04-14 17:28:37 -070067 public static final int RADIO_READY_TIMEOUT = 10 * 1000;
68
Artem Borisovfbf886e2020-12-07 13:43:19 +000069 private static StatusBarManager sStatusBarManager;
70
cretin45f654deb2015-04-14 17:28:37 -070071 private boolean mIsRadioReady = false;
cretin453593f032016-04-20 16:21:05 -070072 private boolean mIgnoreSimLocale = false;
cretin4577108552015-05-07 16:21:10 -070073
cretin453593f032016-04-20 16:21:05 -070074 private final Bundle mSettingsBundle = new Bundle();
Oliver Scottf58c0f42024-01-08 14:52:12 -050075 private final Handler mHandler = new Handler(Looper.getMainLooper());
cretin45f654deb2015-04-14 17:28:37 -070076
Michael Bestasb7b34b92021-08-25 19:13:30 +030077 private final Runnable mRadioTimeoutRunnable = () -> mIsRadioReady = true;
cretin45f654deb2015-04-14 17:28:37 -070078
cretin450328b872015-01-15 16:04:44 -080079 @Override
80 public void onCreate() {
81 super.onCreate();
cretin45d4cea552016-04-25 11:00:04 -070082 if (LOGV) {
83 Log.v(TAG, "onCreate()");
84 }
cretin45d4cea552016-04-25 11:00:04 -070085 SetupWizardUtils.disableComponentsForMissingFeatures(this);
Oliver Scott0002dae2022-06-01 12:11:32 +020086 if (SetupWizardUtils.isOwner()) {
87 SetupWizardUtils.setMobileDataEnabled(this, false);
88 }
Artem Borisovfbf886e2020-12-07 13:43:19 +000089 sStatusBarManager = SetupWizardUtils.disableStatusBar(this);
cretin45f654deb2015-04-14 17:28:37 -070090 mHandler.postDelayed(mRadioTimeoutRunnable, SetupWizardApp.RADIO_READY_TIMEOUT);
91 }
92
Artem Borisovfbf886e2020-12-07 13:43:19 +000093 public static StatusBarManager getStatusBarManager() {
94 return sStatusBarManager;
95 }
96
cretin45f654deb2015-04-14 17:28:37 -070097 public boolean isRadioReady() {
98 return mIsRadioReady;
99 }
100
101 public void setRadioReady(boolean radioReady) {
102 if (!mIsRadioReady && radioReady) {
103 mHandler.removeCallbacks(mRadioTimeoutRunnable);
104 }
105 mIsRadioReady = radioReady;
cretin450328b872015-01-15 16:04:44 -0800106 }
107
cretin453593f032016-04-20 16:21:05 -0700108 public boolean ignoreSimLocale() {
109 return mIgnoreSimLocale;
cretin450328b872015-01-15 16:04:44 -0800110 }
111
cretin453593f032016-04-20 16:21:05 -0700112 public void setIgnoreSimLocale(boolean ignoreSimLocale) {
113 mIgnoreSimLocale = ignoreSimLocale;
114 }
115
116 public Bundle getSettingsBundle() {
117 return mSettingsBundle;
cretin450328b872015-01-15 16:04:44 -0800118 }
cretin450328b872015-01-15 16:04:44 -0800119}