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 0000000000000000000000000000000000000000..7f621485f0d136e35e6f00681fc51c5ab72f5c18 --- /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 2f34f5d328a7d008a15f55b16c3f28ba143185a2..eb1466fad19bc082ea2ac396bf32e569a0be1bd0 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 a58a3b1147c35ae921a2734732e1598c25484b88..5541627a30384a1e13f7d72fe23bdf617cdfb885 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 72ce359cf47332230aae5ac2207257ccd38836dd..3ba67b5954790e9bf4993a108052e70a4acd2aff 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 d8a252a05c14a756536e887cb40869f7aeaf5329..8ab576cf2588494eb41e2346790a2e9ac03f464c 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 566768b274fc51b44ca7e390df90ad8e3a11363e..0fd135f482517650fdaa788d8ac73a97abc040d8 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 6de6104c6dc688a950fca13e139bd979f92ca6cd..cf58e4252cf5b4ae99c6ebe923c6fe9fe31d6913 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 323c9f6dfbcb0e1bebe357ccf8f23d06089073c1..f35d5e16618c75f5a6e313d88467e88efe577364 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 8e6b9948a743548a80078a3247479f72d740961e..1f1d4ab818e044c7c09ec7632d7954420a9a876f 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 2ec099dc0c4f4249fbb56d753a7e5ac50a7390a2..8f5ac5cb1f3c17f6a14c77d2da33bc44e1a93658 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 b16973899ed57e791d720c887ccb71158674108d..90971bf45e47c55593fdf51e569ac84969392bf1 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 011006125f3f8eab177fda5755ce1a653ea55c65..565b2ebc08276253b3a3b2be64afabccb4aecd86 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 004f15c55d0c3e97044d3b6db8cb35a8efc1f03f..9ee913288e7c2468b07131fa4beb80f1b2f59027 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 7920fa9a7536327f2103edd92a2eb8998dfcae0b..30b51c47096f8220520c739219bdd54a60909554 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 c893a88960e7ec379ca4d7b09417de802df23105..25bff74626c2931c5facefb80995e98e9cf8b506 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); } }