summaryrefslogtreecommitdiffhomepage
path: root/ui/src/main/java/com
AgeCommit message (Collapse)Author
2020-04-06ui: add suffix to persistent keepalive in editorJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-04-06ui: add missing fields to detail viewJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-04-06TunnelListFragment: onCreateActionMode is called before adapter is aliveJason A. Donenfeld
Long press a tunnel item. SIGKILL the app. Reenter it. Boom: kotlin.KotlinNullPointerException: at com.wireguard.android.fragment.TunnelListFragment$ActionModeListener.onCreateActionMode (TunnelListFragment.java:347) at androidx.appcompat.app.AppCompatDelegateImpl$ActionModeCallbackWrapperV9.onCreateActionMode (AppCompatDelegateImpl.java:2442) at androidx.appcompat.app.WindowDecorActionBar$ActionModeImpl.dispatchOnCreate (WindowDecorActionBar.java:1062) at androidx.appcompat.app.WindowDecorActionBar.startActionMode (WindowDecorActionBar.java:530) at androidx.appcompat.app.AppCompatDelegateImpl.startSupportActionMode (AppCompatDelegateImpl.java:1055) at androidx.appcompat.app.AppCompatActivity.startSupportActionMode (AppCompatActivity.java:316) at com.wireguard.android.fragment.TunnelListFragment$ActionModeListener.setItemChecked (TunnelListFragment.java:371) at com.wireguard.android.fragment.TunnelListFragment.onActivityCreated (TunnelListFragment.java:174) at androidx.fragment.app.Fragment.performActivityCreated (Fragment.java:2717) at androidx.fragment.app.FragmentStateManager.activityCreated (FragmentStateManager.java:346) at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:1188) at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:161) at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:1356) at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:5) at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState (FragmentManager.java:1434) at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState (FragmentManager.java:5) at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:1497) at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java:389) at androidx.fragment.app.FragmentManager.dispatchStateChange (FragmentManager.java:2625) at androidx.fragment.app.FragmentManager.dispatchStateChange (FragmentManager.java:677) at androidx.fragment.app.FragmentManager.dispatchActivityCreated (FragmentManager.java:2577) at androidx.fragment.app.FragmentManager.dispatchActivityCreated (FragmentManager.java:9) at androidx.fragment.app.FragmentController.dispatchActivityCreated (FragmentController.java:247) at androidx.fragment.app.FragmentActivity.onStart (FragmentActivity.java:541) at androidx.appcompat.app.AppCompatActivity.onStart (AppCompatActivity.java:201) at android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1440) at android.app.Activity.performStart (Activity.java:8109) at android.app.ActivityThread.handleStartActivity (ActivityThread.java:3806) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence (TransactionExecutor.java:235) at android.app.servertransaction.TransactionExecutor.cycleToPath (TransactionExecutor.java:215) at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:187) at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:105) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2386) at android.os.Handler.dispatchMessage (Handler.java:107) at android.os.Looper.loop (Looper.java:213) at android.app.ActivityThread.main (ActivityThread.java:8178) at java.lang.reflect.Method.invoke (Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1101) This commit avoids the crash. But it's not clear to me that this is really the right solution. However, in testing it appears to work. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-04-06ui: misc cleanups to AppListDialogFragmentHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-06AppListDialogFragment: support both inclusion and exclusionJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-04-06MultiselectableRelativeLayout: use JvmOverloads constructorHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-04-01ObservableTunnel: do not cache keyJason A. Donenfeld
Reported-by: Reza Island's <rezza.aji.ras@gmail.com> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-30TunnelEditorFragment: don't show bioauth if already visibleJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-30global: cleanup code styleJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-30LogViewerActivity: don't crash if pipe closesJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-30BiometricAuthenticator: rework logic and bugsJason A. Donenfeld
Otherwise there's a frameworks bug that causes the fragment's activity to become null. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-30BiometricAuthenticator: implement biometric authentication for sensitive ↵Harsh Shandilya
operations When biometric hardware is available, it will be used to authenticate the user before private keys are shown on screen or when zip exports are executed. Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-30ObservableTunnel: Don't cache configAsyncHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-30BindingAdapters: use sleeker lambdaJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-30TunnelEditorFragment: add hooks for biometric authJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-29AddTunnelsSheet: Make behaviour nullableHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-28global: hardcode tags so that minification doesn't ruin the logJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-28LogViewerActivity: only scroll every quarter for the first 2.5 seconds of ↵Jason A. Donenfeld
dumping Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-28ui: Remove unnecessary non-null assertion in TAG fieldsHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-28MonkeyedTextInputEditText: make more robustJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-28ui: use kotlin class instead of java class for tagJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-28ObservableTunnel: do not cache statsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-28TunnelEditor: move generate button to inside boxJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-28MonkeyedTextInputEditText: introduce a new horrorJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-28ClipboardUtils: Update to handle TextInputEditTextHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-28Disable screen capture in tunnel editorHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-28TunnelComparator: naturally sort tunnel listJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-28ObservableTunnel: Don't recurse in getConfigHarsh Shandilya
The correct way to retrieve the value inside a getter/setter is to use `field` to ensure you don't invoke the getter while inside the getter and trigger a stack overflow Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-27databinding: simplify and address warningsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-27ui: Replace ErrorMessages getter with indexing operatorHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-27Convert ErrorMessages to KotlinHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-27Convert AsyncWorker to KotlinHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-27databinding: rewrite in kotlinJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-27util: begin conversion to kotlinJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-26TunnelManager: convert to kotlinJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-26util: Start converting to KotlinHarsh Shandilya
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-26ObservableTunnel: port to kotlinJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-26LogViewerActivity: merge lines that don't match regexJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-26LogViewerActivity: re-add error case to log exportJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-26LogViewerActivity: constify requestJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-26ui: root: rewrite in kotlinJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-26ui: cleanup various pieces of kotlinJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-26Introduce realtime log viewerHarsh Shandilya
This contains a share button and a save button, the former using a custom content provider. Co-authored-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-25LogExporterPreference: Don't ask for storage permissions on Android 10 and aboveHarsh Shandilya
We use the proper MediaStore implementation on Android 10 which makes it unnecessary. Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-03-24ui: squelch warningsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-24TunnelManager: disallow remote apps for LJason A. Donenfeld
I don't trust old Android versions to have gotten this right. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-23TunnelManager: save settings before restartJason A. Donenfeld
Otherwise these get lost and then the restored state is confusing. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-22Preferences: hide advanced settingsJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-22SettingsActivity: remove from parent instead of fixed screenJason A. Donenfeld
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2020-03-22TunnelManager: enable Tasker supportJason A. Donenfeld
Also fix up wording for the permission prompt that Tasker will show when initially setting this up. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>