Commit Graph

47 Commits

Author SHA1 Message Date
Michael W
5763bc9d38 Updater: Make upgrade-url device specific
* After moving from the generic /upgrade.html url to a device specific
  one, updater needs to display that instead

Change-Id: If9fc6bddfab206a97283f2080ea4df0cbb742a7d
2019-04-28 11:33:32 +02:00
Luca Stefani
50d0fd5291 Updater: Allow to suspend A/B updates
Change-Id: I0387fd491a07a2214e4331a2cfe25988e0016a61
2019-04-10 22:04:32 +02:00
LuK1337
2454a339a3 Updater: Implement auto update check interval preference
* This replaces auto update check switch with a dropdown with 4 options:
  * Never
  * Once a day
  * Once a week (default)
  * Once a month

Change-Id: I4bcae4c013a5d44958f9c54d641e64aac3062a8b
2019-02-10 10:45:35 +01:00
Nolen Johnson
3f16a3cafc Updater: Clarify A/B Performance mode string
Change-Id: I8891b94c4b44201e9a0d9184e435c8da6eba3d3b
2018-08-30 14:12:35 +02:00
Luca Stefani
4ec02fd780 Updater: Improve battery check
* Lower default value by 10%
* Decrease the level by another 10% if charging
* Always allow installation in case device doesn't have a battery
* Show the requirements in the alert dialog

Change-Id: Iebb10220612006fbd096eb474cf3034ef52144b3
2018-07-14 18:47:12 +02:00
TheScarastic
608789ff36 Updater: Allow toggling A/B perf mode
Change-Id: I380a39bf6008b341c8005ac548d42d2413d0d643
2018-07-11 22:27:33 +02:00
Gabriele M
f9463c3770 Requre a minimum remaining battery capacity to install updates
The recovery doesn't install the update if the remaining battery
capacity isn't at least 20% (or 15% if charging). Require at least
40%, just to be safe.

Change-Id: I5cd7c40f029141cde2b0922b25fece2b55989710
2018-06-13 23:30:08 +02:00
Michael Bestas
8a8f1d98f0 Fix eta_hours quantity="one" string
* Fixes fd096a564a

Change-Id: I19633ead80b690e1c22655bcac842a901e450f8a
2018-05-04 22:36:25 +03:00
Gabriele M
fd096a564a Allow to properly translate the download ETA string
Change-Id: Ie6bbbddbbd9fd7adbc16472ad9c42c1d257413a1
2018-04-21 16:31:28 +02:00
Gabriele M
d5f4c1bcec Detect update failures
This allows to delete the update only if the installation succeeded
and to notify the user in case the installation failed.

Since we now need the file in case of failure, create a copy for
uncrypt even if the user chose to delete installed updates.

Change-Id: I80b0f499663bbf50bcbca5f643c01ffdb4cd3957
2018-04-08 22:48:19 +02:00
Joey
af9b4adbe0 Updater: show settings in a proper preferences dialog
Menu is not a good place to store preferences that have long strings

Change-Id: I84e782af33b2452c15998f7266c57d681dc8a377
Signed-off-by: Joey <joey@lineageos.org>
2018-04-08 18:21:57 +02:00
Joey
ec4f3146d6 Updater: Minor UI improvements
Change-Id: I5028aaa154991806ab911be0119fed0836e6851b
2018-04-08 14:26:12 +02:00
Gabriele M
5252d60671 Define the entire server URL as resource
Currently the URL is only partially customizable, part of
it is hard-coded and there's no clear indication of it.
Define the entire URL as resource string and use placeholders
for runtime variables.

Also, invalidate old overrides by changing the name of the
resource.

Warning: lineage.updater.uri must be updated accordingly

Change-Id: Iecfdaf9d422d08a707c7319bafea5befc6b757d2
2018-04-05 16:37:49 +02:00
Gabriele M
4fa7ba910a Replace refresh dialog with icon animation
Change-Id: I6d2cc649b9fa8883a7256d8ecb62cb56bbf5dd59
2018-04-05 16:37:49 +02:00
meganukebmp
76b9f49684 Updater: add changelog button
Add a changelog button in the menu toolbar throwing the user in
the recent changes page

Change-Id: I16609825c0662fc22b95189cbdf324a8c0b94f81
2018-02-17 17:46:45 +00:00
Harry Youd
ff53035537 Updater: Add notification channels
Change-Id: I2f538fb47fe90e1008bf286739d33c829123353a
2018-01-23 23:47:18 +01:00
Gabriele M
e02b8a0b00 Copy the updates for uncrypt using a Service
Same as change I488018d01c0baf74660362a384e53bfe5d85de2b
("Use a service to export the updates"). While at it, move the code
out of UpdaterService to better separate the code that deal with AB
updates and regular updates.

Change-Id: I2bc3e78e80f5e63c57303cbbcdc0353dbab0f67f
2018-01-23 22:41:40 +01:00
Gabriele M
e66a8fa53a Keep track of the installation status of AB updates
This allows to show the correct labels.

Change-Id: I52f42e042af0df2d091d786c03102cec352b3a5b
2018-01-23 22:41:40 +01:00
Gabriele M
8e369117bf Allow to cancel ongoing installations
Change-Id: I46884b42b6e3f87fbee99a23f538cec990b3b873
2018-01-23 22:41:40 +01:00
Gabriele M
2c41ae392c Use a service to export the updates
AsyncTasks are not suitable for long lasting operations and can easily
cause memory leaks. The use of ProgressDialogs is also discouraged, so
move to a foreground service to export the updates.

Change-Id: I488018d01c0baf74660362a384e53bfe5d85de2b
2018-01-23 22:41:40 +01:00
Gabriele M
8c9976d622 Show delete button for old updates
Old updates can't be installed if the current build is newer, so show
a delete button instead.

Change-Id: Ib34aad31d93e87a1009c23f86686fc4a008129e7
2017-11-12 16:10:17 +01:00
Gabriele M
17f35382d7 Show alert dialog for major upgrades
Major upgrades are not possible with Updater and they are already
blocked. This commit adds a dialog with a link to a webpage that
explains how to upgrade manually.

Based on: d5d343d627

Change-Id: Ifb23e0a4db1060fc696d13e6694f3e849af70e2d
2017-08-25 18:13:46 +00:00
Gabriele M
7c25e7aef9 Show message if there are no updates 2017-08-09 17:18:15 +02:00
Gabriele M
acd7387d23 Warn user about downloading update package via mobile data
Based on: 8928492535
2017-08-08 10:32:48 +02:00
Gabriele M
8768daddf0 Add option to delete updates when installed
This is mostly useful on encrypted devices since it allows to not
copy the update before installing it.
2017-07-22 20:38:20 +02:00
Gabriele M
20ea513684 Create a copy of the zips on encrypted devices
On encrypted devices, uncrypt modifies the zip so that it can be
read without mounting the filesystem. Instead of installing the zip
downloaded, create a copy of it which will be deleted. This will
allow to re-install the zip multiple times or export it after
installing it.
2017-07-21 17:05:53 +02:00
Gabriele M
1659fe26b9 Allow to export verified updates 2017-07-20 00:45:34 +02:00
Gabriele M
ee6013dfd1 Allow to copy the URL of the updates 2017-07-20 00:45:34 +02:00
Gabriele M
257ab087d6 Enable action mode on card long press
This will allow to perform different operations, although currently
it's only used to delete updates.
2017-07-20 00:45:34 +02:00
Gabriele M
2b276395e1 Use /data/lineageos_updates/ as download path
GmsCore deletes the files in /data/ota_package/, so don't use it.
2017-07-19 18:50:16 +02:00
Gabriele M
6f1861abe0 Remove unused resources 2017-07-18 22:17:29 +02:00
Gabriele M
a06fa3f9f0 Add own formatDuration() method
DateUtils.formatDuration() is not public, so create our own version.
2017-07-18 22:17:26 +02:00
Gabriele M
e710060baa Show a snackbar when trying to download/install invalid updates
Instead of disabling the action button, keep it enabled and make it
show a snackbar to inform the user about the impossibility of
installing the selected update.
2017-07-18 00:19:41 +02:00
Gabriele M
fe21c2cd49 Treat download resume and verification in the same way
Allowing to verify downloads, but not install them makes no sense
currently, so don't treat the two cases differently.
2017-07-18 00:19:33 +02:00
Gabriele M
c1f0aab382 Show snackbar for some download status changes 2017-07-17 12:27:15 +02:00
Gabriele M
c3515644b6 Ask for confirmation before installing updates
Since there's no quick and clean way to show a dialog from a
serivice, don't allow to install updates from the notification.
2017-07-16 22:52:45 +02:00
Gabriele M
e51be80f6a Initial UI work
Look and feel based on CMUpdater.
2017-07-16 22:52:45 +02:00
Gabriele M
fd856dce70 Allow to disable the automatic updates check 2017-07-16 22:52:45 +02:00
Gabriele M
efa829358d Remove unknwon files that are in the downloads dir
The files are supposed to be downloaded in a privileged location
that the user can't access. If the user wipes the data of the
application, the updates downloaded are not removed. Perform a
one-time cleanup so that our downloads dir doesn't grow without
control.
2017-07-08 14:07:05 +02:00
Gabriele M
6534932b20 Show "verify" for complete INCOMPLETE updates
INCOMPLETE is used for any update that isn't verified, even if the
file has been completed. This change is mostly needed to support
imported downloads, which we take as complete, but unverified.
2017-07-08 14:05:36 +02:00
Gabriele M
e6a061c090 Use a single config to define the download path
There's no point in using a bool, just define the path.
2017-07-07 22:05:23 +02:00
Gabriele M
718c877687 Provide some feedback when refreshing the list
Add a progress dialog to inform the user about the ongoing operation
and show a snackbar with the result of the operation.
2017-07-05 23:35:14 +02:00
Gabriele M
7819587a22 Add a toolbar menu with back and refresh buttons
Change theme just to make the refresh button visible without
changing its color.
2017-07-05 23:35:14 +02:00
Gabriele M
e245631b46 Add support for A/B (Seamless) System Updates
Loosely based on:
0465cb691d
2017-07-04 19:36:32 +02:00
Gabriele M
f26cb61aa0 Check for new updates every day
Compare the previously downloaded updates list with the current one
and check if the old list includes all the updates of the new list.
If the network is not available at the time of the check, a new
check is scheduled.
2017-07-03 01:18:19 +02:00
Gabriele M
264fb5fc58 Improve notifications
Reorder the content of the notification and add the download
progress as text, the current speed and the ETA.
2017-07-02 22:44:32 +02:00
Gabriele M
e7511d0041 Project init 2017-07-02 18:13:34 +02:00