256 lines
13 KiB
XML
256 lines
13 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<androidx.coordinatorlayout.widget.CoordinatorLayout 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:background="@color/background_light">
|
|
|
|
<com.google.android.material.appbar.AppBarLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:background="@color/card_background"
|
|
app:elevation="0dp">
|
|
|
|
<RelativeLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="64dp"
|
|
android:paddingHorizontal="16dp">
|
|
|
|
<ImageButton
|
|
android:id="@+id/btnClose"
|
|
android:layout_width="48dp"
|
|
android:layout_height="48dp"
|
|
android:layout_centerVertical="true"
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
android:src="@drawable/ic_close"
|
|
app:tint="@color/text_primary" />
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_centerInParent="true"
|
|
android:text="Ofensiva"
|
|
android:textColor="@color/text_primary"
|
|
android:textSize="20sp"
|
|
android:textStyle="bold" />
|
|
</RelativeLayout>
|
|
|
|
<com.google.android.material.tabs.TabLayout
|
|
android:id="@+id/tabLayout"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
app:tabIndicatorColor="@color/primary_purple"
|
|
app:tabIndicatorHeight="3dp"
|
|
app:tabSelectedTextColor="@color/primary_purple"
|
|
app:tabTextColor="@color/text_secondary">
|
|
|
|
<com.google.android.material.tabs.TabItem
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="Pessoal" />
|
|
|
|
<com.google.android.material.tabs.TabItem
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="Amigos" />
|
|
</com.google.android.material.tabs.TabLayout>
|
|
</com.google.android.material.appbar.AppBarLayout>
|
|
|
|
<androidx.core.widget.NestedScrollView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="24dp">
|
|
|
|
<!-- Streak Main State -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:gravity="center"
|
|
android:orientation="vertical"
|
|
android:layout_marginBottom="32dp">
|
|
|
|
<ImageView
|
|
android:id="@+id/ivBigFlame"
|
|
android:layout_width="120dp"
|
|
android:layout_height="120dp"
|
|
android:src="@drawable/ic_flame"
|
|
android:layout_marginBottom="16dp" />
|
|
|
|
<TextView
|
|
android:id="@+id/tvStreakCount"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="7 dias de ofensiva!"
|
|
android:textColor="@color/text_primary"
|
|
android:textSize="28sp"
|
|
android:textStyle="bold" />
|
|
|
|
<TextView
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="Estás imparável! Continua assim."
|
|
android:textColor="@color/text_secondary"
|
|
android:textSize="16sp"
|
|
android:layout_marginTop="8dp" />
|
|
</LinearLayout>
|
|
|
|
<!-- Calendar Section -->
|
|
<androidx.cardview.widget.CardView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginBottom="24dp"
|
|
app:cardCornerRadius="@dimen/radius_duo"
|
|
app:cardElevation="2dp">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="20dp">
|
|
|
|
<RelativeLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginBottom="16dp">
|
|
|
|
<TextView
|
|
android:id="@+id/tvMonthName"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="abril de 2026"
|
|
android:textColor="@color/text_primary"
|
|
android:textSize="18sp"
|
|
android:textStyle="bold" />
|
|
|
|
<LinearLayout
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_alignParentEnd="true">
|
|
|
|
<ImageButton
|
|
android:id="@+id/btnPrevMonth"
|
|
android:layout_width="32dp"
|
|
android:layout_height="32dp"
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
android:src="@drawable/ic_back"
|
|
app:tint="@color/text_secondary" />
|
|
|
|
<ImageButton
|
|
android:id="@+id/btnNextMonth"
|
|
android:layout_width="32dp"
|
|
android:layout_height="32dp"
|
|
android:layout_marginStart="16dp"
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
android:rotation="180"
|
|
android:src="@drawable/ic_back"
|
|
app:tint="@color/text_secondary" />
|
|
</LinearLayout>
|
|
</RelativeLayout>
|
|
|
|
<!-- Days of Week Headers -->
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:layout_marginBottom="8dp">
|
|
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="S" android:textAlignment="center" android:textStyle="bold" android:textColor="@color/text_secondary" />
|
|
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="T" android:textAlignment="center" android:textStyle="bold" android:textColor="@color/text_secondary" />
|
|
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Q" android:textAlignment="center" android:textStyle="bold" android:textColor="@color/text_secondary" />
|
|
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Q" android:textAlignment="center" android:textStyle="bold" android:textColor="@color/text_secondary" />
|
|
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="S" android:textAlignment="center" android:textStyle="bold" android:textColor="@color/text_secondary" />
|
|
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="S" android:textAlignment="center" android:textStyle="bold" android:textColor="@color/text_secondary" />
|
|
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="D" android:textAlignment="center" android:textStyle="bold" android:textColor="@color/text_secondary" />
|
|
</LinearLayout>
|
|
|
|
<androidx.recyclerview.widget.RecyclerView
|
|
android:id="@+id/rvCalendar"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:nestedScrollingEnabled="false" />
|
|
</LinearLayout>
|
|
</androidx.cardview.widget.CardView>
|
|
|
|
<!-- Statistics Grid -->
|
|
<GridLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:columnCount="2">
|
|
|
|
<!-- Days of Practice Card -->
|
|
<androidx.cardview.widget.CardView
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_columnWeight="1"
|
|
android:layout_marginEnd="8dp"
|
|
android:layout_marginBottom="16dp"
|
|
app:cardCornerRadius="16dp"
|
|
app:cardElevation="2dp">
|
|
|
|
<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="Dias cumpridos"
|
|
android:textColor="@color/text_secondary"
|
|
android:textSize="12sp" />
|
|
<TextView
|
|
android:id="@+id/tvDaysOfPractice"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="0"
|
|
android:textColor="@color/text_primary"
|
|
android:textSize="20sp"
|
|
android:textStyle="bold"
|
|
android:layout_marginTop="4dp" />
|
|
</LinearLayout>
|
|
</androidx.cardview.widget.CardView>
|
|
|
|
<!-- Focus Sessions Card -->
|
|
<androidx.cardview.widget.CardView
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_columnWeight="1"
|
|
android:layout_marginStart="8dp"
|
|
android:layout_marginBottom="16dp"
|
|
app:cardCornerRadius="16dp"
|
|
app:cardElevation="2dp">
|
|
|
|
<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="Sessões de foco"
|
|
android:textColor="@color/text_secondary"
|
|
android:textSize="12sp" />
|
|
<TextView
|
|
android:id="@+id/tvFocusSessions"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="0"
|
|
android:textColor="@color/text_primary"
|
|
android:textSize="20sp"
|
|
android:textStyle="bold"
|
|
android:layout_marginTop="4dp" />
|
|
</LinearLayout>
|
|
</androidx.cardview.widget.CardView>
|
|
</GridLayout>
|
|
|
|
</LinearLayout>
|
|
</androidx.core.widget.NestedScrollView>
|
|
|
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|