v1.3 : refonte visuelle — fond en filigrane et bouton globe terrestre
- Illustration de l'appli en fond d'écran (alpha 10%, centerCrop) sur les deux écrans - Bouton d'envoi : sphère bleue en dégradé radial (effet globe 3D) avec icône globe et libellé, ripple et élévation ; grisé pendant l'envoi - En-tête avec sous-titre descriptif, carte destinataires avec élévation Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
d065c19972
commit
c7a753627b
8 changed files with 120 additions and 26 deletions
|
|
@ -23,8 +23,8 @@ android {
|
||||||
applicationId = "com.example.maposition"
|
applicationId = "com.example.maposition"
|
||||||
minSdk = 21
|
minSdk = 21
|
||||||
targetSdk = 36
|
targetSdk = 36
|
||||||
versionCode = 3
|
versionCode = 4
|
||||||
versionName = "1.2"
|
versionName = "1.3"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ import com.google.android.gms.location.FusedLocationProviderClient
|
||||||
import com.google.android.gms.location.LocationServices
|
import com.google.android.gms.location.LocationServices
|
||||||
import com.google.android.gms.location.Priority
|
import com.google.android.gms.location.Priority
|
||||||
import com.google.android.gms.tasks.CancellationTokenSource
|
import com.google.android.gms.tasks.CancellationTokenSource
|
||||||
import com.google.android.material.button.MaterialButton
|
|
||||||
import com.google.android.material.card.MaterialCardView
|
import com.google.android.material.card.MaterialCardView
|
||||||
import com.google.android.material.progressindicator.CircularProgressIndicator
|
import com.google.android.material.progressindicator.CircularProgressIndicator
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
@ -49,7 +48,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
|
|
||||||
private val handler = Handler(Looper.getMainLooper())
|
private val handler = Handler(Looper.getMainLooper())
|
||||||
|
|
||||||
private lateinit var sendButton: MaterialButton
|
private lateinit var sendButton: View
|
||||||
private lateinit var statusText: TextView
|
private lateinit var statusText: TextView
|
||||||
private lateinit var progress: CircularProgressIndicator
|
private lateinit var progress: CircularProgressIndicator
|
||||||
private lateinit var recipientsText: TextView
|
private lateinit var recipientsText: TextView
|
||||||
|
|
@ -166,6 +165,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
busy = true
|
busy = true
|
||||||
resetReportState()
|
resetReportState()
|
||||||
sendButton.isEnabled = false
|
sendButton.isEnabled = false
|
||||||
|
sendButton.alpha = 0.55f
|
||||||
progress.visibility = View.VISIBLE
|
progress.visibility = View.VISIBLE
|
||||||
setStatus(getString(R.string.status_locating))
|
setStatus(getString(R.string.status_locating))
|
||||||
|
|
||||||
|
|
@ -285,6 +285,7 @@ class MainActivity : AppCompatActivity() {
|
||||||
busy = false
|
busy = false
|
||||||
progress.visibility = View.GONE
|
progress.visibility = View.GONE
|
||||||
sendButton.isEnabled = true
|
sendButton.isEnabled = true
|
||||||
|
sendButton.alpha = 1f
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun resetReportState() {
|
private fun resetReportState() {
|
||||||
|
|
|
||||||
BIN
app/src/main/res/drawable-nodpi/bg_watermark.jpg
Normal file
BIN
app/src/main/res/drawable-nodpi/bg_watermark.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 114 KiB |
19
app/src/main/res/drawable/globe_button_bg.xml
Normal file
19
app/src/main/res/drawable/globe_button_bg.xml
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:color="#40FFFFFF">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="oval">
|
||||||
|
<gradient
|
||||||
|
android:type="radial"
|
||||||
|
android:centerX="0.35"
|
||||||
|
android:centerY="0.28"
|
||||||
|
android:gradientRadius="200dp"
|
||||||
|
android:startColor="#4A9DFF"
|
||||||
|
android:centerColor="#1E63C8"
|
||||||
|
android:endColor="#0A2F73" />
|
||||||
|
<stroke
|
||||||
|
android:width="3dp"
|
||||||
|
android:color="#59FFFFFF" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</ripple>
|
||||||
9
app/src/main/res/drawable/ic_globe.xml
Normal file
9
app/src/main/res/drawable/ic_globe.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFFFF"
|
||||||
|
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM11,19.93c-3.95,-0.49 -7,-3.85 -7,-7.93 0,-0.62 0.08,-1.21 0.21,-1.79L9,15v1c0,1.1 0.9,2 2,2v1.93zM17.9,17.39c-0.26,-0.81 -1,-1.39 -1.9,-1.39h-1v-3c0,-0.55 -0.45,-1 -1,-1L8,12v-2h2c0.55,0 1,-0.45 1,-1L11,7h2c1.1,0 2,-0.9 2,-2v-0.41c2.93,1.19 5,4.06 5,7.41 0,2.08 -0.8,3.97 -2.1,5.39z" />
|
||||||
|
</vector>
|
||||||
|
|
@ -2,51 +2,98 @@
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
android:padding="24dp">
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/bgImage"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:alpha="0.10"
|
||||||
|
android:importantForAccessibility="no"
|
||||||
|
android:scaleType="centerCrop"
|
||||||
|
android:src="@drawable/bg_watermark"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/titleText"
|
android:id="@+id/titleText"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
android:text="@string/app_name"
|
android:text="@string/app_name"
|
||||||
android:textSize="26sp"
|
android:textSize="28sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintEnd_toStartOf="@id/settingsButton"
|
app:layout_constraintEnd_toStartOf="@id/settingsButton"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/subtitleText"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:text="@string/subtitle"
|
||||||
|
android:textColor="?attr/colorOnSurfaceVariant"
|
||||||
|
android:textSize="14sp"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/settingsButton"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/titleText"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/titleText" />
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/settingsButton"
|
android:id="@+id/settingsButton"
|
||||||
android:layout_width="48dp"
|
android:layout_width="48dp"
|
||||||
android:layout_height="48dp"
|
android:layout_height="48dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
android:background="?attr/selectableItemBackgroundBorderless"
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
android:contentDescription="@string/settings_title"
|
android:contentDescription="@string/settings_title"
|
||||||
android:src="@drawable/ic_settings"
|
android:src="@drawable/ic_settings"
|
||||||
app:layout_constraintBottom_toBottomOf="@id/titleText"
|
app:layout_constraintBottom_toBottomOf="@id/subtitleText"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="@id/titleText"
|
app:layout_constraintTop_toTopOf="@id/titleText"
|
||||||
app:tint="?attr/colorOnSurfaceVariant" />
|
app:tint="?attr/colorOnSurfaceVariant" />
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<FrameLayout
|
||||||
android:id="@+id/sendButton"
|
android:id="@+id/sendButton"
|
||||||
android:layout_width="240dp"
|
android:layout_width="256dp"
|
||||||
android:layout_height="240dp"
|
android:layout_height="256dp"
|
||||||
android:text="@string/send_button"
|
android:background="@drawable/globe_button_bg"
|
||||||
android:textColor="@color/white"
|
android:clickable="true"
|
||||||
android:textSize="17sp"
|
android:elevation="12dp"
|
||||||
android:textStyle="bold"
|
android:focusable="true"
|
||||||
app:backgroundTint="@color/brand_blue"
|
|
||||||
app:cornerRadius="120dp"
|
|
||||||
app:icon="@drawable/ic_pin"
|
|
||||||
app:iconGravity="top"
|
|
||||||
app:iconSize="44dp"
|
|
||||||
app:iconTint="@color/white"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintVertical_bias="0.38" />
|
app:layout_constraintVertical_bias="0.36">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="88dp"
|
||||||
|
android:layout_height="88dp"
|
||||||
|
android:importantForAccessibility="no"
|
||||||
|
android:src="@drawable/ic_globe" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:letterSpacing="0.06"
|
||||||
|
android:text="@string/send_button"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
</LinearLayout>
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
<com.google.android.material.progressindicator.CircularProgressIndicator
|
<com.google.android.material.progressindicator.CircularProgressIndicator
|
||||||
android:id="@+id/progress"
|
android:id="@+id/progress"
|
||||||
|
|
@ -64,7 +111,9 @@
|
||||||
android:id="@+id/statusText"
|
android:id="@+id/statusText"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
|
android:layout_marginEnd="24dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|
@ -75,9 +124,11 @@
|
||||||
android:id="@+id/recipientsCard"
|
android:id="@+id/recipientsCard"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="20dp"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
app:cardCornerRadius="16dp"
|
app:cardCornerRadius="18dp"
|
||||||
|
app:cardElevation="3dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
@ -92,9 +143,9 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/recipients_label"
|
android:text="@string/recipients_label"
|
||||||
|
android:textColor="?attr/colorOnSurfaceVariant"
|
||||||
android:textSize="13sp"
|
android:textSize="13sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold" />
|
||||||
android:textColor="?attr/colorOnSurfaceVariant" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/recipientsText"
|
android:id="@+id/recipientsText"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,18 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout 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:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:alpha="0.07"
|
||||||
|
android:importantForAccessibility="no"
|
||||||
|
android:scaleType="centerCrop"
|
||||||
|
android:src="@drawable/bg_watermark" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
|
|
@ -74,3 +86,4 @@
|
||||||
app:cornerRadius="16dp" />
|
app:cornerRadius="16dp" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
</FrameLayout>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">Ma Position</string>
|
<string name="app_name">Ma Position</string>
|
||||||
<string name="settings_title">Paramètres</string>
|
<string name="settings_title">Paramètres</string>
|
||||||
|
<string name="subtitle">Votre position par SMS, en un geste</string>
|
||||||
<string name="back">Retour</string>
|
<string name="back">Retour</string>
|
||||||
|
|
||||||
<!-- Écran principal -->
|
<!-- Écran principal -->
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue