Introduces a new attention row in the dashboard to display blocked funds and overdue financing. The row is conditionally visible based on the presence of blocked amounts or overdue totals. Updates the account display logic to show blocked amounts where applicable, ensuring users have a clear view of their financial status. Additionally, new string resources for "Blocked Funds" and "Overdue Financing" are added for localization.
401 lines
16 KiB
XML
401 lines
16 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<LinearLayout
|
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:orientation="vertical"
|
|
android:background="?attr/colorSurface">
|
|
|
|
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
|
android:id="@+id/swipeRefresh"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="0dp"
|
|
android:layout_weight="1">
|
|
|
|
<androidx.core.widget.NestedScrollView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="16dp">
|
|
|
|
<!-- Balance cards row -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal">
|
|
|
|
<com.google.android.material.card.MaterialCardView
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:layout_marginEnd="8dp"
|
|
app:cardElevation="1dp"
|
|
app:cardCornerRadius="12dp">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="16dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/balance_mvr"
|
|
android:textAppearance="?attr/textAppearanceLabelSmall"
|
|
android:textColor="?attr/colorOnSurfaceVariant" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvMvrBalance"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:text="MVR —"
|
|
android:textAppearance="?attr/textAppearanceTitleMedium" />
|
|
|
|
</LinearLayout>
|
|
|
|
</com.google.android.material.card.MaterialCardView>
|
|
|
|
<com.google.android.material.card.MaterialCardView
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:layout_marginStart="8dp"
|
|
app:cardElevation="1dp"
|
|
app:cardCornerRadius="12dp">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="16dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/balance_usd"
|
|
android:textAppearance="?attr/textAppearanceLabelSmall"
|
|
android:textColor="?attr/colorOnSurfaceVariant" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvUsdBalance"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:text="USD —"
|
|
android:textAppearance="?attr/textAppearanceTitleMedium" />
|
|
|
|
</LinearLayout>
|
|
|
|
</com.google.android.material.card.MaterialCardView>
|
|
|
|
</LinearLayout>
|
|
|
|
<!-- Available Credit row (hidden when no credit cards) -->
|
|
<LinearLayout
|
|
android:id="@+id/rowCreditCards"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:layout_marginTop="16dp"
|
|
android:visibility="gone">
|
|
|
|
<com.google.android.material.card.MaterialCardView
|
|
android:id="@+id/cardMvrCredit"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:layout_marginEnd="8dp"
|
|
app:cardElevation="1dp"
|
|
app:cardCornerRadius="12dp">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="16dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/balance_mvr_credit"
|
|
android:textAppearance="?attr/textAppearanceLabelSmall"
|
|
android:textColor="?attr/colorOnSurfaceVariant" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvMvrCredit"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:text="MVR —"
|
|
android:textAppearance="?attr/textAppearanceTitleMedium" />
|
|
|
|
</LinearLayout>
|
|
|
|
</com.google.android.material.card.MaterialCardView>
|
|
|
|
<com.google.android.material.card.MaterialCardView
|
|
android:id="@+id/cardUsdCredit"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:layout_marginStart="8dp"
|
|
app:cardElevation="1dp"
|
|
app:cardCornerRadius="12dp">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="16dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/balance_usd_credit"
|
|
android:textAppearance="?attr/textAppearanceLabelSmall"
|
|
android:textColor="?attr/colorOnSurfaceVariant" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvUsdCredit"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:text="USD —"
|
|
android:textAppearance="?attr/textAppearanceTitleMedium" />
|
|
|
|
</LinearLayout>
|
|
|
|
</com.google.android.material.card.MaterialCardView>
|
|
|
|
</LinearLayout>
|
|
|
|
<!-- Attention row: Blocked + Overdue (hidden when nothing applies) -->
|
|
<LinearLayout
|
|
android:id="@+id/rowAttention"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:layout_marginTop="16dp"
|
|
android:visibility="gone">
|
|
|
|
<com.google.android.material.card.MaterialCardView
|
|
android:id="@+id/cardBlocked"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:layout_marginEnd="8dp"
|
|
app:cardElevation="1dp"
|
|
app:cardCornerRadius="12dp"
|
|
app:cardBackgroundColor="?attr/colorErrorContainer"
|
|
android:visibility="gone">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="16dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/dashboard_blocked"
|
|
android:textAppearance="?attr/textAppearanceLabelSmall"
|
|
android:textColor="?attr/colorOnErrorContainer" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvBlockedTotal"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:text="MVR —"
|
|
android:textAppearance="?attr/textAppearanceTitleMedium"
|
|
android:textColor="?attr/colorOnErrorContainer" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvBlockedSecondary"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="2dp"
|
|
android:textAppearance="?attr/textAppearanceLabelSmall"
|
|
android:textColor="?attr/colorOnErrorContainer"
|
|
android:alpha="0.75"
|
|
android:visibility="gone" />
|
|
|
|
</LinearLayout>
|
|
|
|
</com.google.android.material.card.MaterialCardView>
|
|
|
|
<com.google.android.material.card.MaterialCardView
|
|
android:id="@+id/cardOverdue"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:layout_marginStart="8dp"
|
|
app:cardElevation="1dp"
|
|
app:cardCornerRadius="12dp"
|
|
app:cardBackgroundColor="?attr/colorErrorContainer"
|
|
android:clickable="true"
|
|
android:focusable="true"
|
|
android:visibility="gone">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="16dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/dashboard_overdue"
|
|
android:textAppearance="?attr/textAppearanceLabelSmall"
|
|
android:textColor="?attr/colorOnErrorContainer" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvOverdueTotal"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:text="MVR —"
|
|
android:textAppearance="?attr/textAppearanceTitleMedium"
|
|
android:textColor="?attr/colorOnErrorContainer" />
|
|
|
|
</LinearLayout>
|
|
|
|
</com.google.android.material.card.MaterialCardView>
|
|
|
|
</LinearLayout>
|
|
|
|
<!-- Pending Finances card -->
|
|
<com.google.android.material.card.MaterialCardView
|
|
android:id="@+id/cardPendingFinances"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="16dp"
|
|
app:cardElevation="1dp"
|
|
app:cardCornerRadius="12dp"
|
|
android:clickable="true"
|
|
android:focusable="true">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="16dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/dashboard_pending_finances"
|
|
android:textAppearance="?attr/textAppearanceLabelSmall"
|
|
android:textColor="?attr/colorOnSurfaceVariant" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvPendingFinances"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:text="MVR —"
|
|
android:textAppearance="?attr/textAppearanceTitleMedium" />
|
|
|
|
</LinearLayout>
|
|
|
|
</com.google.android.material.card.MaterialCardView>
|
|
|
|
<!-- BML foreign limits (populated dynamically) -->
|
|
<LinearLayout
|
|
android:id="@+id/containerForeignLimits"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical" />
|
|
|
|
<!-- Card carousel (hidden when no cards loaded) -->
|
|
<LinearLayout
|
|
android:id="@+id/sectionCards"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:layout_marginTop="16dp"
|
|
android:visibility="gone">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/nav_pay_with_card"
|
|
android:textAppearance="?attr/textAppearanceLabelMedium"
|
|
android:textColor="?attr/colorOnSurfaceVariant"
|
|
android:layout_marginBottom="8dp"/>
|
|
|
|
<androidx.recyclerview.widget.RecyclerView
|
|
android:id="@+id/rvCards"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:clipToPadding="false"
|
|
android:paddingEnd="4dp"/>
|
|
|
|
</LinearLayout>
|
|
|
|
</LinearLayout>
|
|
|
|
</androidx.core.widget.NestedScrollView>
|
|
|
|
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
|
|
|
<!-- Quick actions fixed at bottom -->
|
|
<LinearLayout
|
|
android:id="@+id/buttonBar"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:paddingHorizontal="16dp"
|
|
android:paddingTop="8dp"
|
|
android:paddingBottom="16dp">
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/dashboard_quick_actions"
|
|
android:textAppearance="?attr/textAppearanceLabelMedium"
|
|
android:textColor="?attr/colorOnSurfaceVariant"
|
|
android:layout_marginBottom="8dp" />
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal">
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
android:id="@+id/btnQuickAction1"
|
|
style="@style/Widget.Material3.Button.OutlinedButton"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:layout_marginEnd="8dp"
|
|
app:iconGravity="textStart"
|
|
app:iconSize="18dp"
|
|
app:iconPadding="8dp" />
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
android:id="@+id/btnQuickAction2"
|
|
style="@style/Widget.Material3.Button.OutlinedButton"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:layout_marginStart="8dp"
|
|
app:iconGravity="textStart"
|
|
app:iconSize="18dp"
|
|
app:iconPadding="8dp" />
|
|
|
|
</LinearLayout>
|
|
|
|
</LinearLayout>
|
|
|
|
</LinearLayout>
|