Fox2Code
022151fefd
Prevent fake clicks on SuRequest
2020-02-10 02:08:53 -08:00
topjohnwu
d51d549a28
Refactor string resources
2020-02-10 01:43:28 -08:00
topjohnwu
64f35744c4
Reorganize home screen layout
2020-02-09 17:03:05 -08:00
Viktor De Pasquale
b512528148
Updated toolbar layout to match the new aesthetic
2020-02-09 03:20:38 -08:00
Viktor De Pasquale
db4ef1443d
Removed unnecessary code
2020-02-09 03:20:14 -08:00
Viktor De Pasquale
97d24a7d4d
Removed single-use reboot menu
...
This addition will be used in modules as soon as the homepage gets merged
2020-02-09 03:20:14 -08:00
Viktor De Pasquale
f8bea66313
Fixed menu inflating unnecessarily on every click
2020-02-09 03:20:14 -08:00
Viktor De Pasquale
1d831d65f3
Added overflow menu for reboot
2020-02-09 03:20:14 -08:00
Viktor De Pasquale
373092af16
Updated homepage layout
...
The updated layout has extended features such as reboot (not implemented yet), more details with not text ellipsis and easy extendability with further parameters, detail or whatever
More improvements to homescreen to come in upcoming commits.
2020-02-09 03:20:14 -08:00
Viktor De Pasquale
6977dc082f
Fixed texts being incorrect if injected from context
2020-02-02 16:01:50 +08:00
topjohnwu
497efc9f5e
Make scrambled text prettier
2020-01-31 04:48:02 +08:00
topjohnwu
6e4777692e
Change recreate logic
...
Although this new behavior is a little more annoying, at least
it properly kills the activity and restarts it with updated configs.
2020-01-31 04:17:17 +08:00
wiki de pasquale
0783d385d5
Removed security note
...
Note, and the backdrop, has been removed, since users which have chosen device that doesn't receive security updates in, at least 2 months, are getting triggered by their own choices (:
2020-01-31 04:12:49 +08:00
Viktor De Pasquale
1ba9faf35b
Added legacy theme (Fraxure)
...
Theme is, in color, identical to legacy colors.
2020-01-31 04:09:45 +08:00
Viktor De Pasquale
6e48294f2a
Removed unnecessary files and merged styles
2020-01-31 04:09:45 +08:00
topjohnwu
e938e717b0
Refactor PatchAPK code
2020-01-31 03:37:39 +08:00
topjohnwu
1d89fe503b
Fix manager hiding
...
Workaround bizarre optimization bugs
2020-01-29 20:55:20 +08:00
topjohnwu
c38c473e11
Fix compile error
2020-01-29 17:38:36 +08:00
topjohnwu
d0112f989c
Cleanup classes
2020-01-29 01:49:59 +08:00
Viktor De Pasquale
9c4c310f46
Fixed messages on modules screen replicating indefinitely
2020-01-29 01:12:48 +08:00
Viktor De Pasquale
7bf7bfb9c6
Updated Flash / SuRequest activities with app themes
...
CompatActivity/Fragment logic has been moved to respective BaseUI. Some deprecated and unused styles have been removed in favor or newer themes.
2020-01-29 01:12:21 +08:00
Viktor De Pasquale
f5d0cc9f32
Updated helper lists so they are lazily populated
2020-01-27 18:22:29 +08:00
topjohnwu
a8bb7c68a3
Add missing string resources
2020-01-25 23:03:39 +08:00
Viktor De Pasquale
851ee81486
Updated removing of "empty list" messages
...
Before this commit, the loader removed messages _after_ it updated the
list. Coincidentally the list updating mechanism is asynchronous to
some extent and so slower devices might've had the message removed
after changes have been dispatched which confused the recyclerview and
caused the crash.
Now, the loader is stripped of the responsibility update the list
holding helper messages. The responsibility is for the user itself to
notify listeners and then clear the helper list. This should hopefully
delay the removal to the point where choreographer had enough time to
traverse through the hierarchy.
Stupid recycler view / layout managers. Literally unnecessary crash.
2020-01-25 22:31:19 +08:00
topjohnwu
0dc9f5c324
Rename some string IDs
2020-01-23 02:34:18 +08:00
topjohnwu
3a10597aed
Remove unused resources
2020-01-23 02:14:00 +08:00
topjohnwu
2291be5d26
Merge string resources
2020-01-23 01:40:36 +08:00
topjohnwu
12a9792c7d
Remove old install dialog
2020-01-22 14:49:46 +08:00
Viktor De Pasquale
c5e5b70e08
Added safe mode notice to modules
2020-01-21 22:01:55 +01:00
Viktor De Pasquale
327b186240
Fixed theme mode title
2020-01-21 21:50:13 +01:00
topjohnwu
b2ddba4cbf
Proper repo fetching behavior
2020-01-19 03:15:51 +08:00
topjohnwu
053251d566
Merge ViewModel Koin modules
2020-01-18 04:07:15 +08:00
topjohnwu
cf161a5dd9
Show url dialog only if necessary
2020-01-18 03:59:02 +08:00
topjohnwu
e4bcdbd0c4
Make settings page more reasonable
2020-01-18 03:06:33 +08:00
topjohnwu
cae43b26f4
Improve settings item code
2020-01-18 01:34:46 +08:00
topjohnwu
b95cf9b9a3
Show detail descriptions in settings
2020-01-17 17:02:40 +08:00
topjohnwu
7532477a2f
Make release builds work
2020-01-15 00:51:27 +08:00
topjohnwu
433ae89e53
Make things run on API 17
2020-01-15 00:05:44 +08:00
topjohnwu
de853a2651
Fix crash when manually refresh repo db
2020-01-14 22:03:29 +08:00
topjohnwu
47c3045980
Log full stack trace for unhandled exception
2020-01-14 20:14:20 +08:00
topjohnwu
dd50c19ba3
Consolidate stubs
2020-01-13 23:10:17 +08:00
topjohnwu
707d7b3342
Separate core components
2020-01-13 22:01:46 +08:00
topjohnwu
ba1a2fbce4
Remove deprecate APIs
2020-01-13 04:00:35 +08:00
topjohnwu
84f1e78660
Consolidate base viewmodel implementation
2020-01-13 03:56:03 +08:00
topjohnwu
3490ba0a56
Redesign is now the new norm
2020-01-13 00:43:09 +08:00
topjohnwu
1449486958
Replace old design with redesign (p3)
2020-01-12 21:52:32 +08:00
topjohnwu
9094cf7ce3
Replace old design with redesign (p2)
2020-01-12 16:07:30 +08:00
topjohnwu
df0a5b59f8
Replace old design with redesign (p1)
2020-01-12 15:00:49 +08:00
topjohnwu
22c9d836e0
Merge branch 'master' into feature/redesign
2020-01-12 03:02:03 +08:00
topjohnwu
984997e73b
Update paths
...
Close #2244
2020-01-11 12:37:08 +08:00
Viktor De Pasquale
fcedd06e72
Added grid column count settings
...
*Cough, cough* Use pinch to zoom gesture instead, not a fan of this.
2020-01-06 20:00:33 +01:00
Viktor De Pasquale
6a2acbe929
Added tiny hint that magisk can be uninstalled using the icon
2020-01-06 19:31:06 +01:00
Viktor De Pasquale
4cfff40475
Updated special chars to their full-width variants
...
Close #2219
2020-01-06 19:06:19 +01:00
Viktor De Pasquale
904948dc7d
Added empty states for all remaining screens
...
Fixed some issues in the process as the MergeObservableList doesn't support additions or deletions, duh...
2020-01-06 19:03:36 +01:00
Viktor De Pasquale
7342509b2e
Added resetting state of the recyclerview scroll listener
...
In some edge-cases the listener can still think that the content is loading.
2020-01-06 18:37:45 +01:00
Viktor De Pasquale
ed837ba26f
Updated the logic that refreshes the modules
...
Also added empty states for installed and made updatable modules visible all the time to avoid unnecessary transitions
2020-01-06 17:46:08 +01:00
Viktor De Pasquale
13262fdb18
Fixed the dialog not being actually closed on click outside
...
Misplaced methods ftw
2020-01-06 16:41:44 +01:00
Viktor De Pasquale
c0b56b927f
Updated the material library back to alpha03 version
...
The aforementioned fragment has fixed issue with layouts being oversized on API21 (maybe a bit lower and higher as well, did not test) which was notable on homepage.
Unfortunately it deprecated most of the logic behind hiding of the top action view. Since it inherited and overridden the functionality from HideBottomViewOnScrollBehavior it no longer called the old methods and so the whole class was rendered _useless_. Fortunately we didn't need the whole backing implementation so the parent class was changed to the bare minimum. Hopefully this incident will not repeat.
Thanks goes to material team for introducing breaking changes in feature update.
2020-01-06 16:24:27 +01:00
topjohnwu
e04f943980
Backwards support back to API 21
...
Things still crash pre-21
2020-01-05 16:05:22 +08:00
Viktor De Pasquale
bc0bb92f7a
Updated indication of whether the module is enabled
2020-01-04 16:46:13 +01:00
Viktor De Pasquale
8737be2623
Updated policy (apps) layout to be more compact
...
Added pinch in to increase list span count / out to decrease
The setting will be remembered across the whole app (every list that uses Staggered Grid)
Updated indication of whether the policy has root access enabled permitted or not
Displays crossed out app logo if not permitted
2020-01-04 16:07:53 +01:00
Viktor De Pasquale
b8b0f257db
Updated navigation behavior to be consistent and easily manageable
2020-01-04 13:30:21 +01:00
Viktor De Pasquale
67b5f39df2
Updated device info view to be expanded by default
2020-01-04 11:52:29 +01:00
topjohnwu
465aaeff82
Remove dexter dependency
2020-01-03 02:06:53 +08:00
topjohnwu
40c64d50d5
Merge branch 'master' into feature/redesign
2020-01-02 14:52:50 +08:00
topjohnwu
b3328a0ec2
Make sure shell command won't block
2020-01-02 02:19:56 +08:00
topjohnwu
3049a81c3b
Update several scripts
...
- Update backup format as we might be patching multiple partitions
- Update uninstaller to remove files in persist (sepolicy.rule)
- Better handling for dtb/dtbo partition patching
2020-01-01 14:02:44 +08:00
topjohnwu
33d62d7f21
Handle sepolicy.rule when disable/remove in app
2019-12-27 19:03:45 +08:00
Viktor De Pasquale
89b1fa341b
Added assigning repo to installed modules to show readme
...
Close #1089
2019-12-13 15:19:56 +01:00
Viktor De Pasquale
3bda7cb26b
Removed exclusive usage of 29 level API
2019-12-13 14:41:49 +01:00
Viktor De Pasquale
eae4eff92f
Fixed custom dialog behaving oddly while displaying scrollable content
2019-12-06 20:34:25 +01:00
Viktor De Pasquale
848be8f806
Fixed rtl for reveal animations
2019-12-06 18:06:59 +01:00
Viktor De Pasquale
c79b79b37e
Cleaned up extensions and utilities in redesign
2019-12-06 16:28:41 +01:00
Viktor De Pasquale
8a03c366b8
Updated settings item location >in code<
2019-12-06 15:39:12 +01:00
Viktor De Pasquale
37677f389c
Finished rebranding core-only mode to safe mode
...
In compliance with #2131
Mentioned features are not contained within this commit
2019-12-06 15:00:55 +01:00
Viktor De Pasquale
bfb5d7e5ac
Reverted tinting headlines
2019-12-02 18:51:22 +01:00
Viktor De Pasquale
3efea47ca8
Updated settings to level functionality with the legacy
2019-12-02 18:35:48 +01:00
Viktor De Pasquale
89da45f9ac
Fixed state not being propagated correctly on startup
2019-11-29 21:04:47 +01:00
Viktor De Pasquale
34a0a00e3c
Updated constraint layout to fix layout issue in dialog
2019-11-29 21:04:32 +01:00
Viktor De Pasquale
dec1094a59
Added "input" settings item, that opens custom input dialog
...
Updated order of some items in settings
2019-11-29 20:22:24 +01:00
Viktor De Pasquale
cb96b536a2
Added fair amount of settings implemented from the UI side
...
Updated dialog to create recycler as it behaves better than regular listview
2019-11-28 21:53:31 +01:00
Viktor De Pasquale
73c4b21285
Added (partially) settings screen
...
Most importantly added design and functionality backing for these items
2019-11-27 19:47:20 +01:00
Viktor De Pasquale
78d7c45be3
Merge remote-tracking branch 'john/master' into feature/redesign
2019-11-26 14:34:38 +01:00
topjohnwu
72edbfc455
Some platforms do not like null Bundles
2019-11-25 19:09:54 -05:00
Viktor De Pasquale
cb59cc92a3
Updated action cards to be more colorful
2019-11-25 16:58:57 +01:00
Viktor De Pasquale
cc7e47bbb6
Added themes
...
All files (that used styles) were refactored to use styles directly so themes can only actually adjust colors
- Elaborate themes would be super hard to maintain and would certainly break over time
2019-11-22 19:29:53 +01:00
Viktor De Pasquale
42606162b2
Fixed text color in logs not changing with theme
2019-11-21 18:21:08 +01:00
Viktor De Pasquale
e82bc1b7bc
Fixed issues after merge
2019-11-21 18:07:13 +01:00
Viktor De Pasquale
4f0e1c6c61
Merge remote-tracking branch 'john/master' into feature/redesign
...
# Conflicts:
# app/build.gradle
# app/src/main/java/com/topjohnwu/magisk/Hacks.kt
# app/src/main/java/com/topjohnwu/magisk/data/database/RepoDatabase.kt
# app/src/main/java/com/topjohnwu/magisk/data/repository/LogRepository.kt
# app/src/main/java/com/topjohnwu/magisk/di/DatabaseModule.kt
# app/src/main/java/com/topjohnwu/magisk/extensions/RxJava.kt
# app/src/main/java/com/topjohnwu/magisk/extensions/XAndroid.kt
# app/src/main/java/com/topjohnwu/magisk/extensions/XJava.kt
# app/src/main/java/com/topjohnwu/magisk/model/download/RemoteFileService.kt
# app/src/main/java/com/topjohnwu/magisk/model/entity/recycler/LogRvItem.kt
# app/src/main/java/com/topjohnwu/magisk/model/events/ViewEvents.kt
# app/src/main/java/com/topjohnwu/magisk/ui/SplashActivity.kt
# app/src/main/res/xml/app_settings.xml
2019-11-21 17:46:59 +01:00
Viktor De Pasquale
550f6aff7e
Updated showing / hiding filters
2019-11-21 17:35:29 +01:00
Viktor De Pasquale
67c50d7504
Added magisk log screen
2019-11-21 17:31:37 +01:00
Viktor De Pasquale
94f0c61619
Added ignoring emulators for env_fix dialog
2019-11-21 14:30:12 +01:00
Viktor De Pasquale
8a86b30fd1
Fixed core UI elements not behaving properly after recreating
2019-11-21 14:24:14 +01:00
Viktor De Pasquale
6379108a75
Added new log screen
2019-11-20 22:42:44 +01:00
Viktor De Pasquale
c5385b5b4c
Added custom markdown window for redesign
2019-11-19 17:41:24 +01:00
Viktor De Pasquale
35475e1d25
Added option to include simple view to MagiskDialog
2019-11-19 17:41:09 +01:00
Viktor De Pasquale
0a239c2fef
Added QOL improvements
...
- fast scroll in module/filter list
- auto closing keyboard on scroll
2019-11-19 17:15:44 +01:00
Viktor De Pasquale
f5342a09d3
Added back safe mode notice
2019-11-19 16:07:19 +01:00
Viktor De Pasquale
f72de687c5
Fixed module lists not being strictly typed in builder
2019-11-19 15:56:10 +01:00
Viktor De Pasquale
833269fd0a
Updated install from storage button to be more expressive
2019-11-18 17:49:03 +01:00
Viktor De Pasquale
332c1a6c59
Removed overcomplicated updates loading
...
The mechanism was replaced by loading updated directly by id to the initial list. There are two factors why yesterday-me was dumb:
1) By asynchronously loading update state, you have no control over it - hence no search
2) It's incredibly wasteful; running that hardcore search on every query? Not cool
...and from UX stand-point having updates inlined right under installed modules is by far better than nitpicking it from the list or in the search
2019-11-18 17:21:23 +01:00
Viktor De Pasquale
0f1f43057e
Updated handling queries so first query is always instant
2019-11-18 16:29:27 +01:00
Viktor De Pasquale
784a7a7f24
Added back press closing filters in hide and module screens
2019-11-17 13:53:41 +01:00
Viktor De Pasquale
2926772bba
Added checks for updatable state on remote repos
2019-11-17 13:46:56 +01:00
topjohnwu
da159e4655
Better environment status detection
2019-11-16 17:38:10 -05:00
Viktor De Pasquale
a7f4496db7
Added info dialog for repos
2019-11-16 20:51:56 +01:00
Viktor De Pasquale
f972f02fff
Fixed clipping version string so it better shows the update's impact
...
Incremental canary bugfix will be:
b4b2c4 > f5d2e6
Version bump will be always:
20.2 > 20.3 (regardless of canary/beta/stable)
2019-11-16 20:21:09 +01:00
Viktor De Pasquale
1c77e26c05
Added sorting order to modules
2019-11-16 20:07:59 +01:00
Viktor De Pasquale
b744bb0a5a
Fixed loading showing in incorrect view-states
2019-11-16 19:20:44 +01:00
Viktor De Pasquale
0f140b408c
Added installing external modules from storage
2019-11-16 19:16:59 +01:00
Viktor De Pasquale
8b8f725499
Fixed log items not being refreshed
...
Close #2079
2019-11-16 03:20:43 -05:00
Viktor De Pasquale
711799b194
Added forced loading per user's demand
...
Added reselecting action (scroll up real fast)
2019-11-15 22:26:00 +01:00
topjohnwu
3d285b91c6
Use ContextCompat
2019-11-15 11:01:39 -05:00
Viktor De Pasquale
9d1d1710eb
Added new search functionality to module screen
2019-11-14 18:56:03 +01:00
Viktor De Pasquale
c69dcf3e20
Added hiding keyboard when "done" button pressed
2019-11-14 15:19:48 +01:00
Viktor De Pasquale
eec5b37da1
Fixed inconsistent animations in hide
2019-11-14 15:12:53 +01:00
topjohnwu
b29f0ca4d1
Support using BiometricPrompt
2019-11-14 05:42:39 -05:00
topjohnwu
576efbdc1b
Move su logs out of magiskdb
2019-11-14 00:01:06 -05:00
topjohnwu
2ef088cb60
Update RepoDao
2019-11-13 13:23:58 -05:00
topjohnwu
7c320b6fc4
Reformat RxJava extensions
2019-11-13 13:22:51 -05:00
Viktor De Pasquale
e1bda4ee8b
Added new filter for hide section
...
Parts of which will be reused in modules down the line
2019-11-13 18:29:30 +01:00
topjohnwu
a6f0aff659
Only store UID for current user
2019-11-13 02:36:34 -05:00
Viktor De Pasquale
54930024f5
Added biometric dialog instead of fingerprint one
2019-11-12 18:01:24 +01:00
Viktor De Pasquale
c5f2f63458
Fixed slow scrolling and list updates on hide screen
2019-11-12 17:23:27 +01:00
Viktor De Pasquale
265dca3723
Removed intermediate loading item
...
- adding intermediate items causes recyclerview renderer to display artifacts (copies of some views)
2019-11-12 15:58:32 +01:00
topjohnwu
171ddab32b
Reorganize code handling su requests
2019-11-12 03:20:07 -05:00
topjohnwu
2aee0b0be0
Refactor code for handling MagiskDB
2019-11-11 15:46:02 -05:00
vvb2060
817cdf7113
fix multiuser owner_managed mode
2019-11-11 14:12:26 -05:00
Viktor De Pasquale
495e734428
Updated module sections so it looks more consistent
2019-11-11 19:36:40 +01:00
Viktor De Pasquale
82120cf47f
Added processing of the download states
2019-11-11 18:01:23 +01:00
Viktor De Pasquale
027a5695f2
Added progressbars to repo items
2019-11-11 18:00:36 +01:00
Viktor De Pasquale
d6d82edff5
Fixed file service not broadcasting indeterminate states
2019-11-11 17:59:44 +01:00
Viktor De Pasquale
6c84574366
Added loading item to modules
2019-11-11 16:22:33 +01:00
topjohnwu
1a38f25bd9
Properly invoke method
2019-11-10 14:59:19 -05:00
topjohnwu
ad40e53349
Update hacks
2019-11-09 18:17:16 -05:00
topjohnwu
a2ddf362d8
Make a.a not extend AppComponentFactory
...
Fix #2053
2019-11-09 16:13:15 -05:00
Viktor De Pasquale
f83f92d3fa
Updated modules screen so it displays all the content in one recyclerview
...
Added "endless" scrolling support
- this is done in order to display everything very swiftly and load as user needs it
- for the most part we'll download only ~10 items and load the rest as scroll progresses, this accomplishes the illusion that whole list is being populated
Added sections and updated repo view
2019-11-08 19:04:30 +01:00
topjohnwu
61de63a518
Cleanup manifest
2019-11-08 02:15:30 -05:00
topjohnwu
d952cc2327
Properly solve the connection problem
2019-11-07 17:41:59 -05:00
Viktor De Pasquale
19fd4dd89c
Partially reverted removing "moveToState"
2019-11-06 18:52:58 +01:00
Viktor De Pasquale
f941f5c0b0
Fixed observer not being called immediately
2019-11-06 18:37:11 +01:00
Viktor De Pasquale
c7cad7e4aa
Updated modules so they are properly arranged to respective sections
...
Small updates to module UI
2019-11-06 17:22:26 +01:00
Viktor De Pasquale
70a3dbe2b0
Added primitive implementation of modules screen
2019-11-05 19:38:02 +01:00
topjohnwu
a6e62e07a2
Sort modules ignore case
...
Close #2024
2019-11-04 17:14:18 -05:00
topjohnwu
b1d25e0503
Reuse ALPHANUM
2019-11-04 15:42:40 -05:00
topjohnwu
25c557248c
Use ContentProvider call method for communication
...
Previously, we use either BroadcastReceivers or Activities to receive
messages from our native daemon, but both have their own downsides.
Some OEMs blocks broadcasts if the app is not running in the background,
regardless of who the caller is. Activities on the other hand, despite
working 100% of the time, will steal the focus of the current foreground
app, even though we are just doing some logging and showing a toast.
In addition, since stubs for hiding Magisk Manager is introduced, our
only communication method is left with the broadcast option, as
only broadcasting allows targeting a specific package name, not a
component name (which will be obfuscated in the case of stubs).
To make sure root requests will work on all devices, Magisk had to do
some experiments every boot to test whether broadcast is deliverable or
not. This makes the whole thing even more complicated then ever.
So lets take a look at another kind of component in Android apps:
ContentProviders. It is a vital part of Android's ecosystem, and as far
as I know no OEMs will block requests to ContentProviders (or else
tons of functionality will break catastrophically). Starting at API 11,
the system supports calling a specific method in ContentProviders,
optionally sending extra data along with the method call. This is
perfect for the native daemon to start a communication with Magisk
Manager. Another cool thing is that we no longer need to know the
component name of the reciever, as ContentProviders identify themselves
with an "authority" name, which in Magisk Manager's case is tied to the
package name. We already have a mechanism to keep track of our current
manager package name, so this works out of the box.
So yay! No more flaky broadcast tests, no more stupid OEMs blocking
broadcasts for some bizzare reasons. This method should in theory
work on almost all devices and situations.
2019-11-04 14:32:28 -05:00
Viktor De Pasquale
016e28383b
Added animated progressbar
2019-11-04 16:58:39 +01:00
Viktor De Pasquale
f1427e9279
Updated hide item layout
2019-11-04 16:45:54 +01:00
Viktor De Pasquale
169e9ab5ad
Updated hide fragment layout and design of the filter window
2019-11-04 16:02:23 +01:00
topjohnwu
472cde29b8
Allow non supported Magisk to use Magisk Manager
...
Close #1576
2019-11-04 03:24:27 -05:00