Merge branch 'features/history' into develop

This commit is contained in:
GME 2019-04-20 12:22:20 +02:00
commit c4ec808cd3
4 changed files with 131 additions and 21 deletions

View file

@ -1,6 +1,7 @@
package monnethic.mobile.history;
import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
@ -20,10 +21,12 @@ import com.example.monnthic.monnethicmobile.R;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import monnethic.mobile.database.Transaction;
import monnethic.mobile.restApi.Config;
import monnethic.mobile.restApi.SessionApiHandler;
import monnethic.mobile.restApi.TransactionApiHandler;
import monnethic.mobile.transaction.TransactionAdapter;
@ -61,12 +64,13 @@ public class HistoryActivity extends AppCompatActivity {
}
private void initView(){
inputSize = findViewById(R.id.inputSize);
inputSize.setText(String.valueOf(10));
dateInit();
buttonInit();
switchInit();
spinnerInit();
listViewHandler();
inputSize = findViewById(R.id.inputSize);
listViewHandler("0");
}
public void dateInit(){
@ -111,13 +115,22 @@ public class HistoryActivity extends AppCompatActivity {
}
public void updateLabel(int idDate){
String myFormat = "dd-MM-yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.FRANCE);
if(idDate==0){
fromDate.setText(sdf.format(calendar1.getTime()));
}else {
toDate.setText(sdf.format(calendar2.getTime()));
try{
String myFormat = "dd-MM-yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.FRANCE);
if(idDate==0){
fromDate.setText(sdf.format(calendar1.getTime()));
}else {
if(calendar2.getTime().before(calendar1.getTime())){
toDate.setText(sdf.format(calendar1.getTime()));
}else {
toDate.setText(sdf.format(calendar2.getTime()));
}
}
} catch (Exception e){
e.printStackTrace();
}
}
public void buttonInit(){
@ -125,7 +138,31 @@ public class HistoryActivity extends AppCompatActivity {
btnSearchTransactions.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(HistoryActivity.this,"Spinner :"+String.valueOf(spinner.getSelectedItem()),Toast.LENGTH_SHORT).show();
if(!aSwitch.isChecked()){
switch (String.valueOf(spinner.getSelectedItem())){
case "All":
listViewHandler("1");
break;
case "Sent":
listViewHandler("2");
break;
case "Received":
listViewHandler("3");
break;
}
} else {
switch (String.valueOf(spinner.getSelectedItem())){
case "All":
listViewHandler("4");
break;
case "Sent":
listViewHandler("5");
break;
case "Received":
listViewHandler("6");
break;
}
}
}
});
@ -160,11 +197,26 @@ public class HistoryActivity extends AppCompatActivity {
spinner.setAdapter(adapterOptions);
}
public void listViewHandler(){
public void listViewHandler(String function){
listView = findViewById(R.id.listViewTransactions);
ArrayList<Transaction> transactions = new ArrayList<>();
//function, wallet_hash, size, start_date, end_date
try{
transactions = new getTransactionTask().execute(Config.TRANSACTION_LATEST,wallet_hash).get();
String myFormat = "dd-MM-yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.FRANCE);
Date start_d = sdf.parse(fromDate.getText().toString());
String start_date = String.valueOf(start_d.getTime());
Date end_d = sdf.parse(toDate.getText().toString());
String end_date = String.valueOf(end_d.getTime());
String size = inputSize.getText().toString();
if(Integer.parseInt(function)==0){
transactions = new getTransactionTask().execute(function,wallet_hash).get();
} else if(Integer.parseInt(function)==1 || Integer.parseInt(function)==2 || Integer.parseInt(function)==3){
transactions = new getTransactionTask().execute(function,wallet_hash,size).get();
} else {
transactions = new getTransactionTask().execute(function,wallet_hash,size,start_date,end_date).get();
}
}catch (Exception e){
e.printStackTrace();
}
@ -183,13 +235,50 @@ public class HistoryActivity extends AppCompatActivity {
}
private class getTransactionTask extends AsyncTask<String,ArrayList<Transaction>,ArrayList<Transaction>> {
ProgressDialog progDailog = new ProgressDialog(HistoryActivity.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
progDailog.setMessage("Searching...");
progDailog.setIndeterminate(false);
progDailog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progDailog.setCancelable(true);
progDailog.show();
}
@Override
protected void onPostExecute(ArrayList<Transaction> t) {
progDailog.dismiss();
}
@Override
protected ArrayList<Transaction> doInBackground(String... strings) {
ArrayList<Transaction> transactionsList = new ArrayList<>();
try{
TransactionApiHandler transactionApiHandler = new TransactionApiHandler();
transactionsList = transactionApiHandler.getTransactions(strings[0],strings[1]);
switch (Integer.parseInt(strings[0])){
case 0:
transactionsList = transactionApiHandler.getTransactions(strings[0],Config.TRANSACTION_LATEST,strings[1],null,null,null);
break;
case 1:
transactionsList = transactionApiHandler.getTransactions(strings[0],Config.TRANSACTION_ALL,strings[1],strings[2],null,null);
break;
case 2:
transactionsList = transactionApiHandler.getTransactions(strings[0],Config.TRANSACTION_SENT,strings[1],strings[2],null,null);
break;
case 3:
transactionsList = transactionApiHandler.getTransactions(strings[0],Config.TRANSACTION_RECEIVED,strings[1],strings[2],null,null);
break;
case 4:
transactionsList = transactionApiHandler.getTransactions(strings[0],Config.TRANSACTION_ALL,strings[1],strings[2],strings[3],strings[4]);
break;
case 5:
transactionsList = transactionApiHandler.getTransactions(strings[0],Config.TRANSACTION_SENT,strings[1],strings[2],strings[3],strings[4]);
break;
case 6:
transactionsList = transactionApiHandler.getTransactions(strings[0],Config.TRANSACTION_RECEIVED,strings[1],strings[2],strings[3],strings[4]);
break;
}
}catch (Exception e){
e.printStackTrace();
}
@ -197,6 +286,23 @@ public class HistoryActivity extends AppCompatActivity {
}
}
@Override
protected void onStop() {
super.onStop(); // Always call the superclass method first
new EndSessionTask().execute(session_id);
}
private class EndSessionTask extends AsyncTask<String,Void,Void> {
@Override
protected Void doInBackground(String... strings) {
try{
SessionApiHandler sessionApiHandler = new SessionApiHandler();
sessionApiHandler.endSession(strings[0]);
}catch (Exception e){
e.printStackTrace();
}
return null;
}
}
}

View file

@ -25,11 +25,10 @@ public class Config {
//TRANSACTION
static public String TRANSACTION_SEND = BASE_URL_TRANSACTION+"send";
static public String TRANSACTION_GET = BASE_URL_TRANSACTION+"get";
static public String TRANSACTION_LATEST = BASE_URL_TRANSACTION+"/get/latest";
static public String TRANSACTION_ALL = BASE_URL_TRANSACTION+"getAll";
static public String TRANSACTION_SENT = BASE_URL_TRANSACTION+"sent";
static public String TRANSACTION_RECEIVED = BASE_URL_TRANSACTION+"received";
static public String TRANSACTION_SAVE = BASE_URL_TRANSACTION+"save";
static public String TRANSACTION_LATEST = BASE_URL_TRANSACTION+"get/latest";
static public String TRANSACTION_ALL = BASE_URL_TRANSACTION+"getTransactions";
static public String TRANSACTION_SENT = BASE_URL_TRANSACTION+"get/sent";
static public String TRANSACTION_RECEIVED = BASE_URL_TRANSACTION+"get/received";
//WALLET
static public String WALLET_CREATE = BASE_URL_WALLET+"create";

View file

@ -32,13 +32,18 @@ public class TransactionApiHandler {
return "";
}
public ArrayList<Transaction> getTransactions(String url, String wallet_hash){
public ArrayList<Transaction> getTransactions(String function, String url, String wallet_hash,
String size, String start_date, String end_date){
ArrayList<Transaction> transactionsList = new ArrayList<>();
HttpCallHandler httpCallHandler = new HttpCallHandler();
try{
url = url+"?wallet_hash="+wallet_hash;
if(Integer.parseInt(function)==0){
url = url+"?wallet_hash="+wallet_hash;
} else if(Integer.parseInt(function)==1 || Integer.parseInt(function)==2 || Integer.parseInt(function)==3){
url = url+"?size="+size+"&wallet_hash="+wallet_hash;
} else {
url = url+"?size="+size+"&wallet_hash="+wallet_hash+"&start_date="+start_date+"&end_date="+end_date;
}
String response = httpCallHandler.getHttp(new URL(url));
JSONArray jsonArray = new JSONArray(response);