diff --git a/app/src/main/java/com/weatherxm/ui/claimdevice/selectstation/SelectStationTypeActivity.kt b/app/src/main/java/com/weatherxm/ui/claimdevice/selectstation/SelectStationTypeActivity.kt
index d91eb0b2f..f976c6101 100644
--- a/app/src/main/java/com/weatherxm/ui/claimdevice/selectstation/SelectStationTypeActivity.kt
+++ b/app/src/main/java/com/weatherxm/ui/claimdevice/selectstation/SelectStationTypeActivity.kt
@@ -4,6 +4,7 @@ import android.app.Activity
import android.os.Bundle
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.Image
+import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Arrangement.spacedBy
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -104,7 +105,7 @@ class SelectStationTypeActivity : BaseActivity() {
Column(
modifier = Modifier.padding(dimensionResource(R.dimen.padding_normal)),
horizontalAlignment = Alignment.CenterHorizontally,
- verticalArrangement = spacedBy(dimensionResource(R.dimen.margin_small))
+ verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.margin_small))
) {
Image(painter = painterResource(imageResId), contentDescription = null)
MediumText(text = name, fontWeight = FontWeight.Bold, colorRes = R.color.darkestBlue)
diff --git a/app/src/main/java/com/weatherxm/ui/components/RetryCardView.kt b/app/src/main/java/com/weatherxm/ui/components/RetryCardView.kt
new file mode 100644
index 000000000..ac44d9c41
--- /dev/null
+++ b/app/src/main/java/com/weatherxm/ui/components/RetryCardView.kt
@@ -0,0 +1,33 @@
+package com.weatherxm.ui.components
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.weatherxm.databinding.ViewRetryCardBinding
+
+class RetryCardView : ConstraintLayout {
+
+ private lateinit var binding: ViewRetryCardBinding
+
+ constructor(context: Context) : super(context) {
+ onCreate(context)
+ }
+
+ constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
+ onCreate(context)
+ }
+
+ constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
+ context, attrs, defStyleAttr
+ ) {
+ onCreate(context)
+ }
+
+ private fun onCreate(context: Context) {
+ binding = ViewRetryCardBinding.inflate(LayoutInflater.from(context), this)
+ }
+
+
+ fun listener(listener: () -> Unit) = binding.retryCard.setOnClickListener { listener.invoke() }
+}
diff --git a/app/src/main/java/com/weatherxm/ui/components/compose/Texts.kt b/app/src/main/java/com/weatherxm/ui/components/compose/Texts.kt
index 5fd11cd1a..49f196528 100644
--- a/app/src/main/java/com/weatherxm/ui/components/compose/Texts.kt
+++ b/app/src/main/java/com/weatherxm/ui/components/compose/Texts.kt
@@ -21,18 +21,3 @@ fun MediumText(
style = MaterialTheme.typography.bodyMedium
)
}
-
-@Suppress("FunctionNaming")
-@Composable
-fun LargeText(
- text: String,
- fontWeight: FontWeight = FontWeight.Normal,
- colorRes: Int = R.color.colorOnSurface
-) {
- Text(
- text = text,
- fontWeight = fontWeight,
- color = colorResource(colorRes),
- style = MaterialTheme.typography.bodyLarge
- )
-}
diff --git a/app/src/main/java/com/weatherxm/ui/devicesrewards/DeviceRewardsAdapter.kt b/app/src/main/java/com/weatherxm/ui/devicesrewards/DeviceRewardsAdapter.kt
index 6c4dc2660..479989771 100644
--- a/app/src/main/java/com/weatherxm/ui/devicesrewards/DeviceRewardsAdapter.kt
+++ b/app/src/main/java/com/weatherxm/ui/devicesrewards/DeviceRewardsAdapter.kt
@@ -182,14 +182,12 @@ class DeviceRewardsAdapter(
binding.detailsStatus.visible(false)
binding.detailsContainer.invisible()
binding.earnedBy.invisible()
- binding.retryCard.setContent {
- RetryCard {
- onFetchNewData.invoke(
- deviceId,
- absoluteAdapterPosition,
- binding.chartRangeSelector.checkedChipId()
- )
- }
+ binding.retryCard.listener {
+ onFetchNewData.invoke(
+ deviceId,
+ absoluteAdapterPosition,
+ binding.chartRangeSelector.checkedChipId()
+ )
}
binding.chartRangeSelector.enable()
binding.retryCard.visible(true)
diff --git a/app/src/main/java/com/weatherxm/ui/devicesrewards/DevicesRewardsActivity.kt b/app/src/main/java/com/weatherxm/ui/devicesrewards/DevicesRewardsActivity.kt
index 8d8f7749f..0988f3a9e 100644
--- a/app/src/main/java/com/weatherxm/ui/devicesrewards/DevicesRewardsActivity.kt
+++ b/app/src/main/java/com/weatherxm/ui/devicesrewards/DevicesRewardsActivity.kt
@@ -1,22 +1,6 @@
package com.weatherxm.ui.devicesrewards
import android.os.Bundle
-import androidx.compose.foundation.layout.Arrangement.spacedBy
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.padding
-import androidx.compose.material3.Card
-import androidx.compose.material3.CardDefaults
-import androidx.compose.material3.Icon
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.res.colorResource
-import androidx.compose.ui.res.dimensionResource
-import androidx.compose.ui.res.painterResource
-import androidx.compose.ui.res.stringResource
-import androidx.compose.ui.text.font.FontWeight
-import androidx.compose.ui.unit.dp
import com.weatherxm.R
import com.weatherxm.analytics.AnalyticsService
import com.weatherxm.databinding.ActivityDevicesRewardsBinding
@@ -28,7 +12,6 @@ import com.weatherxm.ui.common.invisible
import com.weatherxm.ui.common.parcelable
import com.weatherxm.ui.common.visible
import com.weatherxm.ui.components.BaseActivity
-import com.weatherxm.ui.components.compose.LargeText
import com.weatherxm.util.NumberUtils.formatTokens
import com.weatherxm.util.initTotalEarnedChart
import org.koin.androidx.viewmodel.ext.android.viewModel
@@ -136,49 +119,11 @@ class DevicesRewardsActivity : BaseActivity() {
binding.totalEarnedChart.invisible()
binding.totalEarned.invisible()
binding.totalEarnedStatus.visible(false)
- binding.retryCard.setContent {
- RetryCard {
- model.getDevicesRewardsByRangeTotals(
- binding.totalEarnedRangeSelector.checkedChipId()
- )
- }
- }
- binding.retryCard.visible(true)
- }
-}
-
-@Suppress("FunctionNaming")
-@Composable
-fun RetryCard(onClickListener: () -> Unit) {
- Card(
- colors = CardDefaults.cardColors(
- containerColor = colorResource(R.color.colorSurface)
- ),
- onClick = { onClickListener() },
- elevation = CardDefaults.cardElevation(0.dp)
- ) {
- Column(
- Modifier
- .padding(0.dp, dimensionResource(R.dimen.padding_normal_to_large))
- .fillMaxWidth(),
- verticalArrangement = spacedBy(dimensionResource(R.dimen.padding_small)),
- horizontalAlignment = Alignment.CenterHorizontally
- ) {
- Icon(
- modifier = Modifier.padding(
- 0.dp,
- 0.dp,
- 0.dp,
- dimensionResource(R.dimen.padding_small_to_normal)
- ),
- painter = painterResource(R.drawable.ic_retry),
- contentDescription = null
+ binding.retryCard.listener {
+ model.getDevicesRewardsByRangeTotals(
+ binding.totalEarnedRangeSelector.checkedChipId()
)
- LargeText(
- text = stringResource(R.string.error_generic_message),
- fontWeight = FontWeight.Bold
- )
- LargeText(text = stringResource(R.string.tap_to_retry))
}
+ binding.retryCard.visible(true)
}
}
diff --git a/app/src/main/res/layout/activity_devices_rewards.xml b/app/src/main/res/layout/activity_devices_rewards.xml
index cb142b2ad..3268ae1b5 100644
--- a/app/src/main/res/layout/activity_devices_rewards.xml
+++ b/app/src/main/res/layout/activity_devices_rewards.xml
@@ -160,7 +160,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/totalEarnedRangeSelector" />
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+