From b0161a2f2293a993fc0cfed5e50e073870c7b9cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Ckamon?= <“kamon.sourabie@imt-atlantique.net”> Date: Thu, 7 Nov 2024 00:02:13 +0100 Subject: [PATCH 1/3] =?UTF-8?q?tentative=20de=20retour=20=C3=A0=20une=20ve?= =?UTF-8?q?rsion=20anterieure=20sans=20erreur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/drawable/polygon_1.png | Bin 0 -> 3495 bytes app/src/main/res/drawable/polygon_2.png | Bin 0 -> 4959 bytes app/src/main/res/drawable/polygon_3.png | Bin 0 -> 583 bytes app/src/main/res/drawable/polygon_4.png | Bin 0 -> 1183 bytes app/src/main/res/drawable/rectangle_1.png | Bin 0 -> 532 bytes app/src/main/res/drawable/rectangle_5.png | Bin 0 -> 319 bytes app/src/main/res/font/inter.xml | 7 + app/src/main/res/layout/activity_main.xml | 69 ++++++++- app/src/main/res/layout/activity_public.xml | 145 +++++++++++++++--- .../res/layout/fragment_settings_page.xml | 36 ++++- app/src/main/res/layout/fragment_stats.xml | 40 +++-- app/src/main/res/values/strings.xml | 4 + app/src/main/res/values/themes.xml | 4 + 13 files changed, 265 insertions(+), 40 deletions(-) create mode 100644 app/src/main/res/drawable/polygon_1.png create mode 100644 app/src/main/res/drawable/polygon_2.png create mode 100644 app/src/main/res/drawable/polygon_3.png create mode 100644 app/src/main/res/drawable/polygon_4.png create mode 100644 app/src/main/res/drawable/rectangle_1.png create mode 100644 app/src/main/res/drawable/rectangle_5.png create mode 100644 app/src/main/res/font/inter.xml diff --git a/app/src/main/res/drawable/polygon_1.png b/app/src/main/res/drawable/polygon_1.png new file mode 100644 index 0000000000000000000000000000000000000000..44ad84c994564497253f3e68623ed13de3e40a2f GIT binary patch literal 3495 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 Z|DL2B5MZ91&cMLH;OXk;vd$@?2>{<Sn`Qt2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/polygon_2.png b/app/src/main/res/drawable/polygon_2.png new file mode 100644 index 0000000000000000000000000000000000000000..449f7fc26013e2153b69be54199eb9fdd47b0b3e GIT binary patch literal 4959 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/polygon_3.png b/app/src/main/res/drawable/polygon_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c2d8d1650bf0c3a1222bfb0e0abbd1504ab63466 GIT binary patch literal 583 zcmeAS@N?(olHy`uVBq!ia0y~yV0gp8z+lC}#=yX^dCOKc1_lPs0*}aI1_o|n5N2eU zHAjMhfq}6&$lZxy-8q?;3=9k`>5jgR3=A9lx&I`xGB7aS@pN$vsbGA2*Rt=C14CQj z=B@?&4t<{={(G+QM1y0Q4YQE%ZfPm~tv~j%NKUNN`Yk?bHOK`FF!18|8m395Hgc~o zzYNhA>%RN6XeBFm=Z=2kn0L+#Zh!b$_+R?qp%Z-VhmTk7U3dO@v8-OX;)Pwh=ggW~ z8BGh<g{{7wxpVgU=f6MfTzgL?;>F3@If`fOAFh7JQfm!TW8Px1{q)nKdfDb#8rA)q zdlMdZ9$&icm;Cd~&(A7yh^?Cyed}!6=Gtvnj;TbbtvnqhJvl)$?!I@fPt#J3vl1eY z*0jfDB@5}?%!<sKJ=yqW^sRL)-eN&fATiIAi7R_OH@JL08x$R0<GrD0(UPTRY6mav zzBK*T3>I(oV6aa8%~y`8N9@~hWtsN|;q;YfyA#xp1kJWTD0V6+TJ50Nfgo$yrn5au z%WkpE*6`NNWtq+3t-D_6%?X{YC5kr~BeP!4PN+^=naa~t+q`sI1j}z`Z{3xGZ>BDt zCgWoi;jOz<%kIYQAnVy@|IM8<b?LMoQPDStgR*%RS=?mHUYXi8iT_*P%G`Ozn=3N~ zc@$SB$WM<-7N`-^jquj}b5G;oy=k|e{oj(jFHX+ua`lF3Q4)U36Lhy4tef7n^@@|! ZKPG<B5RWGt)=mXQmZz(q%Q~loCICCj_@Dp) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/polygon_4.png b/app/src/main/res/drawable/polygon_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f91b4398dfc34c48615cd6cb879e785c7c590030 GIT binary patch literal 1183 zcmeAS@N?(olHy`uVBq!ia0y~yV4TCiz>v?u#=yXE!=TKHfq{Xuz$3Dlfq`2Xgc%uT z&5>YWU|=i`a(7}_cTVOd0|Ns~x}&cn1H;CC?mvmF3=AwLo-U3d6^w81+WJXHOB{b_ z7{AD){^dp%)=Q~|<>KX`FCW{z^nBmMr{BQ3<lrOabb&qw)}FIxte?-Rl<Q<#a>f4a zkN4)2*%lZ~pFTaFkDtFkFF*hM<@LvR@7{g6y}f<$$&{kP;^NO=-@JLVOVN5Vn?iDK z3?CogvhUx&U;gs?<GFKw(lZyE{?D1mWMXY;xijNL+XIH19)*^-?%%JkiSkVRY5sR* z@0ndY_B^+0eU)7$G^_fR<h%zA%@IeJ@_I|p__F-l$*10zCx6-XcK7w%!$L9(%5!7B zefxIqa=PwuO})3l-oGzL$6TASeEB^2<;$1fmv-XhyD&3d{+a*n9ZT%z+S~5s5uN^h zi@(+VX{Vq1``a3_u-`Z(?Y%KGc){}Px%NR7&v^F=$|S7Sot|{m^I_zjyLZp-$$Q=Y zfI<Ju1`+LxUoV$erNwP8buUObvS@me>Ze_6t(%yYC*BNN<I;cs<;PvQ)lJM(HFGq> z7JVzdeW$$2Ox+@2!>nmZt-B)hrW>!nZRb|7Kp;7?OY{`yTz&zW6BCw3Y^>WE@z?BN zV`F4j=;@=c!dcjvBD;DgUC;GrVXsQiJa)h5Z_?HW2h=0GHns-Ftr3&C(XdoPR{HAE ztb>i_5nY0rJnAJZ>{8x_p8`K0%{rJ^qH|QkrBr-1YkO8?S73Kk+;&dB&<!HVDqZ^` zbS*@V2l1TR6QOI7ayE$Pn%1+Vtq&&fdK><ja+Py#x5)f>-!_(Z$A~V+{7ri!bS=J| z3gTg#3bJaU@wB7~YjyO(xcQ<tiZmPXR&I<ch&Ua@vr43HV^l%K!>jE-rzHjK-_U)v z$vA0R(t+Z)ueW_Mp6$21dl`F^G1Ii918To^Md(^gt^Av~Z>huw&be`G#O5?bb}<I- z+7Y2^(Yir|*=Xa}qge+}PFN}t(9o+N#(nO9&d~<0niol1AFx!`eN#R9bpEj*o)zbJ zi?3!~&OR;az=^+KleRvnnY2{m!0vxBYsBX8u9=p!@=kwYrp{3YyH`;K_YySOF6bTv zag}<sET$zf9A0S#qAFJ^fvBI_dLSzGlog2jdP2>j`)JaxU;Kx3jxxLwmXq-|Y$$wX z3X)q>A~wfN@8#h?S1)%hm0-}%5tZ>aWH8$bHm&5LYk|&Dh8L%wyn6NO|FIyRhIwz7 zUifpJ!Qp(F6a$BX1w)H~41*H~AA=$bdxJm|vjfLLMunCK3<6FC3>=DsTlxp@&!!7! V1U>cj85kHCJYD@<);T3K0RWWL=4t={ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/rectangle_1.png b/app/src/main/res/drawable/rectangle_1.png new file mode 100644 index 0000000000000000000000000000000000000000..76c80573aac1f2c3090572c2ee5862dc4b263981 GIT binary patch literal 532 zcmeAS@N?(olHy`uVBq!ia0y~yU@&4}U~uJNV_;z5kl1>Hfq{Xuz$3Dlfq`2Xgc%uT z&5>YWU|=i`a(7}_cTVOd0|Ns~x}&cn1H;CC?mvmF3=E7bJzX3_Dj471wDvn<Akvy> zt*pp3?I2SG=c0wn**Fce6Br#mUM8}4eBHn<<(0;x-qT+BBvJiat;<hs^YCxWqi;z$ z#@-K0Umg7Y$J?B*arbJEoDp;Lkal@FXLrPn(#oA{&LuxvD|mtL(f^OvYSzYV<hjdZ zy+rU~_kj&gR)YH+c%)T09&#Vp;IK$wpB#^6iol`kjf$;3PCudyQYNTy#51?COcHr$ zeITVh#qmd(L8M}&;6C28L?hRxAFq$>`kFqiS3v2^d)f8*{@?XaD#~!one4PfKtr-c zxN(xh4#5l)7bd3OCJ)C22L(JiOgNNy8y6`G32JaDi8eMVP7>7MP?Bw|Qj`){A-ssS zF-mckzzV@dyp4SdQi2)$i$oi@37q8!ao(alVJ;JsXt2YABrc9Ae~qUwHEwcRA)q1M zBGkCaVTGWEWeaoTBwE<}YMtD?{4;m%+_@uDXus=g&cbNHvN{F^1_n=8KbLh*2~7ar CF}bAx literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/rectangle_5.png b/app/src/main/res/drawable/rectangle_5.png new file mode 100644 index 0000000000000000000000000000000000000000..b4f23cdcb1bf23ebb586e3ee0a37cdf0df2c8dc2 GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0y~yV7Sb{z`)AE#=yXEKjG$U1_lPs0*}aI1_o|n5N2eU zHAjMhfq}6&$lZxy-8q?;3=9k`>5jgR3=A9lx&I`xGB7Y)@pN$vsbG9N^(=3*0Z(hL zfr6rygXHSykh=}6Rt&2*1YNDZ%Ix9rD@JpA*Zh{azn<?W{ZMbTnYnx2Zh^qVXVi^& zl%<~EQTDwYHc4gYK@ZU<3PwE2G7_Gl&b=v-VcjRLdl*dn?07FiYERp-oVV|v>OB4b zt@q`|snSvATkcQXef-LYYWH(HzrCN9b!=VkSNmVSN$-EW|8>vO`QE<tdFgE#vzB>v zEvj%7JvOEJ#InhWEeq3{J40-E4hNsww8#0n&H3|I3k~L;FzBf*QR;nsqW1p&hx5NN ZTOOJ-?>0-fG6MqxgQu&X%Q~loCIIs2g-ZYc literal 0 HcmV?d00001 diff --git a/app/src/main/res/font/inter.xml b/app/src/main/res/font/inter.xml new file mode 100644 index 0000000..1f2aa90 --- /dev/null +++ b/app/src/main/res/font/inter.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<font-family xmlns:app="http://schemas.android.com/apk/res-auto" + app:fontProviderAuthority="com.google.android.gms.fonts" + app:fontProviderPackage="com.google.android.gms" + app:fontProviderQuery="Inter" + app:fontProviderCerts="@array/com_google_android_gms_fonts_certs"> +</font-family> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a29568b..e024e1b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,15 +7,17 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipToOutline="true" - android:background="#FFFFFF"> + android:background="@color/black"> <ImageView + android:alpha="0.4" android:id="@+id/image_1" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/image_1"/> + <TextView android:id="@+id/sell_rad" android:layout_width="wrap_content" @@ -32,8 +34,71 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal" - android:layout_marginBottom="30dp" + android:layout_marginBottom="50dp" android:src="@drawable/image_2" /> + <ImageView + android:id="@+id/polygon_3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/polygon_3" + android:alpha="0.75" + android:layout_gravity="end|bottom" + /> + + <ImageView + android:id="@+id/rectangle_1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="start|center_vertical" + android:layout_marginTop="250dp" + android:layout_marginStart="33dp" + android:alpha="0.75" + android:background="@drawable/rectangle_5" + /> + + <ImageView + android:id="@+id/rectangle_2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="start" + android:layout_marginTop="167dp" + android:layout_marginEnd="250dp" + android:alpha="0.75" + android:background="@drawable/rectangle_5" + /> + + <ImageView + android:id="@+id/rectangle_3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="start" + android:layout_marginTop="150dp" + android:layout_marginEnd="300dp" + android:alpha="0.75" + android:background="@drawable/rectangle_5" + /> + + <ImageView + android:id="@+id/rectangle_4" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="end|center_vertical" + android:layout_marginTop="75dp" + android:layout_marginEnd="70dp" + android:alpha="0.75" + android:background="@drawable/rectangle_5" + /> + + <ImageView + android:id="@+id/polygon_1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/polygon_1" + android:layout_gravity="end|center_vertical" + android:layout_marginBottom="25dp" + android:alpha="0.75" + /> + </FrameLayout> diff --git a/app/src/main/res/layout/activity_public.xml b/app/src/main/res/layout/activity_public.xml index 56a2844..7efa412 100644 --- a/app/src/main/res/layout/activity_public.xml +++ b/app/src/main/res/layout/activity_public.xml @@ -1,16 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> -<androidx.constraintlayout.widget.ConstraintLayout 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" android:id="@+id/public_activity" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/black" tools:context=".PublicActivity"> - - <ImageView - android:id="@+id/image_" + android:alpha="0.4" + android:id="@+id/image_1" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" @@ -20,22 +20,131 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> - <FrameLayout - android:id="@+id/fragment_container" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_above="@id/bottom_navigation"/> + <ImageView + android:id="@+id/polygon_2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="start|center_vertical" + android:layout_marginBottom="25dp" + android:alpha="0.75" + android:src="@drawable/polygon_2" /> - <com.google.android.material.bottomnavigation.BottomNavigationView - android:id="@+id/bottom_navigation" - android:layout_width="match_parent" + <ImageView + android:id="@+id/polygon_4" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/polygon_4" + android:alpha="0.75" + android:layout_gravity="center_horizontal|bottom" + /> + + <ImageView + android:id="@+id/image_2" + android:layout_width="146.4dp" + android:layout_height="48.6dp" + android:layout_gravity="bottom|center_horizontal" + android:layout_marginBottom="20dp" + android:src="@drawable/image_2" + /> + + <ImageView + android:id="@+id/rectangle_5" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginBottom="266dp" + android:src="@drawable/rectangle_1" + /> + + <Button + android:layout_width="168dp" + android:layout_height="124dp" + android:layout_marginStart="34dp" + android:layout_marginBottom="266dp" + android:layout_gravity="center_vertical" + android:backgroundTint="#517293" + android:drawableLeft="@drawable/book" + android:fontFamily="@font/inter" + android:text="@string/learn" + android:textSize="20sp" + android:rotation="-5" + android:paddingRight="5dp" + android:paddingLeft="5dp" + style="@style/ButtonAppearance"/> + + <ImageView + android:id="@+id/rectangle_6" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginBottom="97dp" + android:src="@drawable/rectangle_1" + /> + + <Button + android:layout_width="168dp" + android:layout_height="124dp" + android:layout_marginStart="34dp" + android:layout_marginBottom="97dp" + android:layout_gravity="center_vertical" + android:backgroundTint="#517293" + android:drawableLeft="@drawable/param" + android:fontFamily="@font/inter" + android:text="@string/settings" + android:textSize="20sp" + android:rotation="-5" + android:paddingRight="5dp" + android:paddingLeft="5dp" + style="@style/ButtonAppearance"/> + + <ImageView + android:id="@+id/rectangle_7" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginTop="72dp" + android:src="@drawable/rectangle_1" + /> + + <Button + android:layout_width="168dp" + android:layout_height="124dp" + android:layout_marginStart="34dp" + android:layout_marginTop="72dp" + android:layout_gravity="center_vertical" + android:backgroundTint="#517293" + android:drawableLeft="@drawable/camera" + android:fontFamily="@font/inter" + android:text="@string/photo" + android:textSize="20sp" + android:rotation="-5" + android:paddingRight="3.75dp" + android:paddingLeft="3.75dp" + style="@style/ButtonAppearance"/> + + <ImageView + android:id="@+id/rectangle_8" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="bottom" - android:background="#b9d6f2" - app:menu="@menu/bottom_nav_menu" - app:layout_constraintBottom_toBottomOf="parent" - app:labelVisibilityMode="labeled" + android:layout_gravity="center_vertical" + android:layout_marginTop="241dp" + android:src="@drawable/rectangle_1" /> -</androidx.constraintlayout.widget.ConstraintLayout> + <Button + android:layout_width="168dp" + android:layout_height="124dp" + android:layout_marginStart="34dp" + android:layout_marginTop="241dp" + android:layout_gravity="center_vertical" + android:backgroundTint="#517293" + android:drawableLeft="@drawable/stats" + android:fontFamily="@font/inter" + android:text="@string/stats" + android:textSize="20sp" + android:rotation="-5" + android:paddingRight="3.75dp" + android:paddingLeft="3.75dp" + style="@style/ButtonAppearance"/> +</FrameLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings_page.xml b/app/src/main/res/layout/fragment_settings_page.xml index 664a9e8..c16a943 100644 --- a/app/src/main/res/layout/fragment_settings_page.xml +++ b/app/src/main/res/layout/fragment_settings_page.xml @@ -1,13 +1,33 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout 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:tools="http://schemas.android.com/tools" + android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical" - android:gravity="center"> + android:background="@color/black"> - <TextView - android:layout_width="wrap_content" + <ImageView + android:alpha="0.4" + android:id="@+id/image_1" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scaleType="centerCrop" + android:src="@drawable/image_1" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@id/bottom_navigation" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent"/> + + <com.google.android.material.bottomnavigation.BottomNavigationView + android:id="@+id/bottom_navigation" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="Dashboard Page" - android:textSize="24sp" /> -</LinearLayout> \ No newline at end of file + android:layout_gravity="bottom" + android:background="#b9d6f2" + app:menu="@menu/bottom_nav_menu" + app:layout_constraintBottom_toBottomOf="parent" + app:labelVisibilityMode="labeled" + /> + +</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_stats.xml b/app/src/main/res/layout/fragment_stats.xml index 280a528..33b8f5c 100644 --- a/app/src/main/res/layout/fragment_stats.xml +++ b/app/src/main/res/layout/fragment_stats.xml @@ -1,17 +1,33 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- res/layout/fragment_actual_stats.xml --> -<LinearLayout - 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:tools="http://schemas.android.com/tools" + android:id="@+id/pro" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical" - android:padding="16dp"> + android:background="@color/black"> - <TextView - android:id="@+id/statsText" - android:layout_width="wrap_content" + <ImageView + android:alpha="0.4" + android:id="@+id/image_1" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:scaleType="centerCrop" + android:src="@drawable/image_1" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@id/bottom_navigation" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent"/> + + <com.google.android.material.bottomnavigation.BottomNavigationView + android:id="@+id/bottom_navigation" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:textSize="18sp" - android:text="Stats Content" - android:layout_gravity="center_horizontal"/> -</LinearLayout> \ No newline at end of file + android:layout_gravity="bottom" + android:background="#b9d6f2" + app:menu="@menu/bottom_nav_menu" + app:layout_constraintBottom_toBottomOf="parent" + app:labelVisibilityMode="labeled" + /> + +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 194215c..bf2a6c4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,4 +6,8 @@ <string name="label_text2">Statistiques</string> <!-- TODO: Remove or change this placeholder text --> <string name="hello_blank_fragment">Hello blank fragment</string> + <string name="learn">Apprendre</string> + <string name="settings">Paramètres</string> + <string name="photo">Documenter</string> + <string name="stats">Statistiques</string> </resources> \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index d66ac09..7147040 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -6,4 +6,8 @@ </style> <style name="Theme.MyApplication" parent="Base.Theme.MyApplication" /> + <style name="ButtonAppearance" parent="ShapeAppearance.MaterialComponents.SmallComponent"> + <item name="cornerFamily">rounded</item> + <item name="cornerRadius">8dp</item> + </style> </resources> \ No newline at end of file -- GitLab From 0e9292ed3200ecb9c87dd42be2127a40a262882b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Ckamon?= <“kamon.sourabie@imt-atlantique.net”> Date: Sun, 15 Dec 2024 18:17:10 +0100 Subject: [PATCH 2/3] =?UTF-8?q?Gestion=20des=20esp=C3=A8ces=20non=20reconn?= =?UTF-8?q?ues?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetSelector.xml | 6 ++--- .idea/gradle.xml | 1 - .../NoSpeciesRecognizedException.java | 5 ++++ .../com/example/myapplication/PhotoPage.java | 2 ++ .../myapplication/TestModeleTflite.java | 24 ++++++++++--------- 5 files changed, 23 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index c081683..5a8e5f9 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -2,12 +2,12 @@ <project version="4"> <component name="deploymentTargetSelector"> <selectionStates> - <SelectionState runConfigName="MainActivity"> + <SelectionState runConfigName="app"> <option name="selectionMode" value="DROPDOWN" /> - <DropdownSelection timestamp="2024-12-05T10:04:46.998092100Z"> + <DropdownSelection timestamp="2024-12-15T17:00:55.472861300Z"> <Target type="DEFAULT_BOOT"> <handle> - <DeviceId pluginId="LocalEmulator" identifier="path=C:\Users\melvi\.android\avd\Pixel_9_Pro_XL_API_35.avd" /> + <DeviceId pluginId="LocalEmulator" identifier="path=C:\Users\Prosp\.android\avd\Medium_Phone_API_35.avd" /> </handle> </Target> </DropdownSelection> diff --git a/.idea/gradle.xml b/.idea/gradle.xml index ecd50f0..cb865f6 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,7 +4,6 @@ <component name="GradleSettings"> <option name="linkedExternalProjectsSettings"> <GradleProjectSettings> - <option name="testRunner" value="CHOOSE_PER_TEST" /> <option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="gradleJvm" value="jbr-17" /> <option name="modules"> diff --git a/app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java b/app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java new file mode 100644 index 0000000..a23697c --- /dev/null +++ b/app/src/main/java/com/example/myapplication/NoSpeciesRecognizedException.java @@ -0,0 +1,5 @@ +package com.example.myapplication; + +public class NoSpeciesRecognizedException extends Exception{ + +} diff --git a/app/src/main/java/com/example/myapplication/PhotoPage.java b/app/src/main/java/com/example/myapplication/PhotoPage.java index b6bc8d8..e65fb29 100644 --- a/app/src/main/java/com/example/myapplication/PhotoPage.java +++ b/app/src/main/java/com/example/myapplication/PhotoPage.java @@ -145,6 +145,8 @@ public class PhotoPage extends Fragment { } catch (IOException e) { throw new RuntimeException(e); + } catch (NoSpeciesRecognizedException e) { + textPredictionOutput.setText("Cette espèce pas encore répertoriée"); } } diff --git a/app/src/main/java/com/example/myapplication/TestModeleTflite.java b/app/src/main/java/com/example/myapplication/TestModeleTflite.java index 35cbd3b..0a1c267 100644 --- a/app/src/main/java/com/example/myapplication/TestModeleTflite.java +++ b/app/src/main/java/com/example/myapplication/TestModeleTflite.java @@ -246,22 +246,24 @@ public class TestModeleTflite { return annotateImage(inputImage, boxes); } - public OutputPredictedImage recognizeSpeciesClass(Bitmap inputImage){ + public OutputPredictedImage recognizeSpeciesClass(Bitmap inputImage) throws NoSpeciesRecognizedException { //ArrayList<String> speciesNames = new ArrayList<>(); Map<String, Integer> predictionResults = new HashMap<>(); TensorBuffer outputBuffer = predict(inputImage); List<BoundingBox> boxes = processOutput(outputBuffer); - for(BoundingBox box:boxes){ - if(predictionResults.containsKey(box.clsName)){ - int previousNumber = predictionResults.get(box.clsName); - predictionResults.put(box.clsName, previousNumber + 1); - }else{ - predictionResults.put(box.clsName, 1); - } + if(boxes != null){ + for(BoundingBox box:boxes){ + if(predictionResults.containsKey(box.clsName)){ + int previousNumber = predictionResults.get(box.clsName); + predictionResults.put(box.clsName, previousNumber + 1); + }else{ + predictionResults.put(box.clsName, 1); + } - } - Bitmap annotatedImage = annotateImage(inputImage, boxes); - return new OutputPredictedImage(annotatedImage, predictionResults); + } + Bitmap annotatedImage = annotateImage(inputImage, boxes); + return new OutputPredictedImage(annotatedImage, predictionResults); + }else throw new NoSpeciesRecognizedException(); } -- GitLab From c0c070b95def4e5d43601d554ce365a9769a1358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Ckamon?= <“kamon.sourabie@imt-atlantique.net”> Date: Sun, 15 Dec 2024 18:44:06 +0100 Subject: [PATCH 3/3] Apparition du formulaire uniquement lors du chargement d'une photo via la gallerie --- app/src/main/java/com/example/myapplication/PhotoPage.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/example/myapplication/PhotoPage.java b/app/src/main/java/com/example/myapplication/PhotoPage.java index 6da89f8..6db9197 100644 --- a/app/src/main/java/com/example/myapplication/PhotoPage.java +++ b/app/src/main/java/com/example/myapplication/PhotoPage.java @@ -110,6 +110,7 @@ public class PhotoPage extends Fragment { if (cameraImage != null) { imageView.setImageBitmap(cameraImage); processImage(cameraImage); // Pass the image for further processing + showOverlayForm(); } break; @@ -130,7 +131,7 @@ public class PhotoPage extends Fragment { } break; } - showOverlayForm(); + } private void processImage(Bitmap bitmap) { @@ -155,7 +156,7 @@ public class PhotoPage extends Fragment { } catch (IOException e) { throw new RuntimeException(e); } catch (NoSpeciesRecognizedException e) { - textPredictionOutput.setText("Cette espèce pas encore répertoriée"); + textPredictionOutput.setText("Cette espèce n'est pas encore répertoriée."); } } -- GitLab