diff --git a/app/build.gradle b/app/build.gradle index 41e8be8..b94791c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.stock.pignon" minSdkVersion 17 targetSdkVersion 36 - versionCode 5 - versionName "0.5.0" + versionCode 6 + versionName "0.5.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/com/stock/pignon/CartViewHelper.java b/app/src/main/java/com/stock/pignon/CartViewHelper.java index bf0d025..1d52589 100644 --- a/app/src/main/java/com/stock/pignon/CartViewHelper.java +++ b/app/src/main/java/com/stock/pignon/CartViewHelper.java @@ -22,16 +22,9 @@ import java.util.List; public class CartViewHelper { /** - * Short version for app resume : update without changing validate/back button state + * Refreshes cart UI by synchronizing the visual list with the current CartManager state */ public static void updateCartView(LinearLayout cartList, Context context) { - updateCartView(cartList, context, false, false); - } - - /** - * Full version with validate/back button management - */ - public static void updateCartView(LinearLayout cartList, Context context, boolean updateButton, boolean isHome) { if (cartList == null) return; // Clean item lists @@ -60,11 +53,6 @@ public class CartViewHelper { } updateTotalDisplay(context, totalMin, totalMax); } - - // Update validate/back button - if (updateButton && context instanceof MainActivity) { - ((MainActivity) context).updateActionButton(isHome); - } } /** diff --git a/app/src/main/java/com/stock/pignon/MainActivity.java b/app/src/main/java/com/stock/pignon/MainActivity.java index 72c7252..ca2f6b9 100644 --- a/app/src/main/java/com/stock/pignon/MainActivity.java +++ b/app/src/main/java/com/stock/pignon/MainActivity.java @@ -12,6 +12,7 @@ import android.widget.Button; import android.widget.GridLayout; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.FrameLayout; import android.widget.TextView; import android.os.Environment; import java.io.File; @@ -35,7 +36,7 @@ public class MainActivity extends AppCompatActivity { // UI components private LinearLayout cartList; private LinearLayout homeLayout; - private LinearLayout categoryItemsLayout; + private FrameLayout categoryItemsLayout; private LinearLayout categoriesLayout; private GridLayout gridPieces; private ImageView mainImage; @@ -93,7 +94,7 @@ public class MainActivity extends AppCompatActivity { server.start(); String url = "http://" + getDeviceIP() + ":8080"; - // On met l'URL directement dans le sous-titre de l'ActionBar + // Print URL in action bar for user if (getSupportActionBar() != null) { getSupportActionBar().setSubtitle("Serveur en ligne : " + url + " - " + versionName); } @@ -103,6 +104,24 @@ public class MainActivity extends AppCompatActivity { getSupportActionBar().setSubtitle("Erreur serveur" + " - " + versionName); } } + + // Back button (blue) + Button btnBack = findViewById(R.id.btnBackFromCategory); + if (btnBack != null) { + btnBack.setOnClickListener(v -> showHome()); + } + + // Empty button (red) + Button btnClear = findViewById(R.id.clearCartBtn); + if (btnClear != null) { + btnClear.setOnClickListener(v -> CartActionHelper.emptyCart(cartList, this)); + } + + // Validate button (green) + Button btnValidate = findViewById(R.id.validateCartBtn); + if (btnValidate != null) { + btnValidate.setOnClickListener(v -> CartActionHelper.validateCart(cartList, this)); + } } @Override @@ -194,8 +213,6 @@ public class MainActivity extends AppCompatActivity { homeLayout.setVisibility(View.GONE); categoryItemsLayout.setVisibility(View.VISIBLE); - updateActionButton(false); - gridPieces.removeAllViews(); // Calculate item width for a 4-column grid @@ -265,8 +282,6 @@ public class MainActivity extends AppCompatActivity { public void showHome() { categoryItemsLayout.setVisibility(View.GONE); homeLayout.setVisibility(View.VISIBLE); - - updateActionButton(true); } private void loadMainImage() { @@ -274,31 +289,6 @@ public class MainActivity extends AppCompatActivity { ImageLoader.loadImage(mainImage, "_velo", 800,800); } - public void emptyCart(View view) { - CartActionHelper.emptyCart(cartList, this); - } - - public void validateCart(View view) { - CartActionHelper.validateCart(cartList, this); - } - - public void updateActionButton(boolean isHome) { - Button btn = findViewById(R.id.validateCartBtn); - if (btn == null) return; - - if (isHome) { - // Home mode : validate button - btn.setText(getString(R.string.cart_validate_btn)); - btn.setBackgroundColor(Color.parseColor("#43A047")); // Vert - btn.setOnClickListener(v -> validateCart(v)); - } else { - // Category mode : back button - btn.setText(getString(R.string.cart_back_btn)); - btn.setBackgroundColor(Color.parseColor("#1E88E5")); // Bleu - btn.setOnClickListener(v -> showHome()); - } - } - private int dpToPx(int dp) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics()); } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index ab6fb4f..4104c11 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,58 +1,72 @@ + android:background="#ffffff" + android:baselineAligned="false"> + + + + + android:visibility="gone"> - - - - - - - - - - - - - + android:layout_height="wrap_content" + android:columnCount="4" /> + + + + diff --git a/app/src/main/res/layout/partial_cart.xml b/app/src/main/res/layout/partial_cart.xml index 3d00b25..da487cc 100644 --- a/app/src/main/res/layout/partial_cart.xml +++ b/app/src/main/res/layout/partial_cart.xml @@ -1,6 +1,7 @@ -