From 7c2766f9ff3fadf52df4e6c7340e79134da3a40e Mon Sep 17 00:00:00 2001
From: Fabio Heyming <fabio.heyming@web.de>
Date: Fri, 2 Jun 2023 01:43:26 +0200
Subject: [PATCH] Added deliverer

---
 .../Recyclerviewadapter_Supplier_Orders.java  |  12 +-
 ...lerviewadapter_deliverer_activeOrders.java | 121 +++++++++++++++++
 ...lerviewadapter_deliverer_closedOrders.java | 121 +++++++++++++++++
 .../Recyclerviewadapter_deliverer_orders.java | 123 ++++++++++++++++++
 .../DelivererActiveOrdersFragment.java        |  40 +++++-
 .../DelivererClosedOrdersFragment.java        |  40 +++++-
 .../DelivererOpenOrdersFragment.java          |  42 +++++-
 .../res/layout/fragment_customer_shop.xml     |   9 +-
 .../fragment_deliverer_active_orders.xml      |  31 +++--
 .../fragment_deliverer_closed_orders.xml      |  31 +++--
 .../layout/fragment_deliverer_open_orders.xml |  21 ++-
 .../recyclerview_deliverer_orderrow.xml       | 102 +++++++++++++++
 12 files changed, 658 insertions(+), 35 deletions(-)
 create mode 100644 app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_activeOrders.java
 create mode 100644 app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_closedOrders.java
 create mode 100644 app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_orders.java
 create mode 100644 app/src/main/res/layout/recyclerview_deliverer_orderrow.xml

diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_Supplier_Orders.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_Supplier_Orders.java
index 0768bb4..792f3ba 100644
--- a/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_Supplier_Orders.java
+++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_Supplier_Orders.java
@@ -62,7 +62,7 @@ public class Recyclerviewadapter_Supplier_Orders extends RecyclerView.Adapter<Re
         if(bestellungen.get(position).state.equals("ordered")){
             holder.readyButton.setText("ready");
         }
-        else if(bestellungen.get(position).state.equals("ready")){
+        else if(bestellungen.get(position).state.equals("ready for pickup")){
             holder.readyButton.setText("picked");
         }
         else{
@@ -92,12 +92,18 @@ public class Recyclerviewadapter_Supplier_Orders extends RecyclerView.Adapter<Re
         holder.readyButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                if (bestellungen.get(position).state.equals("ready")) {
+                if (bestellungen.get(position).state.equals("ready for pickup")) {
                     bestellungen.get(position).state = "picked";
                     notifyItemRangeChanged(position, getItemCount());
                 }
                 if (bestellungen.get(position).state.equals("ordered")) {
-                    bestellungen.get(position).state = "ready";
+                    if(bestellungen.get(position).delivery){
+                        bestellungen.get(position).state = "ready for transportation";
+                    }
+                    else{
+                        bestellungen.get(position).state = "ready for pickup";
+                    }
+
                     notifyItemRangeChanged(position, getItemCount());
                 }
             }
diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_activeOrders.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_activeOrders.java
new file mode 100644
index 0000000..77e7fd2
--- /dev/null
+++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_activeOrders.java
@@ -0,0 +1,121 @@
+package com.example.mampfmobil.ui.Classes;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.mampfmobil.R;
+import com.example.mampfmobil.ui.MampfMobil;
+import com.example.mampfmobil.ui.deliverer.DelivererOpenOrdersFragment;
+
+import java.util.Vector;
+
+public class Recyclerviewadapter_deliverer_activeOrders extends RecyclerView.Adapter<Recyclerviewadapter_deliverer_activeOrders.MyViewHolder>{
+
+
+    Context context;
+    Vector<Bestellung> bestellungen = new Vector<>();
+
+    public Recyclerviewadapter_deliverer_activeOrders(Context context, Vector<Bestellung> bestellungen ){
+        this.context =context;
+        this.bestellungen = bestellungen;
+    }
+    @NonNull
+    @Override
+    public Recyclerviewadapter_deliverer_activeOrders.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        LayoutInflater inflator = LayoutInflater.from(context);
+        View view = inflator.inflate(R.layout.recyclerview_deliverer_orderrow,parent,false);
+
+        return new Recyclerviewadapter_deliverer_activeOrders.MyViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull Recyclerviewadapter_deliverer_activeOrders.MyViewHolder holder, int position) {
+        holder.tvID.setText(String.valueOf("# " + bestellungen.get(position).id));
+        holder.tvState.setText(bestellungen.get(position).state);
+
+        if(bestellungen.get(position).state.equals("In transportation")){
+            holder.readyButton.setText("delivered");
+        }
+        else if(bestellungen.get(position).state.equals("ready for transportation/deliverer found")){
+            holder.readyButton.setText("In transportation");
+        }
+        else if(bestellungen.get(position).state.equals("ready for transportation")){
+            holder.readyButton.setText("reserve");
+        }
+        else{
+            holder.readyButton.setVisibility(View.INVISIBLE);
+        }
+
+
+
+        holder.readyButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+                if (bestellungen.get(position).state.equals("In transportation")) {
+
+                    bestellungen.get(position).state = "delivered";
+                    int adapterPosition = holder.getAdapterPosition();
+                    if (adapterPosition != RecyclerView.NO_POSITION) {
+                        removeItem(adapterPosition);
+                    }
+                    DelivererOpenOrdersFragment.setVec();
+                    notifyItemRangeChanged(position, getItemCount());
+                }
+                if (bestellungen.get(position).state.equals("ready for transportation/deliverer found")) {
+                    bestellungen.get(position).state = "In transportation";
+                    DelivererOpenOrdersFragment.setVec();
+                    notifyItemRangeChanged(position, getItemCount());
+                    return;
+                }
+                if (bestellungen.get(position).state.equals("ready for transportation")) {
+                    bestellungen.get(position).state = "ready for pickup/deliverer found";
+                    bestellungen.get(position).deliverer = MampfMobil.currentDeliverer;
+                    int adapterPosition = holder.getAdapterPosition();
+                    if (adapterPosition != RecyclerView.NO_POSITION) {
+                        removeItem(adapterPosition);
+                    }
+                    DelivererOpenOrdersFragment.setVec();
+                    notifyItemRangeChanged(position, getItemCount());
+                    return;
+                }
+            }
+        });
+
+    }
+
+    public void removeItem(int position) {
+        bestellungen.remove(position);
+        notifyItemRemoved(position);
+        notifyItemRangeChanged(position, getItemCount());
+    }
+
+    @Override
+    public int getItemCount() {
+        return bestellungen.size();
+    }
+
+    public static class MyViewHolder extends RecyclerView.ViewHolder {
+
+        TextView tvID, tvDelivery,tvState,tvTotalCost;
+        RecyclerView recyclerViewOrders;
+        Button readyButton;
+        public MyViewHolder(@NonNull View itemView) {
+            super(itemView);
+
+            tvID = itemView.findViewById(R.id.textViewID);;
+            tvState = itemView.findViewById(R.id.textViewState);
+            tvDelivery = itemView.findViewById(R.id.textViewDelivery);
+            recyclerViewOrders =itemView.findViewById(R.id.recyclerViewOrders);
+            tvTotalCost =itemView.findViewById(R.id.textViewTotalCost);
+            readyButton = itemView.findViewById(R.id.buttonReady);
+        }
+    }
+}
diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_closedOrders.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_closedOrders.java
new file mode 100644
index 0000000..96f8dfb
--- /dev/null
+++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_closedOrders.java
@@ -0,0 +1,121 @@
+package com.example.mampfmobil.ui.Classes;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.mampfmobil.R;
+import com.example.mampfmobil.ui.MampfMobil;
+import com.example.mampfmobil.ui.deliverer.DelivererOpenOrdersFragment;
+
+import java.util.Vector;
+
+public class Recyclerviewadapter_deliverer_closedOrders extends RecyclerView.Adapter<Recyclerviewadapter_deliverer_closedOrders.MyViewHolder>{
+
+
+    Context context;
+    Vector<Bestellung> bestellungen = new Vector<>();
+
+    public Recyclerviewadapter_deliverer_closedOrders(Context context, Vector<Bestellung> bestellungen ){
+        this.context =context;
+        this.bestellungen = bestellungen;
+    }
+    @NonNull
+    @Override
+    public Recyclerviewadapter_deliverer_closedOrders.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        LayoutInflater inflator = LayoutInflater.from(context);
+        View view = inflator.inflate(R.layout.recyclerview_deliverer_orderrow,parent,false);
+
+        return new Recyclerviewadapter_deliverer_closedOrders.MyViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull Recyclerviewadapter_deliverer_closedOrders.MyViewHolder holder, int position) {
+        holder.tvID.setText(String.valueOf("# " + bestellungen.get(position).id));
+        holder.tvState.setText(bestellungen.get(position).state);
+
+        if(bestellungen.get(position).state.equals("In transportation")){
+            holder.readyButton.setText("delivered");
+        }
+        else if(bestellungen.get(position).state.equals("ready for transportation/deliverer found")){
+            holder.readyButton.setText("In transportation");
+        }
+        else if(bestellungen.get(position).state.equals("ready for transportation")){
+            holder.readyButton.setText("reserve");
+        }
+        else{
+            holder.readyButton.setVisibility(View.INVISIBLE);
+        }
+
+
+
+        holder.readyButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+                if (bestellungen.get(position).state.equals("In transportation")) {
+
+                    bestellungen.get(position).state = "delivered";
+                    int adapterPosition = holder.getAdapterPosition();
+                    if (adapterPosition != RecyclerView.NO_POSITION) {
+                        removeItem(adapterPosition);
+                    }
+                    DelivererOpenOrdersFragment.setVec();
+                    notifyItemRangeChanged(position, getItemCount());
+                }
+                if (bestellungen.get(position).state.equals("ready for transportation/deliverer found")) {
+                    bestellungen.get(position).state = "In transportation";
+                    DelivererOpenOrdersFragment.setVec();
+                    notifyItemRangeChanged(position, getItemCount());
+                    return;
+                }
+                if (bestellungen.get(position).state.equals("ready for transportation")) {
+                    bestellungen.get(position).state = "ready for pickup/deliverer found";
+                    bestellungen.get(position).deliverer = MampfMobil.currentDeliverer;
+                    int adapterPosition = holder.getAdapterPosition();
+                    if (adapterPosition != RecyclerView.NO_POSITION) {
+                        removeItem(adapterPosition);
+                    }
+                    DelivererOpenOrdersFragment.setVec();
+                    notifyItemRangeChanged(position, getItemCount());
+                    return;
+                }
+            }
+        });
+
+    }
+
+    public void removeItem(int position) {
+        bestellungen.remove(position);
+        notifyItemRemoved(position);
+        notifyItemRangeChanged(position, getItemCount());
+    }
+
+    @Override
+    public int getItemCount() {
+        return bestellungen.size();
+    }
+
+    public static class MyViewHolder extends RecyclerView.ViewHolder {
+
+        TextView tvID, tvDelivery,tvState,tvTotalCost;
+        RecyclerView recyclerViewOrders;
+        Button readyButton;
+        public MyViewHolder(@NonNull View itemView) {
+            super(itemView);
+
+            tvID = itemView.findViewById(R.id.textViewID);;
+            tvState = itemView.findViewById(R.id.textViewState);
+            tvDelivery = itemView.findViewById(R.id.textViewDelivery);
+            recyclerViewOrders =itemView.findViewById(R.id.recyclerViewOrders);
+            tvTotalCost =itemView.findViewById(R.id.textViewTotalCost);
+            readyButton = itemView.findViewById(R.id.buttonReady);
+        }
+    }
+}
diff --git a/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_orders.java b/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_orders.java
new file mode 100644
index 0000000..20ad005
--- /dev/null
+++ b/app/src/main/java/com/example/mampfmobil/ui/Classes/Recyclerviewadapter_deliverer_orders.java
@@ -0,0 +1,123 @@
+package com.example.mampfmobil.ui.Classes;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.mampfmobil.R;
+import com.example.mampfmobil.ui.MampfMobil;
+import com.example.mampfmobil.ui.customer.CustomerShoppingCartFragment;
+import com.example.mampfmobil.ui.deliverer.DelivererOpenOrdersFragment;
+
+import java.util.Vector;
+
+public class Recyclerviewadapter_deliverer_orders extends RecyclerView.Adapter<Recyclerviewadapter_deliverer_orders.MyViewHolder>{
+
+
+    Context context;
+    Vector<Bestellung> bestellungen = new Vector<>();
+
+    public Recyclerviewadapter_deliverer_orders(Context context,Vector<Bestellung> bestellungen ){
+        this.context =context;
+        this.bestellungen = bestellungen;
+    }
+    @NonNull
+    @Override
+    public Recyclerviewadapter_deliverer_orders.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        LayoutInflater inflator = LayoutInflater.from(context);
+        View view = inflator.inflate(R.layout.recyclerview_deliverer_orderrow,parent,false);
+
+        return new Recyclerviewadapter_deliverer_orders.MyViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull Recyclerviewadapter_deliverer_orders.MyViewHolder holder, int position) {
+        holder.tvID.setText(String.valueOf("# " + bestellungen.get(position).id));
+        holder.tvState.setText(bestellungen.get(position).state);
+
+        if(bestellungen.get(position).state.equals("In transportation")){
+            holder.readyButton.setText("delivered");
+        }
+        else if(bestellungen.get(position).state.equals("ready for transportation/deliverer found")){
+            holder.readyButton.setText("In transportation");
+        }
+        else if(bestellungen.get(position).state.equals("ready for transportation")){
+            holder.readyButton.setText("reserve");
+        }
+        else{
+            holder.readyButton.setVisibility(View.INVISIBLE);
+        }
+
+
+
+        holder.readyButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
+                if (bestellungen.get(position).state.equals("In transportation")) {
+
+                    bestellungen.get(position).state = "delivered";
+                    int adapterPosition = holder.getAdapterPosition();
+                    if (adapterPosition != RecyclerView.NO_POSITION) {
+                        removeItem(adapterPosition);
+                    }
+                    DelivererOpenOrdersFragment.setVec();
+                    notifyItemRangeChanged(position, getItemCount());
+                }
+                if (bestellungen.get(position).state.equals("ready for transportation/deliverer found")) {
+                    bestellungen.get(position).state = "In transportation";
+                    DelivererOpenOrdersFragment.setVec();
+                    notifyItemRangeChanged(position, getItemCount());
+                    return;
+                }
+                if (bestellungen.get(position).state.equals("ready for transportation")) {
+                    bestellungen.get(position).state = "ready for transportation/deliverer found";
+                    bestellungen.get(position).deliverer = MampfMobil.currentDeliverer;
+                    int adapterPosition = holder.getAdapterPosition();
+                    if (adapterPosition != RecyclerView.NO_POSITION) {
+                        removeItem(adapterPosition);
+                    }
+                    DelivererOpenOrdersFragment.setVec();
+                    notifyItemRangeChanged(position, getItemCount());
+                    return;
+                }
+            }
+        });
+
+    }
+
+    public void removeItem(int position) {
+        bestellungen.remove(position);
+        notifyItemRemoved(position);
+        notifyItemRangeChanged(position, getItemCount());
+    }
+
+    @Override
+    public int getItemCount() {
+        return bestellungen.size();
+    }
+
+    public static class MyViewHolder extends RecyclerView.ViewHolder {
+
+        TextView tvID, tvDelivery,tvState,tvTotalCost;
+        RecyclerView recyclerViewOrders;
+        Button readyButton;
+        public MyViewHolder(@NonNull View itemView) {
+            super(itemView);
+
+            tvID = itemView.findViewById(R.id.textViewID);;
+            tvState = itemView.findViewById(R.id.textViewState);
+            tvDelivery = itemView.findViewById(R.id.textViewDelivery);
+            recyclerViewOrders =itemView.findViewById(R.id.recyclerViewOrders);
+            tvTotalCost =itemView.findViewById(R.id.textViewTotalCost);
+            readyButton = itemView.findViewById(R.id.buttonReady);
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererActiveOrdersFragment.java b/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererActiveOrdersFragment.java
index 7238952..7398ff4 100644
--- a/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererActiveOrdersFragment.java
+++ b/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererActiveOrdersFragment.java
@@ -9,16 +9,26 @@ import android.os.Bundle;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
 import com.example.mampfmobil.R;
+import com.example.mampfmobil.ui.Classes.Bestellung;
+import com.example.mampfmobil.ui.Classes.Customer;
+import com.example.mampfmobil.ui.Classes.Recyclerviewadapter_deliverer_activeOrders;
+import com.example.mampfmobil.ui.Classes.Recyclerviewadapter_deliverer_closedOrders;
+import com.example.mampfmobil.ui.MampfMobil;
+
+import java.util.Vector;
 
 public class DelivererActiveOrdersFragment extends Fragment {
 
     private DelivererActiveOrdersViewModel mViewModel;
+    static Vector<Bestellung> activeOrders = new Vector<>();
 
     public static DelivererActiveOrdersFragment newInstance() {
         return new DelivererActiveOrdersFragment();
@@ -27,7 +37,35 @@ public class DelivererActiveOrdersFragment extends Fragment {
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                              @Nullable Bundle savedInstanceState) {
-        return inflater.inflate(R.layout.fragment_deliverer_active_orders, container, false);
+        View rootView = inflater.inflate(R.layout.fragment_deliverer_active_orders, container, false);
+
+        RecyclerView recyclerView = rootView.findViewById(R.id.mySupplierOrdersRecycler);
+
+        AppCompatActivity activity = (AppCompatActivity) requireActivity();
+        // Enable the back button in the ActionBar
+        ActionBar actionBar = activity.getSupportActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+
+        LinearLayoutManager layoutManager = new LinearLayoutManager(requireActivity());
+        recyclerView.setLayoutManager(layoutManager);
+        setVec();
+        Recyclerviewadapter_deliverer_activeOrders adapter = new Recyclerviewadapter_deliverer_activeOrders(requireContext(),activeOrders);
+        recyclerView.setAdapter(adapter);
+        adapter.notifyDataSetChanged();
+        return rootView;
+    }
+
+    public static void setVec(){
+        activeOrders = new Vector<>();
+        for(Customer c: MampfMobil.customers){
+            for(Bestellung b:c.bestellungen){
+                if((b.state.equals("ready for transportation/deliverer found") || b.state.equals("In transportation")) && b.delivery){
+                    activeOrders.add(b);
+                }
+            }
+        }
     }
 
     @Override
diff --git a/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererClosedOrdersFragment.java b/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererClosedOrdersFragment.java
index 9cbe92d..84a1c7f 100644
--- a/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererClosedOrdersFragment.java
+++ b/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererClosedOrdersFragment.java
@@ -9,17 +9,27 @@ import android.os.Bundle;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
 import com.example.mampfmobil.R;
+import com.example.mampfmobil.ui.Classes.Bestellung;
+import com.example.mampfmobil.ui.Classes.Customer;
+import com.example.mampfmobil.ui.Classes.Recyclerviewadapter_deliverer_orders;
+import com.example.mampfmobil.ui.MampfMobil;
+
+import java.util.Vector;
 
 public class DelivererClosedOrdersFragment extends Fragment {
 
     private DelivererClosedOrdersViewModel mViewModel;
 
+    static Vector<Bestellung> closedOrders = new Vector<>();
+
     public static DelivererClosedOrdersFragment newInstance() {
         return new DelivererClosedOrdersFragment();
     }
@@ -27,7 +37,35 @@ public class DelivererClosedOrdersFragment extends Fragment {
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                              @Nullable Bundle savedInstanceState) {
-        return inflater.inflate(R.layout.fragment_deliverer_closed_orders, container, false);
+        View rootView = inflater.inflate(R.layout.fragment_deliverer_closed_orders, container, false);
+
+        RecyclerView recyclerView = rootView.findViewById(R.id.mySupplierOrdersRecycler);
+
+        AppCompatActivity activity = (AppCompatActivity) requireActivity();
+        // Enable the back button in the ActionBar
+        ActionBar actionBar = activity.getSupportActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+
+        LinearLayoutManager layoutManager = new LinearLayoutManager(requireActivity());
+        recyclerView.setLayoutManager(layoutManager);
+        setVec();
+        Recyclerviewadapter_deliverer_orders adapter = new Recyclerviewadapter_deliverer_orders(requireContext(),closedOrders);
+        recyclerView.setAdapter(adapter);
+        adapter.notifyDataSetChanged();
+        return rootView;
+    }
+
+    public static void setVec(){
+        closedOrders = new Vector<>();
+        for(Customer c: MampfMobil.customers){
+            for(Bestellung b:c.bestellungen){
+                if(b.state.equals("delivered") && b.deliverer == MampfMobil.currentDeliverer){
+                    closedOrders.add(b);
+                }
+            }
+        }
     }
 
     @Override
diff --git a/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererOpenOrdersFragment.java b/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererOpenOrdersFragment.java
index 2727ba1..d272d65 100644
--- a/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererOpenOrdersFragment.java
+++ b/app/src/main/java/com/example/mampfmobil/ui/deliverer/DelivererOpenOrdersFragment.java
@@ -9,17 +9,28 @@ import android.os.Bundle;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
 
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
 import com.example.mampfmobil.R;
+import com.example.mampfmobil.ui.Classes.Bestellung;
+import com.example.mampfmobil.ui.Classes.Customer;
+import com.example.mampfmobil.ui.Classes.Recyclerviewadapter_Supplier_Orders;
+import com.example.mampfmobil.ui.Classes.Recyclerviewadapter_deliverer_orders;
+import com.example.mampfmobil.ui.MampfMobil;
+
+import java.util.Vector;
 
 public class DelivererOpenOrdersFragment extends Fragment {
 
     private DelivererOpenOrdersViewModel mViewModel;
 
+    static Vector<Bestellung> openOrders = new Vector<>();
+
     public static DelivererOpenOrdersFragment newInstance() {
         return new DelivererOpenOrdersFragment();
     }
@@ -27,7 +38,25 @@ public class DelivererOpenOrdersFragment extends Fragment {
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                              @Nullable Bundle savedInstanceState) {
-        return inflater.inflate(R.layout.fragment_deliverer_open_orders, container, false);
+
+        View rootView = inflater.inflate(R.layout.fragment_deliverer_open_orders, container, false);
+
+        RecyclerView recyclerView = rootView.findViewById(R.id.mySupplierOrdersRecycler);
+
+        AppCompatActivity activity = (AppCompatActivity) requireActivity();
+        // Enable the back button in the ActionBar
+        ActionBar actionBar = activity.getSupportActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
+
+        LinearLayoutManager layoutManager = new LinearLayoutManager(requireActivity());
+        recyclerView.setLayoutManager(layoutManager);
+        setVec();
+        Recyclerviewadapter_deliverer_orders adapter = new Recyclerviewadapter_deliverer_orders(requireContext(),openOrders);
+        recyclerView.setAdapter(adapter);
+        adapter.notifyDataSetChanged();
+        return rootView;
     }
 
     @Override
@@ -37,4 +66,15 @@ public class DelivererOpenOrdersFragment extends Fragment {
         // TODO: Use the ViewModel
     }
 
+    public static void setVec(){
+        openOrders = new Vector<>();
+        for(Customer c: MampfMobil.customers){
+            for(Bestellung b:c.bestellungen){
+                if(b.state.equals("ready for transportation") && b.delivery){
+                    openOrders.add(b);
+                }
+            }
+        }
+    }
+
 }
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_customer_shop.xml b/app/src/main/res/layout/fragment_customer_shop.xml
index 1f47452..eeb1f67 100644
--- a/app/src/main/res/layout/fragment_customer_shop.xml
+++ b/app/src/main/res/layout/fragment_customer_shop.xml
@@ -10,8 +10,8 @@
 
     <EditText
         android:id="@+id/editTextSearch"
-        android:layout_width="248dp"
-        android:layout_height="41dp"
+        android:layout_width="231dp"
+        android:layout_height="37dp"
         android:layout_marginTop="8dp"
         android:hint="@android:string/search_go"
         android:inputType="textPersonName"
@@ -37,9 +37,10 @@
 
     <Button
         android:id="@+id/searchButton"
-        android:layout_width="117dp"
-        android:layout_height="49dp"
+        android:layout_width="109dp"
+        android:layout_height="39dp"
         android:layout_marginTop="4dp"
+        android:layout_marginEnd="4dp"
         android:text="@android:string/search_go"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toEndOf="@+id/editTextSearch"
diff --git a/app/src/main/res/layout/fragment_deliverer_active_orders.xml b/app/src/main/res/layout/fragment_deliverer_active_orders.xml
index bcd76b0..156867a 100644
--- a/app/src/main/res/layout/fragment_deliverer_active_orders.xml
+++ b/app/src/main/res/layout/fragment_deliverer_active_orders.xml
@@ -1,13 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".ui.deliverer.DelivererActiveOrdersFragment">
-
-    <TextView
+
+    <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:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:text="Active Orders Frgament" />
+        android:paddingBottom="?attr/actionBarSize"
+        tools:context=".ui.deliverer.DelivererActiveOrdersFragment">
+
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/mySupplierOrdersRecycler"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.0"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.0">
+
+        </androidx.recyclerview.widget.RecyclerView>
 
-</FrameLayout>
\ No newline at end of file
+    </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_deliverer_closed_orders.xml b/app/src/main/res/layout/fragment_deliverer_closed_orders.xml
index 9538b72..dc7f452 100644
--- a/app/src/main/res/layout/fragment_deliverer_closed_orders.xml
+++ b/app/src/main/res/layout/fragment_deliverer_closed_orders.xml
@@ -1,13 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".ui.deliverer.DelivererClosedOrdersFragment">
-
-    <TextView
+
+    <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:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:text="Closed Orders Fragment" />
+        android:paddingBottom="?attr/actionBarSize"
+        tools:context=".ui.deliverer.DelivererClosedOrdersFragment">
+
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/mySupplierOrdersRecycler"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.0"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.0">
+
+        </androidx.recyclerview.widget.RecyclerView>
 
-</FrameLayout>
\ No newline at end of file
+    </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_deliverer_open_orders.xml b/app/src/main/res/layout/fragment_deliverer_open_orders.xml
index 2aa75d0..6b9d1fa 100644
--- a/app/src/main/res/layout/fragment_deliverer_open_orders.xml
+++ b/app/src/main/res/layout/fragment_deliverer_open_orders.xml
@@ -1,13 +1,24 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout 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:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:paddingBottom="?attr/actionBarSize"
     tools:context=".ui.deliverer.DelivererOpenOrdersFragment">
 
-    <TextView
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/mySupplierOrdersRecycler"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:text="Open Orders Fragment" />
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.0"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.0">
+
+    </androidx.recyclerview.widget.RecyclerView>
 
-</FrameLayout>
\ No newline at end of file
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/recyclerview_deliverer_orderrow.xml b/app/src/main/res/layout/recyclerview_deliverer_orderrow.xml
new file mode 100644
index 0000000..b67bb29
--- /dev/null
+++ b/app/src/main/res/layout/recyclerview_deliverer_orderrow.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?>
+<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:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <androidx.cardview.widget.CardView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="5dp"
+        android:layout_marginTop="5dp"
+        android:layout_marginStart="5dp"
+        android:layout_marginEnd="5dp"
+        app:cardBackgroundColor="@color/cardview_light_background"
+        app:cardCornerRadius="20dp"
+        app:cardElevation="5dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" >
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+            <TextView
+                android:id="@+id/textViewID"
+                android:layout_width="107dp"
+                android:layout_height="27dp"
+                android:layout_marginStart="10dp"
+                android:text="1"
+                android:textSize="20sp"
+                android:textStyle="bold"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <TextView
+                android:id="@+id/textView7"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/state_dp"
+                app:layout_constraintStart_toStartOf="@+id/textViewID"
+                app:layout_constraintTop_toBottomOf="@+id/buttonReady" />
+
+            <TextView
+                android:id="@+id/textViewState"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="8dp"
+                android:text="Der aktuelle Status oder so"
+                app:layout_constraintStart_toEndOf="@+id/textView7"
+                app:layout_constraintTop_toBottomOf="@+id/buttonReady" />
+
+            <Button
+                android:id="@+id/buttonReady"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="8dp"
+                android:text="Ready"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <TextView
+                android:id="@+id/textView14"
+                android:layout_width="180dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="8dp"
+                android:text="Gumkmistraße 10"
+                app:layout_constraintStart_toEndOf="@+id/textView15"
+                app:layout_constraintTop_toBottomOf="@+id/textViewState" />
+
+            <TextView
+                android:id="@+id/textView15"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="Supplieraddress:"
+                app:layout_constraintStart_toStartOf="@+id/textView7"
+                app:layout_constraintTop_toBottomOf="@+id/textView7" />
+
+            <TextView
+                android:id="@+id/textView16"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="Costumeraddress:"
+                app:layout_constraintStart_toStartOf="@+id/textView15"
+                app:layout_constraintTop_toBottomOf="@+id/textView14" />
+
+            <TextView
+                android:id="@+id/textView17"
+                android:layout_width="180dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="8dp"
+                android:text="Adresse baum ioch komme"
+                app:layout_constraintStart_toEndOf="@+id/textView16"
+                app:layout_constraintTop_toBottomOf="@+id/textView14" />
+
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
+    </androidx.cardview.widget.CardView>
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
-- 
GitLab