diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 010c3e1..19b65ad 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/src/main/java/monnethic/mobile/history/HistoryActivity.java b/app/src/main/java/monnethic/mobile/history/HistoryActivity.java index f6fd364..e057c25 100644 --- a/app/src/main/java/monnethic/mobile/history/HistoryActivity.java +++ b/app/src/main/java/monnethic/mobile/history/HistoryActivity.java @@ -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 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,ArrayList> { + 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 t) { + progDailog.dismiss(); + } @Override protected ArrayList doInBackground(String... strings) { ArrayList 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 { + @Override + protected Void doInBackground(String... strings) { + try{ + SessionApiHandler sessionApiHandler = new SessionApiHandler(); + sessionApiHandler.endSession(strings[0]); + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } + } } diff --git a/app/src/main/java/monnethic/mobile/restApi/Config.java b/app/src/main/java/monnethic/mobile/restApi/Config.java index 0b24fc8..f2df96c 100644 --- a/app/src/main/java/monnethic/mobile/restApi/Config.java +++ b/app/src/main/java/monnethic/mobile/restApi/Config.java @@ -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"; diff --git a/app/src/main/java/monnethic/mobile/restApi/TransactionApiHandler.java b/app/src/main/java/monnethic/mobile/restApi/TransactionApiHandler.java index 30f9481..156a873 100644 --- a/app/src/main/java/monnethic/mobile/restApi/TransactionApiHandler.java +++ b/app/src/main/java/monnethic/mobile/restApi/TransactionApiHandler.java @@ -32,13 +32,18 @@ public class TransactionApiHandler { return ""; } - public ArrayList getTransactions(String url, String wallet_hash){ + public ArrayList getTransactions(String function, String url, String wallet_hash, + String size, String start_date, String end_date){ ArrayList 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);