From d2b439606131a89ee56670d4f4dfe66161dd64d7 Mon Sep 17 00:00:00 2001 From: Fabio Heyming <fabio.heyming@web.de> Date: Sat, 10 Jun 2023 02:42:22 +0200 Subject: [PATCH] Added csv save --- .../example/mampfmobil/ui/CSVFileHelper.java | 53 ++++++++++ .../mampfmobil/ui/Classes/Bestellung.java | 2 +- .../mampfmobil/ui/Classes/Customer.java | 5 + .../mampfmobil/ui/Classes/Deliverer.java | 6 ++ .../example/mampfmobil/ui/Classes/Item.java | 6 ++ .../Recyclerviewadapter_ShoppingCart.java | 4 +- .../mampfmobil/ui/Classes/ShopItem.java | 4 + .../mampfmobil/ui/Classes/Supplier.java | 7 +- .../mampfmobil/ui/CustomerActivity.java | 24 ++--- .../example/mampfmobil/ui/DecideFragment.java | 2 - .../mampfmobil/ui/DelivererActivity.java | 6 ++ .../com/example/mampfmobil/ui/MampfMobil.java | 97 +++++++++++++++++-- .../mampfmobil/ui/SupplierActivity.java | 6 ++ .../ui/customer/CustomerOrdersFragment.java | 6 +- .../CustomerShoppingCartFragment.java | 4 +- 15 files changed, 197 insertions(+), 35 deletions(-) create mode 100644 app/src/main/java/com/example/mampfmobil/ui/CSVFileHelper.java diff --git a/app/src/main/java/com/example/mampfmobil/ui/CSVFileHelper.java b/app/src/main/java/com/example/mampfmobil/ui/CSVFileHelper.java new file mode 100644 index 0000000..7f62148 --- /dev/null +++ b/app/src/main/java/com/example/mampfmobil/ui/CSVFileHelper.java @@ -0,0 +1,53 @@ +package com.example.mampfmobil.ui; + +import android.content.Context; + +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; + +public class CSVFileHelper { + public static void saveCSVFile(Context context, String fileName, String csvData) { + FileOutputStream fos = null; + try { + fos = context.openFileOutput(fileName, Context.MODE_PRIVATE); + fos.write(csvData.getBytes()); + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (fos != null) { + try { + fos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + public static String loadCSVFile(Context context, String fileName) { + FileInputStream fis = null; + try { + fis = context.openFileInput(fileName); + BufferedReader reader = new BufferedReader(new InputStreamReader(fis)); + StringBuilder sb = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + sb.append(line).append("\n"); + } + return sb.toString(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + if (fis != null) { + try { + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return null; + } +} diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/Bestellung.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/Bestellung.java index 2f34f5d..eb1466f 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/Classes/Bestellung.java +++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/Bestellung.java @@ -12,7 +12,7 @@ public class Bestellung { static int idCounter = 1; public boolean delivery = true; - public Deliverer deliverer = null; + public Deliverer deliverer = null; public String state; public Supplier supplier; diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/Customer.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/Customer.java index a58a3b1..5541627 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/Classes/Customer.java +++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/Customer.java @@ -15,6 +15,9 @@ public class Customer { public Vector<ShopItem> favoriten; public Vector<BestellungsTeil> shoppingCart; + public static int idCounter = 1; + public int id; + public void addBestellung(Bestellung bestellung){ if (bestellungen == null) { bestellungen = new Vector<>(); @@ -29,6 +32,8 @@ public class Customer { favoriten = new Vector<>(); shoppingCart = new Vector<>(); bestellungen = new Vector<>(); + id = idCounter; + idCounter++; } public void addToShoppingCart(BestellungsTeil bt){ diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/Deliverer.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/Deliverer.java index 72ce359..3ba67b5 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/Classes/Deliverer.java +++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/Deliverer.java @@ -5,9 +5,15 @@ public class Deliverer { public String nachname; public String adresse; + public static int idCounter = 1; + public int id; + + public Deliverer(String vorname,String nachname,String adresse) { this.vorname = vorname; this.nachname = nachname; this.adresse = adresse; + id = idCounter; + idCounter++; } } diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/Item.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/Item.java index d8a252a..8ab576c 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/Classes/Item.java +++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/Item.java @@ -1,12 +1,18 @@ package com.example.mampfmobil.ui.Classes; public class Item { + public static int idCounter = 1; + public int id; public String name; public double price; public Supplier supplier; + + public Item(String name, double price,Supplier supplier){ this.name = name; this.price = price; this.supplier = supplier; + id = idCounter; + idCounter++; } } diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_ShoppingCart.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_ShoppingCart.java index 566768b..0fd135f 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_ShoppingCart.java +++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_ShoppingCart.java @@ -62,7 +62,7 @@ public class Recyclerviewadapter_ShoppingCart extends RecyclerView.Adapter<Recyc public void afterTextChanged(Editable s) { if(!holder.inputAmount.getText().toString().equals("")){ - Log.d("myTag", "Habe bn bei"+ position); + shoppingCart.get(position).quantity = Integer.parseInt(holder.inputAmount.getText().toString()); holder.tvSum.setText(String.format("%.2f", (shoppingCart.get(position).item.price * shoppingCart.get(position).quantity)) + " €"); CustomerShoppingCartFragment.setSum(); @@ -91,7 +91,7 @@ public class Recyclerviewadapter_ShoppingCart extends RecyclerView.Adapter<Recyc shoppingCart.remove(position); CustomerShoppingCartFragment.setSum(); notifyItemRemoved(position); - Log.d("myTag", "Habe soooo viel"+ getItemCount()); + notifyDataSetChanged(); } diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/ShopItem.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/ShopItem.java index 6de6104..cf58e42 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/Classes/ShopItem.java +++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/ShopItem.java @@ -3,9 +3,13 @@ package com.example.mampfmobil.ui.Classes; public class ShopItem { public Item item; public int quantity; + public static int idCounter = 1; + public int id; public ShopItem(Item item, int quantity){ this.item = item; this.quantity = quantity; + id = idCounter; + idCounter++; } } diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/Supplier.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/Supplier.java index 323c9f6..f35d5e1 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/Classes/Supplier.java +++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/Supplier.java @@ -5,13 +5,18 @@ import java.util.Vector; public class Supplier { public String name; - String address; + public String address; + + public static int idCounter = 1; + public int id; public Vector<ShopItem> shopItems = new Vector<>(); public Supplier(String name,String adresse) { this.name = name; this.address = adresse; + id = idCounter; + idCounter++; } public void itemAdd(String name,int quantity, double price){ diff --git a/app/src/main/java/com/example/mampfmobil/ui/CustomerActivity.java b/app/src/main/java/com/example/mampfmobil/ui/CustomerActivity.java index 8e6b994..1f1d4ab 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/CustomerActivity.java +++ b/app/src/main/java/com/example/mampfmobil/ui/CustomerActivity.java @@ -80,13 +80,7 @@ private ActivityCustomerBinding binding; } } } - Log.d("myTag", "SI no search "); - for(ShopItem sI: shopItemList){ - Log.d("myTag", "SI no search "+ sI.item.name); - } - for(ShopItem si:MampfMobil.currentCustomer.favoriten){ - Log.d("myTag", "FAV "+ si.item.name); - } + } public static void setupShop(String inputString){ shopItemList.clear(); @@ -105,10 +99,7 @@ private ActivityCustomerBinding binding; } } } - Log.d("myTag", "SI search: "); - for(ShopItem sI: shopItemList){ - Log.d("myTag", "SI search: "+ sI.item.name); - } + } @@ -129,10 +120,7 @@ private ActivityCustomerBinding binding; } } } - Log.d("myTag", "SI search: "); - for(ShopItem sI: shopItemList){ - Log.d("myTag", "SI search: "+ sI.item.name); - } + } public static void sortShop(String inputString, Context context) { @@ -163,4 +151,10 @@ private ActivityCustomerBinding binding; } } + + @Override + protected void onDestroy() { + Log.d("myTag", "This ONDESTROY CUSTOMER"); + super.onDestroy(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/mampfmobil/ui/DecideFragment.java b/app/src/main/java/com/example/mampfmobil/ui/DecideFragment.java index 2ec099d..8f5ac5c 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/DecideFragment.java +++ b/app/src/main/java/com/example/mampfmobil/ui/DecideFragment.java @@ -142,11 +142,9 @@ public class DecideFragment extends Fragment { if (enabled) { - Log.d("myTag", "YES"); // Dark Mode aktivieren AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); } else { - Log.d("myTag", "NO "); // Dark Mode deaktivieren AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO); } diff --git a/app/src/main/java/com/example/mampfmobil/ui/DelivererActivity.java b/app/src/main/java/com/example/mampfmobil/ui/DelivererActivity.java index b169738..90971bf 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/DelivererActivity.java +++ b/app/src/main/java/com/example/mampfmobil/ui/DelivererActivity.java @@ -47,4 +47,10 @@ private ActivityDelivererBinding binding; startActivity(intent); return true; // true zurückgeben, um anzugeben, dass die Aktion behandelt wurde } + + @Override + protected void onDestroy() { + Log.d("myTag", "This ONDESTROYDELIVERER"); + super.onDestroy(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/mampfmobil/ui/MampfMobil.java b/app/src/main/java/com/example/mampfmobil/ui/MampfMobil.java index 0110061..565b2eb 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/MampfMobil.java +++ b/app/src/main/java/com/example/mampfmobil/ui/MampfMobil.java @@ -23,7 +23,7 @@ public class MampfMobil { public static Vector<Supplier> suppliers; public static Supplier currentSupplier; - Context context; + static Context context; @@ -106,6 +106,7 @@ public class MampfMobil { deliverers.add(new Deliverer("", "", "")); suppliers.add(new Supplier("", "")); isInitialized = true; + savePersistant(); } } @@ -187,12 +188,96 @@ public class MampfMobil { } - public static int value = 10; - public static int getVall(){ - return value; + + public static void savePersistant(){ + + //ID,VORNAME,NACHNAME,ADRESSE + String csvDeliverer = ""; + for(Deliverer d:MampfMobil.deliverers){ + csvDeliverer = csvDeliverer + d.id +","+ d.vorname +","+ d.nachname +","+ d.adresse + "\n"; + } + String fileName = "deliverer.csv"; + Log.d("myTag", csvDeliverer); + CSVFileHelper.saveCSVFile(context, fileName, csvDeliverer); + + + //ID,NAME,ADRESSE + String csvSupplier = ""; + for(Supplier s:MampfMobil.suppliers){ + csvSupplier = csvSupplier + s.id +","+ s.name +","+s.address + "\n"; + } + String fileName2 = "supplier.csv"; + Log.d("myTag", csvSupplier); + CSVFileHelper.saveCSVFile(context, fileName2, csvSupplier); + + + //ID,VORNAME,NACHNAME,ADRESSE + String csvCustomer = ""; + for(Customer c:MampfMobil.customers){ + csvCustomer = csvCustomer + c.id +","+ c.vorname +","+ c.nachname +","+ c.adresse + "\n"; + } + String fileName3 = "customer.csv"; + Log.d("myTag", csvCustomer); + CSVFileHelper.saveCSVFile(context, fileName3, csvCustomer); + + + + // ID,NAME,PREIS,SUPPLIER-ID + String csvItems = ""; + for(Supplier s:MampfMobil.suppliers){ + for(ShopItem sI: s.shopItems){ + csvItems = csvItems + sI.item.id + "," + sI.item.name + "," + sI.item.price + "," + sI.item.supplier.id + "\n"; + } + } + String fileName4 = "items.csv"; + Log.d("myTag", csvItems); + CSVFileHelper.saveCSVFile(context, fileName4, csvItems); + + + + + // ID, ITEM-ID, AMOUNT + String csvShopItems = ""; + for(Supplier s:MampfMobil.suppliers){ + for(ShopItem sI: s.shopItems){ + csvShopItems = csvShopItems + sI.id + "," + sI.item.id + "," + sI.quantity + "\n"; + } + } + String fileName5 = "shopItems.csv"; + Log.d("myTag", csvShopItems); + CSVFileHelper.saveCSVFile(context, fileName5, csvShopItems); + + + // ID,CUSTOMER_ID, DELIVERY(TRUE/FALSE),STATE,DELIVERER-ID(0 when none),SUPPLIER-ID + // bestellungsteil besteht aus ITEM-ID1, QUANTITY1, ITEM-ID2, QUANTITY2, ITEM-ID3, QUANTITY3 .... \n + String csvBestellungen = ""; + for(Customer c:MampfMobil.customers){ + for(Bestellung b: c.bestellungen){ + csvBestellungen = csvBestellungen + b.id + ","+ b.costumer.id+ "," + b.delivery + "," + b.state + ","; + if(b.deliverer == null){ + csvBestellungen = csvBestellungen + "0,"; + } + else{ + csvBestellungen = csvBestellungen + b.deliverer.id + ","; + } + csvBestellungen = csvBestellungen + b.supplier.id + "\n"; + + for (BestellungsTeil bT: b.bestellungsTeile){ + csvBestellungen = csvBestellungen + bT.item.id + "," + bT.quantity + "\n"; + } + } + } + String fileName6 = "bestellungen.csv"; + Log.d("myTag", csvBestellungen); + CSVFileHelper.saveCSVFile(context, fileName6, csvBestellungen); + + } - public static void setVall(int i){ - value = i; + + public static void takefromPersistance(){ + String fileName = "data.csv"; + String csvData = CSVFileHelper.loadCSVFile(context, fileName); + Log.d("myTag", "This ONDESTROY"); } } diff --git a/app/src/main/java/com/example/mampfmobil/ui/SupplierActivity.java b/app/src/main/java/com/example/mampfmobil/ui/SupplierActivity.java index 004f15c..9ee9132 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/SupplierActivity.java +++ b/app/src/main/java/com/example/mampfmobil/ui/SupplierActivity.java @@ -45,4 +45,10 @@ public class SupplierActivity extends AppCompatActivity { startActivity(intent); return true; // true zurückgeben, um anzugeben, dass die Aktion behandelt wurde } + + @Override + protected void onDestroy() { + Log.d("myTag", "This ONDESTROYDELIVERER"); + super.onDestroy(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/mampfmobil/ui/customer/CustomerOrdersFragment.java b/app/src/main/java/com/example/mampfmobil/ui/customer/CustomerOrdersFragment.java index 7920fa9..30b51c4 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/customer/CustomerOrdersFragment.java +++ b/app/src/main/java/com/example/mampfmobil/ui/customer/CustomerOrdersFragment.java @@ -36,11 +36,7 @@ public class CustomerOrdersFragment extends Fragment { RecyclerView recyclerView = rootView.findViewById(R.id.myOrdersRecycler); - if (recyclerView == null) { - Log.d("myTag", "This is my Null"); - } else { - Log.d("myTag", "This is not Null"); - } + // Set the layout manager LinearLayoutManager layoutManager = new LinearLayoutManager(requireActivity()); recyclerView.setLayoutManager(layoutManager); diff --git a/app/src/main/java/com/example/mampfmobil/ui/customer/CustomerShoppingCartFragment.java b/app/src/main/java/com/example/mampfmobil/ui/customer/CustomerShoppingCartFragment.java index c893a88..25bff74 100644 --- a/app/src/main/java/com/example/mampfmobil/ui/customer/CustomerShoppingCartFragment.java +++ b/app/src/main/java/com/example/mampfmobil/ui/customer/CustomerShoppingCartFragment.java @@ -70,15 +70,13 @@ public class CustomerShoppingCartFragment extends Fragment { if(b.supplier == bT.item.supplier && b.state.equals(v.getContext().getString(R.string.ordered)) && !switchDelivery.isChecked() == b.delivery){ b.addBestellungsteil(bT); exist = true; - Log.d("myTag", "Added "+ bT.item.name); - } + } } if(!exist){ MampfMobil.currentCustomer.addBestellung(new Bestellung(bT.item.supplier,!switchDelivery.isChecked(), rootView.getContext())); for(Bestellung b:MampfMobil.currentCustomer.bestellungen){ if(b.supplier == bT.item.supplier && b.state.equals(v.getContext().getString(R.string.ordered))){ b.addBestellungsteil(bT); - Log.d("myTag", "created "+ bT.item.name); } } -- GitLab