almeira-web/dripzone-app/android/app/src/main/res/layout/activity_main.xml

526 lines
21 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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rootCoordinator"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_dark">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/bg_dark"
app:elevation="0dp">
<!-- Top Urgency Web Banner (Purple-Fuchsia-Pink Gradient) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_banner_gradient"
android:gravity="center"
android:orientation="horizontal"
android:paddingHorizontal="12dp"
android:paddingVertical="6dp">
<ImageView
android:layout_width="14dp"
android:layout_height="14dp"
android:src="@drawable/ic_sparkle"
app:tint="#FFFFFF" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:fontFamily="sans-serif-black"
android:letterSpacing="0.04"
android:text="🔥 ENVÍOS CONTRAENTREGA EN TODO COLOMBIA"
android:textColor="#FFFFFF"
android:textSize="10sp"
android:textStyle="bold" />
</LinearLayout>
<!-- Main Header Bar -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="16dp"
android:paddingTop="10dp"
android:paddingBottom="6dp">
<!-- DripZone Logo (DRIP in White, ZONE in Fuchsia) -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-black"
android:letterSpacing="0.08"
android:text="DRIP"
android:textColor="@color/text_primary"
android:textSize="22sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-black"
android:letterSpacing="0.08"
android:text="ZONE"
android:textColor="@color/drip_fuchsia"
android:textSize="22sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-medium"
android:letterSpacing="0.05"
android:text="ROPA URBANA Y ZAPATILLAS"
android:textColor="@color/badge_drip_text"
android:textSize="10sp"
android:textStyle="bold" />
</LinearLayout>
<!-- Search Toggle -->
<ImageButton
android:id="@+id/btnToggleSearch"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Buscar"
android:src="@drawable/ic_search"
app:tint="@color/text_secondary" />
<!-- Header Cart Icon with Dynamic Badge -->
<FrameLayout
android:id="@+id/btnHeaderCart"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="4dp"
android:clickable="true"
android:focusable="true">
<ImageView
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_gravity="center"
android:src="@drawable/ic_shopping_bag"
app:tint="@color/text_primary" />
<TextView
android:id="@+id/tvHeaderCartBadge"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_gravity="top|end"
android:layout_marginTop="4dp"
android:layout_marginEnd="4dp"
android:background="@drawable/bg_badge_counter"
android:gravity="center"
android:text="0"
android:textColor="#FFFFFF"
android:textSize="9sp"
android:textStyle="bold"
android:visibility="gone" />
</FrameLayout>
<!-- Header My Account Button -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btnHeaderAccount"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:layout_marginStart="6dp"
android:filterTouchesWhenObscured="true"
android:insetTop="0dp"
android:insetBottom="0dp"
android:paddingHorizontal="10dp"
android:text="Mi Cuenta"
android:textAllCaps="false"
android:textColor="#FFFFFF"
android:textSize="11sp"
android:textStyle="bold"
app:backgroundTint="@color/drip_purple"
app:cornerRadius="10dp"
app:icon="@drawable/ic_user"
app:iconGravity="textStart"
app:iconPadding="4dp"
app:iconSize="14dp" />
</LinearLayout>
<!-- City Selector Pill Bar (Matching Web Location Selector) -->
<LinearLayout
android:id="@+id/btnChangeCityBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="2dp"
android:layout_marginBottom="6dp"
android:background="@drawable/bg_btn_secondary"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="12dp"
android:paddingVertical="7dp">
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@drawable/ic_pin" />
<TextView
android:id="@+id/tvHeaderCityInfo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:ellipsize="end"
android:fontFamily="sans-serif-medium"
android:maxLines="1"
android:text="Enviando a Cali • Mismo día / 24h • 1er Cambio Gratis"
android:textColor="@color/text_primary"
android:textSize="11sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-bold"
android:text="Cambiar"
android:textColor="@color/drip_purple_glow"
android:textSize="11sp" />
</LinearLayout>
<!-- Search Input Bar -->
<LinearLayout
android:id="@+id/layoutSearchBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="2dp"
android:layout_marginBottom="6dp"
android:background="@drawable/bg_search_input"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="12dp"
android:visibility="gone">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/ic_search"
app:tint="@color/drip_purple_light" />
<EditText
android:id="@+id/etSearch"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:background="@null"
android:hint="Buscar zapatillas, chanclas, bolsos..."
android:imeOptions="actionSearch"
android:inputType="text"
android:maxLines="1"
android:textColor="@color/text_primary"
android:textColorHint="@color/text_muted"
android:textSize="13sp" />
<ImageButton
android:id="@+id/btnClearSearch"
android:layout_width="32dp"
android:layout_height="32dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Limpiar"
android:src="@drawable/ic_close"
android:visibility="gone" />
</LinearLayout>
<!-- Categories Horizontal Filter -->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvCategories"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:clipToPadding="false"
android:orientation="horizontal"
android:paddingHorizontal="16dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_category_chip" />
</com.google.android.material.appbar.AppBarLayout>
<!-- Swipe Refresh Layout containing Products Grid -->
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Products RecyclerView (2-column Grid) -->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvProducts"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingHorizontal="10dp"
android:paddingTop="6dp"
android:paddingBottom="72dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="2"
tools:listitem="@layout/item_product" />
<!-- Empty / No Results View -->
<LinearLayout
android:id="@+id/layoutEmpty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
android:padding="32dp"
android:visibility="gone">
<ImageView
android:layout_width="64dp"
android:layout_height="64dp"
android:src="@drawable/ic_search"
app:tint="@color/drip_fuchsia" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:fontFamily="sans-serif-bold"
android:text="No se encontraron productos"
android:textColor="@color/text_primary"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:gravity="center"
android:text="Prueba con otra búsqueda o solicita tu encargo personalizado"
android:textColor="@color/text_secondary"
android:textSize="13sp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnResetFilters"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:filterTouchesWhenObscured="true"
android:text="Ver todos los productos"
android:textAllCaps="false"
app:backgroundTint="@color/drip_fuchsia"
app:cornerRadius="12dp" />
</LinearLayout>
<!-- Loading Indicator -->
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:indeterminateTint="@color/drip_fuchsia"
android:visibility="gone" />
</FrameLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<!-- Mobile Bottom Navigation Dock (Matching Web MobileBottomDock) -->
<LinearLayout
android:id="@+id/bottomDock"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_gravity="bottom"
android:background="#FA0A0A0A"
android:elevation="12dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="8dp">
<!-- 1. Inicio (Catálogo) -->
<LinearLayout
android:id="@+id/navBtnHome"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/ivNavHome"
android:layout_width="22dp"
android:layout_height="22dp"
android:src="@drawable/ic_home"
app:tint="@color/drip_fuchsia" />
<TextView
android:id="@+id/tvNavHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:fontFamily="sans-serif-bold"
android:text="Inicio"
android:textColor="@color/drip_fuchsia"
android:textSize="10sp" />
</LinearLayout>
<!-- 2. Buscar -->
<LinearLayout
android:id="@+id/navBtnSearch"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/ivNavSearch"
android:layout_width="22dp"
android:layout_height="22dp"
android:src="@drawable/ic_search"
app:tint="@color/text_secondary" />
<TextView
android:id="@+id/tvNavSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:fontFamily="sans-serif-medium"
android:text="Buscar"
android:textColor="@color/text_secondary"
android:textSize="10sp" />
</LinearLayout>
<!-- 3. Carrito con Contador Dinámico -->
<LinearLayout
android:id="@+id/navBtnCart"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:orientation="vertical">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/ivNavCart"
android:layout_width="22dp"
android:layout_height="22dp"
android:src="@drawable/ic_shopping_bag"
app:tint="@color/text_secondary" />
<TextView
android:id="@+id/tvBottomCartBadge"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_gravity="top|end"
android:layout_marginTop="-4dp"
android:layout_marginEnd="-6dp"
android:background="@drawable/bg_badge_counter"
android:gravity="center"
android:text="0"
android:textColor="#FFFFFF"
android:textSize="9sp"
android:textStyle="bold"
android:visibility="gone" />
</FrameLayout>
<TextView
android:id="@+id/tvNavCart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:fontFamily="sans-serif-medium"
android:text="Carrito"
android:textColor="@color/text_secondary"
android:textSize="10sp" />
</LinearLayout>
<!-- 4. Mis Pedidos (Rastreo y Detalle) -->
<LinearLayout
android:id="@+id/navBtnOrders"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/ivNavOrders"
android:layout_width="22dp"
android:layout_height="22dp"
android:src="@drawable/ic_package"
app:tint="@color/text_secondary" />
<TextView
android:id="@+id/tvNavOrders"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:fontFamily="sans-serif-medium"
android:text="Mis Pedidos"
android:textColor="@color/text_secondary"
android:textSize="10sp" />
</LinearLayout>
<!-- 5. WhatsApp Asesor -->
<LinearLayout
android:id="@+id/navBtnWhatsApp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="22dp"
android:layout_height="22dp"
android:src="@drawable/ic_whatsapp"
app:tint="@color/accent_whatsapp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:fontFamily="sans-serif-medium"
android:text="Asesor"
android:textColor="@color/text_secondary"
android:textSize="10sp" />
</LinearLayout>
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>