From 3638bdcdf57f85a1b2d81760352555cf6ff52f23 Mon Sep 17 00:00:00 2001 From: Christian Dresen <info@draycoding.de> Date: Mon, 29 Jun 2015 16:58:33 +0200 Subject: [PATCH] no message --- WarpDrinkApp/app/hs_err_pid13888.log | 150 ++++++++ .../ms/itsecteam/warpdrink/MainActivity.java | 206 ++--------- .../warpdrink/WarpDrinkApplication.java | 2 + .../ms/itsecteam/warpdrink/data/DataApi.java | 62 ---- .../warpdrink/data/objects/Setting.java | 3 +- .../warpdrink/data/rest/RestClient.java | 10 +- .../data/rest/http/HttpGetRequest.java | 10 +- .../data/rest/http/HttpPostRequest.java | 7 +- .../data/rest/http/HttpPutRequest.java | 10 +- .../warpdrink/dialogs/ChargeCustomDialog.java | 10 +- .../warpdrink/dialogs/ChargeDialog.java | 17 +- .../warpdrink/dialogs/NewUserDialog.java | 13 +- .../warpdrink/dialogs/SettingsDialog.java | 54 +++ .../warpdrink/manager/DataManager.java | 59 +++ .../warpdrink/manager/DatabaseManager.java | 59 +++ .../warpdrink/manager/MainManager.java | 128 +++++++ .../warpdrink/manager/UiManager.java | 171 +++++++++ .../app/src/main/res/layout/activity_main.xml | 4 +- .../src/main/res/layout/settings_dialog.xml | 81 ++++ .../app/src/main/res/values/strings.xml | 4 + WarpDrinkApp/hs_err_pid11576.log | 348 ++++++++++++++++++ 21 files changed, 1132 insertions(+), 276 deletions(-) create mode 100644 WarpDrinkApp/app/hs_err_pid13888.log delete mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/DataApi.java create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/SettingsDialog.java create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DatabaseManager.java create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java create mode 100644 WarpDrinkApp/app/src/main/res/layout/settings_dialog.xml create mode 100644 WarpDrinkApp/hs_err_pid11576.log diff --git a/WarpDrinkApp/app/hs_err_pid13888.log b/WarpDrinkApp/app/hs_err_pid13888.log new file mode 100644 index 0000000..183df69 --- /dev/null +++ b/WarpDrinkApp/app/hs_err_pid13888.log @@ -0,0 +1,150 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (malloc) failed to allocate 1048576 bytes for AllocateHeap +# Possible reasons: +# The system is out of physical RAM or swap space +# In 32 bit mode, the process size limit was hit +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Use 64 bit Java on a 64 bit OS +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# This output file may be truncated or incomplete. +# +# Out of Memory Error (memory/allocation.inline.hpp:61), pid=13888, tid=5780 +# +# JRE version: (7.0_51-b13) (build ) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode windows-amd64 compressed oops) +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows +# + +--------------- T H R E A D --------------- + +Current thread (0x0000000001dc0800): JavaThread "Unknown thread" [_thread_in_vm, id=5780, stack(0x0000000001cc0000,0x0000000001dc0000)] + +Stack: [0x0000000001cc0000,0x0000000001dc0000] + +--------------- P R O C E S S --------------- + +Java Threads: ( => current thread ) + +Other Threads: + +=>0x0000000001dc0800 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=5780, stack(0x0000000001cc0000,0x0000000001dc0000)] + +VM state:not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap + PSYoungGen total 55296K, used 952K [0x00000000eaa80000, 0x00000000ee800000, 0x0000000100000000) + eden space 47616K, 2% used [0x00000000eaa80000,0x00000000eab6e1b0,0x00000000ed900000) + from space 7680K, 0% used [0x00000000ee080000,0x00000000ee080000,0x00000000ee800000) + to space 7680K, 0% used [0x00000000ed900000,0x00000000ed900000,0x00000000ee080000) + ParOldGen total 125440K, used 0K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 0% used [0x00000000c0000000,0x00000000c0000000,0x00000000c7a80000) + PSPermGen total 21504K, used 673K [0x00000000bae00000, 0x00000000bc300000, 0x00000000c0000000) + object space 21504K, 3% used [0x00000000bae00000,0x00000000baea8570,0x00000000bc300000) + +Card table byte_map: [0x0000000004f80000,0x00000000051b0000] byte_map_base: 0x00000000049a9000 + +Polling page: 0x0000000000460000 + +Code Cache [0x0000000001ec0000, 0x0000000002130000, 0x0000000004ec0000) + total_blobs=38 nmethods=0 adapters=20 free_code_cache=48889Kb largest_free_block=50062528 + +Compilation events (0 events): +No events + +GC Heap History (0 events): +No events + +Deoptimization events (0 events): +No events + +Internal exceptions (0 events): +No events + +Events (10 events): +Event: 0.071 loading class 0x0000000001e0f2c0 +Event: 0.071 loading class 0x0000000001e0f2c0 done +Event: 0.071 loading class 0x0000000001e0f310 +Event: 0.071 loading class 0x0000000001e0f310 done +Event: 0.071 loading class 0x0000000001e0f360 +Event: 0.072 loading class 0x0000000001e0f360 done +Event: 0.072 loading class 0x0000000001e100c0 +Event: 0.072 loading class 0x0000000001e100c0 done +Event: 0.072 loading class 0x0000000001e0fce0 +Event: 0.072 loading class 0x0000000001e0fce0 done + + +Dynamic libraries: +0x00007ff751e40000 - 0x00007ff751e73000 C:\Program Files\Java\jdk1.7.0_51\bin\java.exe +0x00007fffc8560000 - 0x00007fffc870c000 C:\WINDOWS\SYSTEM32\ntdll.dll +0x00007fffc8110000 - 0x00007fffc824a000 C:\WINDOWS\system32\KERNEL32.DLL +0x00007fffc5970000 - 0x00007fffc5a7f000 C:\WINDOWS\system32\KERNELBASE.dll +0x00007fffc4380000 - 0x00007fffc440e000 C:\WINDOWS\system32\apphelp.dll +0x00007fffb3d30000 - 0x00007fffb3d83000 C:\WINDOWS\AppPatch\AppPatch64\AcGenral.DLL +0x00007fffc6140000 - 0x00007fffc61e7000 C:\WINDOWS\system32\msvcrt.dll +0x00007fffc5650000 - 0x00007fffc567b000 C:\WINDOWS\SYSTEM32\SspiCli.dll +0x00007fffc5cb0000 - 0x00007fffc5d01000 C:\WINDOWS\system32\SHLWAPI.dll +0x00007fffc6690000 - 0x00007fffc6801000 C:\WINDOWS\system32\USER32.dll +0x00007fffc7d90000 - 0x00007fffc7f08000 C:\WINDOWS\system32\ole32.dll +0x00007fffc6830000 - 0x00007fffc7d48000 C:\WINDOWS\system32\SHELL32.dll +0x00007fffc4e10000 - 0x00007fffc4e2f000 C:\WINDOWS\SYSTEM32\USERENV.dll +0x00007fffc65e0000 - 0x00007fffc6685000 C:\WINDOWS\system32\ADVAPI32.dll +0x00007fffb7ba0000 - 0x00007fffb7bbb000 C:\WINDOWS\SYSTEM32\MPR.dll +0x00007fffc5ec0000 - 0x00007fffc5ff7000 C:\WINDOWS\system32\RPCRT4.dll +0x00007fffc8250000 - 0x00007fffc82a9000 C:\WINDOWS\SYSTEM32\sechost.dll +0x00007fffc8380000 - 0x00007fffc8556000 C:\WINDOWS\SYSTEM32\combase.dll +0x00007fffc6490000 - 0x00007fffc65d4000 C:\WINDOWS\system32\GDI32.dll +0x00007fffc57a0000 - 0x00007fffc57b4000 C:\WINDOWS\SYSTEM32\profapi.dll +0x00007fffc42c0000 - 0x00007fffc4372000 C:\WINDOWS\SYSTEM32\SHCORE.dll +0x00007fffc7d50000 - 0x00007fffc7d84000 C:\WINDOWS\system32\IMM32.DLL +0x00007fffc7f10000 - 0x00007fffc8062000 C:\WINDOWS\system32\MSCTF.dll +0x00000000500c0000 - 0x00000000500f8000 C:\PROGRA~2\Sophos\SOPHOS~1\SOPHOS~2.DLL +0x00007fffc6130000 - 0x00007fffc6137000 C:\WINDOWS\system32\PSAPI.DLL +0x00007fffc3740000 - 0x00007fffc39ba000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9600.17810_none_6240b9c7ecbd0bda\COMCTL32.dll +0x0000000075ef0000 - 0x0000000075fc2000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\msvcr100.dll +0x0000000073cf0000 - 0x00000000744b9000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\server\jvm.dll +0x00007fffbc460000 - 0x00007fffbc469000 C:\WINDOWS\SYSTEM32\WSOCK32.dll +0x00007fffc3090000 - 0x00007fffc30af000 C:\WINDOWS\SYSTEM32\WINMM.dll +0x00007fffc82b0000 - 0x00007fffc8308000 C:\WINDOWS\system32\WS2_32.dll +0x00007fffc3050000 - 0x00007fffc307a000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll +0x00007fffc5eb0000 - 0x00007fffc5eb9000 C:\WINDOWS\system32\NSI.dll +0x00007fffc5a80000 - 0x00007fffc5aca000 C:\WINDOWS\SYSTEM32\cfgmgr32.dll +0x00007fffc45f0000 - 0x00007fffc4616000 C:\WINDOWS\SYSTEM32\DEVOBJ.dll +0x0000000050090000 - 0x000000005009f000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\verify.dll +0x0000000074800000 - 0x0000000074828000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\java.dll +0x00000000747e0000 - 0x00000000747f5000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\zip.dll + +VM Arguments: +jvm_args: -Xmx1024M -Dfile.encoding=windows-1252 -Duser.country=DE -Duser.language=de -Duser.variant +java_command: com.android.dx.command.Main --dex --num-threads=4 --output C:\Users\Chris\Documents\git\warpdrink\WarpDrinkApp\app\build\intermediates\pre-dexed\debug\jackson-core-2.0.1-ac38530da5103924c8b5ca722c5513a67af403c0.jar C:\Users\Chris\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.0.1\481d14ec21e034ed45217c4854dbbf15940ce108\jackson-core-2.0.1.jar +Launcher Type: SUN_STANDARD + +Environment Variables: +PATH=C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\idmu\common;C:\Program Files (x86)\GNU\GnuPG\pub;C:\Program Files\Microsoft Network Monitor 3\;C:\Program Files\OpenVPN\bin;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Windows Live\Shared +USERNAME=chris +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel + + + +--------------- S Y S T E M --------------- + +OS: Windows 8 , 64 bit Build 9200 + +CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, aes, ht, tsc, tscinvbit + +Memory: 4k page, physical 12072340k(1312620k free), swap 17358432k(13148k free) + +vm_info: Java HotSpot(TM) 64-Bit Server VM (24.51-b03) for windows-amd64 JRE (1.7.0_51-b13), built on Dec 18 2013 18:40:56 by "java_re" with unknown MS VC++:1600 + +time: Mon Jun 29 16:15:01 2015 +elapsed time: 2 seconds + 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 d831c3e..bd2b1bc 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java @@ -1,53 +1,38 @@ package ms.itsecteam.warpdrink; -import android.app.AlertDialog; import android.content.DialogInterface; -import android.provider.ContactsContract; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; -import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuInflater; + import android.view.MenuItem; import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.AutoCompleteTextView; -import android.widget.Button; -import android.widget.ImageButton; -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 java.util.ListIterator; -import ms.itsecteam.warpdrink.data.DataApi; -import ms.itsecteam.warpdrink.data.rest.RestClient; import ms.itsecteam.warpdrink.data.objects.User; -import ms.itsecteam.warpdrink.dialogs.ChargeDialog; + import ms.itsecteam.warpdrink.dialogs.NewUserDialog; -import ms.itsecteam.warpdrink.orderList.ListViewAdapter; +import ms.itsecteam.warpdrink.dialogs.SettingsDialog; +import ms.itsecteam.warpdrink.manager.MainManager; +import ms.itsecteam.warpdrink.manager.UiManager; import ms.itsecteam.warpdrink.orderList.Order; -public class MainActivity extends ActionBarActivity implements View.OnClickListener, View.OnKeyListener, AdapterView.OnItemClickListener, DialogInterface.OnClickListener { - private Button btnPay, btnCharge, btnLogout; - private ImageButton btnRefresh; - private TextView txtSum,txtCredit; - private ListView lstOrdered; - private AutoCompleteTextView atxvName; - private ListViewAdapter lstAdapter; - private ArrayAdapter atxvAdapter; - private ArrayList<Double> order; +public class MainActivity extends ActionBarActivity implements View.OnClickListener { // implements View.OnClickListener, View.OnKeyListener, AdapterView.OnItemClickListener, DialogInterface.OnClickListener { + private User currentUser; private List<User> users; + + private MainManager manager; public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_main, menu); + return true; } @@ -55,156 +40,46 @@ public class MainActivity extends ActionBarActivity implements View.OnClickListe protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + getWindow().addFlags(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); setContentView(R.layout.activity_main); - DataApi.getInstance().setMainActivity(this); - - 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.btnLogout = (Button) findViewById(R.id.btnLogout); - this.btnRefresh = (ImageButton) findViewById(R.id.btnRefresh); - this.btnPay = (Button) findViewById(R.id.btnPay); - this.btnCharge = (Button) findViewById(R.id.btnCharge); - - 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.users = User.getAll(); - this.atxvAdapter = new ArrayAdapter(this, android.R.layout.select_dialog_item, this.users); - - 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); + this.manager = MainManager.getInstance(); + this.manager.init(this); - DataApi.getInstance().refreshUserData(); } - 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 void onClick(View v) { + UiManager.getInstance().onClick(v); } - public void refreshUsers() { - this.atxvAdapter.clear(); - List <User> userList = User.getAll(); - ListIterator<User> userListIterator = userList.listIterator(); - while(userListIterator.hasNext()) { - this.atxvAdapter.add(userListIterator.next()); + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.action_settings: + new SettingsDialog(this).show(); + break; + case R.id.action_new_user: + new NewUserDialog().show(); + break; + default: + break; } - this.users = users; - } - - public List<User> getUsers() { - return users; - } - - 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.btnRefresh.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())); + return true; } public void removeOrderOnClickHandler(View v) { - Order itemToRemove = (Order) v.getTag(); - this.lstAdapter.remove(itemToRemove); - refreshTotalTextView(); - } + MainManager.getInstance().removeOrder((Order) v.getTag()); - @Override - public void onClick(View v) { - 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; - case R.id.btnAddUser: - new NewUserDialog(this).show(); - break; - case R.id.btnRefresh: - DataApi.getInstance().refreshUserData(); - Toast.makeText(this,"Refresh successful" ,Toast.LENGTH_LONG).show(); - 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(DataApi.getInstance().remoteGetUser(((User) this.atxvAdapter.getItem(0)).getUserid())); + setCurrentUser(DatabaseManager.getInstance().remoteGetUser(((User) this.atxvAdapter.getItem(0)).getUserid())); this.atxvName.setText(this.atxvAdapter.getItem(0).toString()); this.atxvName.dismissDropDown(); } @@ -215,7 +90,7 @@ public class MainActivity extends ActionBarActivity implements View.OnClickListe @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - setCurrentUser(DataApi.getInstance().remoteGetUser(((User) this.atxvAdapter.getItem(position)).getUserid())); + setCurrentUser(DatabaseManager.getInstance().remoteGetUser(((User) this.atxvAdapter.getItem(position)).getUserid())); } @Override @@ -225,19 +100,6 @@ public class MainActivity extends ActionBarActivity implements View.OnClickListe RestClient.getInstance().saveUserCredit(this.currentUser); this.clearCurrentUser(); } - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.action_settings: - Toast.makeText(this, "Settings selected", Toast.LENGTH_SHORT).show(); - break; - case R.id.action_new_user: - new NewUserDialog(this).show(); - break; - default: - break; - } - - return true; - } +*/ } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/WarpDrinkApplication.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/WarpDrinkApplication.java index 854f795..b9c47b3 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/WarpDrinkApplication.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/WarpDrinkApplication.java @@ -4,6 +4,8 @@ import android.util.Log; import com.activeandroid.ActiveAndroid; +import ms.itsecteam.warpdrink.manager.MainManager; + /** * Created by Chris on 26.06.2015. */ diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/DataApi.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/DataApi.java deleted file mode 100644 index d5ca1bc..0000000 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/DataApi.java +++ /dev/null @@ -1,62 +0,0 @@ -package ms.itsecteam.warpdrink.data; - -import android.util.Log; -import java.util.Arrays; -import java.util.List; -import java.util.ListIterator; - -import ms.itsecteam.warpdrink.MainActivity; -import ms.itsecteam.warpdrink.data.objects.User; -import ms.itsecteam.warpdrink.data.rest.RestClient; - -public class DataApi { - - private static DataApi instance; - private MainActivity mainActivity; - private DataApi () {} - - public static DataApi getInstance () { - if (DataApi.instance == null) { - DataApi.instance = new DataApi(); - } - return DataApi.instance; - } - - public MainActivity getMainActivity() { - return mainActivity; - } - - public void setMainActivity(MainActivity mainActivity) { - this.mainActivity = mainActivity; - } - - public boolean addUser(String name) { - if(User.getByName(name) == null) { - User u = new User(); - u.setName(name); - RestClient.getInstance().createUser(u); - //u.save(); - refreshUserData(); - return true; - } - return false; - } - - public void refreshUserData() { - List<User> u = RestClient.getInstance().getAllUser(); - if(u == null) - return; - User.deleteAll(); - ListIterator<User> ui = u.listIterator(); - while(ui.hasNext()) { - ui.next().save(); - } - Log.d("App", Arrays.toString(u.toArray())); - mainActivity.refreshUsers(); - } - - - public User remoteGetUser(int userid) { - return RestClient.getInstance().getUser(userid); - } -} diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/objects/Setting.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/objects/Setting.java index 46efb14..acc94dc 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/objects/Setting.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/objects/Setting.java @@ -41,7 +41,7 @@ public class Setting extends Model { .executeSingle(); if(setting != null) return setting.getValue(); - return ""; + return null; } public void setKey(String key) { @@ -63,6 +63,7 @@ public class Setting extends Model { } else { setting = new Setting(key, value); } + setting.save(); } public static void deleteAll() { diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/RestClient.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/RestClient.java index ed89a3f..ee532ff 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/RestClient.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/RestClient.java @@ -1,6 +1,7 @@ package ms.itsecteam.warpdrink.data.rest; import android.util.Log; +import android.widget.Toast; import com.google.gson.Gson; @@ -33,7 +34,6 @@ public class RestClient { public User getUser(int userid) { try { User u = (User) new RequestSingleObject<User>().initTask("user/"+userid,User.class).execute().get(); - Log.d("TV",u.getName()); return u; } catch (Exception e) { e.printStackTrace(); @@ -43,6 +43,10 @@ public class RestClient { public List<User> getAllUser() { try { String response = new HttpGetRequest().initTask("user/all").execute().get(); + if(response == null) { + this.handleError(); + return null; + } return Arrays.asList(new Gson().fromJson(response, User[].class)); } catch (Exception e) { e.printStackTrace(); @@ -72,5 +76,9 @@ public class RestClient { } return false; } + + private void handleError() { + Toast.makeText(null,"Netzwerkfehler",Toast.LENGTH_LONG); + } } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpGetRequest.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpGetRequest.java index a5ab9ba..a16bdcb 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpGetRequest.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpGetRequest.java @@ -1,7 +1,6 @@ package ms.itsecteam.warpdrink.data.rest.http; import android.os.AsyncTask; -import android.util.Log; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; @@ -11,11 +10,14 @@ import org.apache.http.impl.client.DefaultHttpClient; import java.io.BufferedReader; import java.io.InputStreamReader; +import ms.itsecteam.warpdrink.manager.DatabaseManager; + +// this.url = "http://10.0.2.2:8080/warpdrink/rest/"; + public class HttpGetRequest extends AsyncTask<Void, Void, String> { String url; public HttpGetRequest initTask(String url) { - this.url = "http://10.0.2.2:8080/warpdrink/rest/"; - this.url += url; + this.url = DatabaseManager.getInstance().getSetting("api_url")+"/"+ url; return this; } @Override @@ -34,9 +36,7 @@ public class HttpGetRequest extends AsyncTask<Void, Void, String> { } return responsestr; } catch (Exception e) { - Log.e("MainActivity", e.getMessage(), e); } return null; } - } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpPostRequest.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpPostRequest.java index 8150020..4d4b512 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpPostRequest.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpPostRequest.java @@ -1,7 +1,6 @@ package ms.itsecteam.warpdrink.data.rest.http; import android.os.AsyncTask; -import android.util.Log; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; @@ -14,12 +13,13 @@ import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.List; +import ms.itsecteam.warpdrink.manager.DatabaseManager; + public class HttpPostRequest extends AsyncTask<Void, Void, String> { String url; List<NameValuePair> postParams; public HttpPostRequest initTask(String url, List<NameValuePair> postParams) { - this.url = "http://10.0.2.2:8080/warpdrink/rest/"; - this.url += url; + this.url = DatabaseManager.getInstance().getSetting("api_url")+"/"+ url; this.postParams =postParams; return this; } @@ -41,7 +41,6 @@ public class HttpPostRequest extends AsyncTask<Void, Void, String> { } return responsestr; } catch (Exception e) { - Log.e("MainActivity", e.getMessage(), e); } return null; } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpPutRequest.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpPutRequest.java index b0dcd7b..4b2661e 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpPutRequest.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/rest/http/HttpPutRequest.java @@ -1,7 +1,6 @@ package ms.itsecteam.warpdrink.data.rest.http; import android.os.AsyncTask; -import android.util.Log; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; @@ -14,13 +13,14 @@ import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.List; +import ms.itsecteam.warpdrink.manager.DatabaseManager; + public class HttpPutRequest extends AsyncTask<Void, Void, String> { String url; List<NameValuePair> postParams; public HttpPutRequest initTask(String url, List<NameValuePair> postParams) { - this.url = "http://10.0.2.2:8080/warpdrink/rest/"; - this.url += url; - this.postParams =postParams; + this.url = DatabaseManager.getInstance().getSetting("api_url")+"/"+ url; + this.postParams = postParams; return this; } @Override @@ -41,7 +41,7 @@ public class HttpPutRequest extends AsyncTask<Void, Void, String> { } return responsestr; } catch (Exception e) { - Log.e("MainActivity", e.getMessage(), e); + } return null; } 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 index 08a3f49..1674b46 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeCustomDialog.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeCustomDialog.java @@ -11,6 +11,7 @@ import ms.itsecteam.warpdrink.MainActivity; import ms.itsecteam.warpdrink.R; import ms.itsecteam.warpdrink.data.objects.User; import ms.itsecteam.warpdrink.data.rest.RestClient; +import ms.itsecteam.warpdrink.manager.MainManager; public class ChargeCustomDialog extends Dialog implements View.OnClickListener { @@ -50,13 +51,8 @@ public class ChargeCustomDialog extends Dialog implements default: break; } - if(amount > 0.0) { - User u = this.c.getCurrentUser(); - u.setCredit(u.getCredit()+amount); - u.save(); - RestClient.getInstance().saveUserCredit(u); - } - this.c.refreshCreditTextView(); + if(amount > 0.0) + MainManager.getInstance().chargeAmount(amount); 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 index 5436935..862eeb1 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeDialog.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/ChargeDialog.java @@ -10,6 +10,7 @@ import ms.itsecteam.warpdrink.MainActivity; import ms.itsecteam.warpdrink.R; import ms.itsecteam.warpdrink.data.objects.User; import ms.itsecteam.warpdrink.data.rest.RestClient; +import ms.itsecteam.warpdrink.manager.MainManager; public class ChargeDialog extends Dialog implements android.view.View.OnClickListener { @@ -18,9 +19,10 @@ public class ChargeDialog extends Dialog implements public Dialog d; public Button btnFiveEuro, btnTenEuro, btnTwentyEuro,btnOther; - public ChargeDialog(MainActivity a) { - super(a); - this.c = a; + public ChargeDialog() { + super(MainManager.getInstance().getMainActivity()); + this.c = MainManager.getInstance().getMainActivity(); + ; } @Override @@ -59,13 +61,8 @@ public class ChargeDialog extends Dialog implements default: break; } - if(amount > 0.0) { - User u = this.c.getCurrentUser(); - u.setCredit(u.getCredit()+amount); - u.save(); - RestClient.getInstance().saveUserCredit(u); - } - this.c.refreshCreditTextView(); + if(amount > 0.0) + MainManager.getInstance().chargeAmount(amount); dismiss(); } } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java index 6f0751d..be8edbd 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/NewUserDialog.java @@ -10,19 +10,18 @@ import android.widget.Toast; import ms.itsecteam.warpdrink.MainActivity; import ms.itsecteam.warpdrink.R; -import ms.itsecteam.warpdrink.data.DataApi; -import ms.itsecteam.warpdrink.data.rest.RestClient; +import ms.itsecteam.warpdrink.manager.DatabaseManager; +import ms.itsecteam.warpdrink.manager.MainManager; public class NewUserDialog extends Dialog implements View.OnClickListener { public MainActivity c; - public Dialog d; public Button btnAddUser; public TextView txtUsername; - public NewUserDialog(MainActivity a) { - super(a); - this.c = a; + public NewUserDialog() { + super(MainManager.getInstance().getMainActivity()); + this.c = MainManager.getInstance().getMainActivity(); } @Override @@ -43,7 +42,7 @@ public class NewUserDialog extends Dialog implements case R.id.btnAddUser: String username = this.txtUsername.getText().toString(); if (!username.equals("")) { - if(!DataApi.getInstance().addUser(username)) { + if(!MainManager.getInstance().addUser(username)) { Toast.makeText(v.getContext(),"Username ist schon vorhanden",Toast.LENGTH_LONG).show(); } else { Toast.makeText(v.getContext(),"User angelegt",Toast.LENGTH_LONG).show(); diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/SettingsDialog.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/SettingsDialog.java new file mode 100644 index 0000000..2cd903f --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/dialogs/SettingsDialog.java @@ -0,0 +1,54 @@ +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.TextView; + +import ms.itsecteam.warpdrink.MainActivity; +import ms.itsecteam.warpdrink.R; +import ms.itsecteam.warpdrink.manager.DatabaseManager; + +public class SettingsDialog extends Dialog implements + View.OnClickListener { + + public MainActivity c; + public Button btnSave, btnAbort; + TextView txtApiUrl; + public SettingsDialog(MainActivity a) { + super(a); + this.c = a; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + setContentView(R.layout.settings_dialog); + this.btnSave = (Button) findViewById(R.id.btnSave); + this.btnSave.setOnClickListener(this); + + this.btnAbort = (Button) findViewById(R.id.btnAbort); + this.btnAbort.setOnClickListener(this); + + this.txtApiUrl = (TextView) findViewById(R.id.txtApiUrl); + this.txtApiUrl.setText(DatabaseManager.getInstance().getSetting("api_url")); + + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.btnSave: + DatabaseManager.getInstance().saveSetting("api_url",txtApiUrl.getText().toString()); + this.dismiss(); + break; + case R.id.btnAbort: + this.dismiss(); + default: + break; + } + } +} 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 new file mode 100644 index 0000000..d223ba0 --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DataManager.java @@ -0,0 +1,59 @@ +package ms.itsecteam.warpdrink.manager; + +import ms.itsecteam.warpdrink.data.objects.User; +import ms.itsecteam.warpdrink.data.rest.RestClient; + +public class DataManager { + private User currentUser; + private double totalAmount; + + + + private static DataManager ourInstance = new DataManager(); + + protected static DataManager getInstance() { + return ourInstance; + } + + private DataManager() { + } + + public void saveCurrentUser() { + this.currentUser.save(); + RestClient.getInstance().saveUserCredit(this.currentUser); + } + + public void performPayment() { + this.currentUser.setCredit(this.currentUser.getCredit()-this.totalAmount); + this.saveCurrentUser(); + this.totalAmount = 0.0; + } + + public void clearCurrentUser() { + + } + + public User getCurrentUser() { + return currentUser; + } + + public void setCurrentUser(User currentUser) { + this.currentUser = currentUser; + } + + public double getTotalAmount() { + return totalAmount; + } + + public void addToTotalAmount(double value) { + this.totalAmount += value; + } + + public void setTotalAmount(double totalAmount) { + this.totalAmount = totalAmount; + } + + + + +} diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DatabaseManager.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DatabaseManager.java new file mode 100644 index 0000000..f227cb8 --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/DatabaseManager.java @@ -0,0 +1,59 @@ +package ms.itsecteam.warpdrink.manager; + +import android.util.Log; +import java.util.Arrays; +import java.util.List; +import java.util.ListIterator; + +import ms.itsecteam.warpdrink.MainActivity; +import ms.itsecteam.warpdrink.data.objects.Setting; +import ms.itsecteam.warpdrink.data.objects.User; +import ms.itsecteam.warpdrink.data.rest.RestClient; + +public class DatabaseManager { + + private static DatabaseManager instance; + private DatabaseManager() {} + + public static DatabaseManager getInstance () { + if (DatabaseManager.instance == null) + DatabaseManager.instance = new DatabaseManager(); + return DatabaseManager.instance; + } + + public User getUserByName(String name) { + return User.getByName(name); + } + public void refreshUserData(List<User> u) { + User.deleteAll(); + if(u == null) + return; + ListIterator<User> ui = u.listIterator(); + while(ui.hasNext()) { + ui.next().save(); + } + Log.d("App", Arrays.toString(u.toArray())); + } + + + public void saveSetting(String key, String value) { + Setting.setSetting(key, value); + } + + public String getSetting(String key) { + return this.getSetting(key, ""); + } + + public String getSetting(String key, String defaultValue) { + String value = Setting.getSetting(key); + if(value == null) { + return defaultValue; + } + return value; + } + + public User remoteGetUser(int userid) { + return RestClient.getInstance().getUser(userid); + } + +} 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 new file mode 100644 index 0000000..450f02a --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/MainManager.java @@ -0,0 +1,128 @@ +package ms.itsecteam.warpdrink.manager; + +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.util.Log; +import android.widget.Toast; + +import java.util.Arrays; +import java.util.List; +import java.util.ListIterator; + +import ms.itsecteam.warpdrink.MainActivity; +import ms.itsecteam.warpdrink.R; +import ms.itsecteam.warpdrink.data.objects.User; +import ms.itsecteam.warpdrink.data.rest.RestClient; +import ms.itsecteam.warpdrink.orderList.Order; + +public class MainManager { + + private MainActivity mainActivity; + private DatabaseManager databaseManager; + private UiManager uiManager; + private DataManager dataManager; + + private static MainManager ourInstance = new MainManager(); + public static MainManager getInstance() { + return ourInstance; + } + + private MainManager() { + this.databaseManager = DatabaseManager.getInstance(); + this.uiManager = UiManager.getInstance(); + this.dataManager = DataManager.getInstance(); + } + + public void init(MainActivity mainActivity) { + this.mainActivity = mainActivity; + this.uiManager.initUi(this.mainActivity); + this.refreshUserData(); + } + + public void refreshUserData() { + List<User> userList = RestClient.getInstance().getAllUser(); + this.databaseManager.refreshUserData(userList); + if(userList != null) { + this.uiManager.refreshUserData(userList); + } + } + + public boolean addUser(String name) { + if(this.databaseManager.getUserByName(name) == null) { + User u = new User(); + u.setName(name); + RestClient.getInstance().createUser(u); + this.refreshUserData(); + return true; + } + return false; + } + + public void setCurrentUser(User user) { + if (user != null) { + this.dataManager.setCurrentUser(user); + this.uiManager.setCurrentUser(user); + } + } + + public void clearCurrentUser() { + this.dataManager.clearCurrentUser(); + this.uiManager.clearCurrentUser(); + } + public void addOrder(double amount) { + DataManager.getInstance().addToTotalAmount(amount); + this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount()); + } + + public void removeOrder(Order order) { + DataManager.getInstance().addToTotalAmount((-1)*order.getValue()); + this.uiManager.removeOrder(order); + this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount()); + + } + public void chargeAmount(double amount) { + User user = this.dataManager.getCurrentUser(); + user.setCredit(user.getCredit()+amount); + user.save(); + RestClient.getInstance().saveUserCredit(user); + this.uiManager.refreshCreditTextView(user.getCredit()); + } + public void performPayment() { + 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(); + } else { + Toast.makeText(mainActivity, mainActivity.getResources().getString(R.string.please_charge), Toast.LENGTH_LONG).show(); + } + } + } + + + public MainActivity getMainActivity() { + return mainActivity; + } + + public void setMainActivity(MainActivity mainActivity) { + this.mainActivity = mainActivity; + } + + +} 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 new file mode 100644 index 0000000..7ff6b8b --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/manager/UiManager.java @@ -0,0 +1,171 @@ +package ms.itsecteam.warpdrink.manager; + +import android.util.Log; +import android.view.KeyEvent; +import android.view.MenuItem; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.AutoCompleteTextView; +import android.widget.Button; +import android.widget.ImageButton; +import android.widget.ListView; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.List; +import java.util.ListIterator; + +import ms.itsecteam.warpdrink.MainActivity; +import ms.itsecteam.warpdrink.R; +import ms.itsecteam.warpdrink.data.objects.User; +import ms.itsecteam.warpdrink.dialogs.ChargeDialog; +import ms.itsecteam.warpdrink.dialogs.NewUserDialog; +import ms.itsecteam.warpdrink.dialogs.SettingsDialog; +import ms.itsecteam.warpdrink.orderList.ListViewAdapter; +import ms.itsecteam.warpdrink.orderList.Order; + +/** + * Created by chris on 29.06.2015. + */ +public class UiManager implements View.OnKeyListener, View.OnClickListener, AdapterView.OnItemClickListener { + + private MainActivity mainActivity; + private Button btnPay, btnCharge, btnLogout; + private ImageButton btnRefresh; + private TextView txtSum,txtCredit; + private ListView lstOrdered; + private AutoCompleteTextView atxvName; + + private ListViewAdapter lstAdapter; + private ArrayAdapter atxvAdapter; + private ArrayList<Double> order; + private List<User> users; + + private static UiManager ourInstance = new UiManager(); + + public static UiManager getInstance() { + return ourInstance; + } + + private UiManager() {} + + protected void initUi(MainActivity mainActivity) { + this.txtSum = (TextView) mainActivity.findViewById(R.id.txtSum); + this.txtCredit = (TextView)mainActivity.findViewById(R.id.txtCredit); + this.txtCredit.setText(mainActivity.getResources().getString(R.string.credit,0.0)); + this.txtSum.setText(mainActivity.getResources().getString(R.string.total,0.0)); + + this.btnLogout = (Button) mainActivity.findViewById(R.id.btnLogout); + this.btnRefresh = (ImageButton) mainActivity.findViewById(R.id.btnRefresh); + this.btnPay = (Button) mainActivity.findViewById(R.id.btnPay); + this.btnCharge = (Button) mainActivity.findViewById(R.id.btnCharge); + + this.lstAdapter = new ListViewAdapter(mainActivity, R.layout.order_list_item, new ArrayList<Order>()); + this.lstOrdered = (ListView) mainActivity.findViewById(R.id.lstOrdered); + this.lstOrdered.setAdapter(this.lstAdapter); + + + this.users = User.getAll(); + this.atxvAdapter = new ArrayAdapter(mainActivity, android.R.layout.select_dialog_item, this.users); + this.atxvName = (AutoCompleteTextView) mainActivity.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); + this.mainActivity = mainActivity; + } + + protected void refreshTotalTextView(double totalAmount) { + this.txtSum.setText(this.mainActivity.getResources().getString(R.string.total,totalAmount)); + } + protected void refreshCreditTextView(double credit) { + this.txtCredit.setText(this.mainActivity.getResources().getString(R.string.credit, credit)); + } + + protected void setCurrentUser(User user) { + this.enableControls(true); + this.atxvName.dismissDropDown(); + this.btnLogout.setVisibility(View.VISIBLE); + this.refreshCreditTextView(user.getCredit()); + } + + protected void clearCurrentUser() { + this.atxvName.setText(""); + this.lstAdapter.clear(); + this.enableControls(false); + this.btnLogout.setVisibility(View.INVISIBLE); + this.refreshCreditTextView(0.0); + this.refreshTotalTextView(0.0); + } + + private void enableControls(boolean enable) { + this.atxvName.setEnabled(!enable); + this.btnRefresh.setEnabled(!enable); + this.btnCharge.setEnabled(enable); + this.btnPay.setEnabled(enable); + this.btnLogout.setEnabled(enable); + } + + protected void refreshUserData(List<User> userList) { + this.atxvAdapter.clear(); + ListIterator<User> userListIterator = userList.listIterator(); + while(userListIterator.hasNext()) { + this.atxvAdapter.add(userListIterator.next()); + } + } + protected void removeOrder(Order order) { + this.lstAdapter.remove(order); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.btnOneEuro: + this.lstAdapter.insert(new Order(1.0), this.lstAdapter.getCount()); + MainManager.getInstance().addOrder(1.0); + break; + case R.id.btnFiftyCent: + this.lstAdapter.insert(new Order(0.5), this.lstAdapter.getCount()); + MainManager.getInstance().addOrder(0.5); + break; + case R.id.btnCharge: + new ChargeDialog().show(); + break; + case R.id.btnPay: + MainManager.getInstance().performPayment(); + break; + case R.id.btnLogout: + MainManager.getInstance().clearCurrentUser(); + break; + case R.id.btnAddUser: + new NewUserDialog().show(); + break; + case R.id.btnRefresh: + MainManager.getInstance().refreshUserData(); + Toast.makeText(this.mainActivity, "Refresh successful", Toast.LENGTH_LONG).show(); + 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) { + MainManager.getInstance().setCurrentUser((User) this.atxvAdapter.getItem(0)); + this.atxvName.setText(this.atxvAdapter.getItem(0).toString()); + this.atxvName.dismissDropDown(); + } + return true; + } + return false; + } + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { + MainManager.getInstance().setCurrentUser((User) this.atxvAdapter.getItem(position)); + } +} diff --git a/WarpDrinkApp/app/src/main/res/layout/activity_main.xml b/WarpDrinkApp/app/src/main/res/layout/activity_main.xml index fe095e2..06ed63e 100644 --- a/WarpDrinkApp/app/src/main/res/layout/activity_main.xml +++ b/WarpDrinkApp/app/src/main/res/layout/activity_main.xml @@ -134,7 +134,7 @@ <ListView android:layout_width="wrap_content" - android:layout_height="291dp" + android:layout_height="255dp" android:id="@+id/lstOrdered" android:layout_row="2" android:layout_column="12" @@ -142,7 +142,7 @@ <Space android:layout_width="20px" - android:layout_height="50px" /> + android:layout_height="25px" /> <TextView android:layout_width="wrap_content" diff --git a/WarpDrinkApp/app/src/main/res/layout/settings_dialog.xml b/WarpDrinkApp/app/src/main/res/layout/settings_dialog.xml new file mode 100644 index 0000000..b9e9b73 --- /dev/null +++ b/WarpDrinkApp/app/src/main/res/layout/settings_dialog.xml @@ -0,0 +1,81 @@ +<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:stretchColumns="1"> + + + <TableRow + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/abc_input_method_navigation_guard"> + + <TextView + android:text="@string/rest_config_header" + android:padding="3dip" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:stretchColumns="2" + android:textColor="@android:color/white" /> + + + </TableRow> + + <TableRow + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <TextView + android:text="@string/rest_service" + android:padding="3dip" + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/txtApiUrl" /> + </TableRow> + + <TableRow + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <TextView + android:text="" + android:padding="3dip" + android:layout_width="wrap_content" + android:layout_height="wrap_content" /> + + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/editText3" /> + </TableRow> + + <TableRow> + + <Space + android:layout_width="20px" + android:layout_height="20px" /> + + <LinearLayout + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/save" + android:id="@+id/btnSave" /> + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/abort" + android:id="@+id/btnAbort" /> + </LinearLayout> + + </TableRow> + +</TableLayout> \ 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 3f128e3..f5279cd 100644 --- a/WarpDrinkApp/app/src/main/res/values/strings.xml +++ b/WarpDrinkApp/app/src/main/res/values/strings.xml @@ -22,6 +22,10 @@ <string name="credit">Guthaben: %1$,.2f Euro</string> <string name="total">Gesamt: %1$,.2f Euro</string> <string name="addNewUser">Benutzer hinzufügen</string> + <string name="rest_service">RESTAPI-URL</string> + <string name="rest_config_header">REST-API Konfiguration</string> + <string name="save">Speichern</string> + <string name="abort">Abbrechen</string> <style name="ButtonText"> <item name="android:layout_width">fill_parent</item> diff --git a/WarpDrinkApp/hs_err_pid11576.log b/WarpDrinkApp/hs_err_pid11576.log new file mode 100644 index 0000000..6c77d1f --- /dev/null +++ b/WarpDrinkApp/hs_err_pid11576.log @@ -0,0 +1,348 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (malloc) failed to allocate 1227936 bytes for Chunk::new +# Possible reasons: +# The system is out of physical RAM or swap space +# In 32 bit mode, the process size limit was hit +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Use 64 bit Java on a 64 bit OS +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# This output file may be truncated or incomplete. +# +# Out of Memory Error (allocation.cpp:323), pid=11576, tid=16076 +# +# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13) +# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode windows-amd64 compressed oops) +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows +# + +--------------- T H R E A D --------------- + +Current thread (0x000000000261f000): JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=16076, stack(0x000000000b620000,0x000000000b720000)] + +Stack: [0x000000000b620000,0x000000000b720000] + +Current CompileTask: +C2: 9890 714 java.lang.Class::privateGetPublicMethods (263 bytes) + + +--------------- P R O C E S S --------------- + +Java Threads: ( => current thread ) + 0x000000000e320800 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 2" [_thread_blocked, id=14176, stack(0x0000000012c80000,0x0000000012d80000)] + 0x000000000e31c000 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 3" [_thread_in_native, id=11412, stack(0x0000000012980000,0x0000000012a80000)] + 0x000000000e31f000 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 2" [_thread_in_native, id=15832, stack(0x0000000012880000,0x0000000012980000)] + 0x000000000e31e000 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe'" [_thread_blocked, id=11232, stack(0x0000000012780000,0x0000000012880000)] + 0x000000000e319000 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 3" [_thread_blocked, id=1536, stack(0x0000000012580000,0x0000000012680000)] + 0x000000000e31b000 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 2" [_thread_blocked, id=12280, stack(0x0000000012480000,0x0000000012580000)] + 0x000000000e317800 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe'" [_thread_blocked, id=14052, stack(0x0000000012380000,0x0000000012480000)] + 0x000000000e31a800 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 3" [_thread_blocked, id=12428, stack(0x0000000012180000,0x0000000012280000)] + 0x000000000e316800 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 2" [_thread_blocked, id=11676, stack(0x0000000012080000,0x0000000012180000)] + 0x000000000e318000 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe'" [_thread_blocked, id=16148, stack(0x0000000011f80000,0x0000000012080000)] + 0x000000000e313000 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 3" [_thread_in_native, id=11856, stack(0x0000000011e80000,0x0000000011f80000)] + 0x000000000e316000 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 2" [_thread_in_native, id=15204, stack(0x0000000011d80000,0x0000000011e80000)] + 0x000000000e314800 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe'" [_thread_blocked, id=15000, stack(0x0000000011c80000,0x0000000011d80000)] + 0x000000000e315000 JavaThread "Run command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe'" [_thread_in_native, id=14848, stack(0x0000000011b80000,0x0000000011c80000)] + 0x000000000f911800 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 3" [_thread_in_native, id=16300, stack(0x0000000011280000,0x0000000011380000)] + 0x000000000f90f800 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe' Thread 2" [_thread_in_native, id=5260, stack(0x0000000011180000,0x0000000011280000)] + 0x000000000f911000 JavaThread "Forward streams with process: command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe'" [_thread_blocked, id=12228, stack(0x0000000011080000,0x0000000011180000)] + 0x000000000f90d000 JavaThread "Run command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe'" [_thread_in_native, id=5888, stack(0x0000000010c80000,0x0000000010d80000)] + 0x000000000f90a000 JavaThread "Run command 'C:\Program Files\Java\jdk1.7.0_51\bin\java.exe'" [_thread_in_native, id=10856, stack(0x0000000010a80000,0x0000000010b80000)] + 0x000000000f909800 JavaThread "pool-1-thread-8" [_thread_in_Java, id=15696, stack(0x0000000010880000,0x0000000010980000)] + 0x000000000f906800 JavaThread "pool-1-thread-7" [_thread_blocked, id=13948, stack(0x0000000010780000,0x0000000010880000)] + 0x000000000f908800 JavaThread "pool-1-thread-6" [_thread_blocked, id=5076, stack(0x0000000010680000,0x0000000010780000)] + 0x000000000f907000 JavaThread "pool-1-thread-5" [_thread_blocked, id=14356, stack(0x0000000010580000,0x0000000010680000)] + 0x000000000f908000 JavaThread "pool-1-thread-4" [_thread_blocked, id=14332, stack(0x00000000102b0000,0x00000000103b0000)] + 0x000000000b2a9800 JavaThread "pool-1-thread-3" [_thread_blocked, id=12464, stack(0x00000000100b0000,0x00000000101b0000)] + 0x000000000b2a8800 JavaThread "pool-1-thread-2" [_thread_blocked, id=9180, stack(0x000000000ffb0000,0x00000000100b0000)] + 0x000000000b2a8000 JavaThread "pool-1-thread-1" [_thread_blocked, id=13880, stack(0x000000000feb0000,0x000000000ffb0000)] + 0x000000000b2aa000 JavaThread "File lock request listener" [_thread_in_native, id=15712, stack(0x000000000dc40000,0x000000000dd40000)] + 0x000000000b2a4000 JavaThread "Stdin handler" [_thread_blocked, id=14364, stack(0x000000000db40000,0x000000000dc40000)] + 0x000000000b2a7000 JavaThread "Daemon worker" [_thread_blocked, id=12960, stack(0x000000000da40000,0x000000000db40000)] + 0x000000000b2a3000 JavaThread "Cancel handler" [_thread_blocked, id=15540, stack(0x000000000d940000,0x000000000da40000)] + 0x000000000b2a6000 JavaThread "Handler for socket connection from /127.0.0.1:54366 to /127.0.0.1:54368" [_thread_in_native, id=11904, stack(0x000000000d840000,0x000000000d940000)] + 0x000000000b2a5800 JavaThread "Daemon" [_thread_blocked, id=2744, stack(0x000000000d690000,0x000000000d790000)] + 0x000000000b2a4800 JavaThread "Incoming local TCP Connector on port 54366" [_thread_in_native, id=4488, stack(0x000000000d4e0000,0x000000000d5e0000)] + 0x0000000002627800 JavaThread "Service Thread" daemon [_thread_blocked, id=13592, stack(0x000000000b720000,0x000000000b820000)] +=>0x000000000261f000 JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=16076, stack(0x000000000b620000,0x000000000b720000)] + 0x000000000261d800 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=8168, stack(0x000000000b520000,0x000000000b620000)] + 0x000000000261d000 JavaThread "Attach Listener" daemon [_thread_blocked, id=7552, stack(0x000000000b420000,0x000000000b520000)] + 0x0000000002618000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=6064, stack(0x000000000b320000,0x000000000b420000)] + 0x0000000008f50000 JavaThread "Finalizer" daemon [_thread_blocked, id=13780, stack(0x000000000ae20000,0x000000000af20000)] + 0x0000000008f47800 JavaThread "Reference Handler" daemon [_thread_blocked, id=4492, stack(0x000000000ad20000,0x000000000ae20000)] + 0x0000000002530800 JavaThread "main" [_thread_blocked, id=15988, stack(0x0000000002430000,0x0000000002530000)] + +Other Threads: + 0x0000000008f44800 VMThread [stack: 0x000000000ac20000,0x000000000ad20000] [id=2768] + 0x000000000262c000 WatcherThread [stack: 0x000000000b820000,0x000000000b920000] [id=10872] + +VM state:not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap + PSYoungGen total 208896K, used 172729K [0x00000000eaa80000, 0x00000000f9280000, 0x0000000100000000) + eden space 187904K, 81% used [0x00000000eaa80000,0x00000000f40adc18,0x00000000f6200000) + from space 20992K, 90% used [0x00000000f7900000,0x00000000f8b80998,0x00000000f8d80000) + to space 23552K, 0% used [0x00000000f6200000,0x00000000f6200000,0x00000000f7900000) + ParOldGen total 125440K, used 23082K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 18% used [0x00000000c0000000,0x00000000c168a9a0,0x00000000c7a80000) + PSPermGen total 39424K, used 38945K [0x00000000b0000000, 0x00000000b2680000, 0x00000000c0000000) + object space 39424K, 98% used [0x00000000b0000000,0x00000000b2608510,0x00000000b2680000) + +Card table byte_map: [0x00000000056f0000,0x0000000005980000] byte_map_base: 0x0000000005170000 + +Polling page: 0x00000000022f0000 + +Code Cache [0x0000000002630000, 0x00000000029d0000, 0x0000000005630000) + total_blobs=1295 nmethods=684 adapters=563 free_code_cache=45492Kb largest_free_block=46541376 + +Compilation events (10 events): +Event: 7.432 Thread 0x000000000261f000 nmethod 709 0x00000000029c7650 code [0x00000000029c7780, 0x00000000029c7818] +Event: 7.432 Thread 0x000000000261f000 710 java.util.HashSet::add (20 bytes) +Event: 7.433 Thread 0x000000000261f000 nmethod 710 0x00000000029c9290 code [0x00000000029c9400, 0x00000000029c94d8] +Event: 7.433 Thread 0x000000000261f000 711 java.lang.String::compareTo (9 bytes) +Event: 7.433 Thread 0x000000000261f000 nmethod 711 0x00000000029c8f10 code [0x00000000029c9060, 0x00000000029c91b8] +Event: 7.433 Thread 0x000000000261f000 712 groovy.lang.MetaClassImpl::addElementToList (58 bytes) +Event: 7.446 Thread 0x000000000261f000 nmethod 712 0x00000000029cb410 code [0x00000000029cb580, 0x00000000029cb938] +Event: 7.447 Thread 0x000000000261f000 713 org.codehaus.groovy.reflection.CachedMethod::<init> (15 bytes) +Event: 7.447 Thread 0x000000000261f000 nmethod 713 0x00000000029c7450 code [0x00000000029c7580, 0x00000000029c75f8] +Event: 7.447 Thread 0x000000000261f000 714 java.lang.Class::privateGetPublicMethods (263 bytes) + +GC Heap History (10 events): +Event: 1.977 GC heap before +{Heap before GC invocations=2 (full 0): + PSYoungGen total 55296K, used 54656K [0x00000000eaa80000, 0x00000000ee800000, 0x0000000100000000) + eden space 47616K, 100% used [0x00000000eaa80000,0x00000000ed900000,0x00000000ed900000) + from space 7680K, 91% used [0x00000000ed900000,0x00000000edfe0380,0x00000000ee080000) + to space 7680K, 0% used [0x00000000ee080000,0x00000000ee080000,0x00000000ee800000) + ParOldGen total 125440K, used 8K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 0% used [0x00000000c0000000,0x00000000c0002000,0x00000000c7a80000) + PSPermGen total 21504K, used 17698K [0x00000000b0000000, 0x00000000b1500000, 0x00000000c0000000) + object space 21504K, 82% used [0x00000000b0000000,0x00000000b1148a58,0x00000000b1500000) +Event: 1.987 GC heap after +Heap after GC invocations=2 (full 0): + PSYoungGen total 55296K, used 7648K [0x00000000eaa80000, 0x00000000ee800000, 0x0000000100000000) + eden space 47616K, 0% used [0x00000000eaa80000,0x00000000eaa80000,0x00000000ed900000) + from space 7680K, 99% used [0x00000000ee080000,0x00000000ee7f81b0,0x00000000ee800000) + to space 7680K, 0% used [0x00000000ed900000,0x00000000ed900000,0x00000000ee080000) + ParOldGen total 125440K, used 2271K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 1% used [0x00000000c0000000,0x00000000c0237c80,0x00000000c7a80000) + PSPermGen total 21504K, used 17698K [0x00000000b0000000, 0x00000000b1500000, 0x00000000c0000000) + object space 21504K, 82% used [0x00000000b0000000,0x00000000b1148a58,0x00000000b1500000) +} +Event: 2.581 GC heap before +{Heap before GC invocations=3 (full 0): + PSYoungGen total 55296K, used 55264K [0x00000000eaa80000, 0x00000000ee800000, 0x0000000100000000) + eden space 47616K, 100% used [0x00000000eaa80000,0x00000000ed900000,0x00000000ed900000) + from space 7680K, 99% used [0x00000000ee080000,0x00000000ee7f81b0,0x00000000ee800000) + to space 7680K, 0% used [0x00000000ed900000,0x00000000ed900000,0x00000000ee080000) + ParOldGen total 125440K, used 2271K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 1% used [0x00000000c0000000,0x00000000c0237c80,0x00000000c7a80000) + PSPermGen total 21504K, used 21232K [0x00000000b0000000, 0x00000000b1500000, 0x00000000c0000000) + object space 21504K, 98% used [0x00000000b0000000,0x00000000b14bc110,0x00000000b1500000) +Event: 2.591 GC heap after +Heap after GC invocations=3 (full 0): + PSYoungGen total 55296K, used 7667K [0x00000000eaa80000, 0x00000000f1680000, 0x0000000100000000) + eden space 47616K, 0% used [0x00000000eaa80000,0x00000000eaa80000,0x00000000ed900000) + from space 7680K, 99% used [0x00000000ed900000,0x00000000ee07cd40,0x00000000ee080000) + to space 7680K, 0% used [0x00000000f0f00000,0x00000000f0f00000,0x00000000f1680000) + ParOldGen total 125440K, used 5632K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 4% used [0x00000000c0000000,0x00000000c0580060,0x00000000c7a80000) + PSPermGen total 21504K, used 21232K [0x00000000b0000000, 0x00000000b1500000, 0x00000000c0000000) + object space 21504K, 98% used [0x00000000b0000000,0x00000000b14bc110,0x00000000b1500000) +} +Event: 3.276 GC heap before +{Heap before GC invocations=4 (full 0): + PSYoungGen total 55296K, used 55283K [0x00000000eaa80000, 0x00000000f1680000, 0x0000000100000000) + eden space 47616K, 100% used [0x00000000eaa80000,0x00000000ed900000,0x00000000ed900000) + from space 7680K, 99% used [0x00000000ed900000,0x00000000ee07cd40,0x00000000ee080000) + to space 7680K, 0% used [0x00000000f0f00000,0x00000000f0f00000,0x00000000f1680000) + ParOldGen total 125440K, used 5632K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 4% used [0x00000000c0000000,0x00000000c0580060,0x00000000c7a80000) + PSPermGen total 24576K, used 24543K [0x00000000b0000000, 0x00000000b1800000, 0x00000000c0000000) + object space 24576K, 99% used [0x00000000b0000000,0x00000000b17f7ea0,0x00000000b1800000) +Event: 3.286 GC heap after +Heap after GC invocations=4 (full 0): + PSYoungGen total 102912K, used 7648K [0x00000000eaa80000, 0x00000000f1680000, 0x0000000100000000) + eden space 95232K, 0% used [0x00000000eaa80000,0x00000000eaa80000,0x00000000f0780000) + from space 7680K, 99% used [0x00000000f0f00000,0x00000000f1678020,0x00000000f1680000) + to space 7680K, 0% used [0x00000000f0780000,0x00000000f0780000,0x00000000f0f00000) + ParOldGen total 125440K, used 8685K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 6% used [0x00000000c0000000,0x00000000c087b628,0x00000000c7a80000) + PSPermGen total 24576K, used 24543K [0x00000000b0000000, 0x00000000b1800000, 0x00000000c0000000) + object space 24576K, 99% used [0x00000000b0000000,0x00000000b17f7ea0,0x00000000b1800000) +} +Event: 4.394 GC heap before +{Heap before GC invocations=5 (full 0): + PSYoungGen total 102912K, used 102880K [0x00000000eaa80000, 0x00000000f1680000, 0x0000000100000000) + eden space 95232K, 100% used [0x00000000eaa80000,0x00000000f0780000,0x00000000f0780000) + from space 7680K, 99% used [0x00000000f0f00000,0x00000000f1678020,0x00000000f1680000) + to space 7680K, 0% used [0x00000000f0780000,0x00000000f0780000,0x00000000f0f00000) + ParOldGen total 125440K, used 8685K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 6% used [0x00000000c0000000,0x00000000c087b628,0x00000000c7a80000) + PSPermGen total 32768K, used 32474K [0x00000000b0000000, 0x00000000b2000000, 0x00000000c0000000) + object space 32768K, 99% used [0x00000000b0000000,0x00000000b1fb69b0,0x00000000b2000000) +Event: 4.419 GC heap after +Heap after GC invocations=5 (full 0): + PSYoungGen total 102912K, used 7664K [0x00000000eaa80000, 0x00000000f8d80000, 0x0000000100000000) + eden space 95232K, 0% used [0x00000000eaa80000,0x00000000eaa80000,0x00000000f0780000) + from space 7680K, 99% used [0x00000000f0780000,0x00000000f0efc050,0x00000000f0f00000) + to space 20992K, 0% used [0x00000000f7900000,0x00000000f7900000,0x00000000f8d80000) + ParOldGen total 125440K, used 23082K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 18% used [0x00000000c0000000,0x00000000c168a9a0,0x00000000c7a80000) + PSPermGen total 32768K, used 32474K [0x00000000b0000000, 0x00000000b2000000, 0x00000000c0000000) + object space 32768K, 99% used [0x00000000b0000000,0x00000000b1fb69b0,0x00000000b2000000) +} +Event: 5.890 GC heap before +{Heap before GC invocations=6 (full 0): + PSYoungGen total 102912K, used 102896K [0x00000000eaa80000, 0x00000000f8d80000, 0x0000000100000000) + eden space 95232K, 100% used [0x00000000eaa80000,0x00000000f0780000,0x00000000f0780000) + from space 7680K, 99% used [0x00000000f0780000,0x00000000f0efc050,0x00000000f0f00000) + to space 20992K, 0% used [0x00000000f7900000,0x00000000f7900000,0x00000000f8d80000) + ParOldGen total 125440K, used 23082K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 18% used [0x00000000c0000000,0x00000000c168a9a0,0x00000000c7a80000) + PSPermGen total 35840K, used 35638K [0x00000000b0000000, 0x00000000b2300000, 0x00000000c0000000) + object space 35840K, 99% used [0x00000000b0000000,0x00000000b22cda48,0x00000000b2300000) +Event: 5.911 GC heap after +Heap after GC invocations=6 (full 0): + PSYoungGen total 208896K, used 18946K [0x00000000eaa80000, 0x00000000f9280000, 0x0000000100000000) + eden space 187904K, 0% used [0x00000000eaa80000,0x00000000eaa80000,0x00000000f6200000) + from space 20992K, 90% used [0x00000000f7900000,0x00000000f8b80998,0x00000000f8d80000) + to space 23552K, 0% used [0x00000000f6200000,0x00000000f6200000,0x00000000f7900000) + ParOldGen total 125440K, used 23082K [0x00000000c0000000, 0x00000000c7a80000, 0x00000000eaa80000) + object space 125440K, 18% used [0x00000000c0000000,0x00000000c168a9a0,0x00000000c7a80000) + PSPermGen total 35840K, used 35638K [0x00000000b0000000, 0x00000000b2300000, 0x00000000c0000000) + object space 35840K, 99% used [0x00000000b0000000,0x00000000b22cda48,0x00000000b2300000) +} + +Deoptimization events (10 events): +Event: 6.507 Thread 0x000000000b2a7000 Uncommon trap: reason=unloaded action=reinterpret pc=0x000000000287a980 method=com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.getNodeObject(I)Lcom/sun/org/apache/xerces/internal/dom/DeferredNode; @ 255 +Event: 6.508 Thread 0x000000000b2a7000 Uncommon trap: reason=unreached action=reinterpret pc=0x00000000028862f0 method=com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.getChunkIndex([[III)I @ 3 +Event: 6.508 Thread 0x000000000b2a7000 Uncommon trap: reason=unreached action=reinterpret pc=0x00000000026bbb74 method=com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.getChunkIndex([[III)I @ 3 +Event: 7.650 Thread 0x000000000b2a7000 Uncommon trap: reason=predicate action=maybe_recompile pc=0x000000000296c444 method=java.util.TimSort.binarySort([Ljava/lang/Object;IIILjava/util/Comparator;)V @ 37 +Event: 7.657 Thread 0x000000000b2a9800 Uncommon trap: reason=unreached action=reinterpret pc=0x00000000028c1684 method=java.util.concurrent.locks.AbstractQueuedSynchronizer.release(I)Z @ 14 +Event: 7.660 Thread 0x000000000f908000 Uncommon trap: reason=unreached action=reinterpret pc=0x000000000296dd3c method=java.lang.ThreadLocal.get()Ljava/lang/Object; @ 11 +Event: 7.661 Thread 0x000000000b2a9800 Uncommon trap: reason=unreached action=reinterpret pc=0x000000000286fce0 method=java.util.concurrent.locks.AbstractQueuedSynchronizer.release(I)Z @ 14 +Event: 7.661 Thread 0x000000000b2a8000 Uncommon trap: reason=unreached action=reinterpret pc=0x000000000286fce0 method=java.util.concurrent.locks.AbstractQueuedSynchronizer.release(I)Z @ 14 +Event: 7.670 Thread 0x000000000f909800 Uncommon trap: reason=unreached action=reinterpret pc=0x000000000281e300 method=groovy.lang.MetaClassImpl.findPropertyMethod(Ljava/lang/Object;ZZ)Lgroovy/lang/MetaMethod; @ 95 +Event: 7.721 Thread 0x000000000f909800 Uncommon trap: reason=unreached action=reinterpret pc=0x00000000028fc4d0 method=java.util.concurrent.locks.AbstractQueuedSynchronizer.release(I)Z @ 14 + +Internal exceptions (10 events): +Event: 7.741 Thread 0x000000000f90a000 Threw 0x00000000f06044a8 at C:\re\jdk7u51\527\hotspot\src\share\vm\prims\jvm.cpp:1244 +Event: 7.741 Thread 0x000000000f90a000 Threw 0x00000000f0604bb0 at C:\re\jdk7u51\527\hotspot\src\share\vm\prims\jvm.cpp:1244 +Event: 7.741 Thread 0x000000000f90a000 Threw 0x00000000f0607bf0 at C:\re\jdk7u51\527\hotspot\src\share\vm\prims\jvm.cpp:1244 +Event: 7.741 Thread 0x000000000f90a000 Threw 0x00000000f0608238 at C:\re\jdk7u51\527\hotspot\src\share\vm\prims\jvm.cpp:1244 +Event: 7.742 Thread 0x000000000f90a000 Threw 0x00000000f060bde0 at C:\re\jdk7u51\527\hotspot\src\share\vm\prims\jvm.cpp:1244 +Event: 7.742 Thread 0x000000000f90a000 Threw 0x00000000f060c4f0 at C:\re\jdk7u51\527\hotspot\src\share\vm\prims\jvm.cpp:1244 +Event: 7.743 Thread 0x000000000f90a000 Threw 0x00000000f0611050 at C:\re\jdk7u51\527\hotspot\src\share\vm\prims\jvm.cpp:1244 +Event: 7.743 Thread 0x000000000f90a000 Threw 0x00000000f06117c8 at C:\re\jdk7u51\527\hotspot\src\share\vm\prims\jvm.cpp:1244 +Event: 7.743 Thread 0x000000000f90a000 Threw 0x00000000f0615090 at C:\re\jdk7u51\527\hotspot\src\share\vm\prims\jvm.cpp:1244 +Event: 7.743 Thread 0x000000000f90a000 Threw 0x00000000f0615920 at C:\re\jdk7u51\527\hotspot\src\share\vm\prims\jvm.cpp:1244 + +Events (10 events): +Event: 7.797 Executing VM operation: RevokeBias done +Event: 7.797 Thread 0x000000000e319800 Thread exited: 0x000000000e319800 +Event: 7.798 Executing VM operation: RevokeBias +Event: 7.798 Executing VM operation: RevokeBias done +Event: 7.798 Executing VM operation: RevokeBias +Event: 7.798 Executing VM operation: RevokeBias done +Event: 7.798 Thread 0x000000000e31f800 Thread exited: 0x000000000e31f800 +Event: 7.798 Thread 0x000000000e312000 Thread exited: 0x000000000e312000 +Event: 7.798 Thread 0x000000000e31d800 Thread exited: 0x000000000e31d800 +Event: 9.841 Executing VM operation: RevokeBias + + +Dynamic libraries: +0x00007ff751e40000 - 0x00007ff751e73000 C:\Program Files\Java\jdk1.7.0_51\bin\java.exe +0x00007fffc8560000 - 0x00007fffc870c000 C:\WINDOWS\SYSTEM32\ntdll.dll +0x00007fffc8110000 - 0x00007fffc824a000 C:\WINDOWS\system32\KERNEL32.DLL +0x00007fffc5970000 - 0x00007fffc5a7f000 C:\WINDOWS\system32\KERNELBASE.dll +0x00007fffc4380000 - 0x00007fffc440e000 C:\WINDOWS\system32\apphelp.dll +0x00007fffb3d30000 - 0x00007fffb3d83000 C:\WINDOWS\AppPatch\AppPatch64\AcGenral.DLL +0x00007fffc6140000 - 0x00007fffc61e7000 C:\WINDOWS\system32\msvcrt.dll +0x00007fffc5650000 - 0x00007fffc567b000 C:\WINDOWS\SYSTEM32\SspiCli.dll +0x00007fffc5cb0000 - 0x00007fffc5d01000 C:\WINDOWS\system32\SHLWAPI.dll +0x00007fffc6690000 - 0x00007fffc6801000 C:\WINDOWS\system32\USER32.dll +0x00007fffc7d90000 - 0x00007fffc7f08000 C:\WINDOWS\system32\ole32.dll +0x00007fffc6830000 - 0x00007fffc7d48000 C:\WINDOWS\system32\SHELL32.dll +0x00007fffc4e10000 - 0x00007fffc4e2f000 C:\WINDOWS\SYSTEM32\USERENV.dll +0x00007fffc65e0000 - 0x00007fffc6685000 C:\WINDOWS\system32\ADVAPI32.dll +0x00007fffb7ba0000 - 0x00007fffb7bbb000 C:\WINDOWS\SYSTEM32\MPR.dll +0x00007fffc5ec0000 - 0x00007fffc5ff7000 C:\WINDOWS\system32\RPCRT4.dll +0x00007fffc8250000 - 0x00007fffc82a9000 C:\WINDOWS\SYSTEM32\sechost.dll +0x00007fffc8380000 - 0x00007fffc8556000 C:\WINDOWS\SYSTEM32\combase.dll +0x00007fffc6490000 - 0x00007fffc65d4000 C:\WINDOWS\system32\GDI32.dll +0x00007fffc57a0000 - 0x00007fffc57b4000 C:\WINDOWS\SYSTEM32\profapi.dll +0x00007fffc42c0000 - 0x00007fffc4372000 C:\WINDOWS\SYSTEM32\SHCORE.dll +0x00007fffc7d50000 - 0x00007fffc7d84000 C:\WINDOWS\system32\IMM32.DLL +0x00007fffc7f10000 - 0x00007fffc8062000 C:\WINDOWS\system32\MSCTF.dll +0x00000000500c0000 - 0x00000000500f8000 C:\PROGRA~2\Sophos\SOPHOS~1\SOPHOS~2.DLL +0x00007fffc6130000 - 0x00007fffc6137000 C:\WINDOWS\system32\PSAPI.DLL +0x00007fffc3740000 - 0x00007fffc39ba000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9600.17810_none_6240b9c7ecbd0bda\COMCTL32.dll +0x0000000075ef0000 - 0x0000000075fc2000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\msvcr100.dll +0x0000000073cf0000 - 0x00000000744b9000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\server\jvm.dll +0x00007fffbc460000 - 0x00007fffbc469000 C:\WINDOWS\SYSTEM32\WSOCK32.dll +0x00007fffc3090000 - 0x00007fffc30af000 C:\WINDOWS\SYSTEM32\WINMM.dll +0x00007fffc82b0000 - 0x00007fffc8308000 C:\WINDOWS\system32\WS2_32.dll +0x00007fffc3050000 - 0x00007fffc307a000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll +0x00007fffc5eb0000 - 0x00007fffc5eb9000 C:\WINDOWS\system32\NSI.dll +0x00007fffc5a80000 - 0x00007fffc5aca000 C:\WINDOWS\SYSTEM32\cfgmgr32.dll +0x00007fffc45f0000 - 0x00007fffc4616000 C:\WINDOWS\SYSTEM32\DEVOBJ.dll +0x0000000050090000 - 0x000000005009f000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\verify.dll +0x0000000074800000 - 0x0000000074828000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\java.dll +0x00000000747e0000 - 0x00000000747f5000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\zip.dll +0x00000000747c0000 - 0x00000000747d9000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\net.dll +0x00007fffc50b0000 - 0x00007fffc5108000 C:\WINDOWS\system32\mswsock.dll +0x00000000747a0000 - 0x00000000747b1000 C:\Program Files\Java\jdk1.7.0_51\jre\bin\nio.dll +0x00007fffc5110000 - 0x00007fffc512e000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll +0x00007fffc4d00000 - 0x00007fffc4d35000 C:\WINDOWS\system32\rsaenh.dll +0x00007fffc5350000 - 0x00007fffc5376000 C:\WINDOWS\SYSTEM32\bcrypt.dll +0x00007fffc5680000 - 0x00007fffc56e0000 C:\WINDOWS\system32\bcryptprimitives.dll +0x00007fffc56e0000 - 0x00007fffc56ea000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll +0x00007fffb7a70000 - 0x00007fffb7a84000 C:\WINDOWS\system32\napinsp.dll +0x00007fffb7a90000 - 0x00007fffb7aa9000 C:\WINDOWS\system32\pnrpnsp.dll +0x00007fffc0670000 - 0x00007fffc068b000 C:\WINDOWS\system32\NLAapi.dll +0x00007fffc4ec0000 - 0x00007fffc4f64000 C:\WINDOWS\SYSTEM32\DNSAPI.dll +0x00007fffb7ab0000 - 0x00007fffb7abc000 C:\WINDOWS\System32\winrnr.dll +0x0000000050b90000 - 0x0000000050bb6000 C:\Program Files\Bonjour\mdnsNSP.dll +0x00007fffbddf0000 - 0x00007fffbde19000 C:\WINDOWS\SYSTEM32\Iphlpapi.DLL +0x00007fffbddd0000 - 0x00007fffbddda000 C:\WINDOWS\SYSTEM32\WINNSI.DLL +0x00007fffb9a70000 - 0x00007fffb9a79000 C:\Windows\System32\rasadhlp.dll +0x00007fffbdb90000 - 0x00007fffbdbfb000 C:\WINDOWS\System32\fwpuclnt.dll +0x00007fffbb630000 - 0x00007fffbb642000 C:\Users\Chris\AppData\Local\Temp\native-platform7883221194529296210dir\native-platform.dll +0x00007fffbdc70000 - 0x00007fffbdc84000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL +0x00007fffbdc50000 - 0x00007fffbdc69000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL + +VM Arguments: +jvm_args: -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=windows-1252 -Duser.country=DE -Duser.language=de -Duser.variant +java_command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 2.2.1 C:\Users\Chris\.gradle\daemon 10800000 410974b1-9922-499b-bf75-13159b0f5ac3 -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=windows-1252 -Duser.country=DE -Duser.language=de -Duser.variant +Launcher Type: SUN_STANDARD + +Environment Variables: +PATH=C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\idmu\common;C:\Program Files (x86)\GNU\GnuPG\pub;C:\Program Files\Microsoft Network Monitor 3\;C:\Program Files\OpenVPN\bin;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Windows Live\Shared +USERNAME=chris +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel + + + +--------------- S Y S T E M --------------- + +OS: Windows 8 , 64 bit Build 9200 + +CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, aes, ht, tsc, tscinvbit + +Memory: 4k page, physical 12072340k(1327936k free), swap 17358432k(288528k free) + +vm_info: Java HotSpot(TM) 64-Bit Server VM (24.51-b03) for windows-amd64 JRE (1.7.0_51-b13), built on Dec 18 2013 18:40:56 by "java_re" with unknown MS VC++:1600 + +time: Mon Jun 29 16:15:01 2015 +elapsed time: 9 seconds + -- GitLab