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

View File

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

View File

@ -15,101 +15,168 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/toolbar"
android:layout_centerInParent="true"
android:fillViewport="true"
android:padding="@dimen/layout_padding">
android:clipToPadding="false"
android:padding="24dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
<!-- Logo and Welcome Section -->
<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_height="wrap_content"
android:layout_marginTop="@dimen/layout_padding"
app:startIconDrawable="@drawable/ic_person">
android:text="@string/create_account"
android:textAlignment="center"
android:textSize="28sp"
android:textStyle="bold"
android:textColor="?attr/colorPrimary"
android:layout_marginBottom="8dp" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etName"
<!-- Register Form Card -->
<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_height="wrap_content"
android:hint="@string/Enter_Username"
android:importantForAutofill="no"
android:inputType="textPersonName" />
</com.google.android.material.textfield.TextInputLayout>
android:orientation="vertical"
android:padding="24dp">
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_padding"
app:startIconDrawable="@drawable/ic_email">
<!-- Name 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="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
android:id="@+id/etEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/Enter_Email"
android:importantForAutofill="no"
android:inputType="textEmailAddress" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/Enter_Username"
android:importantForAutofill="no"
android:inputType="textPersonName"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:paddingStart="56dp"
android:paddingEnd="16dp" />
</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_height="wrap_content"
android:layout_marginTop="@dimen/layout_padding"
app:passwordToggleEnabled="true"
app:startIconDrawable="@drawable/ic_lock">
<!-- Email 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="16dp"
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
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/Enter_Password"
android:importantForAutofill="no"
android:inputType="textPassword" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/Enter_Email"
android:importantForAutofill="no"
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
android:id="@+id/btnRegister"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_padding"
android:background="?attr/colorPrimary"
android:backgroundTintMode="src_atop"
android:text="@string/REGISTER"
android:textColor="?attr/colorOnPrimary"
android:textSize="@dimen/textSizeInEditText" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/Enter_Password"
android:importantForAutofill="no"
android:inputType="textPassword"
android:paddingTop="16dp"
android:paddingBottom="16dp"
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
android:layout_width="match_parent"
android:layout_width="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
android:layout_width="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
android:id="@+id/tvLoginRedirect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_padding"
android:layout_marginStart="4dp"
android:text="@string/Please_login"
android:textColor="?attr/colorPrimary"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
</RelativeLayout>

View File

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

View File

@ -1,27 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<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"
android:id="@+id/rlFavorite"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize">
<!-- RecyclerView with padding for better spacing -->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvFavorite"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:visibility="visible"
tools:listitem="@layout/list_view_favorite"
android:layout_marginBottom="@dimen/bottom_menu_height"/>
android:padding="16dp"
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:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/No_Favorite_found"
android:textAlignment="center"
tools:ignore="HardcodedText" />
android:orientation="vertical"
android:padding="32dp">
</FrameLayout>
<!-- 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>

View File

@ -3,52 +3,98 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rlMap"
android:layout_marginTop="?attr/actionBarSize"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.acloc.fragments.MapFragment">
android:layout_marginBottom="@dimen/bottom_menu_height"
android:layout_height="match_parent">
<!-- Google Maps Fragment -->
<androidx.fragment.app.FragmentContainerView
android:id="@+id/mapFrame"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilSearchLocation"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
<!-- Search Container Card -->
<com.google.android.material.card.MaterialCardView
android:id="@+id/searchContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:elevation="4dp"
app:endIconMode="custom"
app:endIconDrawable="@android:drawable/ic_menu_search"
app:boxCornerRadiusBottomEnd="8dp"
app:boxCornerRadiusBottomStart="8dp"
app:boxCornerRadiusTopEnd="8dp"
app:boxCornerRadiusTopStart="8dp">
android:layout_marginTop="24dp"
app:cardCornerRadius="16dp"
app:cardElevation="8dp"
app:cardBackgroundColor="?attr/colorSurface">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etSearchLocation"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/Search_Place"
android:imeOptions="actionSearch"
android:background="@color/primaryVariant_dark"
android:inputType="text"
android:maxLines="1" />
android:orientation="vertical">
</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 -->
<ListView
android:id="@+id/lvSuggestions"
android:layout_width="match_parent"
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etSearchLocation"
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_below="@id/tilSearchLocation"
android:layout_marginStart="16dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="16dp"
android:background="@color/primaryVariant_dark"
android:elevation="4dp"
android:visibility="gone" />
android:src="@drawable/ic_location"
android:contentDescription="@string/get_current_location"
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_marginTop="?attr/actionBarSize"
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
android:id="@+id/rvReport"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:visibility="visible"
android:padding="16dp"
android:clipToPadding="false"
tools:listitem="@layout/list_view_my_report" />
<TextView
<!-- Empty State -->
<LinearLayout
android:id="@+id/tvNoData"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/No_reports_found"
android:textAlignment="center" />
android:orientation="vertical"
android:padding="32dp">
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:id="@+id/extendedFbReport"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginStart="@dimen/layout_padding"
android:layout_marginTop="@dimen/layout_padding"
android:layout_marginEnd="@dimen/layout_padding"
android:layout_marginBottom="@dimen/layout_padding"
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/No_reports_found"
android:textAlignment="center"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="?attr/colorOnSurfaceVariant"
android:layout_marginBottom="8dp" />
<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" />
</FrameLayout>
</LinearLayout>
</FrameLayout>

View File

@ -3,126 +3,147 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
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
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="12dp"
app:cardCornerRadius="16dp"
app:cardElevation="4dp"
app:cardUseCompatPadding="true"
app:strokeColor="?attr/colorPrimary"
app:strokeWidth="2dp"
app:cardUseCompatPadding="false"
tools:ignore="MissingConstraints">
<LinearLayout
android:layout_width="match_parent"
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
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:gravity="center_vertical"
android:orientation="horizontal"
android:weightSum="2">
<!--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>
android:layout_marginBottom="16dp">
<!-- Place name section -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_horizontal"
android:layout_weight="1"
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
android:id="@+id/ivFavorite"
android:layout_width="@dimen/small_image_icon_width"
android:layout_height="@dimen/small_image_icon_height"
android:autofillHints="Add to Favorite"
android:contentDescription="Add to Favorite"
android:src="@drawable/ic_favorite" />
</LinearLayout>
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center"
android:src="@drawable/ic_favorite"
app:tint="?attr/colorError"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Add to Favorite" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<!--Report description-->
<!-- Description section -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_width="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
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
<ImageView
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_height="wrap_content"
android:layout_marginBottom="@dimen/small_padding"
android:text="@string/Place_Description"
android:textColor="?attr/colorPrimary"
android:textSize="@dimen/textSizeInEditText"
android:textStyle="bold"
app:startIconDrawable="@drawable/ic_location" />
android:textSize="14sp"
android:textStyle="bold" />
<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>
<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>
</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:tools="http://schemas.android.com/tools"
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
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="12dp"
app:cardCornerRadius="16dp"
app:cardElevation="4dp"
app:cardUseCompatPadding="true"
app:strokeColor="?attr/colorPrimary"
app:strokeWidth="2dp"
app:cardUseCompatPadding="false"
app:cardBackgroundColor="?attr/colorSurface"
app:strokeColor="?attr/colorOutline"
app:strokeWidth="1dp"
tools:ignore="MissingConstraints">
<LinearLayout
android:layout_width="match_parent"
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
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:gravity="center_vertical"
android:orientation="horizontal"
android:weightSum="2">
android:orientation="horizontal">
<!--Place name-->
<!-- Place info section -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:layout_weight="1"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
<!-- Place name with icon -->
<LinearLayout
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" />
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginBottom="4dp">
<ImageView
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
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" />
android:textColor="?attr/colorOnSurface"
android:textSize="16sp"
android:textStyle="bold"
android:maxLines="2"
android:ellipsize="end" />
</LinearLayout>
<!-- Action buttons -->
<LinearLayout
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_horizontal"
android:orientation="vertical">
android:orientation="horizontal"
android:gravity="center">
<ImageView
<com.google.android.material.button.MaterialButton
android:id="@+id/ivEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="Edit"
android:src="@drawable/ic_edit_location"
app:tint="?attr/colorOnBackground" />
style="@style/Widget.Material3.Button.IconButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginEnd="4dp"
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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/small_padding"
style="@style/Widget.Material3.Button.IconButton"
android:layout_width="40dp"
android:layout_height="40dp"
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>
<!--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
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
<!-- Description label -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/small_padding"
android:text="@string/Report_Description"
android:textColor="?attr/colorPrimary"
android:textSize="@dimen/textSizeInEditText"
android:textStyle="bold"
app:startIconDrawable="@drawable/ic_location" />
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginBottom="4dp">
<ImageView
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
android:id="@+id/tvDescription"
android:layout_width="match_parent"
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:textColor="@color/neutralGrey"
android:textSize="@dimen/textSizeSmall" />
android:textColor="?attr/colorOnSurfaceVariant"
android:textSize="14sp"
android:lineSpacingExtra="2dp"
android:maxLines="3"
android:ellipsize="end" />
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tvRating"
android:layout_width="wrap_content"
<!-- Rating section -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/content_padding"
android:background="@drawable/rating"
android:backgroundTint="@color/neutralGrey"
android:gravity="center"
android:padding="@dimen/content_padding"
android:text="@string/Rating_GOOD"
android:textAppearance="?attr/textAppearanceSubtitle1"
android:textColor="?attr/colorOnPrimary" />
android:layout_marginTop="12dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<!-- Rating badge -->
<com.google.android.material.card.MaterialCardView
android:layout_width="wrap_content"
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>
</com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>