aboutsummaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAgeFilesLines
* ui: show all apps with internet permission in exclusions listHarsh Shandilya2020-11-161-7/+6
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* ui: test for any camera, not just rear oneJason A. Donenfeld2020-11-101-1/+1
| | | | | | | Some folks use chromebooks, which don't have rear cameras. Reported-by: Jay Tuley <jay.tuley@ekonbenefits.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* build: upgrade runtime dependenciesHarsh Shandilya2020-11-091-5/+5
| | | | | | Updates ConstraintLayout, kotlinx.coroutines, Jetpack DataStore, JUnit and Lifecycle-Runtime-KTX Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* strings: sync translationsHarsh Shandilya2020-11-071-0/+184
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* build: add task to sync localisations with CrowdinHarsh Shandilya2020-11-071-0/+33
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* build: switch to Gradle's maven-publish pluginHarsh Shandilya2020-11-073-52/+45
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* ToolsInstaller: unbreak cleanupJason A. Donenfeld2020-10-271-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tunnel: do not constantly raise toasts when process is opportunistically killedJason A. Donenfeld2020-10-261-2/+5
| | | | | | | | | | | | | | | | | | | | | | Modern Android likes to kill processes to free ram and resources. When kernel-mode WireGuard is in use, this is quite alright with us, since the app doesn't actually need to consume any resources at all in order for the tunnel to run. So, we want to allow and encourage this resource frugality. However, when the quick settings tile is being used or when the app is referenced otherwise, the app will occasionally be restarted, to, for example, repaint the quick settings tile. This is also fine, as the process winds up being short-lived again. But, since process initialization means asking for a new root shell in order to check on kernel-mode WireGuard, this means that Magisk raises a systemwide toast. On some phones, this happens each and every time that the notification shade is pulled down. It's not only annoying but it sometimes obscures other notifications that users want to see, prompting their pulling down of the notification shade in the first place. In order to get rid of this nuisance, just disable these notifications and extraneous logs, so that we don't clutter the system every time that the process is opportunistically killed and restarted. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tunnel: clean up some docstring wordingJason A. Donenfeld2020-10-203-3/+6
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* build: upgrade to Gradle 6.7Harsh Shandilya2020-10-152-4/+4
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* build: add crowdin syncer script and use itJason A. Donenfeld2020-10-1413-4/+1017
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* build: update to AGP 4.1.0Harsh Shandilya2020-10-131-1/+1
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* README: mention desugaringJason A. Donenfeld2020-10-081-1/+5
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* build: update AGP and ConstraintLayoutHarsh Shandilya2020-10-071-2/+2
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* tunnel: use more subtle roaming escape hatchJason A. Donenfeld2020-10-073-4/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* build: update to mdc 1.3.0-alpha03Jason A. Donenfeld2020-10-052-3/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* DownloadsFileSaver: initialize callback in constructor, not on the flyJason A. Donenfeld2020-10-023-9/+22
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* build: upgrade AndroidX biometricJason A. Donenfeld2020-10-022-6/+5
| | | | | | | The BiometricConstants class was removed and these were folded into BiometricPrompt. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* build: update AndroidX activity/fragments and resolve compile failureHarsh Shandilya2020-10-022-5/+2
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* ui: use commit extension from fragment-ktxHarsh Shandilya2020-09-303-16/+19
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* ui: account for binding disappearing on detail fragmentJason A. Donenfeld2020-09-301-7/+11
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* version: bump1.0.20200927Jason A. Donenfeld2020-09-271-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: hack gridlayoutmanager to fill columns before row if we're not scrollingJason A. Donenfeld2020-09-271-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we're horizontally scrolling, it makes sense to fill rows before columns. But if it all fits in one page and we don't need to scroll horizontally, it looks ridiculous. So, in this case, rearrange the tiles so that it appears to fill columns before rows. But we don't want things suddenly jumping around, so actually, keep the same ordering as rows-before-columns, but add invisible spaces after certain items, so that the fill area makes it look as though it's columns-before-rows. This winds up being much more visually pleasing. We do this by figuring out this kind of transformation: If we convert this matrix: 0 3 6 1 4 _ 2 5 _ To this one: 0 2 4 6 1 3 5 _ _ _ _ _ For a given index, how many spaces are under it? This changes depending on how many total are in a grid. Going from 3x3 to 4x3, for example, we have: count == 12, index = count == 11, index = 10 count == 10, index = 7,9 count == 9, index = 4,6,8 count == 8, index = 1,3,5,7 count == 7, index = 1,3,5,6! count == 6, index = 1,3,4!,5! count == 5, index = 1,2!,3!,4! count == 4, index = 0!,1!,2!,3! count == 3, index = 0!,1!,2! count == 2, index = 0!,1! count == 1, index = 0! count == 0, index = The '!' means two blanks below, no '!' means one blank below, and no mention means no blanks below. This commit adds code to compute such a table on the fly. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* ui: queue up tunnel mutating on activity scope instead of fragment scopeJason A. Donenfeld2020-09-266-69/+80
| | | | | | | | | | | | Fragment scopes get cancelled when the fragment goes away, but we don't actually want to cancel an in-flight transition in that case. Also, before when the fragment would cancel, there'd be an exception, and the exception handler would call Fragment::getString, which in turn called requireContext, which caused an exception. Work around this by using the `activity ?: Application.get()` idiom to always have a context for strings and toasts. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* ui: print proper exception trace from log viewerJason A. Donenfeld2020-09-261-1/+3
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* ui: request intent permissions from hidden activityJason A. Donenfeld2020-09-261-2/+19
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* version: bump1.0.20200923Jason A. Donenfeld2020-09-241-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: handle going up directories betterJason A. Donenfeld2020-09-242-25/+41
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: show volume descriptions for file pickerJason A. Donenfeld2020-09-241-4/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* ui: account for null data in callbackJason A. Donenfeld2020-09-241-0/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* ui: cleanup code after churnJason A. Donenfeld2020-09-235-220/+206
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: use system picker for API 29+Jason A. Donenfeld2020-09-231-10/+24
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: use our own file pickerJason A. Donenfeld2020-09-234-26/+265
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: escape deletion view with back buttonJason A. Donenfeld2020-09-231-0/+7
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: select first item after toggling deletion modeJason A. Donenfeld2020-09-221-0/+3
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: hook up isFocused as observable propertyJason A. Donenfeld2020-09-223-4/+11
| | | | | | | | This is kind of ridiculous, since the items own state should clearly be queryable, but it doesn't appear to be the case here, so just shuffle it around into kotlin and back. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: add text when there are no tunnelsJason A. Donenfeld2020-09-223-1/+18
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: make cards slightly smallerJason A. Donenfeld2020-09-221-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: select the right thing on loadJason A. Donenfeld2020-09-221-2/+9
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: tweak TV layout to fit 3 rows betterHarsh Shandilya2020-09-221-6/+8
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* tv: set layout manager from XMLHarsh Shandilya2020-09-222-2/+2
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* tv: make logo almost betterJason A. Donenfeld2020-09-222-9/+21
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: anchor RV bottom to top of delete buttonHarsh Shandilya2020-09-221-1/+1
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* tv: remove useless attributeJason A. Donenfeld2020-09-221-1/+0
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: use plus instead of text for importingJason A. Donenfeld2020-09-221-3/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: do themingHarsh Shandilya2020-09-227-19/+76
| | | | Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* tv: account for broken TVs with no file pickerJason A. Donenfeld2020-09-222-1/+8
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: remove tiny words from tv bannerJason A. Donenfeld2020-09-221-0/+0
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: do not redisplay stats when deletingJason A. Donenfeld2020-09-221-3/+3
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tv: add tv bannerJason A. Donenfeld2020-09-224-0/+220
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>