191 Commits

Author SHA1 Message Date
Matthew Crossman
430b18e77b
Rename auto install preference to better reflect behaviour.
Auto install preference always runs after a sync, even if it's manual.
The names of the preference & strings have been updated to reflect this
new behaviour.
2022-01-04 21:44:24 +11:00
Matthew Crossman
5fbb6dcb61
Improve SyncService post-sync behaviour, rewrite new preference.
Moved the update query disposable to before the post-sync if-else block
so that the debug flag can be removed and everything can operate as
normal.

Rewrote the title of the new preference for auto updates to reduce the
use of jargon and to be a bit clearer.
2022-01-04 21:30:57 +11:00
Matthew Crossman
3ea8cd8c66
Resolve SecurityException in installer, tweak installed notification.
Catch and ignore SecurityExceptions when cleaning up old installer
sessions. Catch and ignore session opening exceptions.

Reduce timeout for "Installed" notifications to 5s (as it was before).

Revert removal of intent data for the install prompt notification.
2022-01-04 20:50:48 +11:00
Matthew Crossman
375ab23edb
Improve install notifications, improve DefaultInstaller, misc. clean-up
Installer notifications have their own channel, their tags have been
fixed, and the timeout has been properly set instead of using sleep.

Ensured that DefaultInstaller's sessions use unique file names. Also
improved error handling by including broken pipes and by preventing
post-copy operations if an error has occurred.

Some cleaning up has been done in Common, DownloadService, and
SyncService. A few changes have been cherry-picked from master.
2022-01-04 20:26:07 +11:00
Matthew Crossman
e1fc3c656a
Make auto-update default on Android 12+ & stop background prompts.
Sets preference for auto updates to true by default if device runs
Android 12 and later.

Reverts change allowing the install prompt to show up from the
background and instead require the notification on all Android versions.
2022-01-04 16:21:08 +11:00
Matthew Crossman
fce311098d
Implement automatic updates after repository sync
Initial implementation of fully automatic updates, allowing apps to be
updated after a repo sync has been completed. It can be enabled with a
new preference in settings.

Implemented by greatly modifying SyncService to allow updates to be run
on every completed sync before notifications would be outputted. Note
that the update notification no longer appears if auto updates are
enabled.

BuildConfig.DEBUG is used to force syncing to run to completion, even if
there are no changes to the repos. This allow reliable testing by
turning the sync button into an "update all" button. This should be
removed once an "Update all" button has been implemented in the updates
tab.

Cache file checking in DefaultInstaller is now more robust.
2022-01-03 20:21:36 +11:00
Matthew Crossman
adf305ffc0
Prevent DefaultInstaller from working on a non-existent cache file.
Ensures that the cache file exists before attempting an install using
it. This fixes a crash that can occur if the file is not yet available,
likely due to an I/O-related race condition.
2022-01-03 19:20:00 +11:00
Matthew Crossman
3e8e23e111
Simplify install prompt handling
Reverts most changes to MainActivity and uses handleSpecialIntent
instead. handleSpecialIntent now defers installer prompt to
InstallerService by starting it again.

SpecialIntent has been modified to accommodate extra data needed to
handle these callbacks.
2022-01-03 14:51:31 +11:00
Matthew Crossman
73ac718ce2
Fix install prompt notification, further automate updates/installs.
Fixes "tap to install" notification not launching an activity. Install
notifications moved to InstallerService so that we only show them for
apps that need intervention (and lets us preserve our install session).

All installs go to the installer, allowing for downloads to jump
straight into installation if possible (auto updates or showing prompt
on A9 and earlier). If a prompt is needed, the notification is still
shown.

Additional utility function checks if app is in the foreground. Used to
ensure that we do not launch a prompt that cannot be launched.

Miscellaneous comments have been added and improved.
2021-12-31 10:41:45 +11:00
machiav3lli
1dab4dfe3d Update: Fix search bar initial setup [new UI] 2021-12-23 01:41:26 +01:00
machiav3lli
ea80e658cf Add: The main activity [new UI] 2021-12-23 01:41:03 +01:00
machiav3lli
7271528d7a Add: The main navigation fragments [new UI] 2021-12-23 01:38:09 +01:00
LooKeR
6eb3b96a83 Improve: Remove "Installed" Notification after 5 seconds
Improve: Scrolling performance in AppDetail
2021-12-19 23:29:54 +05:30
machiav3lli
0a959aeeaf Fix: Screenshot placeholder icon 2021-12-16 02:26:29 +01:00
machiav3lli
5de01f378c Fix: Soft crash when starting AppDetails 2021-12-16 01:33:41 +01:00
machiav3lli
5f4df77816 Fix: Run only one instance of root installer 2021-12-16 00:54:16 +01:00
machiav3lli
ef1036d8c7 Fix: Root installer 2021-12-16 00:53:40 +01:00
LooKeR
ebb77ffa71 Improve: Optimize Reload method (AppDetailAdapter) 2021-12-15 12:23:44 +05:30
machiav3lli
3cb535866d Update: Restructure ui package 2021-12-15 01:23:48 +01:00
LooKeR
9980582340 Fix: Over-reload on expanding description (Closes #138)
Fix: Wrong Appearing and Disappearing order in Releases
2021-12-14 01:40:09 +05:30
machiav3lli
a2f5a725a5 Fix: Screenshot's palceholder size size 2021-12-13 03:42:49 +01:00
LooKeR
80f8d2d36e Improve: Cleanup RepositoriesAdapter 2021-12-12 01:29:12 +05:30
LooKeR
96b4ef2bcb Improve: Cleanup ScreenShots ViewHolder
Fix: Typo in MainApplication.kt
2021-12-12 01:08:34 +05:30
LooKeR
ab49fae13e Update Chip Padding Fix 2021-12-12 00:51:11 +05:30
LooKeR
eba97aaf7c Move "Show Less" to strings.xml (Closes #141) 2021-12-12 00:16:36 +05:30
LooKeR
95aa50a47c Clean Resources 2021-12-06 01:21:10 +05:30
LooKeR
96d8c58a0a Optimize Installer 2021-12-06 00:47:13 +05:30
LooKeR
b3a98ee093 Remove unused functions 2021-12-06 00:38:11 +05:30
LooKeR
e7184ecccc Move DownloadService to Coroutine (1/2) 2021-12-04 00:28:55 +05:30
LooKeR
0dd23c23b1 Use Kotlin extension to replace TextWatcher 2021-12-04 00:28:55 +05:30
LooKeR
848c5ce863 Legit Material3 Theming 1/5 (style/colors.xml)
Chnage Source code Icon (Touches #127)
Some code cleanups
etc... (Sry I forgot what all I did)
2021-12-03 00:37:55 +05:30
LooKeR
7165757745 Fix: Some Invisible Icons
Improve: Use ResourceCompat to get Drawable
2021-12-01 00:14:24 +05:30
LooKeR
f1cb882aaa Improve: Optimize Repositories Page 2021-11-27 14:09:32 +05:30
LooKeR
32baac8f98 Improve: No need to save layoutState 2021-11-26 21:45:04 +05:30
LooKeR
54719f28e7 Improve: Don't Update Apps List on recreation 2021-11-26 21:43:21 +05:30
LooKeR
f6ed9e9a92 Improve: Faster Execution of ViewModel fun's 2021-11-26 21:42:42 +05:30
LooKeR
7204c204bf Improve: Update more fun to suspend fun 2021-11-26 20:49:06 +05:30
LooKeR
9d05e29481 Update: Use single PackageInstaller for Default 2021-11-25 23:24:57 +05:30
LooKeR
a7728d75f2 Improve: Delete Cached File After Uninstall 2021-11-25 23:24:56 +05:30
machiav3lli
e46c98f8fd Fix: App version text being colored when not planed (closes #109) 2021-11-24 07:55:24 +01:00
LooKeR
84d951328d Improve: Use Default for non-IO operations 2021-11-24 09:04:53 +05:30
LooKeR
5081e1f017 Sry but Android Studio choose to push my commit over yours 2021-11-24 09:02:00 +05:30
LooKeR
750718c11c Improve: Don't refresh Apps List on going back 2021-11-24 08:56:22 +05:30
LooKeR
804533133d Remove: Logging of UtilBox 2021-11-24 08:56:22 +05:30
LooKeR
e2781e5e9c Improve: Dispatcher.IO is for IO so use Default for non IO
Improve: Code cleanup
2021-11-24 08:56:21 +05:30
Matthew Crossman
87f19ddc21 Rewrite DefaultInstaller to use PackageInstaller 2021-11-24 01:56:55 +01:00
LooKeR
c6ba8d72ed Improve: Fix weird behaviour on scroll
I wonder why nobody noticed but scrolling is weird in App Detail page
2021-11-23 12:15:01 +05:30
LooKeR
64a61da973 Improve: MainScope() is for UI changes 2021-11-23 11:39:36 +05:30
LooKeR
6fbc94dca8 Improve: Move away from RxJava
Syncing is fast but looks less responsive (Will fix later)
2021-11-22 21:57:16 +05:30
LooKeR
83a9efcfd7 Fix: Product Adapter cleanup 2021-11-22 00:10:03 +05:30