From a7868b07aa258ecde09cd20db13d71683406dcf6 Mon Sep 17 00:00:00 2001 From: Christian Dresen <c.dresen@fh-muenster.de> Date: Mon, 27 Mar 2017 09:46:23 +0200 Subject: [PATCH] =?UTF-8?q?PayChoice=20Dialog=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../warpdrink/dialogs/PayChoiceDialog.java | 56 +++++++++++++++++ .../warpdrink/manager/DataManager.java | 14 ++++- .../warpdrink/manager/MainManager.java | 22 ++----- .../warpdrink/manager/UiManager.java | 7 ++- .../src/main/res/layout/pay_choice_dialog.xml | 61 +++++++++++++++++++ .../src/main/res/layout/product_list_item.xml | 12 +++- .../app/src/main/res/values/strings.xml | 5 +- 7 files changed, 153 insertions(+), 24 deletions(-) create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/PayChoiceDialog.java create mode 100644 WarpDrinkApp/app/src/main/res/layout/pay_choice_dialog.xml diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/PayChoiceDialog.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/PayChoiceDialog.java new file mode 100644 index 0000000..d84a667 --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/PayChoiceDialog.java @@ -0,0 +1,56 @@ +package ms.itsecteam.warpdrink.dialogs; + +import android.app.Dialog; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.widget.Button; + +import ms.itsecteam.warpdrink.MainActivity; +import ms.itsecteam.warpdrink.R; +import ms.itsecteam.warpdrink.manager.DataManager; +import ms.itsecteam.warpdrink.manager.MainManager; + +public class PayChoiceDialog extends Dialog implements + View.OnClickListener { + private Button btnCredit,btnCash; + + public PayChoiceDialog() { + super(MainManager.getInstance().getMainActivity()); + + ; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.pay_choice_dialog); + + btnCredit = (Button) findViewById(R.id.btnCredit); + btnCash = (Button) findViewById(R.id.btnCash); + + + btnCredit.setOnClickListener(this); + btnCash.setOnClickListener(this); + + if(DataManager.getInstance().getIs_guest()) + btnCredit.setEnabled(false); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.btnCredit: + MainManager.getInstance().performPayment(true); + break; + case R.id.btnCash: + MainManager.getInstance().performPayment(false); + break; + + default: + break; + } + dismiss(); + } +} diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java index 3ad51c4..2c88b38 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java @@ -16,6 +16,8 @@ import retrofit.Retrofit; public class DataManager { private User currentUser; + + private Boolean is_guest=false; private double totalAmount; private ArrayList<Order> orderList; private static DataManager ourInstance = new DataManager(); @@ -44,12 +46,21 @@ public class DataManager { }); } + public Boolean getIs_guest() { + return is_guest; + } + + public void setIs_guest(Boolean is_guest) { + this.is_guest = is_guest; + } - public void performPayment() { + public void performPayment(Boolean cash) { for (Order order:this.orderList) { RestTransaction transaction = new RestTransaction(); transaction.setProduct(RestProduct.fromLocalProduct(order.getProduct())); transaction.setTrans_type(2); + if(this.is_guest || cash) + transaction.setCash_paid(true); MainManager.getInstance().getRestService().saveTransaction(this.currentUser.getUserid(), transaction).enqueue(new Callback<Void>() { @Override public void onResponse(Response<Void> response, Retrofit retrofit) { @@ -70,6 +81,7 @@ public class DataManager { public void clearCurrentUser() { this.currentUser = null; this.totalAmount = 0.0; + this.is_guest=false; this.orderList = new ArrayList<Order>(); } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java index aabd249..add1061 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java @@ -191,28 +191,14 @@ public class MainManager { } - public void performPayment() { + public void performPayment(Boolean cash) { User user = DataManager.getInstance().getCurrentUser(); double totalAmount = DataManager.getInstance().getTotalAmount(); if (totalAmount > 0.0 && user != null){ - if (DataManager.getInstance().getCurrentUser().getCredit()>=totalAmount){ - new AlertDialog.Builder(mainActivity) - .setTitle(mainActivity.getResources().getString(R.string.confirm_payment_title)) - .setMessage(mainActivity.getResources().getString(R.string.confirm_payment, totalAmount)) - .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - DataManager.getInstance().performPayment(); - MainManager.getInstance().clearCurrentUser(); - - } - }) - .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - } - }) - .setIcon(android.R.drawable.ic_dialog_alert) - .show(); + if (DataManager.getInstance().getCurrentUser().getCredit()>=totalAmount || cash){ + DataManager.getInstance().performPayment(true); + MainManager.getInstance().clearCurrentUser(); } else { Toast.makeText(mainActivity, mainActivity.getResources().getString(R.string.please_charge), Toast.LENGTH_LONG).show(); } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java index 37e7e50..8800139 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java @@ -27,6 +27,7 @@ import ms.itsecteam.warpdrink.data.models.local.Product; import ms.itsecteam.warpdrink.data.models.local.User; import ms.itsecteam.warpdrink.dialogs.ChargeDialog; import ms.itsecteam.warpdrink.dialogs.NewUserDialog; +import ms.itsecteam.warpdrink.dialogs.PayChoiceDialog; import ms.itsecteam.warpdrink.listener.CategoryOnClickListener; import ms.itsecteam.warpdrink.orderList.ListViewAdapter; import ms.itsecteam.warpdrink.orderList.ListViewAdapterProducts; @@ -152,7 +153,7 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap new ChargeDialog().show(); break; case R.id.btnPay: - MainManager.getInstance().performPayment(); + new PayChoiceDialog().show(); break; case R.id.btnLogout: MainManager.getInstance().clearCurrentUser(); @@ -163,6 +164,9 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap case R.id.btnRefresh: MainManager.getInstance().refreshData(); break; + case R.id.btnGuest: + MainManager.getInstance().setCurrentUser(new User("Guest",0,"")); + DataManager.getInstance().setIs_guest(true); } } // @ToDo: Key handling für beide Fälle (BarCode und Username) @@ -178,6 +182,7 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap MainManager.getInstance().setCurrentUser((User) this.atxvAdapter.getItem(0)); this.atxvName.setText(this.atxvAdapter.getItem(0).toString()); this.atxvName.dismissDropDown(); + DataManager.getInstance().setIs_guest(false); } return true; } diff --git a/WarpDrinkApp/app/src/main/res/layout/pay_choice_dialog.xml b/WarpDrinkApp/app/src/main/res/layout/pay_choice_dialog.xml new file mode 100644 index 0000000..4dcbaab --- /dev/null +++ b/WarpDrinkApp/app/src/main/res/layout/pay_choice_dialog.xml @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <Space + android:layout_width="match_parent" + android:layout_height="30dp" + android:layout_weight="0.38" /> + + <TextView + android:id="@+id/txtTotalAmountConfirm" + android:layout_width="644dp" + android:layout_height="wrap_content" + android:text="@string/txtTotalAmountConfirm" + android:textSize="50sp" /> + + <Space + android:layout_width="match_parent" + android:layout_height="30dp" + android:layout_weight="0.38" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="0.38" + android:orientation="horizontal"> + + <Button + android:id="@+id/btnCash" + style="@style/ButtonText" + android:layout_width="150dp" + android:layout_height="150dp" + android:layout_column="1" + android:layout_row="3" + android:layout_weight="1" + android:width="10dp" + android:background="@color/flatui_blue" + android:text="@string/btnCash" /> + + <Space + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="0.34" /> + + <Button + android:id="@+id/btnCredit" + style="@style/ButtonText" + android:layout_width="150dp" + android:layout_height="150dp" + android:layout_column="1" + android:layout_row="3" + android:layout_weight="1" + android:width="10dp" + android:background="@color/flatui_blue" + android:text="@string/btnCredit" /> + </LinearLayout> + + +</LinearLayout> \ No newline at end of file diff --git a/WarpDrinkApp/app/src/main/res/layout/product_list_item.xml b/WarpDrinkApp/app/src/main/res/layout/product_list_item.xml index 0a3efed..bfd5024 100644 --- a/WarpDrinkApp/app/src/main/res/layout/product_list_item.xml +++ b/WarpDrinkApp/app/src/main/res/layout/product_list_item.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > @@ -10,7 +11,7 @@ android:layout_height="match_parent"> <TextView - android:layout_width="wrap_content" + android:layout_width="386dp" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Large Text" @@ -18,7 +19,7 @@ android:layout_gravity="center_horizontal" /> <TextView - android:layout_width="68dp" + android:layout_width="229dp" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="1.0" @@ -26,4 +27,11 @@ </LinearLayout> + <ImageButton + android:id="@+id/imageButton" + android:layout_width="match_parent" + android:layout_height="63dp" + android:onClick="removeOrderOnClickHandler" + app:srcCompat="@android:color/holo_red_dark" /> + </LinearLayout> \ No newline at end of file diff --git a/WarpDrinkApp/app/src/main/res/values/strings.xml b/WarpDrinkApp/app/src/main/res/values/strings.xml index 3eaa85d..89002c7 100644 --- a/WarpDrinkApp/app/src/main/res/values/strings.xml +++ b/WarpDrinkApp/app/src/main/res/values/strings.xml @@ -1,10 +1,11 @@ <resources> <string name="app_name">WarpDrink</string> - <string name="hello_world">Hello world!</string> + <string name="txtTotalAmountConfirm">Gesamtbetrag: %1$,.2f </string> <string name="action_settings">Settings</string> - + <string name="btnCash">Bar</string> + <string name="btnCredit">Guthaben</string> <string name="btnFiveEuro">5 €</string> <string name="btnTenEuro">10 €</string> <string name="btnTwentyEuro">20 €</string> -- GitLab