blob: d635bfafefd49e6524fd5f09ddd6212082326ac3 [file] [log] [blame]
cretin450328b872015-01-15 16:04:44 -08001/*
Michael Bestasec050052024-02-14 20:35:43 +02002 * SPDX-FileCopyrightText: 2013 The CyanogenMod Project
3 * SPDX-FileCopyrightText: 2017-2024 The LineageOS Project
4 * SPDX-License-Identifier: Apache-2.0
cretin450328b872015-01-15 16:04:44 -08005 */
6
Michael Bestasc83309e2018-02-03 17:42:13 +02007package org.lineageos.setupwizard;
cretin450328b872015-01-15 16:04:44 -08008
cretin450328b872015-01-15 16:04:44 -08009import android.app.Application;
Artem Borisovfbf886e2020-12-07 13:43:19 +000010import android.app.StatusBarManager;
cretin453593f032016-04-20 16:21:05 -070011import android.os.Bundle;
cretin45f654deb2015-04-14 17:28:37 -070012import android.os.Handler;
Oliver Scottf58c0f42024-01-08 14:52:12 -050013import android.os.Looper;
Oliver Scottfeadacc2024-02-18 01:05:08 -050014import android.provider.Settings;
cretin45d4cea552016-04-25 11:00:04 -070015import android.util.Log;
cretin450328b872015-01-15 16:04:44 -080016
Michael Bestasc83309e2018-02-03 17:42:13 +020017import org.lineageos.setupwizard.util.SetupWizardUtils;
cretin450d31b312015-03-09 14:49:31 -070018
cretin450328b872015-01-15 16:04:44 -080019public class SetupWizardApp extends Application {
20
21 public static final String TAG = SetupWizardApp.class.getSimpleName();
Michael Bestasb7b34b92021-08-25 19:13:30 +030022 // Verbose logging
cretin45d4cea552016-04-25 11:00:04 -070023 public static final boolean LOGV = Log.isLoggable(TAG, Log.VERBOSE);
cretin450328b872015-01-15 16:04:44 -080024
Michael Bestasb7b34b92021-08-25 19:13:30 +030025 public static final String ACTION_RESTORE_FROM_BACKUP =
26 "com.stevesoltys.seedvault.RESTORE_BACKUP";
cretin45d4cea552016-04-25 11:00:04 -070027 public static final String ACTION_EMERGENCY_DIAL = "com.android.phone.EmergencyDialer.DIAL";
cretin45d4cea552016-04-25 11:00:04 -070028 public static final String ACTION_LOAD = "com.android.wizard.LOAD";
29
Oliver Scottab9a5ea2024-07-16 19:33:50 -040030 public static final String EXTRA_WIZARD_BUNDLE = "wizardBundle";
cretin45d4cea552016-04-25 11:00:04 -070031 public static final String EXTRA_SCRIPT_URI = "scriptUri";
32 public static final String EXTRA_ACTION_ID = "actionId";
33 public static final String EXTRA_RESULT_CODE = "com.android.setupwizard.ResultCode";
Abhisek Devkotaaadbc732018-01-31 01:33:59 -080034 public static final String EXTRA_PREFS_SHOW_BUTTON_BAR = "extra_prefs_show_button_bar";
Michael Bestasb3789b82021-08-24 02:01:57 +030035 public static final String EXTRA_PREFS_SHOW_SKIP = "extra_prefs_show_skip";
Timi Rautamäki40215f62021-11-03 11:53:10 +000036 public static final String EXTRA_PREFS_SHOW_SKIP_TV = "extra_show_skip_network";
Abhisek Devkotaaadbc732018-01-31 01:33:59 -080037 public static final String EXTRA_PREFS_SET_BACK_TEXT = "extra_prefs_set_back_text";
Michael Bestasb3789b82021-08-24 02:01:57 +030038 public static final String EXTRA_ENABLE_NEXT_ON_CONNECT = "wifi_enable_next_on_connect";
cretin450328b872015-01-15 16:04:44 -080039
cretin453593f032016-04-20 16:21:05 -070040 public static final String KEY_SEND_METRICS = "send_metrics";
41 public static final String DISABLE_NAV_KEYS = "disable_nav_keys";
Timie90cf312020-12-23 13:28:00 +010042 public static final String ENABLE_RECOVERY_UPDATE = "enable_recovery_update";
43 public static final String UPDATE_RECOVERY_PROP = "persist.vendor.recovery_update";
cretin45e001f972015-02-19 13:01:28 -080044
Timi Rautamäkie83f9e12022-03-16 13:21:30 +000045 public static final String NAVIGATION_OPTION_KEY = "navigation_option";
46
cretin45f654deb2015-04-14 17:28:37 -070047 public static final int RADIO_READY_TIMEOUT = 10 * 1000;
48
Artem Borisovfbf886e2020-12-07 13:43:19 +000049 private static StatusBarManager sStatusBarManager;
50
cretin45f654deb2015-04-14 17:28:37 -070051 private boolean mIsRadioReady = false;
cretin453593f032016-04-20 16:21:05 -070052 private boolean mIgnoreSimLocale = false;
cretin4577108552015-05-07 16:21:10 -070053
Oliver Scottecaeda62024-04-12 21:25:25 -040054 private static final Bundle mSettingsBundle = new Bundle();
Oliver Scottf58c0f42024-01-08 14:52:12 -050055 private final Handler mHandler = new Handler(Looper.getMainLooper());
cretin45f654deb2015-04-14 17:28:37 -070056
Michael Bestasb7b34b92021-08-25 19:13:30 +030057 private final Runnable mRadioTimeoutRunnable = () -> mIsRadioReady = true;
cretin45f654deb2015-04-14 17:28:37 -070058
cretin450328b872015-01-15 16:04:44 -080059 @Override
60 public void onCreate() {
61 super.onCreate();
cretin45d4cea552016-04-25 11:00:04 -070062 if (LOGV) {
63 Log.v(TAG, "onCreate()");
64 }
Artem Borisovfbf886e2020-12-07 13:43:19 +000065 sStatusBarManager = SetupWizardUtils.disableStatusBar(this);
cretin45f654deb2015-04-14 17:28:37 -070066 mHandler.postDelayed(mRadioTimeoutRunnable, SetupWizardApp.RADIO_READY_TIMEOUT);
Oliver Scottfeadacc2024-02-18 01:05:08 -050067 if (SetupWizardUtils.hasGMS(this)) {
68 SetupWizardUtils.disableHome(this);
69 if (SetupWizardUtils.isOwner()) {
70 Settings.Global.putInt(getContentResolver(),
71 Settings.Global.ASSISTED_GPS_ENABLED, 1);
72 }
73 }
cretin45f654deb2015-04-14 17:28:37 -070074 }
75
Artem Borisovfbf886e2020-12-07 13:43:19 +000076 public static StatusBarManager getStatusBarManager() {
77 return sStatusBarManager;
78 }
79
cretin453593f032016-04-20 16:21:05 -070080 public boolean ignoreSimLocale() {
81 return mIgnoreSimLocale;
cretin450328b872015-01-15 16:04:44 -080082 }
83
cretin453593f032016-04-20 16:21:05 -070084 public void setIgnoreSimLocale(boolean ignoreSimLocale) {
85 mIgnoreSimLocale = ignoreSimLocale;
86 }
87
Oliver Scottecaeda62024-04-12 21:25:25 -040088 public static Bundle getSettingsBundle() {
cretin453593f032016-04-20 16:21:05 -070089 return mSettingsBundle;
cretin450328b872015-01-15 16:04:44 -080090 }
cretin450328b872015-01-15 16:04:44 -080091}