Skip to content

Commit 1c72175

Browse files
committed
Add a (How?) link to the user cert details UI
1 parent 92a55cf commit 1c72175

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

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

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package tech.httptoolkit.android
22

33
import android.content.Context
4+
import android.text.method.LinkMovementMethod
45
import android.view.LayoutInflater
56
import android.widget.LinearLayout
67
import android.widget.TextView
@@ -11,13 +12,18 @@ class ConnectionStatusView(
1112
) : LinearLayout(context) {
1213

1314
init {
14-
LayoutInflater.from(context).inflate(
15-
when (whereIsCertTrusted(proxyConfig)) {
16-
"user" -> R.layout.connection_status_user
17-
"system" -> R.layout.connection_status_system
18-
else -> R.layout.connection_status_none
19-
},
20-
this, true)
15+
val layout = when (whereIsCertTrusted(proxyConfig)) {
16+
"user" -> R.layout.connection_status_user
17+
"system" -> R.layout.connection_status_system
18+
else -> R.layout.connection_status_none
19+
}
20+
LayoutInflater.from(context).inflate(layout, this, true)
21+
22+
if (layout == R.layout.connection_status_user) {
23+
// Make inline links clickable:
24+
val statusText = findViewById<TextView>(R.id.connectionStatusText)
25+
if (statusText != null) statusText.movementMethod = LinkMovementMethod.getInstance()
26+
}
2127

2228
val connectedToText = findViewById<TextView>(R.id.connectedTo)
2329
connectedToText.text = context.getString(

app/src/main/res/layout/connection_status_user.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,11 @@
4242
android:text="@string/system_connection_status_disabled_heading" />
4343

4444
<TextView
45+
android:id="@+id/connectionStatusText"
4546
style="@style/ConnectionStatusText"
4647
android:layout_width="wrap_content"
4748
android:layout_height="wrap_content"
49+
android:textColorLink="@color/primaryInputBackground"
4850
android:text="@string/user_connection_status_details" />
4951
</LinearLayout>
5052
</com.google.android.material.card.MaterialCardView>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<string name="system_connection_status_disabled_heading">System interception disabled</string>
2121
<string name="system_connection_status_enabled_heading">System interception enabled</string>
2222

23-
<string name="user_connection_status_details">HTTPS traffic will only be intercepted from apps that are configured to trust user-installed certificates.</string>
23+
<string name="user_connection_status_details">HTTPS traffic will be only intercepted from apps that are configured to trust user-installed certificates (<a href="https://httptoolkit.tech/docs/guides/android#intercepting-traffic-from-your-own-android-app">How?</a>)</string>
2424
<string name="system_connection_status_details">Traffic will be intercepted from all installed applications, except those using explicit certificate pinning.</string>
2525

2626
<string name="scan_button">Scan code</string>

0 commit comments

Comments
 (0)