Skip to content
Snippets Groups Projects
Commit 69157104 authored by Christian Dresen's avatar Christian Dresen
Browse files

Refactored for new Backend

parent a425f0af
No related branches found
No related tags found
No related merge requests found
Showing
with 163 additions and 39 deletions
......@@ -92,10 +92,10 @@
<orderEntry type="library" exported="" name="converter-gson-2.0.0-beta2" level="project" />
<orderEntry type="library" exported="" name="jackson-databind-2.0.1" level="project" />
<orderEntry type="library" exported="" name="jackson-annotations-2.0.1" level="project" />
<orderEntry type="library" exported="" name="spring-android-rest-template-1.0.1.RELEASE" level="project" />
<orderEntry type="library" exported="" name="okhttp-2.7.5" level="project" />
<orderEntry type="library" exported="" name="antlr4-runtime-4.5.3" level="project" />
<orderEntry type="library" exported="" name="spring-android-rest-template-1.0.1.RELEASE" level="project" />
<orderEntry type="library" exported="" name="gson-2.7" level="project" />
<orderEntry type="library" exported="" name="antlr4-runtime-4.5.3" level="project" />
<orderEntry type="library" exported="" name="support-v4-22.2.0" level="project" />
<orderEntry type="library" exported="" name="spring-android-core-1.0.1.RELEASE" level="project" />
<orderEntry type="library" exported="" name="codepath-utils" level="project" />
......
......@@ -109,7 +109,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
case R.id.action_learn_card_id:
if (this.manager.getCurrentUser() != null){
new AlertDialog.Builder(this)
.setTitle(this.getResources().getString(R.string.confirm_payment_title))
.setTitle(this.getResources().getString(R.string.confirm_learn_card))
.setMessage("Bitte die Karte vorhalten und nach dem Ton auf ok drücken.")
.setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
......
......@@ -4,6 +4,7 @@ package ms.itsecteam.warpdrink.data;
import java.util.List;
import ms.itsecteam.warpdrink.data.models.rest.RestProduct;
import ms.itsecteam.warpdrink.data.models.rest.RestTransaction;
import ms.itsecteam.warpdrink.data.models.rest.RestUser;
import retrofit.Call;
import retrofit.http.Body;
......@@ -29,4 +30,6 @@ public interface RestService {
@GET("products/")
Call<List<RestProduct>> getAllProducts();
@PUT("transaction/{userid}/")
Call<Void> saveTransaction(@Path("userid") String uid, @Body RestTransaction transaction);
}
\ No newline at end of file
......@@ -58,6 +58,7 @@ public class SQLiteService {
for (RestProduct anU : body) {
Product prod = anU.toLocalProduct();
prod.save();
Log.d("HALLO",String.valueOf(prod.getPid()));
ret_val.add(prod);
}
......
package ms.itsecteam.warpdrink.data.models.rest;
import android.util.Log;
import ms.itsecteam.warpdrink.data.models.local.Product;
import ms.itsecteam.warpdrink.data.models.local.User;
public class RestProduct {
private int pid;
private int id;
private String name;
private String category;
private Float price;
private int count;
private Float price_vk;
private int stock_count;
public RestProduct() {
super();
}
public RestProduct(int pid, String name, String category, Float price, int count) {
this.pid = pid;
public RestProduct(int id, String name, String category, Float price_vk, int stock_count) {
this.id = id;
this.name = name;
this.category = category;
this.price = price;
this.count = count;
this.price_vk = price_vk;
this.stock_count = stock_count;
}
public int getPid() {
return pid;
public int getId() {
return this.id;
}
public void setPid(int pid) {
this.pid = pid;
public void setId(int id) {
this.id = id;
}
public String getName() {
......@@ -49,34 +51,34 @@ public class RestProduct {
}
public Float getPrice() {
return price;
return price_vk;
}
public void setPrice(Float price) {
this.price = price;
this.price_vk = price_vk;
}
public int getCount() {
return count;
return stock_count;
}
public void setCount(int count) {
this.count = count;
public void setCount(int stock_count) {
this.stock_count = stock_count;
}
public Product toLocalProduct() {
Product p = new Product();
p.setPid(this.pid);
p.setPid(this.id);
p.setName(this.name);
p.setCategory(this.category);
p.setPrice(this.price);
p.setCount(this.count);
p.setPrice(this.price_vk);
p.setCount(this.stock_count);
return p;
}
public static RestProduct fromLocalProduct(Product product) {
RestProduct restProduct = new RestProduct();
restProduct.setPid(product.getPid());
restProduct.setId(product.getPid());
restProduct.setName(product.getName());
restProduct.setCategory(product.getCategory());
restProduct.setCount(product.getCount());
......
package ms.itsecteam.warpdrink.data.models.rest;
public class RestTransaction {
private int tid;
private int trans_type;
private RestProduct product;
private double amount;
private boolean cash_paid;
public RestTransaction() {
super();
}
public RestTransaction(int tid, int trans_type, RestProduct product, double amount, boolean cash_paid) {
this.tid = tid;
this.trans_type = trans_type;
this.product = product;
this.amount = amount;
this.cash_paid = cash_paid;
}
public int getTid() {
return tid;
}
public int getTrans_type() {
return trans_type;
}
public void setTrans_type(int trans_type) {
this.trans_type = trans_type;
}
public RestProduct getProduct() {
return product;
}
public void setProduct(RestProduct product) {
this.product = product;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public boolean isCash_paid() {
return cash_paid;
}
public void setCash_paid(boolean cash_paid) {
this.cash_paid = cash_paid;
}
}
......@@ -37,6 +37,7 @@ public class NewUserDialog extends Dialog implements
@Override
public void onClick(View v) {
/*
switch (v.getId()) {
case R.id.btnAddUser:
String username = this.txtUsername.getText().toString();
......@@ -54,5 +55,6 @@ public class NewUserDialog extends Dialog implements
default:
break;
}
*/
}
}
......@@ -2,8 +2,14 @@ package ms.itsecteam.warpdrink.manager;
import android.util.Log;
import java.io.IOException;
import java.util.ArrayList;
import ms.itsecteam.warpdrink.data.models.local.User;
import ms.itsecteam.warpdrink.data.models.rest.RestProduct;
import ms.itsecteam.warpdrink.data.models.rest.RestTransaction;
import ms.itsecteam.warpdrink.data.models.rest.RestUser;
import ms.itsecteam.warpdrink.orderList.Order;
import retrofit.Callback;
import retrofit.Response;
import retrofit.Retrofit;
......@@ -11,7 +17,7 @@ import retrofit.Retrofit;
public class DataManager {
private User currentUser;
private double totalAmount;
private ArrayList<Order> orderList;
private static DataManager ourInstance = new DataManager();
private String lastCardId;
......@@ -20,6 +26,7 @@ public class DataManager {
}
private DataManager() {
this.orderList = new ArrayList<Order>();
}
public void saveCurrentUser() {
......@@ -39,13 +46,31 @@ public class DataManager {
public void performPayment() {
for (Order order:this.orderList) {
RestTransaction transaction = new RestTransaction();
transaction.setProduct(RestProduct.fromLocalProduct(order.getProduct()));
transaction.setTrans_type(2);
MainManager.getInstance().getRestService().saveTransaction(this.currentUser.getUserid(), transaction).enqueue(new Callback<Void>() {
@Override
public void onResponse(Response<Void> response, Retrofit retrofit) {
}
@Override
public void onFailure(Throwable t) {
Log.d("REST", t.getMessage());
}
});
}
this.currentUser.setCredit(this.currentUser.getCredit()-this.totalAmount);
this.saveCurrentUser();
this.currentUser.save();
this.totalAmount = 0.0;
}
public void clearCurrentUser() {
this.currentUser = null;
this.totalAmount = 0.0;
this.orderList = new ArrayList<Order>();
}
public User getCurrentUser() {
......@@ -60,10 +85,14 @@ public class DataManager {
return totalAmount;
}
public void addToTotalAmount(double value) {
this.totalAmount += value;
public void addOrder(Order order) {
this.orderList.add(order);
this.totalAmount += order.getProduct().getPrice();
}
public void removeOrder(Order order) {
this.orderList.remove(order);
this.totalAmount -= order.getProduct().getPrice();
}
public void setTotalAmount(double totalAmount) {
this.totalAmount = totalAmount;
}
......
......@@ -13,6 +13,7 @@ import ms.itsecteam.warpdrink.data.models.local.Product;
import ms.itsecteam.warpdrink.data.models.local.User;
import ms.itsecteam.warpdrink.data.RestService;
import ms.itsecteam.warpdrink.data.models.rest.RestProduct;
import ms.itsecteam.warpdrink.data.models.rest.RestTransaction;
import ms.itsecteam.warpdrink.data.models.rest.RestUser;
import ms.itsecteam.warpdrink.orderList.Order;
import retrofit.Callback;
......@@ -43,7 +44,8 @@ public class MainManager {
private RestService createRestService() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://infra-test.warpzone.ms/api/")
.baseUrl("http://10.0.1.134:8000/api/")
//.baseUrl("https://infra-test.warpzone.ms/api/")
// .baseUrl("http://10.0.2.92:8000/api/")
.addConverterFactory(GsonConverterFactory.create())
.build();
......@@ -92,7 +94,7 @@ public class MainManager {
});
}
/**
public boolean addUser(String name) {
Log.d("USER", "Start");
if(User.getByName(name) == null) {
......@@ -115,7 +117,7 @@ public class MainManager {
}
return false;
}
**/
public void setCurrentUser(User user) {
if (user != null) {
this.dataManager.setCurrentUser(user);
......@@ -131,22 +133,47 @@ public class MainManager {
this.uiManager.clearCurrentUser();
}
public void addOrder(Product product) {
DataManager.getInstance().addToTotalAmount(product.getPrice());
public void addOrder(Order order) {
DataManager.getInstance().addOrder(order);
this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount());
}
public void removeOrder(Order order) {
DataManager.getInstance().addToTotalAmount((-1)*order.getProduct().getPrice());
DataManager.getInstance().removeOrder(order);
this.uiManager.removeOrder(order);
this.uiManager.refreshTotalTextView(DataManager.getInstance().getTotalAmount());
}
public void chargeAmount(double amount) {
User currentUser = this.dataManager.getCurrentUser();
currentUser.setCredit(currentUser.getCredit() + amount);
this.dataManager.saveCurrentUser();
MainManager.getInstance().uiManager.refreshCreditTextView(currentUser.getCredit());
RestTransaction t = new RestTransaction();
t.setAmount(amount);
t.setTrans_type(1);
t.setCash_paid(true);
MainManager.getInstance().getRestService().saveTransaction(currentUser.getUserid(), t).enqueue(new Callback<Void>() {
@Override
public void onResponse(Response<Void> response, Retrofit retrofit) {
}
@Override
public void onFailure(Throwable t) {
Log.d("REST", t.getMessage());
}
});
MainManager.getInstance().getRestService().getSingleUser(currentUser.getUserid()).enqueue(new Callback<RestUser>() {
@Override
public void onResponse(Response<RestUser> response, Retrofit retrofit) {
DataManager.getInstance().getCurrentUser().setCredit(response.body().getCredit());
MainManager.getInstance().uiManager.refreshCreditTextView(DataManager.getInstance().getCurrentUser().getCredit());
}
@Override
public void onFailure(Throwable t) {
Log.d("REST", t.getMessage());
}
});
}
public void performPayment() {
User user = DataManager.getInstance().getCurrentUser();
......@@ -194,7 +221,7 @@ public class MainManager {
if (card_id != null) {
new AlertDialog.Builder(this.mainActivity)
.setTitle(this.mainActivity.getResources().getString(R.string.confirm_payment_title))
.setTitle(this.mainActivity.getResources().getString(R.string.confirm_learn_card))
.setMessage("Die karten id "+card_id+" wird dem Nutzer "+this.getCurrentUser()+" hinzugefügt")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
......
......@@ -182,8 +182,9 @@ public class UiManager implements View.OnKeyListener, View.OnClickListener, Adap
switch (parent.getId()) {
case R.id.lstProduct:
Product p = this.lstProductAdapter.getItem(position);
Order order = new Order(p);
this.lstOrderedAdapter.insert(new Order(p), this.lstOrderedAdapter.getCount());
MainManager.getInstance().addOrder(p);
MainManager.getInstance().addOrder(order);
break;
case -1:
MainManager.getInstance().setCurrentUser((User) this.atxvAdapter.getItem(position));
......
......@@ -18,6 +18,7 @@
<string name="btnLogout">Logout</string>
<string name="please_charge">Bitte lade dein Konto auf!</string>
<string name="confirm_payment_title">Bezahlung bestaetigen</string>
<string name="confirm_learn_card">Karte anlernen</string>
<string name="confirm_payment">Willst du wirklich %1$,.2f Euro bezahlen?</string>
<string name="credit">Guthaben: %1$,.2f Euro</string>
<string name="total">Gesamt: %1$,.2f Euro</string>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment