Commit Graph
75 Commits
Author SHA1 Message Date
Max Lv 6c89207eff Donwload fonts through support library. #1515 2017-12-22 00:29:31 -08:00
Mygod a742512892 Fix customRules not saved 2017-12-19 22:50:01 -08:00
Mygod 8b0c8168f8 Use JvmOverloads for BoundedGridLayout 2017-12-19 17:40:46 -08:00
Mygod 020a2a5d43 Refine "Catch IOExpections when reading ACLs"
This commit refines 37856ab4d2.
2017-12-19 17:36:12 -08:00
Mygod ef519a8581 Clean up ServiceButton related code 2017-12-19 17:31:15 -08:00
Mygod 540b1d3710 Add some sweet animation to replace old circular progress 2017-12-19 17:01:11 -08:00
Mygod 157a750e53 Remove the unmaintained fab progress circle 2017-12-19 15:24:39 -08:00
Mygod 6408450b31 Disable unavailable configurations for proxy mode
This prevents user confusion.
2017-12-19 13:45:30 -08:00
Mygod 536a1b4bbe Refrain from using private APIs for parseNumericAddress 2017-12-19 13:10:15 -08:00
Max Lv 37856ab4d2 Catch IOExpections when reading ACLs 2017-12-18 22:32:42 -08:00
Mygod f381ad6300 Fix crash when no profile is selected 2017-12-17 05:53:35 -08:00
Mygod b25e9a0905 Fix unit tests 2017-12-17 05:35:33 -08:00
Mygod 922eb8b202 Faster VPN connection and less wait
I just saved everyone ~0.9s every VPN connection.
2017-12-17 05:04:40 -08:00
Mygod 1010edc561 Speed up Acl.fromReader
It should run 9x faster than before now.

Past mistakes:

* InetAddress.parseNumericAddress throws TWO exceptions underthehood if the string passed is invalid. This caused a huge overhead;
* CharSequence.split in Kotlin is EXTREMELY SLOW.
2017-12-17 04:43:19 -08:00
Mygod bc22b0c481 Speed up AppManager
Also solves a cache problem.
2017-12-17 02:16:04 -08:00
Mygod 1bea09c5c6 Remove unnecessary call to linkToDeath 2017-12-17 01:36:20 -08:00
Mygod 5c252a2895 Fix incorrect back button color 2017-12-17 01:20:38 -08:00
Mygod 8ee9331222 Improve performance of reordering profiles 2017-12-17 00:21:31 -08:00
Mygod 870fd9e652 Move custom-rules.acl to PublicDatabase
Less files to backup. Less constants to keep track of.
2017-12-16 23:50:54 -08:00
Mygod e5cd145b24 Remove unnecessary bypassHostnames in Acl
Fix #1505
2017-12-16 22:38:47 -08:00
Mygod 11dd7112c3 Implement plugin entirely in Kotlin 2017-12-16 16:07:01 -08:00
Mygod d7a11eaa3b Implement direct boot awareness
To do direct boot, important files need to be moved to device storage (i.e. not as safe storage). The only thing sensitive is user credentials (server settings in each profile) and the config file passed to libss-*.so. In order to implement direct boot, at least the active profile has to be moved/copied to device storage.

This commit keeps profile information (and temporary data used by ProfileConfigFragment) and Shadowsocks config in credential storage and move everything else to device storage. In order to make direct boot work, active profile is also copied into device storage and Shadowsocks config file is created in device storage during direct boot. Cleanup of those information is also implemented.

Fixes #1457.

NB:

* `android:directBootAware` can't be used on application element. That seems to be used by system apps.
* Works fine with multi-user;
* Old GSM files are not migrated (see App.kt) to device storage.
2017-12-15 15:36:19 -08:00
Mygod 14ac54c2de Add support for Auto Backup for Apps 2017-12-15 12:21:30 -08:00
Max Lv 96c86b2441 Make QR code dialog public #1500 2017-12-14 20:04:37 -08:00
Mygod 30b56c97ea Add more tests, fix lint errors and add check to travis 2017-12-14 14:55:00 -08:00
Mygod 9352f2dfe7 Fix SubnetTest 2017-12-14 12:41:09 -08:00
Mygod 9a2643ec2c Add missing error message 2017-12-14 12:00:13 -08:00
Mygod 5c2d548dee Reduce the number of default methods 2017-12-14 12:00:13 -08:00
Mygod 2fa8bc7f41 Refine #1500 2017-12-14 12:00:13 -08:00
Mygod 94527ea460 Refine #1497 2017-12-14 12:00:13 -08:00
Mygod 9259789fb9 Refine #1481 2017-12-14 12:00:13 -08:00
Max Lv b88f836616 Refine #1489 2017-12-13 23:35:10 +08:00
Max Lv c3bbd09ef3 Fix #1500 2017-12-13 22:32:37 +08:00
Max Lv ea7ede033d Fix #1497 2017-12-13 02:06:20 -08:00
Max Lv 956443ef28 Fix the shortcut #1481 2017-12-12 23:45:22 -08:00
Max Lv 9aa0a4e3c5 Fix a potential issue in localSocket 2017-12-11 10:51:17 +08:00
Max Lv aa53318408 Refine #1489 2017-12-10 22:51:18 +08:00
Max Lv 5bc7200d21 Fix the exception when addAllowedApplication 2017-12-09 23:02:45 +08:00
Mygod f5a8513b00 Refine padding in profile item 2017-12-08 17:59:17 -08:00
Mygod 97e93552c6 Always proxy the app itself
No need to keep a confusing option. Fix #1484.
2017-12-08 17:37:11 -08:00
Mygod 497a74760d Refine #1489 2017-12-08 17:24:29 -08:00
Max Lv 3c62d70650 Fix #1489 2017-12-08 12:05:52 +08:00
Mygod efae2f02d0 Refrain from calculating hardcoded dimensions 2017-12-07 00:05:18 -08:00
Mygod d5c1455a00 Replace Toast.position with TooltipCompat 2017-12-06 23:57:17 -08:00
Mygod 9fd86fe8b8 Fix #1487 2017-12-06 23:38:41 -08:00
Mygod 6608355e63 Fix a crash when reordering profiles 2017-12-06 23:25:54 -08:00
Mygod b622545c4b Remove the useless sleep 2017-12-06 21:58:48 -08:00
Mygod c124e1e8ef Misc refinements
* Refine Kotlin codes;
* Support RTL;
* Use VectorDrawable for notification;
* Remove redundant resources;
* Better IDE integration.
2017-12-06 19:46:26 -08:00
Mygod f49d3cb443 Save LocalSocket instance from getting GC 2017-12-06 19:01:35 -08:00
Mygod baa2fdeb1f Refine profile item layout 2017-12-06 18:06:43 -08:00