StatusBarManager uses tokens in binder connections to identify
disable records and queue each of them accordingly. New record creates
each time an application connects to StatusBarManager and tries to change
the state. New records don't activate until previous ones are destroyed.
Records can be destroyed either when app binder dies, or when the same
binder ticket reverts its previous changes.
To accomodate this behavior, StatusBarManager was moved to a static class
that initializes first when status bar gets disabled, and then gets destroyed
when status bar is re-enabled.
While we're at it, also fix race condition between main and exit activites
by moving status bar disabling code to the application class.
Change-Id: I3b33e628da1e1881181cbe665e6aaccee3dd19ef
Remove unused extras:
allowSkip: Removed in 2015
wifi_auto_finish_on_connect: Removed in 2016
Use WizardManagerHelper definitions when possible
Change-Id: I4e6a503ae030b85486921fcacfc4fe03e37c8698
* Currently we are storing a copy of timezones.xml ourselves and parsing
it manually
* Use ZoneGetter from SettingsLib instead to get the list of TimeZones
* That way we have less code to maintain and updates to the list are easier
as well
* Also simplify constructTimezoneAdapter -> we never sort by name
Change-Id: Ifd690ed28c6fbecaee895b4063137e86c059e314
* Right now, the user has to set the toggle on and off to actually get
the setting set to "off", since the underlying default value is "on"
* Make sure to send an "off" initially right at the beginning of SuW
Change-Id: Iec2fd05ea341351f3e6d4b195a1a385f9d88d4f7
* Add a new activity DeviceSpecificActivity which acts as a jumppad
into an activity using "org.lineageos.settings.device.SUW_SETTINGS"
* Handles navigation (back / next)
* Handles cases where the script contains the page but SUW_SETTINGS
don't exist
* In order to use this, devices need to provide an activity that:
* at least shows a back and continue button
* returns Activity.RESULT_OK and Activity.RESULT_CANCELLED for the
buttons
* does whatever you need to specifically have done in setup!
Change-Id: I4956c8f5f1ad13b9adf2e5604fd4a728e261336b
* Generic, handles both face and fingerprint
* Works the same as before for fingerprint
* Works the same as fingerprint for face
* What else could one ask for?
Change-Id: I9ddd7b46548c8107239fdec457bbaae6b12876e6
We were using the SubBaseActivity class for two different kind of
activities:
(1) "Wrapper" activities, where we define an activity that on
start simply launches another one
(2) "Interactive" activities, where the user has to manually
trigger the start of the subactivity, or skip the step.
When the subactivity ends, only in case (1) we want to finish our
activity as well, since we wouldn't have anything to show.
Change-Id: I1a3ae51f6146ac32b5e7542d9a18b0b032efe144
Set slide animation by default and use it in all pages.
Fix wrong/missing slide animations on various transitions like WiFi
and the backup subpage.
Change-Id: I78c87f38eb615379d39c89b43a016ed2ffb98695
The current handling results in the followup activity to ignore it for
backtracks which means when going from Location -> LineageSettings -> Fingerprint
the move backwards from Fingerprint leads up in Location and not the expected
LineageSettings.
The custom handling is necessary to process the result in the Google SUW,
so it has been fixed to properly work now.
Change-Id: Ifae5dc8fda07b61bd0271da1d1589059ab40cd39
The captive_portal_server setting is deprecated, and hard-wiring it as a
string is also probably a bad idea. Since it's deprecated, this code
will miss an override via the modern settings. This also hard-wired a
slightly different fallback than ConnectivityService, and simply
adjusting it here wouldn't stop that from happening again. It's best to
just use the privileged API for obtaining the proper value. The choice
of LOCAL_MAC_ADDRESS as the permission for this is a bit strange, but
that's what is required, probably because a better fit didn't exist.
Change-Id: I78d07d5ff96598cebf6d4ed032fe1516791836fe
This sets the partner customization flag to allow adding hooks
later if necessary.
Change-Id: Ie8dcb0f2eae8916ef00f812ea85661c020dce53b
(cherry picked from commit 68b11675e1)
LOCATION_MODE_HIGH_ACCURACY, LOCATION_MODE_SENSORS_ONLY and
LOCATION_MODE_BATTERY_SAVING are deprecated.
Take one further step and refactor the entire logic to call
LocationManager#setLocationEnabledForUser(boolean, int) instead
of setting location mode and LocationManager#isLocationEnabled()
to check if location is enabled.
Change-Id: Ibe1930902f6bfff99eb2c2d852ab600620e25f08
Currently, devices that have a fingerprint prompt to add a fingerprint and
lockscreen via FingerprintActivity. However, since ScreenLockActivity is
always active, we end up with a second prompt for screen lock security.
This adds a check to see if a secure lockscreen has already been set, and
if so, just skip ScreenLockActivity.
Change-Id: I877835e8fa8628c01c96ab9732146720c1234f31
Google's suw handles the LOAD and NEXT actions, so this creates
duplicate tasks and crashes google suw when finish() is attempted.
Change-Id: Ifdbd9365fba7f299dc041e42ae27a91da071aa99
* Check if the value for the setting is already applied and do not
attempt to write it again. During the testing of SuW it was found out
that there can be an edgecase where softkeys don't show up neither
hardware keys work, even though the setting is applied (judging
by the status of the KeyDisabler switch).
Change-Id: I902f26fe131e508974116f7607fd0b88921395d9
* The only condition for "Use on screen navigation keys instead
of hardware keys" option to be shown is the availability
of KeyDisabler feature. There is really no need to check if the
device "needs" a software navbar (because it has no hardware keys).
Change-Id: Id716d766927f440292a6d18d8fa77bed76ad90b3
* Specify the user the broadcast will be sent to,
in order to avoid the warnings as seen in the logs:
W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.startService:1531 android.content.ContextWrapper.startService:664 org.lineageos.setupwizard.SetupWizardExitActivity.onCreate:53 android.app.Activity.performCreate:7136 android.app.Activity.performCreate:7127
Change-Id: I26a0b4ab2dc94bbe6eff065875901bf347aec85b
* Remove unused imports
* Fix a few line length issues
* Convert a few anonymous classes to lambda expressions
* Convert a few global vars to locals
* Remove unused methods
* Add a small local method in MobileDataActivity to shorten repeated calls
Change-Id: Ia10be8b8c98ef3956949f913ddb6bddc185cf1a5