From 56c1f8c0f9548619367bdfafe44c7ded7cf08f5c Mon Sep 17 00:00:00 2001
From: Christian Dresen <c.dresen@fh-muenster.de>
Date: Wed, 12 Apr 2017 00:06:22 +0200
Subject: [PATCH] Changed Custom Charge Dialog

---
 WarpDrinkApp/app/src/main/AndroidManifest.xml |  8 +++-
 .../ms/warpzone/warppay/MainActivity.java     | 25 +++++++++--
 .../warppay/dialogs/ChargeCustomDialog.java   | 43 ++++++++++++++-----
 .../app/src/main/res/layout/activity_main.xml |  1 +
 .../main/res/layout/charge_custom_dialog.xml  | 10 +++--
 .../app/src/main/res/menu/menu_main.xml       |  8 +++-
 6 files changed, 76 insertions(+), 19 deletions(-)

diff --git a/WarpDrinkApp/app/src/main/AndroidManifest.xml b/WarpDrinkApp/app/src/main/AndroidManifest.xml
index 4553d3d..c87b717 100644
--- a/WarpDrinkApp/app/src/main/AndroidManifest.xml
+++ b/WarpDrinkApp/app/src/main/AndroidManifest.xml
@@ -2,22 +2,25 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="ms.warpzone.warppay" >
     <uses-permission android:name="android.permission.INTERNET"></uses-permission>
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
     <uses-permission android:name="android.permission.NFC" />
 
     <uses-feature
         android:name="android.hardware.nfc"
         android:required="true" />
+
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
         android:largeHeap="true"
+
         android:name="ms.warpzone.warppay.WarpPayApplication"
         android:theme="@style/AppTheme">
 
 
-        <meta-data android:name="AA_DB_NAME" android:value="warppay_1.db" />
-        <meta-data android:name="AA_DB_VERSION" android:value="10" />
+        <meta-data android:name="AA_DB_NAME" android:value="warppay_2.db" />
+        <meta-data android:name="AA_DB_VERSION" android:value="11" />
 
         <activity
             android:name="ms.warpzone.warppay.MainActivity"
@@ -39,4 +42,5 @@
         </activity>
     </application>
 
+
 </manifest>
diff --git a/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/MainActivity.java b/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/MainActivity.java
index 9450d8e..7609fcb 100644
--- a/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/MainActivity.java
+++ b/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/MainActivity.java
@@ -16,8 +16,13 @@ import android.view.MenuInflater;
 
 import android.view.MenuItem;
 import android.view.View;
+import android.view.WindowManager;
 import android.widget.Toast;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 import ms.warpzone.warppay.data.models.local.Product;
 import ms.warpzone.warppay.data.models.local.User;
 
@@ -46,7 +51,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
+        
         getWindow().addFlags(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
         setContentView(R.layout.activity_main);
         this.findViewById(R.id.mainLayout).setOnKeyListener(this);
@@ -147,6 +152,9 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
                 });
                 this.barcodeLearnDialog.show();
                 break;
+            case R.id.action_exit:
+                    finish();
+                break;
             default:
                 break;
         }
@@ -165,6 +173,13 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
 
     @Override
     public boolean dispatchKeyEvent(KeyEvent event) {
+        List blockedKeys = new ArrayList(Arrays.asList(KeyEvent.KEYCODE_VOLUME_DOWN, KeyEvent.KEYCODE_VOLUME_UP));
+        if (blockedKeys.contains(event.getKeyCode())) {
+            return true;
+        }
+
+
+
         if(this.manager.getCurrentUser() != null) {
             if (event.getAction() == KeyEvent.ACTION_UP) {
                 if (KeyEvent.KEYCODE_ENTER == event.getKeyCode()) {
@@ -186,9 +201,13 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
         }
         return super.dispatchKeyEvent(event);
     }
-    
 
-    
+
+    @Override
+    public void onBackPressed() {
+        // nothing to do here
+        // … really
+    }
 /*
 
     @Override
diff --git a/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/dialogs/ChargeCustomDialog.java b/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/dialogs/ChargeCustomDialog.java
index e93d6c6..97813fb 100644
--- a/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/dialogs/ChargeCustomDialog.java
+++ b/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/dialogs/ChargeCustomDialog.java
@@ -2,9 +2,12 @@ package ms.warpzone.warppay.dialogs;
 
 import android.app.Dialog;
 import android.os.Bundle;
+import android.text.InputType;
+import android.view.KeyEvent;
 import android.view.View;
 import android.view.Window;
 import android.widget.Button;
+import android.widget.EditText;
 import android.widget.NumberPicker;
 
 import ms.warpzone.warppay.MainActivity;
@@ -12,12 +15,13 @@ import ms.warpzone.warppay.R;
 import ms.warpzone.warppay.manager.MainManager;
 
 public class ChargeCustomDialog extends Dialog implements
-        View.OnClickListener {
+        View.OnClickListener, View.OnKeyListener {
 
     private MainActivity c;
     private Dialog d;
     private Button btnCustomCharge;
-    private NumberPicker numPick;
+    private EditText etxtAmount;
+
     public ChargeCustomDialog(ChargeDialog dialog, MainActivity a) {
         super(a);
         dialog.dismiss();
@@ -30,9 +34,10 @@ public class ChargeCustomDialog extends Dialog implements
         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.etxtAmount = (EditText) findViewById(R.id.etxtCustomAmount);
+        //this.etxtAmount.setInputType(InputType.TYPE_CLASS_NUMBER);
+        this.etxtAmount.setOnKeyListener(this);
+
         this.btnCustomCharge = (Button) findViewById(R.id.btnCustomCharge);
 
         this.btnCustomCharge.setOnClickListener(this);
@@ -41,17 +46,35 @@ public class ChargeCustomDialog extends Dialog implements
 
     @Override
     public void onClick(View v) {
-        double amount = 0.0;
+
         switch (v.getId()) {
             case R.id.btnCustomCharge:
-                amount = this.numPick.getValue();
+                this.chargeAmount();
                 break;
             default:
                 break;
         }
-        if(amount > 0.0)
-            MainManager.getInstance().chargeAmount(amount);
-        this.numPick.setEnabled(false);
+
+        this.etxtAmount.setEnabled(false);
         dismiss();
     }
+
+    private void chargeAmount() {
+        try {
+            String text = this.etxtAmount.getText().toString();
+            text = text.replace(",",".");
+            double amount = Double.valueOf(text);
+            if(amount > 0.0)
+                MainManager.getInstance().chargeAmount(amount);
+        } catch (Exception e) {
+
+        }
+    }
+    @Override
+    public boolean onKey(View view, int i, KeyEvent keyEvent) {
+        if (KeyEvent.KEYCODE_ENTER == keyEvent.getKeyCode()) {
+            this.chargeAmount();
+        }
+        return false;
+    }
 }
diff --git a/WarpDrinkApp/app/src/main/res/layout/activity_main.xml b/WarpDrinkApp/app/src/main/res/layout/activity_main.xml
index bf6098a..cb71735 100644
--- a/WarpDrinkApp/app/src/main/res/layout/activity_main.xml
+++ b/WarpDrinkApp/app/src/main/res/layout/activity_main.xml
@@ -9,6 +9,7 @@
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
+    android:keepScreenOn="true"
     tools:context="ms.warpzone.warppay.MainActivity">
 
     <LinearLayout
diff --git a/WarpDrinkApp/app/src/main/res/layout/charge_custom_dialog.xml b/WarpDrinkApp/app/src/main/res/layout/charge_custom_dialog.xml
index 86b3d3d..aa67261 100644
--- a/WarpDrinkApp/app/src/main/res/layout/charge_custom_dialog.xml
+++ b/WarpDrinkApp/app/src/main/res/layout/charge_custom_dialog.xml
@@ -4,10 +4,14 @@
     android:layout_height="match_parent"
     android:gravity="center_horizontal">
 
-    <NumberPicker
-        android:layout_width="wrap_content"
+    <EditText
+        android:id="@+id/etxtCustomAmount"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:id="@+id/numPick" />
+        android:ems="10"
+        android:inputType="numberDecimal"
+        android:digits="0123456789.,"
+        android:text="" />
 
     <Button
         android:id="@+id/btnCustomCharge"
diff --git a/WarpDrinkApp/app/src/main/res/menu/menu_main.xml b/WarpDrinkApp/app/src/main/res/menu/menu_main.xml
index 1f6b6c2..c929044 100644
--- a/WarpDrinkApp/app/src/main/res/menu/menu_main.xml
+++ b/WarpDrinkApp/app/src/main/res/menu/menu_main.xml
@@ -13,5 +13,11 @@
         android:orderInCategory="200"
         android:icon="@drawable/ic_menu_refresh"
         android:title="@string/lernBarcodes" />
-
+    <!--
+    <item
+        android:id="@+id/action_exit"
+        android:orderInCategory="200"
+        android:icon="@drawable/ic_menu_refresh"
+        android:title="Exit" />
+    -->
 </menu>
-- 
GitLab