diff --git a/WarpDrinkApp/app/src/main/AndroidManifest.xml b/WarpDrinkApp/app/src/main/AndroidManifest.xml
index 4553d3de8c676ccf400693535a1d114ccfc7ed10..c87b7177988530c33b585c6bcee99c8a973cd8ae 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 9450d8ea3af4a8cd8531e2be6a6e79822e698b5a..7609fcb4ba6aef1f4f8da737392a87c1f34dd7d3 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 e93d6c67bce3ba2d3c43943040abbd817c63d9de..97813fb7d84c10e79894f56082de28168957142f 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 bf6098a0a522f8fdb4dbaa6216f694fb26bca059..cb71735644a9fa913ae59583d0c2e0b46225edf6 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 86b3d3d8fdd3e7217851e28562bdbf9621f525a5..aa67261bf9f8c6e4e07e04bcee9e5998c9e3bc85 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 1f6b6c2de41600aa8d0f8bab5f84d7a8d5603278..c92904420a72cc47386f83839f1dc03b0a0b5ae7 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>