Commit Graph

2417 Commits

Author SHA1 Message Date
Viktor De Pasquale 8b8f725499 Fixed log items not being refreshed
Close #2079
2019-11-16 03:20:43 -05:00
topjohnwu bab856bce2 Move biometric settings higher in the list 2019-11-16 03:19:25 -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
vvb2060 1dc531930d Update zh-rCN translation 2019-11-15 10:55:51 -05:00
Ilya Kushnir 3d3345acac Update RU strings 2019-11-15 10:55:41 -05:00
Viktor De Pasquale 2105cacce3 Fixed fab background color in dark mode
Now it's recognizable from the background
2019-11-14 19:10:49 +01: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 a7f0510a3e Update build.gradle 2019-11-13 17:17:21 -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
孟武.尼德霍格.龍 9b297b752e Update strings.xml 2019-11-13 02:37:35 -05:00
vvb2060 1d6ba58ccd Update zh-rCN translation 2019-11-13 02:37:10 -05: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 b2b81a5d0f Fixed "enabled" state for download action button 2019-11-12 16:45:28 +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 a12eb3fc6f Fixed incorrect indeterminate progressbar color 2019-11-11 17:59:09 +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
Ilya Kushnir 65eca31635 Updating RU translation 2019-11-09 04:40:10 -05:00
Viktor De Pasquale bc5cbe9fba Updated module item design to follow suit with the rest of the app 2019-11-08 19:19:19 +01: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 1c8988d3f7 Updated "night" style of elevated card 2019-11-05 19:39:06 +01:00
Viktor De Pasquale 70a3dbe2b0 Added primitive implementation of modules screen 2019-11-05 19:38:02 +01:00
Viktor De Pasquale efbb3ab25f Fixed red tint regarding system security not being spanned across the whole card 2019-11-05 16:19:41 +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 b0e7c65504 Added icon for "all processes hidden" state 2019-11-04 17:40:13 +01:00