Fixed layouts and added icons for better app coherency

This commit is contained in:
Pau 2025-05-29 03:35:08 +02:00
parent 70db37a48e
commit 417debd21b
11 changed files with 957 additions and 516 deletions

View File

@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM12,6c1.93,0 3.5,1.57 3.5,3.5S13.93,13 12,13s-3.5,-1.57 -3.5,-3.5S10.07,6 12,6zM12,20c-2.03,0 -4.43,-0.82 -6.14,-2.88C7.55,15.8 9.68,15 12,15s4.45,0.8 6.14,2.12C16.43,19.18 14.03,20 12,20z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M4.25,5.61C6.27,8.2 10,13 10,13v6c0,0.55 0.45,1 1,1h2c0.55,0 1,-0.45 1,-1v-6c0,0 3.72,-4.8 5.74,-7.39C20.25,4.95 19.78,4 18.95,4H5.04C4.21,4 3.74,4.95 4.25,5.61z"/>
</vector>

View File

@ -4,27 +4,28 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:fillViewport="true"> android:fillViewport="true"
android:clipToPadding="false">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp"> android:padding="24dp">
<!-- Place Info Card --> <!-- Place Info Card -->
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginBottom="16dp"
app:cardCornerRadius="12dp" app:cardCornerRadius="16dp"
app:cardElevation="4dp"> app:cardElevation="4dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp"> android:padding="24dp">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -32,24 +33,25 @@
android:text="@string/place_info" android:text="@string/place_info"
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/primaryColor_dark" /> android:textColor="?attr/colorPrimary"
android:layout_marginBottom="12dp" />
<TextView <TextView
android:id="@+id/tvPlaceName" android:id="@+id/tvPlaceName"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="?attr/colorOnSurface"
android:layout_marginBottom="4dp"
tools:text="Biblioteca Central" /> tools:text="Biblioteca Central" />
<TextView <TextView
android:id="@+id/tvPlaceAddress" android:id="@+id/tvPlaceAddress"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textSize="14sp" android:textSize="14sp"
android:textColor="@android:color/darker_gray" android:textColor="?attr/colorOnSurfaceVariant"
tools:text="Calle Principal 123, Ciudad" /> tools:text="Calle Principal 123, Ciudad" />
</LinearLayout> </LinearLayout>
@ -60,15 +62,15 @@
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginBottom="16dp"
app:cardCornerRadius="12dp" app:cardCornerRadius="16dp"
app:cardElevation="4dp"> app:cardElevation="4dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp"> android:padding="24dp">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -76,14 +78,14 @@
android:text="@string/select_accessibility_features" android:text="@string/select_accessibility_features"
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/primaryColor_dark" /> android:textColor="?attr/colorPrimary"
android:layout_marginBottom="12dp" />
<!-- Report Types RecyclerView --> <!-- Report Types RecyclerView -->
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvReportTypes" android:id="@+id/rvReportTypes"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:nestedScrollingEnabled="false" android:nestedScrollingEnabled="false"
tools:itemCount="3" tools:itemCount="3"
tools:listitem="@layout/item_report_type_selector" /> tools:listitem="@layout/item_report_type_selector" />
@ -96,22 +98,22 @@
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginBottom="16dp"
app:cardCornerRadius="12dp" app:cardCornerRadius="16dp"
app:cardElevation="4dp"> app:cardElevation="4dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp"> android:padding="24dp">
<!-- Rating Header --> <!-- Rating Header -->
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/rating" android:text="@string/rating"
android:textSize="16sp" android:textSize="18sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="?attr/colorPrimary" android:textColor="?attr/colorPrimary"
android:layout_marginBottom="8dp"/> android:layout_marginBottom="8dp"/>
@ -121,8 +123,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/rate_accessibility_experience" android:text="@string/rate_accessibility_experience"
android:textSize="14sp" android:textSize="14sp"
android:textColor="?attr/colorOnBackground" android:textColor="?attr/colorOnSurfaceVariant"
android:layout_marginBottom="16dp"/> android:layout_marginBottom="20dp"/>
<!-- Rating Thumbs --> <!-- Rating Thumbs -->
<LinearLayout <LinearLayout
@ -139,73 +141,103 @@
android:orientation="vertical" android:orientation="vertical"
android:gravity="center"> android:gravity="center">
<ImageView <com.google.android.material.card.MaterialCardView
android:id="@+id/ivThumbsDown" android:layout_width="72dp"
android:layout_width="60dp" android:layout_height="72dp"
android:layout_height="60dp" app:cardCornerRadius="36dp"
android:layout_margin="8dp" app:cardElevation="2dp"
android:src="@drawable/ic_thumbs_down" android:layout_marginBottom="8dp">
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="12dp"
android:contentDescription="@string/BAD" />
<TextView <ImageView
android:layout_width="wrap_content" android:id="@+id/ivThumbsUp"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:text="@string/BAD" android:layout_height="match_parent"
android:textSize="12sp" app:tint="?attr/colorOnSurfaceVariant"
android:textColor="?attr/colorOnSurfaceVariant"/> android:src="@drawable/ic_thumb_up_border"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="16dp"
android:contentDescription="@string/GOOD" />
</LinearLayout> </com.google.android.material.card.MaterialCardView>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:id="@+id/ivThumbsAverage"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="8dp"
android:src="@drawable/ic_thumb_up_average"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="12dp"
android:contentDescription="@string/AVERAGE" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/AVERAGE"
android:textSize="12sp"
android:textColor="?attr/colorOnSurfaceVariant"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center">
<ImageView
android:id="@+id/ivThumbsUp"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="8dp"
android:src="@drawable/ic_thumbs_up"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="12dp"
android:contentDescription="@string/GOOD" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/GOOD" android:text="@string/GOOD"
android:textSize="12sp" android:textSize="12sp"
android:textStyle="bold"
android:textColor="?attr/colorOnSurfaceVariant"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center">
<com.google.android.material.card.MaterialCardView
android:layout_width="72dp"
android:layout_height="72dp"
app:cardCornerRadius="36dp"
app:cardElevation="2dp"
android:layout_marginBottom="8dp">
<ImageView
android:id="@+id/ivThumbsAverage"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:tint="?attr/colorOnSurfaceVariant"
android:src="@drawable/ic_thumb_up_average"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="16dp"
android:contentDescription="@string/AVERAGE" />
</com.google.android.material.card.MaterialCardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/AVERAGE"
android:textSize="12sp"
android:textStyle="bold"
android:textColor="?attr/colorOnSurfaceVariant"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center">
<com.google.android.material.card.MaterialCardView
android:layout_width="72dp"
android:layout_height="72dp"
app:cardCornerRadius="36dp"
app:cardElevation="2dp"
android:layout_marginBottom="8dp">
<ImageView
android:id="@+id/ivThumbsDown"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:tint="?attr/colorOnSurfaceVariant"
android:src="@drawable/ic_thumb_down_border"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="16dp"
android:contentDescription="@string/BAD" />
</com.google.android.material.card.MaterialCardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/BAD"
android:textSize="12sp"
android:textStyle="bold"
android:textColor="?attr/colorOnSurfaceVariant"/> android:textColor="?attr/colorOnSurfaceVariant"/>
</LinearLayout> </LinearLayout>
@ -220,15 +252,15 @@
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginBottom="16dp"
app:cardCornerRadius="12dp" app:cardCornerRadius="16dp"
app:cardElevation="4dp"> app:cardElevation="4dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp"> android:padding="24dp">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -236,15 +268,20 @@
android:text="@string/description" android:text="@string/description"
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/primaryColor_dark" /> android:textColor="?attr/colorPrimary"
android:layout_marginBottom="12dp" />
<com.google.android.material.textfield.TextInputLayout <com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:hint="@string/describe_accessibility" android:hint="@string/describe_accessibility"
app:boxStrokeColor="@color/primaryColor_dark" app:boxStrokeColor="?attr/colorPrimary"
app:hintTextColor="@color/primaryColor_dark"> app:hintTextColor="?attr/colorPrimary"
app:boxCornerRadiusTopStart="12dp"
app:boxCornerRadiusTopEnd="12dp"
app:boxCornerRadiusBottomStart="12dp"
app:boxCornerRadiusBottomEnd="12dp">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/etDescription" android:id="@+id/etDescription"
@ -253,26 +290,28 @@
android:minLines="3" android:minLines="3"
android:maxLines="5" android:maxLines="5"
android:gravity="top" android:gravity="top"
android:inputType="textMultiLine|textCapSentences" /> android:inputType="textMultiLine|textCapSentences"
android:padding="16dp" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<!-- Photo Upload Card --> <!-- Photo Upload Card -->
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginBottom="24dp"
app:cardCornerRadius="12dp" app:cardCornerRadius="16dp"
app:cardElevation="4dp"> app:cardElevation="4dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp"> android:padding="24dp">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -280,26 +319,38 @@
android:text="@string/add_photo" android:text="@string/add_photo"
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/primaryColor_dark" /> android:textColor="?attr/colorPrimary"
android:layout_marginBottom="8dp" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="@string/photo_helps_others" android:text="@string/photo_helps_others"
android:textSize="14sp" android:textSize="14sp"
android:textColor="@android:color/darker_gray" /> android:textColor="?attr/colorOnSurfaceVariant"
android:layout_marginBottom="16dp" />
<ImageView <com.google.android.material.card.MaterialCardView
android:id="@+id/ivReportPhoto" android:layout_width="140dp"
android:layout_width="120dp" android:layout_height="140dp"
android:layout_height="120dp"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="12dp" app:cardCornerRadius="12dp"
android:src="@drawable/ic_add_light" app:cardElevation="2dp"
android:background="?attr/selectableItemBackgroundBorderless" app:strokeColor="?attr/colorOutline"
android:scaleType="centerCrop" app:strokeWidth="2dp">
android:contentDescription="@string/add_photo" />
<ImageView
android:id="@+id/ivReportPhoto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_add_light"
android:background="?attr/selectableItemBackground"
android:scaleType="centerCrop"
android:padding="32dp"
app:tint="?attr/colorOnSurfaceVariant"
android:contentDescription="@string/add_photo" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout> </LinearLayout>
@ -310,14 +361,14 @@
android:id="@+id/btnSubmitReport" android:id="@+id/btnSubmitReport"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:text="@string/submit_report" android:text="@string/submit_report"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:backgroundTint="@color/primaryColor_dark" android:paddingTop="16dp"
android:paddingBottom="16dp"
app:cornerRadius="12dp" app:cornerRadius="12dp"
android:padding="16dp" /> app:elevation="2dp" />
</LinearLayout> </LinearLayout>

View File

@ -32,7 +32,7 @@
android:layout_height="120dp" android:layout_height="120dp"
android:layout_marginBottom="24dp" android:layout_marginBottom="24dp"
android:src="@drawable/logo_add_location" android:src="@drawable/logo_add_location"
android:contentDescription="App Logo" /> android:contentDescription="@string/app_logo" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
@ -44,17 +44,7 @@
android:textColor="?attr/colorPrimary" android:textColor="?attr/colorPrimary"
android:layout_marginBottom="8dp" /> android:layout_marginBottom="8dp" />
<TextView <!-- Login Form -->
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/sign_in_to_continue"
android:textAlignment="center"
android:textSize="16sp"
android:textColor="?attr/colorOnSurface"
android:alpha="0.7"
android:layout_marginBottom="32dp" />
<!-- Login Form Card -->
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -76,8 +66,9 @@
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
app:boxStrokeColor="?attr/colorPrimary" app:boxStrokeColor="?attr/colorPrimary"
app:hintTextColor="?attr/colorPrimary" app:hintTextColor="?attr/colorPrimary"
app:startIconDrawable="@drawable/ic_email" app:startIconDrawable="@drawable/ic_account"
app:startIconTint="?attr/colorPrimary"> app:startIconTint="?attr/colorPrimary"
app:startIconContentDescription="Username icon">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/etUsername" android:id="@+id/etUsername"
@ -87,7 +78,9 @@
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="textPersonName" android:inputType="textPersonName"
android:paddingTop="16dp" android:paddingTop="16dp"
android:paddingBottom="16dp" /> android:paddingBottom="16dp"
android:paddingStart="56dp"
android:paddingEnd="16dp" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<!-- Password Field --> <!-- Password Field -->
@ -101,7 +94,8 @@
app:passwordToggleEnabled="true" app:passwordToggleEnabled="true"
app:passwordToggleTint="?attr/colorPrimary" app:passwordToggleTint="?attr/colorPrimary"
app:startIconDrawable="@drawable/ic_lock" app:startIconDrawable="@drawable/ic_lock"
app:startIconTint="?attr/colorPrimary"> app:startIconTint="?attr/colorPrimary"
app:startIconContentDescription="Password icon">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/etPassword" android:id="@+id/etPassword"
@ -111,7 +105,9 @@
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="textPassword" android:inputType="textPassword"
android:paddingTop="16dp" android:paddingTop="16dp"
android:paddingBottom="16dp" /> android:paddingBottom="16dp"
android:paddingStart="56dp"
android:paddingEnd="48dp" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<!-- Forgot Password Link --> <!-- Forgot Password Link -->
@ -120,7 +116,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="end" android:layout_gravity="end"
android:text="Forgot Password?" android:text="@string/forgot_password"
android:textColor="?attr/colorPrimary" android:textColor="?attr/colorPrimary"
android:textSize="14sp" android:textSize="14sp"
android:layout_marginBottom="24dp" android:layout_marginBottom="24dp"

View File

@ -15,101 +15,168 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_below="@id/toolbar" android:layout_below="@id/toolbar"
android:layout_centerInParent="true"
android:fillViewport="true" android:fillViewport="true"
android:padding="@dimen/layout_padding"> android:clipToPadding="false"
android:padding="24dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center"
android:gravity="center" android:gravity="center"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout <!-- Logo and Welcome Section -->
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" <ImageView
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_marginBottom="24dp"
android:src="@drawable/logo_add_location"
android:contentDescription="@string/app_logo" />
<TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_padding" android:text="@string/create_account"
app:startIconDrawable="@drawable/ic_person"> android:textAlignment="center"
android:textSize="28sp"
android:textStyle="bold"
android:textColor="?attr/colorPrimary"
android:layout_marginBottom="8dp" />
<com.google.android.material.textfield.TextInputEditText <!-- Register Form Card -->
android:id="@+id/etName" <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="16dp"
app:cardElevation="4dp"
android:layout_marginBottom="24dp">
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/Enter_Username" android:orientation="vertical"
android:importantForAutofill="no" android:padding="24dp">
android:inputType="textPersonName" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout <!-- Name Field -->
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" <com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_marginTop="@dimen/layout_padding" android:layout_height="wrap_content"
app:startIconDrawable="@drawable/ic_email"> android:layout_marginBottom="16dp"
app:boxStrokeColor="?attr/colorPrimary"
app:hintTextColor="?attr/colorPrimary"
app:startIconDrawable="@drawable/ic_person"
app:startIconTint="?attr/colorPrimary"
app:startIconContentDescription="Name icon">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/etEmail" android:id="@+id/etName"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/Enter_Email" android:hint="@string/Enter_Username"
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="textEmailAddress" /> android:inputType="textPersonName"
</com.google.android.material.textfield.TextInputLayout> android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="56dp"
android:paddingEnd="16dp" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout <!-- Email Field -->
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" <com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_marginTop="@dimen/layout_padding" android:layout_height="wrap_content"
app:passwordToggleEnabled="true" android:layout_marginBottom="16dp"
app:startIconDrawable="@drawable/ic_lock"> app:boxStrokeColor="?attr/colorPrimary"
app:hintTextColor="?attr/colorPrimary"
app:startIconDrawable="@drawable/ic_email"
app:startIconTint="?attr/colorPrimary"
app:startIconContentDescription="Email icon">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/etPassword" android:id="@+id/etEmail"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/Enter_Password" android:hint="@string/Enter_Email"
android:importantForAutofill="no" android:importantForAutofill="no"
android:inputType="textPassword" /> android:inputType="textEmailAddress"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="56dp"
android:paddingEnd="16dp" />
</com.google.android.material.textfield.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout> <!-- Password Field -->
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
app:boxStrokeColor="?attr/colorPrimary"
app:hintTextColor="?attr/colorPrimary"
app:passwordToggleEnabled="true"
app:passwordToggleTint="?attr/colorPrimary"
app:startIconDrawable="@drawable/ic_lock"
app:startIconTint="?attr/colorPrimary"
app:startIconContentDescription="Password icon">
<androidx.appcompat.widget.AppCompatButton <com.google.android.material.textfield.TextInputEditText
android:id="@+id/btnRegister" android:id="@+id/etPassword"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_padding" android:hint="@string/Enter_Password"
android:background="?attr/colorPrimary" android:importantForAutofill="no"
android:backgroundTintMode="src_atop" android:inputType="textPassword"
android:text="@string/REGISTER" android:paddingTop="16dp"
android:textColor="?attr/colorOnPrimary" android:paddingBottom="16dp"
android:textSize="@dimen/textSizeInEditText" /> android:paddingStart="56dp"
android:paddingEnd="48dp" />
</com.google.android.material.textfield.TextInputLayout>
<!-- Register Button -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btnRegister"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="14dp"
android:paddingBottom="14dp"
android:text="@string/REGISTER"
android:textSize="16sp"
android:textStyle="bold"
app:cornerRadius="12dp"
app:elevation="2dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<!-- Login Link -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_horizontal"> android:orientation="horizontal"
android:gravity="center"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:padding="8dp">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_padding" android:text="@string/Already_have_an_Account"
android:text="@string/Already_have_an_Account" /> android:textSize="14sp" />
<TextView <TextView
android:id="@+id/tvLoginRedirect" android:id="@+id/tvLoginRedirect"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_padding" android:layout_marginStart="4dp"
android:text="@string/Please_login" android:text="@string/Please_login"
android:textColor="?attr/colorPrimary" android:textColor="?attr/colorPrimary"
android:textSize="14sp"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>
</RelativeLayout> </RelativeLayout>

View File

@ -4,155 +4,263 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@android:color/white"> android:clipToPadding="false">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="16dp"> android:padding="24dp">
<!-- Place Image --> <!-- Place Image Card -->
<ImageView <com.google.android.material.card.MaterialCardView
android:id="@+id/ivPlaceImage"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="200dp" android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
app:cardCornerRadius="16dp"
app:cardElevation="4dp">
<ImageView
android:id="@+id/ivPlaceImage"
android:layout_width="match_parent"
android:layout_height="200dp"
android:scaleType="centerCrop"
android:contentDescription="@string/place_image"
tools:src="@drawable/place_header" />
</com.google.android.material.card.MaterialCardView>
<!-- Place Info Card -->
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:scaleType="centerCrop" app:cardCornerRadius="16dp"
android:background="@drawable/rectangle" app:cardElevation="4dp">
android:contentDescription="@string/place_image"
tools:src="@drawable/place_header" />
<!-- Header section --> <LinearLayout
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvPlaceName"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentStart="true" android:orientation="vertical"
android:layout_toStartOf="@+id/ivExpand" android:padding="24dp">
android:textColor="@android:color/black"
android:textSize="20sp"
android:textStyle="bold"
tools:text="Place Name" />
<ImageView <!-- Header section -->
android:id="@+id/ivExpand" <RelativeLayout
android:layout_width="24dp" android:layout_width="match_parent"
android:layout_height="24dp" android:layout_height="wrap_content"
android:layout_alignParentEnd="true" android:layout_marginBottom="12dp">
android:layout_centerVertical="true"
android:src="@drawable/ic_expand_less"
android:contentDescription="@string/expand" />
</RelativeLayout>
<!-- Address and description --> <TextView
<TextView android:id="@+id/tvPlaceName"
android:id="@+id/tvAddress" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:layout_alignParentStart="true"
android:layout_marginTop="8dp" android:layout_toStartOf="@+id/ivExpand"
android:textSize="16sp" android:textColor="?attr/colorOnSurface"
tools:text="123 Main St, City, Country" /> android:textSize="20sp"
android:textStyle="bold"
tools:text="Place Name" />
<TextView <com.google.android.material.card.MaterialCardView
android:id="@+id/tvDescription" android:layout_width="40dp"
android:layout_width="match_parent" android:layout_height="40dp"
android:layout_height="wrap_content" android:layout_alignParentEnd="true"
android:layout_marginTop="16dp" android:layout_centerVertical="true"
android:textSize="14sp" app:cardCornerRadius="20dp"
tools:text="Description of the place" /> app:cardElevation="2dp"
app:cardBackgroundColor="?attr/colorSurface">
<!-- Action buttons --> <ImageView
<RelativeLayout android:id="@+id/ivExpand"
android:layout_width="match_parent" android:layout_width="24dp"
android:layout_height="wrap_content" android:layout_height="24dp"
android:layout_marginTop="16dp"> android:layout_gravity="center"
android:src="@drawable/ic_expand_less"
app:tint="?attr/colorOnSurfaceVariant"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/expand" />
<ImageView </com.google.android.material.card.MaterialCardView>
android:id="@+id/ivFavorite"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_alignParentStart="true"
android:padding="6dp"
android:src="@drawable/ic_favorite_border"
android:contentDescription="@string/Favorite" />
<ImageView </RelativeLayout>
android:id="@+id/ivEdit"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginStart="16dp"
android:layout_toEndOf="@id/ivFavorite"
android:padding="6dp"
android:src="@drawable/ic_edit"
android:contentDescription="@string/edit" />
<androidx.appcompat.widget.AppCompatButton <!-- Address and description -->
android:id="@+id/btnAddReport" <TextView
android:layout_width="wrap_content" android:id="@+id/tvAddress"
android:layout_height="36dp" android:layout_width="match_parent"
android:layout_alignParentEnd="true" android:layout_height="wrap_content"
android:background="@color/primaryColor_dark" android:layout_marginBottom="16dp"
android:textColor="@android:color/white" android:textSize="16sp"
android:text="@string/Add_Report" /> android:textColor="?attr/colorOnSurfaceVariant"
</RelativeLayout> tools:text="123 Main St, City, Country" />
<TextView
android:id="@+id/tvDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:textSize="14sp"
android:textColor="?attr/colorOnSurface"
android:lineSpacingExtra="2dp"
tools:text="Description of the place" />
<!-- Action buttons -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical">
<com.google.android.material.card.MaterialCardView
android:layout_width="48dp"
android:layout_height="48dp"
app:cardCornerRadius="24dp"
app:cardElevation="2dp"
app:cardBackgroundColor="?attr/colorSurface">
<ImageView
android:id="@+id/ivFavorite"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center"
android:src="@drawable/ic_favorite_border"
app:tint="?attr/colorOnSurfaceVariant"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/Favorite" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginStart="12dp"
app:cardCornerRadius="24dp"
app:cardElevation="2dp"
app:cardBackgroundColor="?attr/colorSurface">
<ImageView
android:id="@+id/ivEdit"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center"
android:src="@drawable/ic_edit"
app:tint="?attr/colorOnSurfaceVariant"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/edit" />
</com.google.android.material.card.MaterialCardView>
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnAddReport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Add_Report"
android:textSize="14sp"
android:textStyle="bold"
app:cornerRadius="12dp"
app:elevation="2dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:paddingTop="12dp"
android:paddingBottom="12dp" />
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<!-- Accessibility Overview Section --> <!-- Accessibility Overview Section -->
<View <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:background="#DDDDDD" /> app:cardCornerRadius="16dp"
app:cardElevation="4dp">
<TextView <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="18sp" android:orientation="vertical"
android:textStyle="bold" android:padding="24dp">
android:text="@string/accessibility_overview" />
<androidx.recyclerview.widget.RecyclerView <TextView
android:id="@+id/rvAccessibilityOverview" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:textSize="18sp"
android:layout_marginTop="8dp" android:textStyle="bold"
android:visibility="gone" android:textColor="?attr/colorPrimary"
tools:visibility="visible" /> android:text="@string/accessibility_overview"
android:layout_marginBottom="16dp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvAccessibilityOverview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
tools:visibility="visible" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<!-- Reports section --> <!-- Reports section -->
<View <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:background="#DDDDDD" /> app:cardCornerRadius="16dp"
app:cardElevation="4dp">
<TextView <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="18sp" android:orientation="vertical"
android:textStyle="bold" android:padding="24dp">
android:text="@string/recent_reports" />
<TextView <TextView
android:id="@+id/tvNoData" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:textSize="18sp"
android:layout_marginTop="16dp" android:textStyle="bold"
android:gravity="center" android:textColor="?attr/colorPrimary"
android:text="@string/no_reports_yet" android:text="@string/recent_reports"
android:visibility="gone" /> android:layout_marginBottom="16dp" />
<androidx.recyclerview.widget.RecyclerView <!-- Empty State -->
android:id="@+id/rvReports" <LinearLayout
android:layout_width="match_parent" android:id="@+id/tvNoData"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_marginTop="8dp" /> android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:padding="32dp"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/no_reports_yet"
android:textAlignment="center"
android:textSize="16sp"
android:textColor="?attr/colorOnSurfaceVariant" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvReports"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout> </LinearLayout>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>

View File

@ -1,27 +1,82 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout 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" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlFavorite" android:id="@+id/rlFavorite"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize"> android:layout_marginTop="?attr/actionBarSize">
<!-- RecyclerView with padding for better spacing -->
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvFavorite" android:id="@+id/rvFavorite"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:visibility="visible" android:visibility="visible"
tools:listitem="@layout/list_view_favorite" android:padding="16dp"
android:layout_marginBottom="@dimen/bottom_menu_height"/> android:clipToPadding="false"
android:layout_marginBottom="@dimen/bottom_menu_height"
tools:listitem="@layout/list_view_favorite" />
<TextView <!-- Enhanced Empty State -->
<LinearLayout
android:id="@+id/tvNoData" android:id="@+id/tvNoData"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="center" android:layout_gravity="center"
android:gravity="center" android:gravity="center"
android:text="@string/No_Favorite_found" android:orientation="vertical"
android:textAlignment="center" android:padding="32dp">
tools:ignore="HardcodedText" />
<!-- Empty state icon -->
<ImageView
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_marginBottom="24dp"
android:src="@drawable/ic_favorite_border"
android:alpha="0.6"
app:tint="?attr/colorOnSurfaceVariant"
android:contentDescription="@string/no_favorites" />
<!-- Main message -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/No_Favorite_found"
android:textAlignment="center"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="?attr/colorOnSurfaceVariant"
android:layout_marginBottom="8dp" />
<!-- Subtitle message -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/places_you_mark_as_favorites_will_appear_here"
android:textAlignment="center"
android:textSize="14sp"
android:textColor="?attr/colorOnSurfaceVariant"
android:alpha="0.8"
android:layout_marginBottom="24dp" />
<!-- Call to action button -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btnExplorePlaces"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/explore_places"
android:textSize="14sp"
android:textStyle="bold"
app:cornerRadius="12dp"
app:elevation="2dp"
app:icon="@drawable/ic_location"
app:iconSize="20dp"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:paddingTop="12dp"
android:paddingBottom="12dp" />
</LinearLayout>
</FrameLayout> </FrameLayout>

View File

@ -3,52 +3,98 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlMap" android:id="@+id/rlMap"
android:layout_marginTop="?attr/actionBarSize"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_marginBottom="@dimen/bottom_menu_height"
tools:context="com.example.acloc.fragments.MapFragment"> android:layout_height="match_parent">
<!-- Google Maps Fragment -->
<androidx.fragment.app.FragmentContainerView <androidx.fragment.app.FragmentContainerView
android:id="@+id/mapFrame" android:id="@+id/mapFrame"
android:name="com.google.android.gms.maps.SupportMapFragment" android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
<com.google.android.material.textfield.TextInputLayout <!-- Search Container Card -->
android:id="@+id/tilSearchLocation" <com.google.android.material.card.MaterialCardView
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" android:id="@+id/searchContainer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="16dp" android:layout_margin="16dp"
android:elevation="4dp" android:layout_marginTop="24dp"
app:endIconMode="custom" app:cardCornerRadius="16dp"
app:endIconDrawable="@android:drawable/ic_menu_search" app:cardElevation="8dp"
app:boxCornerRadiusBottomEnd="8dp" app:cardBackgroundColor="?attr/colorSurface">
app:boxCornerRadiusBottomStart="8dp"
app:boxCornerRadiusTopEnd="8dp"
app:boxCornerRadiusTopStart="8dp">
<com.google.android.material.textfield.TextInputEditText <LinearLayout
android:id="@+id/etSearchLocation"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/Search_Place" android:orientation="vertical">
android:imeOptions="actionSearch"
android:background="@color/primaryVariant_dark"
android:inputType="text"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout> <!-- Search Input - MANTIENE EL ID ORIGINAL -->
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilSearchLocation"
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
app:endIconMode="custom"
app:endIconDrawable="@android:drawable/ic_menu_search"
app:endIconTint="?attr/colorPrimary"
app:boxStrokeWidth="0dp"
app:boxStrokeWidthFocused="0dp"
app:boxCornerRadiusBottomEnd="12dp"
app:boxCornerRadiusBottomStart="12dp"
app:boxCornerRadiusTopEnd="12dp"
app:boxCornerRadiusTopStart="12dp"
app:hintTextColor="?attr/colorPrimary">
<!-- ListView for search suggestions --> <com.google.android.material.textfield.TextInputEditText
<ListView android:id="@+id/etSearchLocation"
android:id="@+id/lvSuggestions" android:layout_width="match_parent"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:hint="@string/Search_Place"
android:imeOptions="actionSearch"
android:inputType="text"
android:maxLines="1"
android:textSize="16sp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingTop="16dp"
android:paddingBottom="16dp" />
</com.google.android.material.textfield.TextInputLayout>
<!-- Search Suggestions -->
<ListView
android:id="@+id/lvSuggestions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:maxHeight="200dp"
android:divider="?attr/colorOutline"
android:dividerHeight="1dp"
android:visibility="gone" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<!-- Current Location FAB -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fabCurrentLocation"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/tilSearchLocation" android:layout_alignParentEnd="true"
android:layout_marginStart="16dp" android:layout_centerVertical="true"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:background="@color/primaryVariant_dark" android:src="@drawable/ic_location"
android:elevation="4dp" android:contentDescription="@string/get_current_location"
android:visibility="gone" /> app:fabSize="normal"
app:elevation="6dp"
app:backgroundTint="?attr/colorSurface"
app:tint="?attr/colorPrimary" />
</RelativeLayout> </RelativeLayout>

View File

@ -6,40 +6,48 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize" android:layout_marginTop="?attr/actionBarSize"
android:id="@+id/rlMyReport" android:id="@+id/rlMyReport"
tools:context=".fragment.MyReportsFragment" android:layout_marginBottom="@dimen/bottom_menu_height"
android:layout_marginBottom="@dimen/bottom_menu_height"> android:background="?attr/colorSurface">
<!-- Main Content -->
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvReport" android:id="@+id/rvReport"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:visibility="visible" android:visibility="visible"
android:padding="16dp"
android:clipToPadding="false"
tools:listitem="@layout/list_view_my_report" /> tools:listitem="@layout/list_view_my_report" />
<TextView <!-- Empty State -->
<LinearLayout
android:id="@+id/tvNoData" android:id="@+id/tvNoData"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="center" android:layout_gravity="center"
android:gravity="center" android:gravity="center"
android:text="@string/No_reports_found" android:orientation="vertical"
android:textAlignment="center" /> android:padding="32dp">
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton <TextView
android:id="@+id/extendedFbReport" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:text="@string/No_reports_found"
android:layout_gravity="bottom|end" android:textAlignment="center"
android:layout_marginStart="@dimen/layout_padding" android:textSize="18sp"
android:layout_marginTop="@dimen/layout_padding" android:textStyle="bold"
android:layout_marginEnd="@dimen/layout_padding" android:textColor="?attr/colorOnSurfaceVariant"
android:layout_marginBottom="@dimen/layout_padding" android:layout_marginBottom="8dp" />
android:text="@string/Add_Report"
android:textColor="?attr/colorOnPrimary"
app:icon="@drawable/ic_add"
android:backgroundTint="?attr/colorPrimary"
app:iconSize="@dimen/textSizeLarge"
app:iconTint="?attr/colorOnPrimary"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/start_by_adding_your_first_accessibility_report"
android:textAlignment="center"
android:textSize="14sp"
android:textColor="?attr/colorOnSurfaceVariant"
android:alpha="0.8" />
</LinearLayout>
</FrameLayout> </FrameLayout>

View File

@ -3,126 +3,147 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:layout_margin="8dp">
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:cardCornerRadius="12dp" app:cardCornerRadius="16dp"
app:cardElevation="4dp" app:cardElevation="4dp"
app:cardUseCompatPadding="true" app:cardUseCompatPadding="false"
app:strokeColor="?attr/colorPrimary"
app:strokeWidth="2dp"
tools:ignore="MissingConstraints"> tools:ignore="MissingConstraints">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/content_padding" android:orientation="vertical"
android:orientation="vertical"> android:padding="20dp">
<!-- Header with place name and favorite icon -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:baselineAligned="false" android:baselineAligned="false"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:orientation="horizontal"
android:weightSum="2"> android:layout_marginBottom="16dp">
<!--Place name-->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/small_padding"
android:text="@string/Place_Name"
android:textColor="?attr/colorPrimary"
android:textSize="@dimen/textSizeMedium"
android:textStyle="bold"
app:startIconDrawable="@drawable/ic_location" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tvPlaceName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:focusable="false"
android:hint="@string/Place_Name"
android:importantForAutofill="no"
android:inputType="textMultiLine"
android:maxLines="5"
android:text="@string/Place_Name"
android:textColor="@color/neutralGrey"
android:textSize="@dimen/textSizeInEditText"
tools:ignore="HardcodedText" />
</LinearLayout>
<!-- Place name section -->
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.5" android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginBottom="8dp">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginEnd="8dp"
android:src="@drawable/ic_location"
app:tint="?attr/colorPrimary"
android:contentDescription="Location icon" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Place_Name"
android:textColor="?attr/colorPrimary"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/tvPlaceName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/Place_Name"
android:textColor="?attr/colorOnSurface"
android:textSize="16sp"
android:textStyle="bold"
android:maxLines="2"
android:ellipsize="end"
tools:text="Central Library Building" />
</LinearLayout>
<!-- Favorite icon -->
<com.google.android.material.card.MaterialCardView
android:layout_width="48dp"
android:layout_height="48dp"
app:cardCornerRadius="24dp"
app:cardElevation="2dp"
app:cardBackgroundColor="?attr/colorSurface">
<ImageView <ImageView
android:id="@+id/ivFavorite" android:id="@+id/ivFavorite"
android:layout_width="@dimen/small_image_icon_width" android:layout_width="24dp"
android:layout_height="@dimen/small_image_icon_height" android:layout_height="24dp"
android:autofillHints="Add to Favorite" android:layout_gravity="center"
android:contentDescription="Add to Favorite" android:src="@drawable/ic_favorite"
android:src="@drawable/ic_favorite" /> app:tint="?attr/colorError"
</LinearLayout> android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Add to Favorite" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout> </LinearLayout>
<!--Report description--> <!-- Description section -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical" android:orientation="vertical">
android:orientation="horizontal">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginBottom="8dp">
<com.google.android.material.textview.MaterialTextView <ImageView
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginEnd="8dp"
android:src="@drawable/ic_location"
app:tint="?attr/colorPrimary"
android:contentDescription="@string/description_icon" />
<TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/small_padding"
android:text="@string/Place_Description" android:text="@string/Place_Description"
android:textColor="?attr/colorPrimary" android:textColor="?attr/colorPrimary"
android:textSize="@dimen/textSizeInEditText" android:textSize="14sp"
android:textStyle="bold" android:textStyle="bold" />
app:startIconDrawable="@drawable/ic_location" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tvDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:focusable="false"
android:hint="@string/Place_Description"
android:importantForAutofill="no"
android:inputType="textMultiLine"
android:maxLines="5"
android:text="@string/Place_Description"
android:textColor="@color/neutralGrey"
android:textSize="@dimen/textSizeSmall"
tools:ignore="HardcodedText" />
</LinearLayout> </LinearLayout>
<TextView
android:id="@+id/tvDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/Place_Description"
android:textColor="?attr/colorOnSurfaceVariant"
android:textSize="14sp"
android:maxLines="3"
android:ellipsize="end"
android:lineSpacingExtra="2dp"
tools:text="A modern library with excellent accessibility features including ramps, elevators, and accessible restrooms." />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -3,139 +3,218 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:layout_margin="8dp">
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:cardCornerRadius="12dp" app:cardCornerRadius="16dp"
app:cardElevation="4dp" app:cardElevation="4dp"
app:cardUseCompatPadding="true" app:cardUseCompatPadding="false"
app:strokeColor="?attr/colorPrimary" app:cardBackgroundColor="?attr/colorSurface"
app:strokeWidth="2dp" app:strokeColor="?attr/colorOutline"
app:strokeWidth="1dp"
tools:ignore="MissingConstraints"> tools:ignore="MissingConstraints">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/content_padding" android:orientation="vertical"
android:orientation="vertical"> android:padding="16dp">
<!-- Header with place name and actions -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:baselineAligned="false"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:orientation="horizontal">
android:weightSum="2">
<!--Place name--> <!-- Place info section -->
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1.5" android:layout_weight="1"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView <!-- Place name with icon -->
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/small_padding" android:gravity="center_vertical"
android:text="@string/Place_Name" android:orientation="horizontal"
android:textColor="?attr/colorPrimary" android:layout_marginBottom="4dp">
android:textSize="@dimen/textSizeMedium"
android:textStyle="bold" <ImageView
app:startIconDrawable="@drawable/ic_location" /> android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginEnd="6dp"
android:src="@drawable/ic_location"
app:tint="?attr/colorPrimary" />
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Place_Name"
android:textColor="?attr/colorPrimary"
android:textSize="12sp"
android:textStyle="bold"
android:textAllCaps="true" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/tvPlaceName" android:id="@+id/tvPlaceName"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="false"
android:focusable="false"
android:hint="@string/Place_Name"
android:importantForAutofill="no"
android:inputType="textMultiLine"
android:maxLines="5"
android:text="@string/Place_Name" android:text="@string/Place_Name"
android:textColor="@color/neutralGrey" android:textColor="?attr/colorOnSurface"
android:textSize="@dimen/textSizeInEditText" /> android:textSize="16sp"
android:textStyle="bold"
android:maxLines="2"
android:ellipsize="end" />
</LinearLayout> </LinearLayout>
<!-- Action buttons -->
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.5" android:orientation="horizontal"
android:gravity="center_horizontal" android:gravity="center">
android:orientation="vertical">
<ImageView <com.google.android.material.button.MaterialButton
android:id="@+id/ivEdit" android:id="@+id/ivEdit"
android:layout_width="wrap_content" style="@style/Widget.Material3.Button.IconButton"
android:layout_height="wrap_content" android:layout_width="40dp"
android:contentDescription="Edit" android:layout_height="40dp"
android:src="@drawable/ic_edit_location" android:layout_marginEnd="4dp"
app:tint="?attr/colorOnBackground" /> android:contentDescription="@string/edit"
app:icon="@drawable/ic_edit_location"
app:iconTint="?attr/colorPrimary"
app:iconSize="20dp"
app:backgroundTint="?attr/colorSurfaceVariant" />
<ImageView <com.google.android.material.button.MaterialButton
android:id="@+id/ivDelete" android:id="@+id/ivDelete"
android:layout_width="wrap_content" style="@style/Widget.Material3.Button.IconButton"
android:layout_height="wrap_content" android:layout_width="40dp"
android:layout_marginTop="@dimen/small_padding" android:layout_height="40dp"
android:contentDescription="@string/Delete_report" android:contentDescription="@string/Delete_report"
android:src="@drawable/ic_delete" /> app:icon="@drawable/ic_delete"
app:iconTint="?attr/colorError"
app:iconSize="20dp"
app:backgroundTint="?attr/colorErrorContainer" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<!--Report description--> <!-- Divider -->
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="12dp"
android:layout_marginBottom="12dp"
android:background="?attr/colorOutline"
android:alpha="0.3" />
<!-- Description section -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView <!-- Description label -->
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/small_padding" android:gravity="center_vertical"
android:text="@string/Report_Description" android:orientation="horizontal"
android:textColor="?attr/colorPrimary" android:layout_marginBottom="4dp">
android:textSize="@dimen/textSizeInEditText"
android:textStyle="bold" <ImageView
app:startIconDrawable="@drawable/ic_location" /> android:layout_width="16dp"
android:layout_height="16dp"
android:layout_marginEnd="6dp"
android:src="@drawable/ic_report"
app:tint="?attr/colorPrimary" />
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Report_Description"
android:textColor="?attr/colorPrimary"
android:textSize="12sp"
android:textStyle="bold"
android:textAllCaps="true" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/tvDescription" android:id="@+id/tvDescription"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clickable="false"
android:focusable="false"
android:hint="@string/Report_Description"
android:importantForAutofill="no"
android:inputType="textMultiLine"
android:maxLines="5"
android:text="@string/Place_Description" android:text="@string/Place_Description"
android:textColor="@color/neutralGrey" android:textColor="?attr/colorOnSurfaceVariant"
android:textSize="@dimen/textSizeSmall" /> android:textSize="14sp"
android:lineSpacingExtra="2dp"
android:maxLines="3"
android:ellipsize="end" />
</LinearLayout> </LinearLayout>
<!-- Rating section -->
<com.google.android.material.textview.MaterialTextView <LinearLayout
android:id="@+id/tvRating" android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/content_padding" android:layout_marginTop="12dp"
android:background="@drawable/rating" android:gravity="center_vertical"
android:backgroundTint="@color/neutralGrey" android:orientation="horizontal">
android:gravity="center"
android:padding="@dimen/content_padding" <!-- Rating badge -->
android:text="@string/Rating_GOOD" <com.google.android.material.card.MaterialCardView
android:textAppearance="?attr/textAppearanceSubtitle1" android:layout_width="wrap_content"
android:textColor="?attr/colorOnPrimary" /> android:layout_height="wrap_content"
app:cardCornerRadius="20dp"
app:cardElevation="0dp"
app:cardBackgroundColor="?attr/colorPrimary">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tvRating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Rating_GOOD"
android:textColor="?attr/colorOnPrimary"
android:textSize="12sp"
android:textStyle="bold"
android:paddingStart="12dp"
android:paddingEnd="12dp"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:textAllCaps="true" />
</com.google.android.material.card.MaterialCardView>
<!-- Spacer -->
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<!-- TODO: Date/time info
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hace 2 días"
android:textColor="?attr/colorOnSurfaceVariant"
android:textSize="11sp"
android:alpha="0.7" /> -->
</LinearLayout>
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>