Commit Graph

1358 Commits

Author SHA1 Message Date
RikkaW 0df891b336 Handle window insets with a new way
For example, switching pages in home should only have scale and alpha animations, but a "translate y" animation shows. This is because Data Binding is triggered later (like "in the next frame"), causing the animation runs before view attribute changes.

This commit introduces WindowInsetsHelper class and use it to handle all window insets. With the help of LayoutInflaterFactory from the previous commit, we can control insets behavior by adding our attributes to the XML and anything is done by WindowInsetsHelper class.

As changes are highly coupling, this commit also contains new ItemDecoration for lists, replacing the random combination of padding and empty drawable. And "fixEdgeEffect" extension for RecyclerView, making edge effects respect padding.
2020-11-19 23:24:39 -08:00
RikkaW 385853a290 Introduce LayoutInflaterFactory
This add the ability touch layout XML instantiates process. And most importantly, we can access AttributeSet, making custom view attribute possible.

Some other changes requires this.
2020-11-19 23:24:39 -08:00
RikkaW fa3ef8a1c1 Significantly simplify MagiskDialog layout
The goal of original implementation, wrap view again and again, seems to be use the shadow and customizable round corners from MaterialCardView. But this can be done with use MaterialShapeDrawable which used in MaterialCardView directly. This will significantly simplify the layout and MagiskDialog class.
2020-11-19 23:21:36 -08:00
RikkaW c93ada03c7 Implement Edge-to-edge with newer APIs
The implementation adds a "Base" family styles, making creating themes across multiple API versions more clearer and easier.
2020-11-19 23:21:36 -08:00
topjohnwu 9241246de6 Only use MediaStore APIs on Android 11+
Fix #3428
2020-11-13 02:53:30 -08:00
topjohnwu 2739d3cb67 Update PayPal link 2020-11-07 15:10:10 -08:00
vvb2060 e9759a5868 Update HideViewModel 2020-11-07 14:47:44 -08:00
topjohnwu 16e4c67992 Significantly broaden sepolicy.rule compatibility
Previously, Magisk uses persist or cache for storing modules' custom
sepolicy rules. In this commit, we significantly broaden its
compatibility and also prevent mounting errors.

The persist partition is non-standard and also critical for Snapdragon
devices, so we prefer not to use it by default.

We will go through the following logic to find the best suitable
non-volatile, writable location to store and load sepolicy.rule files:

Unencrypted data -> FBE data unencrypted dir -> cache -> metadata -> persist

This should cover almost all possible cases: very old devices have
cache partitions; newer devices will use FBE; latest devices will use
metadata FBE (which guarantees a metadata parition); and finally,
all Snapdragon devices have the persist partition (as a last resort).

Fix #3179
2020-11-02 23:20:38 -08:00
topjohnwu 0d11f73a1d Handle unexpected exceptions
Fix #3276
2020-10-22 03:09:05 -07:00
vvb2060 533cb8eb58 Tapjacking protection 2020-10-22 02:40:47 -07:00
vvb2060 4a7c3c06bc Disable hide/restore when no remote info 2020-10-20 23:56:44 -07:00
vvb2060 da93bbc1fe Fix network 2020-10-20 23:56:21 -07:00
topjohnwu fa2dbe981e Handle retrofit errors 2020-10-20 03:03:40 -07:00
vvb2060 468796c23d Add option to show OS apps 2020-10-17 05:57:43 -07:00
vvb2060 5833aadef5 Silence kotlin warnings 2020-10-17 05:57:35 -07:00
vvb2060 a4c48847d1 Cancel vibration to sync with notification channel 2020-10-17 05:56:07 -07:00
vvb2060 43288be091 Prevent dot in the first position 2020-10-17 05:55:58 -07:00
vvb2060 1ad7a6fe93 Update activity display when download fails 2020-10-17 05:54:34 -07:00
topjohnwu 4e0a3f5e72 Fix compile errors 2020-10-17 04:28:20 -07:00
topjohnwu 9087207dc0 Minor changes 2020-10-17 04:14:12 -07:00
vvb2060 2760f37e6b Add userspace reboot 2020-10-17 03:54:51 -07:00
topjohnwu 2e4dc91b96 Better stub hiding experience 2020-10-17 03:40:43 -07:00
topjohnwu 735b65c50c Update DoH implementation 2020-10-11 15:19:19 -07:00
topjohnwu efb1eab327 Silence some warnings 2020-10-11 05:47:47 -07:00
topjohnwu 6092d7ca88 Minor cleanups 2020-10-11 05:10:02 -07:00
topjohnwu 0a14f43f9c Refactor class names 2020-10-10 22:40:57 -07:00
topjohnwu 311c1f0dfd Switch to new repo format 2020-10-10 14:31:30 -07:00
vvb2060 eeced2fb5b Only care about the main process when not expanded 2020-10-08 00:30:34 -07:00
topjohnwu 6509e3d4f5 Use ProgressDialog when restoring images
Close #3287
2020-10-08 00:27:16 -07:00
topjohnwu d9382f59bf Fix logical error 2020-10-08 00:14:51 -07:00
topjohnwu 403a0c770a Fix typo 2020-10-07 20:15:23 -07:00
topjohnwu f0f1cdc501 Disable LoggingInterceptor 2020-10-07 04:01:50 -07:00
topjohnwu 4e272b70ef Download GitHub files through CDN 2020-10-07 04:01:03 -07:00
topjohnwu 9225b47568 Tidy up network services
Add jsdelivr CDN for several files
2020-10-06 04:58:46 -07:00
topjohnwu d462873e74 Prevent UI loop on low memory device
Fix #3215, close #3216
2020-10-06 02:21:57 -07:00
topjohnwu fc19b50290 Cleanup ActivityResult callbacks 2020-10-06 02:04:19 -07:00
vvb2060 bacb5fa462 Truncate existing file when openOutputStream 2020-10-06 00:41:21 -07:00
topjohnwu 67f8dc494e Properly patch vbmeta.img
Close #3241
2020-10-06 00:40:57 -07:00
topjohnwu 716f06846b Use GitHub pages URLs for public channel JSONs 2020-10-03 02:51:51 -07:00
topjohnwu 241f2656fa Prepare for public release 2020-10-03 02:42:02 -07:00
topjohnwu 46de1ed968 Better handling of data encryption 2020-09-28 04:45:56 -07:00
topjohnwu 9bebe07d5a Better network connection observing 2020-09-27 21:21:38 -07:00
vvb2060 7ac55068db Catch ActivityNotFoundException 2020-09-27 04:33:46 -07:00
topjohnwu 2f232fc670 Support modern Samsung AP.tar patching 2020-09-26 13:32:51 -07:00
Viktor De Pasquale 63a9a7d643 Fixed bottom bar not hiding on device without root 2020-09-24 00:51:08 -07:00
vvb2060 fd552e68a9 Don't hide app with uid < 10000 2020-09-23 20:57:19 -07:00
vvb2060 de4e26b488 Allow download modules when Magisk is not installed 2020-09-23 20:57:19 -07:00
vvb2060 fa3865e962 Check command result 2020-09-23 20:57:19 -07:00
vvb2060 a6950b8aca Add failed state 2020-09-23 20:57:19 -07:00
topjohnwu 0ef92a4866 Hide OTA option on Pixel devices 2020-09-23 04:49:38 -07:00