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; package monnethic.mobile.history;
import android.app.DatePickerDialog; import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.content.Intent; import android.content.Intent;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
@ -20,10 +21,12 @@ import com.example.monnthic.monnethicmobile.R;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import monnethic.mobile.database.Transaction; import monnethic.mobile.database.Transaction;
import monnethic.mobile.restApi.Config; import monnethic.mobile.restApi.Config;
import monnethic.mobile.restApi.SessionApiHandler;
import monnethic.mobile.restApi.TransactionApiHandler; import monnethic.mobile.restApi.TransactionApiHandler;
import monnethic.mobile.transaction.TransactionAdapter; import monnethic.mobile.transaction.TransactionAdapter;
@ -61,12 +64,13 @@ public class HistoryActivity extends AppCompatActivity {
} }
private void initView(){ private void initView(){
inputSize = findViewById(R.id.inputSize);
inputSize.setText(String.valueOf(10));
dateInit(); dateInit();
buttonInit(); buttonInit();
switchInit(); switchInit();
spinnerInit(); spinnerInit();
listViewHandler(); listViewHandler("0");
inputSize = findViewById(R.id.inputSize);
} }
public void dateInit(){ public void dateInit(){
@ -111,13 +115,22 @@ public class HistoryActivity extends AppCompatActivity {
} }
public void updateLabel(int idDate){ public void updateLabel(int idDate){
String myFormat = "dd-MM-yyyy"; try{
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.FRANCE); String myFormat = "dd-MM-yyyy";
if(idDate==0){ SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.FRANCE);
fromDate.setText(sdf.format(calendar1.getTime())); if(idDate==0){
}else { fromDate.setText(sdf.format(calendar1.getTime()));
toDate.setText(sdf.format(calendar2.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(){ public void buttonInit(){
@ -125,7 +138,31 @@ public class HistoryActivity extends AppCompatActivity {
btnSearchTransactions.setOnClickListener(new View.OnClickListener() { btnSearchTransactions.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { 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); spinner.setAdapter(adapterOptions);
} }
public void listViewHandler(){ public void listViewHandler(String function){
listView = findViewById(R.id.listViewTransactions); listView = findViewById(R.id.listViewTransactions);
ArrayList<Transaction> transactions = new ArrayList<>(); ArrayList<Transaction> transactions = new ArrayList<>();
//function, wallet_hash, size, start_date, end_date
try{ 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){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();
} }
@ -183,13 +235,50 @@ public class HistoryActivity extends AppCompatActivity {
} }
private class getTransactionTask extends AsyncTask<String,ArrayList<Transaction>,ArrayList<Transaction>> { 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 @Override
protected ArrayList<Transaction> doInBackground(String... strings) { protected ArrayList<Transaction> doInBackground(String... strings) {
ArrayList<Transaction> transactionsList = new ArrayList<>(); ArrayList<Transaction> transactionsList = new ArrayList<>();
try{ try{
TransactionApiHandler transactionApiHandler = new TransactionApiHandler(); 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){ }catch (Exception e){
e.printStackTrace(); 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 //TRANSACTION
static public String TRANSACTION_SEND = BASE_URL_TRANSACTION+"send"; static public String TRANSACTION_SEND = BASE_URL_TRANSACTION+"send";
static public String TRANSACTION_GET = BASE_URL_TRANSACTION+"get"; static public String TRANSACTION_GET = BASE_URL_TRANSACTION+"get";
static public String TRANSACTION_LATEST = BASE_URL_TRANSACTION+"/get/latest"; static public String TRANSACTION_LATEST = BASE_URL_TRANSACTION+"get/latest";
static public String TRANSACTION_ALL = BASE_URL_TRANSACTION+"getAll"; static public String TRANSACTION_ALL = BASE_URL_TRANSACTION+"getTransactions";
static public String TRANSACTION_SENT = BASE_URL_TRANSACTION+"sent"; static public String TRANSACTION_SENT = BASE_URL_TRANSACTION+"get/sent";
static public String TRANSACTION_RECEIVED = BASE_URL_TRANSACTION+"received"; static public String TRANSACTION_RECEIVED = BASE_URL_TRANSACTION+"get/received";
static public String TRANSACTION_SAVE = BASE_URL_TRANSACTION+"save";
//WALLET //WALLET
static public String WALLET_CREATE = BASE_URL_WALLET+"create"; static public String WALLET_CREATE = BASE_URL_WALLET+"create";

View file

@ -32,13 +32,18 @@ public class TransactionApiHandler {
return ""; 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<>(); ArrayList<Transaction> transactionsList = new ArrayList<>();
HttpCallHandler httpCallHandler = new HttpCallHandler(); HttpCallHandler httpCallHandler = new HttpCallHandler();
try{ 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)); String response = httpCallHandler.getHttp(new URL(url));
JSONArray jsonArray = new JSONArray(response); JSONArray jsonArray = new JSONArray(response);