Skip to content

Commit 03f10f2

Browse files
committed
Handle LineageOS bug that breaks per-app filtering
1 parent f34afbb commit 03f10f2

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

app/src/main/java/tech/httptoolkit/android/ConnectionStatusView.kt

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package tech.httptoolkit.android
22

33
import android.content.Context
4+
import android.content.Intent
5+
import android.net.Uri
6+
import android.os.Build
47
import android.text.method.LinkMovementMethod
58
import android.view.LayoutInflater
69
import android.widget.LinearLayout
710
import android.widget.TextView
811
import com.google.android.material.card.MaterialCardView
12+
import com.google.android.material.dialog.MaterialAlertDialogBuilder
13+
14+
private val isLineageOs = Build.HOST.startsWith("lineage")
915

1016
class ConnectionStatusView(
1117
context: Context,
@@ -37,7 +43,30 @@ class ConnectionStatusView(
3743
)
3844

3945
val appInterceptionStatus = findViewById<MaterialCardView>(R.id.appInterceptionStatus)
40-
appInterceptionStatus.setOnClickListener { _ -> changeApps() }
46+
appInterceptionStatus.setOnClickListener { _ ->
47+
if (!isLineageOs) {
48+
changeApps()
49+
} else {
50+
MaterialAlertDialogBuilder(context)
51+
.setTitle("Not available")
52+
.setIcon(R.drawable.ic_exclamation_triangle)
53+
.setMessage(
54+
"""
55+
Per-app filtering is not possible on LineageOS, due to a bug in Lineage's VPN implementation.
56+
57+
If you'd like this fixed, please upvote the bug in their issue tracker.
58+
""".trimIndent()
59+
)
60+
.setNegativeButton("Cancel") { _, _ -> }
61+
.setPositiveButton("View the bug") { _, _ ->
62+
context.startActivity(Intent(
63+
Intent.ACTION_VIEW,
64+
Uri.parse("https://gitlab.com/LineageOS/issues/android/-/issues/1706")
65+
))
66+
}
67+
.show()
68+
}
69+
}
4170

4271
val appInterceptionStatusText = findViewById<TextView>(R.id.appInterceptionStatusText)
4372
appInterceptionStatusText.text = context.getString(

0 commit comments

Comments
 (0)