mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-14 18:26:11 -04:00
feat(popup): Move signal quality indicator to top-right corner
Always show signal quality when available instead of gating on debug mode. Position icon + percentage text in the top-right corner of the card, aligned with the title. Remove unused DebugSettings dependency.
This commit is contained in:
@@ -9,7 +9,6 @@ import androidx.core.view.isGone
|
||||
import androidx.core.view.isVisible
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import eu.darken.capod.R
|
||||
import eu.darken.capod.common.debug.DebugSettings
|
||||
import eu.darken.capod.databinding.PopupNotificationDualPodsBinding
|
||||
import eu.darken.capod.databinding.PopupNotificationSinglePodsBinding
|
||||
import eu.darken.capod.pods.core.DualPodDevice
|
||||
@@ -24,7 +23,6 @@ import javax.inject.Inject
|
||||
|
||||
class PopUpPodViewFactory @Inject constructor(
|
||||
@ApplicationContext private val appContext: Context,
|
||||
private val debugSettings: DebugSettings,
|
||||
) {
|
||||
|
||||
private val context = ContextThemeWrapper(appContext, R.style.AppTheme)
|
||||
@@ -41,7 +39,8 @@ class PopUpPodViewFactory @Inject constructor(
|
||||
PopupNotificationDualPodsBinding.inflate(layoutInflater, parent, false).apply {
|
||||
podLabel.text = device.getLabel(context)
|
||||
signal.text = device.getSignalQuality(context)
|
||||
signal.isGone = !debugSettings.isDebugModeEnabled.value
|
||||
signalIcon.isGone = signal.text.isNullOrBlank()
|
||||
signal.isGone = signal.text.isNullOrBlank()
|
||||
|
||||
// Left
|
||||
val leftPercent = device.batteryLeftPodPercent
|
||||
@@ -74,7 +73,8 @@ class PopUpPodViewFactory @Inject constructor(
|
||||
headphonesIcon.imageTintList = null
|
||||
headphonesLabel.text = device.getLabel(context)
|
||||
signal.text = device.getSignalQuality(context)
|
||||
signal.isGone = !debugSettings.isDebugModeEnabled.value
|
||||
signalIcon.isGone = signal.text.isNullOrBlank()
|
||||
signal.isGone = signal.text.isNullOrBlank()
|
||||
|
||||
val headsetPercent = device.batteryHeadsetPercent
|
||||
headphonesBatteryIcon.setImageResource(getBatteryDrawable(headsetPercent))
|
||||
|
||||
@@ -19,28 +19,26 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="AirPods Pro" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/signal"
|
||||
style="@style/TextAppearance.Material3.LabelMedium"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
app:layout_constraintEnd_toStartOf="@+id/signal_icon"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/pod_label"
|
||||
tools:text="29%" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/signal_icon"
|
||||
android:layout_width="14dp"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginStart="3dp"
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:src="@drawable/ic_baseline_signal_cellular_alt_24"
|
||||
app:layout_constraintBottom_toBottomOf="@id/signal"
|
||||
app:layout_constraintBottom_toBottomOf="@id/pod_label"
|
||||
app:layout_constraintEnd_toStartOf="@id/signal"
|
||||
app:layout_constraintTop_toTopOf="@id/pod_label" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/signal"
|
||||
style="@style/TextAppearance.Material3.LabelSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/pod_label"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/signal"
|
||||
app:layout_constraintTop_toTopOf="@id/signal" />
|
||||
app:layout_constraintTop_toTopOf="@id/pod_label"
|
||||
tools:text="29%" />
|
||||
|
||||
<!-- Pod columns container with LTR direction to prevent RTL mirroring physical L/R -->
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
@@ -51,7 +49,7 @@
|
||||
android:layoutDirection="ltr"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/signal">
|
||||
app:layout_constraintTop_toBottomOf="@id/pod_label">
|
||||
|
||||
<!-- LEFT POD column -->
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
||||
@@ -19,28 +19,26 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="AirPods Max" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/signal"
|
||||
style="@style/TextAppearance.Material3.LabelMedium"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
app:layout_constraintEnd_toStartOf="@+id/signal_icon"
|
||||
app:layout_constraintHorizontal_chainStyle="packed"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/headphones_label"
|
||||
tools:text="29%" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/signal_icon"
|
||||
android:layout_width="14dp"
|
||||
android:layout_height="14dp"
|
||||
android:layout_marginStart="3dp"
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:src="@drawable/ic_baseline_signal_cellular_alt_24"
|
||||
app:layout_constraintBottom_toBottomOf="@id/signal"
|
||||
app:layout_constraintBottom_toBottomOf="@id/headphones_label"
|
||||
app:layout_constraintEnd_toStartOf="@id/signal"
|
||||
app:layout_constraintTop_toTopOf="@id/headphones_label" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/signal"
|
||||
style="@style/TextAppearance.Material3.LabelSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/headphones_label"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/signal"
|
||||
app:layout_constraintTop_toTopOf="@id/signal" />
|
||||
app:layout_constraintTop_toTopOf="@id/headphones_label"
|
||||
tools:text="29%" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/headphones_icon"
|
||||
@@ -49,7 +47,7 @@
|
||||
android:src="@drawable/device_earbuds_generic_both"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/signal" />
|
||||
app:layout_constraintTop_toBottomOf="@id/headphones_label" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/headphones_container"
|
||||
|
||||
Reference in New Issue
Block a user