From 668d9ac97525b52319f4766d71bbf28f42863406 Mon Sep 17 00:00:00 2001 From: Christian Dresen <c.dresen@fh-muenster.de> Date: Fri, 26 Jun 2015 20:13:18 +0200 Subject: [PATCH] no message --- WarpDrinkApp/.idea/misc.xml | 3 + .../ms/itsecteam/warpdrink/MainActivity.java | 74 ++++--- .../ms/itsecteam/warpdrink/data/User.java | 26 +++ .../warpdrink/orderList/ListViewAdapter.java | 59 ++++++ .../itsecteam/warpdrink/orderList/Order.java | 43 +++++ .../app/src/main/res/drawable/btn_blue.xml | 16 ++ .../app/src/main/res/drawable/btn_green.xml | 53 +++++ .../app/src/main/res/drawable/btn_red.xml | 53 +++++ .../app/src/main/res/drawable/btn_yellow.xml | 53 +++++ .../app/src/main/res/layout/activity_main.xml | 181 ++++++++++++------ .../src/main/res/layout/order_list_item.xml | 22 +++ .../app/src/main/res/values/strings.xml | 4 +- 12 files changed, 502 insertions(+), 85 deletions(-) create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/User.java create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/orderList/ListViewAdapter.java create mode 100644 WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/orderList/Order.java create mode 100644 WarpDrinkApp/app/src/main/res/drawable/btn_green.xml create mode 100644 WarpDrinkApp/app/src/main/res/drawable/btn_red.xml create mode 100644 WarpDrinkApp/app/src/main/res/drawable/btn_yellow.xml create mode 100644 WarpDrinkApp/app/src/main/res/layout/order_list_item.xml diff --git a/WarpDrinkApp/.idea/misc.xml b/WarpDrinkApp/.idea/misc.xml index 1d9d626..e284b1d 100644 --- a/WarpDrinkApp/.idea/misc.xml +++ b/WarpDrinkApp/.idea/misc.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> + <component name="EntryPointsManager"> + <entry_points version="2.0" /> + </component> <component name="ProjectLevelVcsManager" settingsEditedManually="false"> <OptionsSetting value="true" id="Add" /> <OptionsSetting value="true" id="Remove" /> 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 b2bb956..88fd6ef 100644 --- a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/MainActivity.java @@ -2,14 +2,24 @@ package ms.itsecteam.warpdrink; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; -import android.view.Menu; -import android.view.MenuItem; import android.view.View; -import android.view.Window; -import android.view.WindowManager; +import android.widget.Button; +import android.widget.ListView; +import java.util.ArrayList; -public class MainActivity extends ActionBarActivity { +import ms.itsecteam.warpdrink.data.User; +import ms.itsecteam.warpdrink.orderList.ListViewAdapter; +import ms.itsecteam.warpdrink.orderList.Order; + + +public class MainActivity extends ActionBarActivity implements View.OnClickListener{ + + private Button btnOneEuro, btnFiftyCent, btnPay, btnCharge; + private ListView lstOrdered; + private ListViewAdapter lstAdapter; + private ArrayList<Double> order; + private User currentUser; @Override protected void onCreate(Bundle savedInstanceState) { @@ -17,27 +27,47 @@ public class MainActivity extends ActionBarActivity { getWindow().addFlags(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); getSupportActionBar().hide(); setContentView(R.layout.activity_main); - } - @Override - public boolean onCreateOptionsMenu(Menu menu) { - // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.menu_main, menu); - return true; + this.btnOneEuro = (Button) findViewById(R.id.btnOneEuro); + this.btnFiftyCent = (Button) findViewById(R.id.btnFiftyCent); + this.btnPay = (Button) findViewById(R.id.btnPay); + this.btnCharge = (Button) findViewById(R.id.btnCharge); + + this.btnOneEuro.setOnClickListener(this); + this.btnFiftyCent.setOnClickListener(this); + this.btnPay.setOnClickListener(this); + this.btnCharge.setOnClickListener(this); + + this.btnOneEuro.setEnabled(false); + this.btnFiftyCent.setEnabled(false); + this.btnCharge.setEnabled(false); + this.btnPay.setEnabled(false); + + this.lstOrdered = (ListView) findViewById(R.id.lstOrdered); + this.lstAdapter = new ListViewAdapter(this, R.layout.order_list_item, new ArrayList<Order>()); + this.lstOrdered.setAdapter(this.lstAdapter); + } + public void removeOrderOnClickHandler(View v) { + Order itemToRemove = (Order)v.getTag(); + this.lstAdapter.remove(itemToRemove); + } @Override - public boolean onOptionsItemSelected(MenuItem item) { - // Handle action bar item clicks here. The action bar will - // automatically handle clicks on the Home/Up button, so long - // as you specify a parent activity in AndroidManifest.xml. - int id = item.getItemId(); - - //noinspection SimplifiableIfStatement - if (id == R.id.action_settings) { - return true; - } + public void onClick(View v) { + switch(v.getId()){ + case R.id.btnOneEuro: + this.lstAdapter.insert(new Order(1.0), this.lstAdapter.getCount()); + break; + case R.id.btnFiftyCent: + this.lstAdapter.insert(new Order(0.5), this.lstAdapter.getCount()); + break; + case R.id.btnCharge: + + break; + case R.id.btnPay: - return super.onOptionsItemSelected(item); + break; + } } } diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/User.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/User.java new file mode 100644 index 0000000..432d018 --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/data/User.java @@ -0,0 +1,26 @@ +package ms.itsecteam.warpdrink.data; + +/** + * Created by Chris on 26.06.2015. + */ +public class User { + private int id; + private String name; + private double credit; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public double getCredit() { + return credit; + } + + public void setCredit(double credit) { + this.credit = credit; + } +} diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/orderList/ListViewAdapter.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/orderList/ListViewAdapter.java new file mode 100644 index 0000000..769424b --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/orderList/ListViewAdapter.java @@ -0,0 +1,59 @@ +package ms.itsecteam.warpdrink.orderList; + +import android.app.Activity; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ImageButton; +import android.widget.TextView; + +import java.util.List; + +import ms.itsecteam.warpdrink.R; + +public class ListViewAdapter extends ArrayAdapter<Order> { + + private List<Order> items; + private int layoutResourceId; + private Context context; + + public ListViewAdapter(Context context, int layoutResourceId, List<Order> items) { + super(context, layoutResourceId, items); + this.layoutResourceId = layoutResourceId; + this.context = context; + this.items = items; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View row; + OrderHolder holder; + + LayoutInflater inflater = ((Activity) context).getLayoutInflater(); + row = inflater.inflate(layoutResourceId, parent, false); + + holder = new OrderHolder(); + holder.order = items.get(position); + holder.btnRemoveOrder = (ImageButton)row.findViewById(R.id.btnRemoveOrder); + holder.btnRemoveOrder.setTag(holder.order); + + holder.value = (TextView)row.findViewById(R.id.txtOrderValue); + + row.setTag(holder); + + setupItem(holder); + return row; + } + + private void setupItem(OrderHolder holder) { + holder.value.setText(String.valueOf(holder.order.getValue())+" Euro"); + } + + public static class OrderHolder { + Order order; + TextView value; + ImageButton btnRemoveOrder; + } +} \ No newline at end of file diff --git a/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/orderList/Order.java b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/orderList/Order.java new file mode 100644 index 0000000..e999122 --- /dev/null +++ b/WarpDrinkApp/app/src/main/java/ms/itsecteam/warpdrink/orderList/Order.java @@ -0,0 +1,43 @@ +package ms.itsecteam.warpdrink.orderList; + +import android.widget.ImageButton; + +import java.io.Serializable; + +public class Order implements Serializable { + + private static final long serialVersionUID = -5435670920302756945L; + + private double value = 0; + private double position=0; + private ImageButton btn; + + public ImageButton getBtn() { + return btn; + } + + public void setBtn(ImageButton btn) { + this.btn = btn; + } + + public double getPosition() { + return position; + } + + public void setPosition(double position) { + this.position = position; + } + + public Order(double value) { + this.setValue(value); + } + + public double getValue() { + return value; + } + + public void setValue(double value) { + this.value = value; + } + +} diff --git a/WarpDrinkApp/app/src/main/res/drawable/btn_blue.xml b/WarpDrinkApp/app/src/main/res/drawable/btn_blue.xml index c4d8bb6..72d8cfe 100644 --- a/WarpDrinkApp/app/src/main/res/drawable/btn_blue.xml +++ b/WarpDrinkApp/app/src/main/res/drawable/btn_blue.xml @@ -16,6 +16,22 @@ android:bottom="10dp" /> </shape> </item> + <item android:state_enabled="false"> + <shape> + <solid + android:color="#bbbbbb" /> + <stroke + android:width="1dp" + android:color="#bbbbbb" /> + <corners + android:radius="3dp" /> + <padding + android:left="10dp" + android:top="10dp" + android:right="10dp" + android:bottom="10dp" /> + </shape> + </item> <item> <shape> <gradient diff --git a/WarpDrinkApp/app/src/main/res/drawable/btn_green.xml b/WarpDrinkApp/app/src/main/res/drawable/btn_green.xml new file mode 100644 index 0000000..4c89ae1 --- /dev/null +++ b/WarpDrinkApp/app/src/main/res/drawable/btn_green.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_pressed="true" > + <shape> + <solid + android:color="#70c656" /> + <stroke + android:width="1dp" + android:color="#53933f" /> + <corners + android:radius="3dp" /> + <padding + android:left="10dp" + android:top="10dp" + android:right="10dp" + android:bottom="10dp" /> + </shape> + </item> + <item android:state_enabled="false"> + <shape> + <solid + android:color="#bbbbbb" /> + <stroke + android:width="1dp" + android:color="#bbbbbb" /> + <corners + android:radius="3dp" /> + <padding + android:left="10dp" + android:top="10dp" + android:right="10dp" + android:bottom="10dp" /> + </shape> + </item> + <item> + <shape> + <gradient + android:startColor="#70c656" + android:endColor="#53933f" + android:angle="270" /> + <stroke + android:width="1dp" + android:color="#53933f" /> + <corners + android:radius="4dp" /> + <padding + android:left="10dp" + android:top="10dp" + android:right="10dp" + android:bottom="10dp" /> + </shape> + </item> +</selector> \ No newline at end of file diff --git a/WarpDrinkApp/app/src/main/res/drawable/btn_red.xml b/WarpDrinkApp/app/src/main/res/drawable/btn_red.xml new file mode 100644 index 0000000..74c18ea --- /dev/null +++ b/WarpDrinkApp/app/src/main/res/drawable/btn_red.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_pressed="true" > + <shape> + <solid + android:color="#ef4444" /> + <stroke + android:width="1dp" + android:color="#992f2f" /> + <corners + android:radius="3dp" /> + <padding + android:left="10dp" + android:top="10dp" + android:right="10dp" + android:bottom="10dp" /> + </shape> + </item> + <item android:state_enabled="false"> + <shape> + <solid + android:color="#bbbbbb" /> + <stroke + android:width="1dp" + android:color="#bbbbbb" /> + <corners + android:radius="3dp" /> + <padding + android:left="10dp" + android:top="10dp" + android:right="10dp" + android:bottom="10dp" /> + </shape> + </item> + <item> + <shape> + <gradient + android:startColor="#ef4444" + android:endColor="#992f2f" + android:angle="270" /> + <stroke + android:width="1dp" + android:color="#992f2f" /> + <corners + android:radius="3dp" /> + <padding + android:left="10dp" + android:top="10dp" + android:right="10dp" + android:bottom="10dp" /> + </shape> + </item> +</selector> \ No newline at end of file diff --git a/WarpDrinkApp/app/src/main/res/drawable/btn_yellow.xml b/WarpDrinkApp/app/src/main/res/drawable/btn_yellow.xml new file mode 100644 index 0000000..6a9695f --- /dev/null +++ b/WarpDrinkApp/app/src/main/res/drawable/btn_yellow.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_pressed="true" > + <shape> + <solid + android:color="#f3ae1b" /> + <stroke + android:width="1dp" + android:color="#bb6008" /> + <corners + android:radius="3dp" /> + <padding + android:left="10dp" + android:top="10dp" + android:right="10dp" + android:bottom="10dp" /> + </shape> + </item> + <item android:state_enabled="false"> + <shape> + <solid + android:color="#bbbbbb" /> + <stroke + android:width="1dp" + android:color="#bbbbbb" /> + <corners + android:radius="3dp" /> + <padding + android:left="10dp" + android:top="10dp" + android:right="10dp" + android:bottom="10dp" /> + </shape> + </item> + <item> + <shape> + <gradient + android:startColor="#f3ae1b" + android:endColor="#bb6008" + android:angle="270" /> + <stroke + android:width="1dp" + android:color="#bb6008" /> + <corners + android:radius="4dp" /> + <padding + android:left="10dp" + android:top="10dp" + android:right="10dp" + android:bottom="10dp" /> + </shape> + </item> +</selector> \ No newline at end of file diff --git a/WarpDrinkApp/app/src/main/res/layout/activity_main.xml b/WarpDrinkApp/app/src/main/res/layout/activity_main.xml index 1e826e7..376f26e 100644 --- a/WarpDrinkApp/app/src/main/res/layout/activity_main.xml +++ b/WarpDrinkApp/app/src/main/res/layout/activity_main.xml @@ -6,89 +6,146 @@ android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <LinearLayout - android:orientation="horizontal" + android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> - <GridLayout - android:layout_width="484dp" - android:layout_height="match_parent" - android:columnCount="13" - android:rowCount="6" - android:layout_alignParentTop="true" - android:layout_alignParentRight="true" - android:layout_alignParentEnd="true"> - - <AutoCompleteTextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/autoCompleteTextView" - android:layout_columnSpan="13" /> - - <Button android:text="@string/btn_oneEuro" android:id="@+id/button1" android:background="@drawable/btn_blue" style="@style/ButtonText" - android:layout_row="4" - android:layout_column="0" - android:width="10dp" - android:layout_width="160dp"></Button> + <LinearLayout + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="wrap_content"> - <Button - style="@style/ButtonText" - android:text="@string/btn_fiftyCent" - android:id="@+id/button" - android:background="@drawable/btn_blue" - android:layout_row="5" - android:layout_column="0" - android:width="10dp" - android:layout_width="158dp" - android:layout_height="wrap_content" /> + <LinearLayout + android:orientation="vertical" + android:layout_width="464dp" + android:layout_height="match_parent"> + + <LinearLayout + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_row="0" + android:layout_column="1"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:text="@string/name" + android:id="@+id/textView2" /> + + <Space + android:layout_width="20px" + android:layout_height="20px" /> + + <AutoCompleteTextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/autoCompleteTextView" + android:layout_columnSpan="1" + android:layout_row="0" + android:layout_column="0" /> + </LinearLayout> + + <Space + android:layout_width="20px" + android:layout_height="30px" + android:layout_column="1" + android:layout_row="2" /> + + <Button android:text="@string/btn_oneEuro" android:id="@+id/btnOneEuro" android:background="@drawable/btn_blue" style="@style/ButtonText" + android:layout_row="3" + android:layout_column="1" + android:width="10dp" + android:layout_width="300dp"></Button> + + <Button + style="@style/ButtonText" + android:text="@string/btn_fiftyCent" + android:id="@+id/btnFiftyCent" + android:background="@drawable/btn_blue" + android:layout_row="4" + android:layout_column="1" + android:width="10dp" + android:layout_width="300dp" + android:layout_height="wrap_content" /> - </GridLayout> + <Space + android:layout_width="20px" + android:layout_height="230px" /> + + </LinearLayout> + + <LinearLayout + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <Space + android:layout_width="20px" + android:layout_height="100px" /> + + <ListView + android:layout_width="wrap_content" + android:layout_height="291dp" + android:id="@+id/lstOrdered" + android:layout_row="2" + android:layout_column="12" + android:choiceMode="singleChoice" /> + + <Space + android:layout_width="20px" + android:layout_height="50px" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:text="@string/sum" + android:id="@+id/textView" /> + + <Space + android:layout_width="wrap_content" + android:layout_height="10dp" /> + + <Space + android:layout_width="20px" + android:layout_height="20px" /> + </LinearLayout> + + </LinearLayout> <LinearLayout - android:orientation="vertical" + android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> - <TextClock - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/textClock" - android:layout_gravity="right" /> - - <Space - android:layout_width="20px" - android:layout_height="100px" /> - - <ListView - android:layout_width="wrap_content" - android:layout_height="291dp" - android:id="@+id/listView" - android:layout_row="2" - android:layout_column="12" /> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceMedium" - android:text="Medium Text" - android:id="@+id/textView" /> + <Button + style="@style/ButtonText" + android:text="@string/btnCharge" + android:id="@+id/btnCharge" + android:background="@drawable/btn_yellow" + android:layout_row="40" + android:layout_column="1" + android:width="10dp" + android:layout_width="300dp" + android:layout_height="60dp" /> <Space - android:layout_width="20px" - android:layout_height="50px" /> + android:layout_width="200px" + android:layout_height="20px" /> <Button style="@style/ButtonText" android:text="@string/btn_pay" - android:id="@+id/button2" - android:background="@drawable/btn_blue" + android:id="@+id/btnPay" + android:background="@drawable/btn_green" android:layout_row="4" android:layout_column="0" android:width="10dp" - android:layout_width="314dp" + android:layout_width="355dp" android:layout_height="wrap_content" /> </LinearLayout> - </LinearLayout> </RelativeLayout> diff --git a/WarpDrinkApp/app/src/main/res/layout/order_list_item.xml b/WarpDrinkApp/app/src/main/res/layout/order_list_item.xml new file mode 100644 index 0000000..63914c5 --- /dev/null +++ b/WarpDrinkApp/app/src/main/res/layout/order_list_item.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:orientation="horizontal" > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:text="Medium Text" + android:id="@+id/txtOrderValue" /> + + <ImageButton + android:id="@+id/btnRemoveOrder" + android:layout_width="20dp" + android:layout_height="fill_parent" + android:contentDescription="@string/app_name" + android:onClick="removeOrderOnClickHandler" + android:src="@android:drawable/ic_menu_delete" + /> +</LinearLayout> \ No newline at end of file diff --git a/WarpDrinkApp/app/src/main/res/values/strings.xml b/WarpDrinkApp/app/src/main/res/values/strings.xml index 9c321da..905f3d4 100644 --- a/WarpDrinkApp/app/src/main/res/values/strings.xml +++ b/WarpDrinkApp/app/src/main/res/values/strings.xml @@ -8,7 +8,9 @@ <string name="btn_oneEuro">1 €</string> <string name="btn_fiftyCent">0,50 €</string> <string name="btn_pay">Bezahlen</string> - + <string name="btnCharge">Aufladen</string> + <string name="sum">Gesamt</string> + <string name="name">Name</string> <style name="ButtonText"> <item name="android:layout_width">fill_parent</item> -- GitLab