Skip to content

Commit ad7078b

Browse files
committed
Make the UI details section more flexible
1 parent 6bedb26 commit ad7078b

File tree

5 files changed

+50
-46
lines changed

5 files changed

+50
-46
lines changed

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

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import android.widget.LinearLayout
1818
import android.widget.TextView
1919
import androidx.annotation.StringRes
2020
import androidx.appcompat.app.AppCompatActivity
21+
import androidx.appcompat.view.ContextThemeWrapper
2122
import androidx.localbroadcastmanager.content.LocalBroadcastManager
2223
import com.google.android.gms.common.GooglePlayServicesUtil
2324
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -186,17 +187,20 @@ class MainActivity : AppCompatActivity(), CoroutineScope by MainScope() {
186187

187188
private fun updateUi() {
188189
val statusText = findViewById<TextView>(R.id.statusText)
189-
val detailText = findViewById<TextView>(R.id.detailText)
190190

191191
val buttonContainer = findViewById<LinearLayout>(R.id.buttonLayoutContainer)
192192
buttonContainer.removeAllViews()
193193

194+
val detailContainer = findViewById<LinearLayout>(R.id.statusDetailContainer)
195+
detailContainer.removeAllViews()
196+
194197
when (mainState) {
195198
MainState.DISCONNECTED -> {
196199
statusText.setText(R.string.disconnected_status)
197200

198-
detailText.visibility = View.VISIBLE
199-
detailText.setText(R.string.disconnected_details)
201+
detailContainer.addView(
202+
detailText(getString(R.string.disconnected_details))
203+
)
200204

201205
buttonContainer.visibility = View.VISIBLE
202206
buttonContainer.addView(primaryButton(R.string.scan_button, ::scanCode))
@@ -210,34 +214,32 @@ class MainActivity : AppCompatActivity(), CoroutineScope by MainScope() {
210214
}
211215
MainState.CONNECTING -> {
212216
statusText.setText(R.string.connecting_status)
213-
214-
detailText.visibility = View.GONE
215217
buttonContainer.visibility = View.GONE
216218
}
217219
MainState.CONNECTED -> {
218220
statusText.setText(R.string.connected_status)
219221

220-
detailText.visibility = View.VISIBLE
221-
detailText.text = getString(
222-
R.string.connected_details,
223-
currentProxyConfig!!.ip,
224-
currentProxyConfig!!.port
222+
detailContainer.addView(
223+
detailText(getString(
224+
R.string.connected_details,
225+
currentProxyConfig!!.ip,
226+
currentProxyConfig!!.port
227+
))
225228
)
226229

227230
buttonContainer.visibility = View.VISIBLE
228231
buttonContainer.addView(primaryButton(R.string.disconnect_button, ::disconnect))
229232
}
230233
MainState.DISCONNECTING -> {
231234
statusText.setText(R.string.disconnecting_status)
232-
233-
detailText.visibility = View.GONE
234235
buttonContainer.visibility = View.GONE
235236
}
236237
MainState.FAILED -> {
237238
statusText.setText(R.string.failed_status)
238239

239-
detailText.visibility = View.VISIBLE
240-
detailText.setText(R.string.failed_details)
240+
detailContainer.addView(
241+
detailText(getString(R.string.failed_details))
242+
)
241243

242244
buttonContainer.visibility = View.VISIBLE
243245
buttonContainer.addView(primaryButton(R.string.try_again_button, ::resetAfterFailure))
@@ -263,6 +265,12 @@ class MainActivity : AppCompatActivity(), CoroutineScope by MainScope() {
263265
return button
264266
}
265267

268+
private fun detailText(content: String): TextView {
269+
val text = TextView(ContextThemeWrapper(this, R.style.DetailText))
270+
text.text = content
271+
return text
272+
}
273+
266274
private fun scanCode() {
267275
app.trackEvent("Button", "scan-code")
268276
startActivityForResult(Intent(this, ScanActivity::class.java), SCAN_REQUEST)

app/src/main/res/layout-land/main_layout.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,13 @@
4040
android:layout_marginEnd="8dp"
4141
android:layout_marginBottom="8dp"
4242
android:text="Not Connected"
43-
app:layout_constraintBottom_toTopOf="@+id/detailText"
43+
app:layout_constraintBottom_toTopOf="@+id/statusDetailContainer"
4444
app:layout_constraintEnd_toEndOf="parent"
4545
app:layout_constraintStart_toStartOf="parent"
4646
app:layout_constraintTop_toBottomOf="@+id/logoImage" />
4747

48-
<TextView
49-
android:id="@+id/detailText"
50-
style="@style/DetailText"
48+
<LinearLayout
49+
android:id="@+id/statusDetailContainer"
5150
android:layout_width="wrap_content"
5251
android:layout_height="wrap_content"
5352
android:layout_marginStart="32dp"
@@ -56,7 +55,8 @@
5655
app:layout_constrainedWidth="true"
5756
app:layout_constraintEnd_toEndOf="parent"
5857
app:layout_constraintStart_toStartOf="parent"
59-
app:layout_constraintTop_toBottomOf="@+id/statusText" />
58+
app:layout_constraintTop_toBottomOf="@+id/statusText"
59+
android:orientation="vertical" />
6060

6161
</androidx.constraintlayout.widget.ConstraintLayout>
6262

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
app:layout_constraintStart_toStartOf="parent"
2626
app:srcCompat="@drawable/ic_transparent_icon" />
2727

28-
2928
<androidx.constraintlayout.widget.Guideline
3029
android:id="@+id/statusGuideline"
3130
android:layout_width="wrap_content"
@@ -47,9 +46,8 @@
4746
app:layout_constraintEnd_toEndOf="parent"
4847
app:layout_constraintStart_toStartOf="parent" />
4948

50-
<TextView
51-
android:id="@+id/detailText"
52-
style="@style/DetailText"
49+
<LinearLayout
50+
android:id="@+id/statusDetailContainer"
5351
android:layout_width="wrap_content"
5452
android:layout_height="wrap_content"
5553
android:layout_marginStart="32dp"
@@ -59,7 +57,7 @@
5957
app:layout_constraintEnd_toEndOf="parent"
6058
app:layout_constraintStart_toStartOf="parent"
6159
app:layout_constraintTop_toBottomOf="@+id/statusText"
62-
/>
60+
android:orientation="vertical" />
6361

6462
<com.google.android.material.card.MaterialCardView
6563
android:layout_height="wrap_content"

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@
1919
to %s:%d
2020
</string>
2121
<string name="failed_details">
22-
We couldn\'t connect to HTTP Toolkit.
23-
\n\n
24-
Is it running, and connected to the same network as this device?
22+
We couldn\'t connect to HTTP Toolkit.\n\nIs it running, and connected to the same network as this device?
2523
</string>
2624

2725
<string name="scan_button">Scan Code</string>

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

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<item name="android:textColor">@color/textColor</item>
55
<item name="android:windowBackground">@color/containerBackground</item>
66

7-
<item name="fontFamily">@font/lato</item>
7+
<item name="android:fontFamily">@font/lato</item>
88
<item name="android:textStyle">normal</item>
99
<item name="android:textAllCaps">false</item>
1010
<item name="android:letterSpacing">0</item>
@@ -14,55 +14,55 @@
1414
</style>
1515

1616
<style name="StatusText" parent="@android:style/Widget.TextView">
17-
<item name="android:textSize">40dp</item>
18-
<item name="fontFamily">@font/lato_bold</item>
17+
<item name="android:textSize">40sp</item>
18+
<item name="android:fontFamily">@font/lato_bold</item>
1919
</style>
2020

2121
<style name="DetailText" parent="@android:style/Widget.TextView">
22-
<item name="android:textSize">20dp</item>
22+
<item name="android:textSize">20sp</item>
2323
<item name="android:gravity">center</item>
2424
</style>
2525

2626
<style name="BaseButtonsCard" parent="@style/Widget.MaterialComponents.CardView">
27-
<item name="android:textSize">20dp</item>
27+
<item name="android:textSize">20sp</item>
2828
<item name="cardBackgroundColor">@color/mainBackground</item>
29-
<item name="cardElevation">4dp</item>
29+
<item name="cardElevation">4sp</item>
3030
</style>
3131

3232
<style name="PortraitButtonsCard" parent="@style/BaseButtonsCard">
3333
<item name="shapeAppearance">@style/PortraitButtonsCardCorners</item>
3434
</style>
3535

3636
<style name="LandscapeButtonsCard" parent="@style/BaseButtonsCard">
37-
<item name="cardCornerRadius">5dp</item>
37+
<item name="cardCornerRadius">5sp</item>
3838
</style>
3939

4040
<style name="PortraitButtonsCardCorners">
4141
<item name="cornerFamily">rounded</item>
42-
<item name="cornerSizeTopRight">5dp</item>
43-
<item name="cornerSizeTopLeft">5dp</item>
44-
<item name="cornerSizeBottomLeft">0dp</item>
45-
<item name="cornerSizeBottomRight">0dp</item>
42+
<item name="cornerSizeTopRight">5sp</item>
43+
<item name="cornerSizeTopLeft">5sp</item>
44+
<item name="cornerSizeBottomLeft">0sp</item>
45+
<item name="cornerSizeBottomRight">0sp</item>"
4646
</style>
4747

4848
<style name="PrimaryButton" parent="@style/Widget.MaterialComponents.Button">
49-
<item name="android:radius">10dp</item>
49+
<item name="android:radius">10sp</item>
5050
<item name="android:textColor">@color/primaryInputColor</item>
51-
<item name="fontFamily">@font/lato_bold</item>
51+
<item name="android:fontFamily">@font/lato_bold</item>
5252

53-
<item name="android:paddingTop">10dp</item>
54-
<item name="android:paddingBottom">10dp</item>
55-
<item name="android:textSize">20dp</item>
53+
<item name="android:paddingTop">10sp</item>
54+
<item name="android:paddingBottom">10sp</item>
55+
<item name="android:textSize">20sp</item>
5656
<item name="android:textAllCaps">false</item>
5757
<item name="android:letterSpacing">0</item>
5858
</style>
5959

6060
<style name="SecondaryButton" parent="@style/Widget.MaterialComponents.Button.OutlinedButton">
6161
<item name="android:textColor">@color/textColor</item>
6262

63-
<item name="android:paddingTop">10dp</item>
64-
<item name="android:paddingBottom">10dp</item>
65-
<item name="android:textSize">20dp</item>
63+
<item name="android:paddingTop">10sp</item>
64+
<item name="android:paddingBottom">10sp</item>
65+
<item name="android:textSize">20sp</item>
6666
<item name="android:textAllCaps">false</item>
6767
<item name="android:letterSpacing">0</item>
6868
</style>

0 commit comments

Comments
 (0)