From 7b3173791e21f941e37e5ce4169bede4225eb865 Mon Sep 17 00:00:00 2001
From: Christian Dresen <c.dresen@fh-muenster.de>
Date: Sat, 27 Jun 2015 17:20:26 +0200
Subject: [PATCH] no message

---
 .../ms/itsecteam/warpdrink/MainActivity.java  | 148 ++++++++++++++++--
 .../ms/itsecteam/warpdrink/data/User.java     |  14 +-
 .../warpdrink/dialogs/ChargeCustomDialog.java |  60 +++++++
 .../warpdrink/dialogs/ChargeDialog.java       |  70 +++++++++
 .../app/src/main/res/layout/activity_main.xml |  47 +++++-
 .../main/res/layout/charge_custom_dialog.xml  |  24 +++
 .../app/src/main/res/layout/charge_dialog.xml |  63 ++++++++
 .../src/main/res/layout/order_list_item.xml   |   2 +-
 .../app/src/main/res/values/strings.xml       |  10 ++
 9 files changed, 413 insertions(+), 25 deletions(-)
 create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeCustomDialog.java
 create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeDialog.java
 create mode 100644 WarpDrinkApp/app/src/main/res/layout/charge_custom_dialog.xml
 create mode 100644 WarpDrinkApp/app/src/main/res/layout/charge_dialog.xml

diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java
index c77d801..dd6538d 100644
--- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java
@@ -1,78 +1,194 @@
 package ms.itsecteam.warpdrink;
 
+import android.app.AlertDialog;
+import android.content.DialogInterface;
 import android.support.v7.app.ActionBarActivity;
 import android.os.Bundle;
-import android.util.Log;
+import android.view.KeyEvent;
 import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.AutoCompleteTextView;
 import android.widget.Button;
 import android.widget.ListView;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 
 import ms.itsecteam.warpdrink.data.User;
+import ms.itsecteam.warpdrink.dialogs.ChargeDialog;
 import ms.itsecteam.warpdrink.orderList.ListViewAdapter;
 import ms.itsecteam.warpdrink.orderList.Order;
 
 
-public class MainActivity extends ActionBarActivity implements View.OnClickListener{
+public class MainActivity extends ActionBarActivity implements View.OnClickListener, View.OnKeyListener, AdapterView.OnItemClickListener, DialogInterface.OnClickListener {
 
-    private Button btnOneEuro, btnFiftyCent, btnPay, btnCharge;
+    private Button btnOneEuro, btnFiftyCent, btnPay, btnCharge, btnLogout;
+    private TextView txtSum,txtCredit;
     private ListView lstOrdered;
+    private AutoCompleteTextView atxvName;
+
     private ListViewAdapter lstAdapter;
+    private ArrayAdapter atxvAdapter;
     private ArrayList<Double> order;
     private User currentUser;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        User.deleteAll();
+        new User(2, "hans", 100.0).save();
+        new User(3, "meier", 10.0).save();
+        new User(3, "merten", 1.0).save();
+        new User(4, "dieter", 1.0).save();
+        new User(5, "detlef", 0.5).save();
+
         getWindow().addFlags(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
         getSupportActionBar().hide();
         setContentView(R.layout.activity_main);
 
+        this.txtSum = (TextView) findViewById(R.id.txtSum);
+        this.txtCredit = (TextView)findViewById(R.id.txtCredit);
+        this.txtCredit.setText(getResources().getString(R.string.credit,0.0));
+        this.txtSum.setText(getResources().getString(R.string.total,0.0));
+
         this.btnOneEuro = (Button) findViewById(R.id.btnOneEuro);
         this.btnFiftyCent = (Button) findViewById(R.id.btnFiftyCent);
         this.btnPay = (Button) findViewById(R.id.btnPay);
         this.btnCharge = (Button) findViewById(R.id.btnCharge);
+        this.btnLogout = (Button) findViewById(R.id.btnLogout);
 
         this.btnOneEuro.setOnClickListener(this);
         this.btnFiftyCent.setOnClickListener(this);
         this.btnPay.setOnClickListener(this);
         this.btnCharge.setOnClickListener(this);
+        this.btnLogout.setOnClickListener(this);
 
-        this.btnOneEuro.setEnabled(false);
-        this.btnFiftyCent.setEnabled(false);
-        this.btnCharge.setEnabled(false);
-        this.btnPay.setEnabled(false);
-
-        this.lstOrdered = (ListView) findViewById(R.id.lstOrdered);
         this.lstAdapter = new ListViewAdapter(this, R.layout.order_list_item, new ArrayList<Order>());
+        this.lstOrdered = (ListView) findViewById(R.id.lstOrdered);
         this.lstOrdered.setAdapter(this.lstAdapter);
 
-     
+        this.atxvAdapter = new ArrayAdapter(this, android.R.layout.select_dialog_item, User.getAll());
+        this.atxvName = (AutoCompleteTextView) findViewById(R.id.atxvName);
+        this.atxvName.setAdapter(atxvAdapter);
+        this.atxvName.setThreshold(1);
+        this.atxvName.setOnKeyListener(this);
+        this.atxvName.setOnItemClickListener(this);
+
+        this.btnLogout.setVisibility(View.INVISIBLE);
+        this.enableControls(false);
+
     }
 
+    private void setCurrentUser(User user) {
+        if (user != null) {
+            this.enableControls(true);
+            this.atxvName.dismissDropDown();
+            this.btnLogout.setVisibility(View.VISIBLE);
+            this.txtCredit.setText(getResources().getString(R.string.credit,user.getCredit()));
+            this.currentUser = user;
+        }
+    }
+    public User getCurrentUser() {
+        return this.currentUser;
+    }
+    private void clearCurrentUser() {
+        this.atxvName.setText("");
+        this.lstAdapter.clear();
+        this.enableControls(false);
+        this.btnLogout.setVisibility(View.INVISIBLE);
+        this.txtCredit.setText(getResources().getString(R.string.credit, 0.0));
+        this.txtSum.setText(getResources().getString(R.string.total, 0.0));
+        this.currentUser = null;
+    }
+    private void enableControls(boolean enable) {
+        this.atxvName.setEnabled(!enable);
+        this.btnCharge.setEnabled(enable);
+        this.btnPay.setEnabled(enable);
+        this.btnLogout.setEnabled(enable);
+    }
+    private double getTotal() {
+        double ret=0.0;
+        for (int i=0;i<this.lstAdapter.getCount();i++) {
+            ret += this.lstAdapter.getItem(i).getValue();
+        }
+        return ret;
+    }
+    private void refreshTotalTextView() {
+        this.txtSum.setText(getResources().getString(R.string.total,this.getTotal()));
+    }
+    public void refreshCreditTextView() {
+        this.txtCredit.setText(getResources().getString(R.string.credit,this.currentUser.getCredit()));
+    }
     public void removeOrderOnClickHandler(View v) {
-        Order itemToRemove = (Order)v.getTag();
+        Order itemToRemove = (Order) v.getTag();
         this.lstAdapter.remove(itemToRemove);
+        refreshTotalTextView();
     }
+
     @Override
     public void onClick(View v) {
-        switch(v.getId()){
+        switch (v.getId()) {
             case R.id.btnOneEuro:
                 this.lstAdapter.insert(new Order(1.0), this.lstAdapter.getCount());
+                refreshTotalTextView();
                 break;
             case R.id.btnFiftyCent:
                 this.lstAdapter.insert(new Order(0.5), this.lstAdapter.getCount());
+                refreshTotalTextView();
                 break;
             case R.id.btnCharge:
-
+                new ChargeDialog(this).show();
                 break;
             case R.id.btnPay:
-
+                double total = this.getTotal();
+                if (total > 0.0){
+                    if (this.currentUser.getCredit()>=total){
+                        new AlertDialog.Builder(this)
+                                .setTitle(getResources().getString(R.string.confirm_payment_title))
+                                .setMessage(getResources().getString(R.string.confirm_payment, total))
+                                .setPositiveButton(android.R.string.yes, this)
+                                .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
+                                    public void onClick(DialogInterface dialog, int which) {
+                                    }
+                                })
+                                .setIcon(android.R.drawable.ic_dialog_alert)
+                                .show();
+                    } else {
+                        Toast.makeText(this,getResources().getString(R.string.please_charge),Toast.LENGTH_LONG).show();
+                    }
+                }
                 break;
+            case R.id.btnLogout:
+                clearCurrentUser();
+                break;
+        }
+    }
+
+    @Override
+    public boolean onKey(View v, int keyCode, KeyEvent event) {
+        if (event.getAction()==KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
+           if(this.atxvAdapter.getCount() == 1) {
+               setCurrentUser((User) this.atxvAdapter.getItem(0));
+               this.atxvName.setText(this.atxvAdapter.getItem(0).toString());
+           }
+
+           setCurrentUser(User.getByName(this.atxvName.getText().toString()));
+           return true;
         }
+        return false;
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        setCurrentUser((User) this.atxvAdapter.getItem(position));
+    }
+
+    @Override
+    public void onClick(DialogInterface dialog, int which) {
+        this.currentUser.setCredit(this.currentUser.getCredit()-this.getTotal());
+        this.currentUser.save();
+        this.clearCurrentUser();
     }
 }
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/User.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/User.java
index 6824594..151c5bb 100644
--- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/User.java
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/User.java
@@ -1,8 +1,11 @@
 package ms.itsecteam.warpdrink.data;
 
+import android.util.Log;
+
 import com.activeandroid.Model;
 import com.activeandroid.annotation.Column;
 import com.activeandroid.annotation.Table;
+import com.activeandroid.query.Delete;
 import com.activeandroid.query.Select;
 
 import java.util.List;
@@ -49,7 +52,16 @@ public class User extends Model {
                 .from(User.class)
                 .execute();
     }
+    public static User getByName(String name) {
+        return new Select()
+                .from(User.class)
+                .where("name = ?", name)
+                .executeSingle();
+    }
+    public static void deleteAll() {
+        new Delete().from(User.class).execute();
+    }
     public String toString() {
-        return "[Name: "+this.name+", Credit:"+this.credit+"]";
+        return this.name;
     }
 }
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeCustomDialog.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeCustomDialog.java
new file mode 100644
index 0000000..431c3a7
--- /dev/null
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeCustomDialog.java
@@ -0,0 +1,60 @@
+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 android.widget.NumberPicker;
+
+import ms.itsecteam.warpdrink.MainActivity;
+import ms.itsecteam.warpdrink.R;
+import ms.itsecteam.warpdrink.data.User;
+
+public class ChargeCustomDialog extends Dialog implements
+        View.OnClickListener {
+
+    private MainActivity c;
+    private Dialog d;
+    private Button btnCustomCharge;
+    private NumberPicker numPick;
+    public ChargeCustomDialog(ChargeDialog dialog, MainActivity a) {
+        super(a);
+        dialog.dismiss();
+        this.c = a;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+        setContentView(R.layout.charge_custom_dialog);
+
+        this.numPick = (NumberPicker) findViewById(R.id.numPick);
+        this.numPick.setMinValue(0);
+        this.numPick.setMaxValue(100);
+        this.btnCustomCharge = (Button) findViewById(R.id.btnCustomCharge);
+
+        this.btnCustomCharge.setOnClickListener(this);
+
+    }
+
+    @Override
+    public void onClick(View v) {
+        double amount = 0.0;
+        switch (v.getId()) {
+            case R.id.btnCustomCharge:
+                amount = this.numPick.getValue();
+                break;
+            default:
+                break;
+        }
+        if(amount > 0.0) {
+            User u = this.c.getCurrentUser();
+            u.setCredit(u.getCredit()+amount);
+            u.save();
+        }
+        this.c.refreshCreditTextView();
+        dismiss();
+    }
+}
diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeDialog.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeDialog.java
new file mode 100644
index 0000000..8ca13d8
--- /dev/null
+++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeDialog.java
@@ -0,0 +1,70 @@
+package ms.itsecteam.warpdrink.dialogs;
+
+import android.app.Activity;
+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.data.User;
+
+public class ChargeDialog extends Dialog implements
+        android.view.View.OnClickListener {
+
+    public MainActivity c;
+    public Dialog d;
+    public Button btnFiveEuro, btnTenEuro, btnTwentyEuro,btnOther;
+
+    public ChargeDialog(MainActivity a) {
+        super(a);
+        this.c = a;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+        setContentView(R.layout.charge_dialog);
+
+        btnFiveEuro = (Button) findViewById(R.id.btnFiveEuro);
+        btnTenEuro = (Button) findViewById(R.id.btnTenEuro);
+        btnTwentyEuro = (Button) findViewById(R.id.btnTwentyEuro);
+        btnOther = (Button) findViewById(R.id.btnOther);
+
+        btnFiveEuro.setOnClickListener(this);
+        btnTenEuro.setOnClickListener(this);
+        btnTwentyEuro.setOnClickListener(this);
+        btnOther.setOnClickListener(this);
+    }
+
+    @Override
+    public void onClick(View v) {
+        double amount = 0.0;
+        switch (v.getId()) {
+            case R.id.btnFiveEuro:
+                amount = 5.0;
+                break;
+            case R.id.btnTenEuro:
+                amount = 10.0;
+                break;
+            case R.id.btnTwentyEuro:
+                amount = 20.0;
+                break;
+            case R.id.btnOther:
+                    new ChargeCustomDialog(this,this.c).show();
+                break;
+            default:
+                break;
+        }
+        if(amount > 0.0) {
+            User u = this.c.getCurrentUser();
+            u.setCredit(u.getCredit()+amount);
+            u.save();
+        }
+        this.c.refreshCreditTextView();
+        dismiss();
+    }
+}
diff --git a/WarpDrinkApp/app/src/main/res/layout/activity_main.xml b/WarpDrinkApp/app/src/main/res/layout/activity_main.xml
index 376f26e..093981f 100644
--- a/WarpDrinkApp/app/src/main/res/layout/activity_main.xml
+++ b/WarpDrinkApp/app/src/main/res/layout/activity_main.xml
@@ -32,16 +32,19 @@
                         android:layout_height="wrap_content"
                         android:textAppearance="?android:attr/textAppearanceMedium"
                         android:text="@string/name"
-                        android:id="@+id/textView2" />
+                        android:id="@+id/textView2"
+                        android:layout_gravity="center_vertical" />
 
                     <Space
                         android:layout_width="20px"
                         android:layout_height="20px" />
 
                     <AutoCompleteTextView
-                        android:layout_width="wrap_content"
+                        android:layout_width="400dp"
                         android:layout_height="wrap_content"
-                        android:id="@+id/autoCompleteTextView"
+                        android:id="@+id/atxvName"
+                        android:imeOptions="actionNext"
+                        android:singleLine="true"
                         android:layout_columnSpan="1"
                         android:layout_row="0"
                         android:layout_column="0" />
@@ -81,9 +84,39 @@
                 android:layout_width="match_parent"
                 android:layout_height="match_parent">
 
-                <Space
-                    android:layout_width="20px"
-                    android:layout_height="100px" />
+
+                <LinearLayout
+                    android:orientation="horizontal"
+                    android:layout_width="match_parent"
+                    android:layout_height="60dp">
+
+                    <Space
+                        android:layout_width="20px"
+                        android:layout_height="20px" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textAppearance="?android:attr/textAppearanceMedium"
+                        android:text="Guthaben: "
+                        android:id="@+id/txtCredit"
+                        android:layout_gravity="center_vertical" />
+                    <View  android:layout_width="0dp"
+                        android:layout_height="0dp"
+                        android:layout_weight="1" />
+                    <Button
+                        style="@style/ButtonText"
+                        android:text="@string/btnLogout"
+                        android:id="@+id/btnLogout"
+                        android:background="@drawable/btn_red"
+                        android:layout_row="3"
+                        android:layout_column="1"
+                        android:width="10dp"
+                        android:layout_width="140dp"
+                        android:layout_height="50dp"
+                        android:layout_gravity="right"
+                        android:textSize="20dp" />
+                </LinearLayout>
 
                 <ListView
                     android:layout_width="wrap_content"
@@ -102,7 +135,7 @@
                     android:layout_height="wrap_content"
                     android:textAppearance="?android:attr/textAppearanceMedium"
                     android:text="@string/sum"
-                    android:id="@+id/textView" />
+                    android:id="@+id/txtSum" />
 
                 <Space
                     android:layout_width="wrap_content"
diff --git a/WarpDrinkApp/app/src/main/res/layout/charge_custom_dialog.xml b/WarpDrinkApp/app/src/main/res/layout/charge_custom_dialog.xml
new file mode 100644
index 0000000..d1fb2c5
--- /dev/null
+++ b/WarpDrinkApp/app/src/main/res/layout/charge_custom_dialog.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical" android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center_horizontal">
+
+    <NumberPicker
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/numPick" />
+
+    <Button
+        style="@style/ButtonText"
+        android:text="@string/btnCharge"
+        android:id="@+id/btnCustomCharge"
+        android:background="@drawable/btn_blue"
+        android:layout_row="3"
+        android:layout_column="1"
+        android:width="10dp"
+        android:layout_width="300dp"
+        android:layout_height="wrap_content" />
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/WarpDrinkApp/app/src/main/res/layout/charge_dialog.xml b/WarpDrinkApp/app/src/main/res/layout/charge_dialog.xml
new file mode 100644
index 0000000..b7ffd53
--- /dev/null
+++ b/WarpDrinkApp/app/src/main/res/layout/charge_dialog.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical" android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <Button
+            style="@style/ButtonText"
+            android:text="@string/btnFiveEuro"
+            android:id="@+id/btnFiveEuro"
+            android:background="@drawable/btn_blue"
+            android:layout_row="3"
+            android:layout_column="1"
+            android:width="10dp"
+            android:layout_width="300dp"
+            android:layout_height="wrap_content" />
+
+        <Button
+            style="@style/ButtonText"
+            android:text="@string/btnTenEuro"
+            android:id="@+id/btnTenEuro"
+            android:background="@drawable/btn_blue"
+            android:layout_row="3"
+            android:layout_column="1"
+            android:width="10dp"
+            android:layout_width="300dp"
+            android:layout_height="wrap_content" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="fill_parent" >
+
+        <Button
+            style="@style/ButtonText"
+            android:text="@string/btnTwentyEuro"
+            android:id="@+id/btnTwentyEuro"
+            android:background="@drawable/btn_blue"
+            android:layout_row="3"
+            android:layout_column="1"
+            android:width="10dp"
+            android:layout_width="300dp"
+            android:layout_height="wrap_content" />
+
+        <Button
+            style="@style/ButtonText"
+            android:text="@string/btnOther"
+            android:id="@+id/btnOther"
+            android:background="@drawable/btn_blue"
+            android:layout_row="3"
+            android:layout_column="1"
+            android:width="10dp"
+            android:layout_width="300dp"
+            android:layout_height="wrap_content" />
+    </LinearLayout>
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/WarpDrinkApp/app/src/main/res/layout/order_list_item.xml b/WarpDrinkApp/app/src/main/res/layout/order_list_item.xml
index 63914c5..4bbe544 100644
--- a/WarpDrinkApp/app/src/main/res/layout/order_list_item.xml
+++ b/WarpDrinkApp/app/src/main/res/layout/order_list_item.xml
@@ -18,5 +18,5 @@
         android:contentDescription="@string/app_name"
         android:onClick="removeOrderOnClickHandler"
         android:src="@android:drawable/ic_menu_delete"
-        />
+        android:layout_gravity="right" />
 </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 905f3d4..4bf4b1d 100644
--- a/WarpDrinkApp/app/src/main/res/values/strings.xml
+++ b/WarpDrinkApp/app/src/main/res/values/strings.xml
@@ -5,12 +5,22 @@
     <string name="action_settings">Settings</string>
 
 
+    <string name="btnFiveEuro">5 €</string>
+    <string name="btnTenEuro">10 €</string>
+    <string name="btnTwentyEuro">20 €</string>
+    <string name="btnOther">Anderer Betrag</string>
     <string name="btn_oneEuro">1 €</string>
     <string name="btn_fiftyCent">0,50 €</string>
     <string name="btn_pay">Bezahlen</string>
     <string name="btnCharge">Aufladen</string>
     <string name="sum">Gesamt</string>
     <string name="name">Name</string>
+    <string name="btnLogout">Logout</string>
+    <string name="please_charge">Bitte lade dein Konto auf!</string>
+    <string name="confirm_payment_title">Bezahlung bestaetigen</string>
+    <string name="confirm_payment">Willst du wirklich %1$,.2f Euro bezahlen?</string>
+    <string name="credit">Guthaben: %1$,.2f Euro</string>
+    <string name="total">Gesamt: %1$,.2f Euro</string>
 
     <style name="ButtonText">
         <item name="android:layout_width">fill_parent</item>
-- 
GitLab