<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-android/ui/src/main/java/com/wireguard/android/activity, branch master</title>
<subtitle>Android GUI for WireGuard</subtitle>
<id>https://git.zx2c4.com/wireguard-android/atom/ui/src/main/java/com/wireguard/android/activity?h=master</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-android/atom/ui/src/main/java/com/wireguard/android/activity?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/'/>
<updated>2025-12-31T11:23:59Z</updated>
<entry>
<title>LogViewerActivity: remove unnecessary ?.</title>
<updated>2025-12-31T11:23:59Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-12-31T11:23:59Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/commit/?id=1c0b211bd6f85a3ce626b588a699aec981858b81'/>
<id>urn:sha1:1c0b211bd6f85a3ce626b588a699aec981858b81</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>ui: raise min SDK to 24</title>
<updated>2025-10-20T16:22:36Z</updated>
<author>
<name>Harsh Shandilya</name>
<email>me@msfjarvis.dev</email>
</author>
<published>2025-09-19T15:15:17Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/commit/?id=3b6ab660a94ef563be25e50804951feda26bc30a'/>
<id>urn:sha1:3b6ab660a94ef563be25e50804951feda26bc30a</id>
<content type='text'>
The difference between the usage of 21 and 24 is not big enough to hold
on to all the baggage from API 21

Signed-off-by: Harsh Shandilya &lt;me@msfjarvis.dev&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>TvMainActivity: link to cx file explorer</title>
<updated>2025-05-23T02:16:41Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-23T02:16:41Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/commit/?id=90395232b0607b7da8fc1baa7c35000964427b22'/>
<id>urn:sha1:90395232b0607b7da8fc1baa7c35000964427b22</id>
<content type='text'>
Google requires us to link to a specific file manager. We can't just
open the app store. They keep rejecting the app otherwise. Annoying.

Also, due to Android TV bugs, we also can't link to a prefilled search
query of "file manager". Instead we must link to an actual file manager.

Unfortunately, none of the open source file manager apps both support
the TV interface and can act as a file chooser. So instead we pick what
looks like the only decent one that doesn't have any in app purchases.
Ugh. I don't like doing this. It's not an endorsement. I don't know much
about who makes these. But what choice do we have?

So doing this for now. Maybe we'll find some better solution or apply to
be a file manager ourselves in the future.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>MainActivity: don't reuse id names across layouts</title>
<updated>2025-05-19T15:57:39Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-19T15:57:39Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/commit/?id=2c223fb68cabc02ba7f761a87a211a05bb0da6a5'/>
<id>urn:sha1:2c223fb68cabc02ba7f761a87a211a05bb0da6a5</id>
<content type='text'>
This causes problems on foldables.

Reported-by: Josh Dague &lt;josh3736@gmail.com&gt;
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>global: update copyright notices</title>
<updated>2025-05-19T15:31:02Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-19T15:31:02Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/commit/?id=0295abd808ba00a024d5752980f7fccfcb6161bb'/>
<id>urn:sha1:0295abd808ba00a024d5752980f7fccfcb6161bb</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>TunnelCreatorActivity: use proper xml for layout</title>
<updated>2025-05-19T15:26:38Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-19T15:26:38Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/commit/?id=0350b801b6bfe2d910ee25a7af3bc465dbcea14a'/>
<id>urn:sha1:0350b801b6bfe2d910ee25a7af3bc465dbcea14a</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>TunnelToggleActivity: suppress errors from prepare() in lockdown mode</title>
<updated>2025-05-16T16:45:19Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-16T16:45:19Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/commit/?id=720079bdf92339d582d2280235805c18aac0225d'/>
<id>urn:sha1:720079bdf92339d582d2280235805c18aac0225d</id>
<content type='text'>
Exception java.lang.IllegalStateException: Unavailable in lockdown mode
  at android.os.Parcel.createExceptionOrNull (Parcel.java:3031)
  at android.os.Parcel.createException (Parcel.java:3007)
  at android.os.Parcel.readException (Parcel.java:2990)
  at android.os.Parcel.readException (Parcel.java:2932)
  at android.net.IVpnManager$Stub$Proxy.prepareVpn (IVpnManager.java:1064)
  at android.net.VpnService.prepare (VpnService.java:290)
  at com.wireguard.android.activity.TunnelToggleActivity$onCreate$1.invokeSuspend (TunnelToggleActivity.kt:44)
  at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:8)
  at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith (DispatchedContinuation.kt:155)
  at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable (Cancellable.kt:12)
  at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default (Cancellable.kt:12)
  at kotlinx.coroutines.CoroutineStart.invoke (CoroutineStart.java:80)
  at kotlinx.coroutines.AbstractCoroutine.start (AbstractCoroutine.kt:80)
  at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch (BuildersKt__Builders_common.kt:52)
  at kotlinx.coroutines.BuildersKt.launch (Builders.kt:52)
  at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default (BuildersKt__Builders_common.kt:52)
  at kotlinx.coroutines.BuildersKt.launch$default (Builders.kt:52)
  at com.wireguard.android.activity.TunnelToggleActivity.onCreate (TunnelToggleActivity.kt:14)
  at android.app.Activity.performCreate (Activity.java:8591)
  at android.app.Activity.performCreate (Activity.java:8570)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1384)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:4150)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:4325)
  at android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:101)
  at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2574)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:226)
  at android.os.Looper.loop (Looper.java:313)
  at android.app.ActivityThread.main (ActivityThread.java:8762)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:604)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>ui: set fitsSystemWindows=true for EdgeToEdge on API 35+</title>
<updated>2025-05-16T16:41:56Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-15T16:36:56Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/commit/?id=aa68b5152e58dff160355a42c520b0fdb85932c2'/>
<id>urn:sha1:aa68b5152e58dff160355a42c520b0fdb85932c2</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>TvMainActivity: use OpenDocument instead of GetContent</title>
<updated>2025-05-16T16:41:56Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-15T17:31:51Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/commit/?id=67db72ac4085c11fe51f986f5a7af2450eeff50b'/>
<id>urn:sha1:67db72ac4085c11fe51f986f5a7af2450eeff50b</id>
<content type='text'>
This should make it possible to open files on Android TV 14.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
<entry>
<title>LogViewerActivity: cast array to Any type instead of using union inference</title>
<updated>2025-05-08T02:59:37Z</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2025-05-08T02:57:37Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-android/commit/?id=6aab7cccf9f993a1af8b7fbae16bb85335c70e6b'/>
<id>urn:sha1:6aab7cccf9f993a1af8b7fbae16bb85335c70e6b</id>
<content type='text'>
Type argument for reified type parameter 'T' was inferred to the
intersection of ['Comparable&lt;*&gt;' &amp; 'Serializable']. Reification of an
intersection type results in the common supertype being used. This may
lead to subtle issues and an explicit type argument is encouraged. This
will become an error in a future release.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
</entry>
</feed>
