setup session

This commit is contained in:
GME 2019-04-17 23:03:22 +02:00
parent 3d35d34bd8
commit cd8fd8082c
21 changed files with 271 additions and 339 deletions

View file

@ -31,7 +31,6 @@
<activity android:name="monnethic.mobile.homepage.RegisterActivity" /> <activity android:name="monnethic.mobile.homepage.RegisterActivity" />
<activity android:name="monnethic.mobile.homepage.LoginActivity" /> <activity android:name="monnethic.mobile.homepage.LoginActivity" />
<activity android:name="monnethic.mobile.user.UserAccountActivity" /> <activity android:name="monnethic.mobile.user.UserAccountActivity" />
<activity android:name="monnethic.mobile.wallet.WalletPresenterActivity" />
<activity android:name="monnethic.mobile.transaction.TransactionActivity" /> <activity android:name="monnethic.mobile.transaction.TransactionActivity" />
<activity android:name="monnethic.mobile.qrcode.QrCodeActivity" /> <activity android:name="monnethic.mobile.qrcode.QrCodeActivity" />
<activity android:name="monnethic.mobile.transaction.ReceivePayementActivity" /> <activity android:name="monnethic.mobile.transaction.ReceivePayementActivity" />

View file

@ -6,6 +6,7 @@ import android.content.Intent;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
@ -38,7 +39,6 @@ public class LoginActivity extends AppCompatActivity {
buttonOk.setOnClickListener(new View.OnClickListener() { buttonOk.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
System.out.println("CLICKED");
validateInput(); validateInput();
} }
}); });
@ -118,10 +118,4 @@ public class LoginActivity extends AppCompatActivity {
} }
} }
@Override
protected void onStop() {
super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show();
}
} }

View file

@ -2,20 +2,21 @@ package monnethic.mobile.qrcode;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import com.google.zxing.BarcodeFormat; import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter; import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException; import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix; import com.google.zxing.common.BitMatrix;
import com.journeyapps.barcodescanner.BarcodeEncoder; import com.journeyapps.barcodescanner.BarcodeEncoder;
import monnethic.mobile.restApi.SessionApiHandler;
public class QrCodeActivity extends AppCompatActivity { public class QrCodeActivity extends AppCompatActivity {
ImageView qrCode; ImageView qrCode;
@ -74,6 +75,19 @@ public class QrCodeActivity extends AppCompatActivity {
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); // Always call the superclass method first super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); 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

@ -3,6 +3,7 @@ package monnethic.mobile.qrcode;
import android.Manifest; import android.Manifest;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.AsyncTask;
import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
@ -15,6 +16,8 @@ import com.google.android.gms.vision.CameraSource;
import com.google.android.gms.vision.Detector; import com.google.android.gms.vision.Detector;
import com.google.android.gms.vision.barcode.Barcode; import com.google.android.gms.vision.barcode.Barcode;
import com.google.android.gms.vision.barcode.BarcodeDetector; import com.google.android.gms.vision.barcode.BarcodeDetector;
import monnethic.mobile.restApi.SessionApiHandler;
import monnethic.mobile.transaction.ApprovePayementActivity; import monnethic.mobile.transaction.ApprovePayementActivity;
public class QrCodeScannerActivity extends AppCompatActivity { public class QrCodeScannerActivity extends AppCompatActivity {
@ -116,6 +119,19 @@ public class QrCodeScannerActivity extends AppCompatActivity {
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); // Always call the superclass method first super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); 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

@ -8,6 +8,7 @@ public class Config {
static private String BASE_URL_USER = BASE_URL+"api/rest/user/"; static private String BASE_URL_USER = BASE_URL+"api/rest/user/";
static private String BASE_URL_TRANSACTION = BASE_URL+"api/rest/transaction/"; static private String BASE_URL_TRANSACTION = BASE_URL+"api/rest/transaction/";
static private String BASE_URL_WALLET = BASE_URL+"api/rest/wallet/"; static private String BASE_URL_WALLET = BASE_URL+"api/rest/wallet/";
static private String BASE_URL_SESSION = BASE_URL+"api/rest/session/";
//USER //USER
static public String USER_LOGIN = BASE_URL_USER+"login"; static public String USER_LOGIN = BASE_URL_USER+"login";
@ -17,6 +18,9 @@ public class Config {
static public String FIND_BY_EMAIL= BASE_URL_USER+"findByEmail"; static public String FIND_BY_EMAIL= BASE_URL_USER+"findByEmail";
static public String FIND_BY_PHONE = BASE_URL_USER+"findByPhone"; static public String FIND_BY_PHONE = BASE_URL_USER+"findByPhone";
static public String FIND_BY_EMAIL_AND_PHONE = BASE_URL_USER+"findByEmailAndPhone"; static public String FIND_BY_EMAIL_AND_PHONE = BASE_URL_USER+"findByEmailAndPhone";
//Session
static public String START_SESSION = BASE_URL_SESSION+"start";
static public String END_SESSION = BASE_URL_SESSION+"end";
//TRANSACTION //TRANSACTION
static public String TRANSACTION_SEND = BASE_URL_TRANSACTION+"send"; static public String TRANSACTION_SEND = BASE_URL_TRANSACTION+"send";

View file

@ -1,18 +1,14 @@
package monnethic.mobile.restApi; package monnethic.mobile.restApi;
import android.util.Log;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.util.Map; import java.util.Map;
import monnethic.mobile.database.User;
public class HttpCallHandler { public class HttpCallHandler {
public String getHttp(URL url) throws Exception { public String getHttp(URL url) throws Exception {
@ -63,11 +59,7 @@ public class HttpCallHandler {
DataOutputStream os = new DataOutputStream(urlConnection.getOutputStream()); DataOutputStream os = new DataOutputStream(urlConnection.getOutputStream());
os.writeBytes(jsonParam.toString()); os.writeBytes(jsonParam.toString());
Log.i("HttpCallHandler",jsonParam.toString());
int statusCode = urlConnection.getResponseCode(); int statusCode = urlConnection.getResponseCode();
Log.i("HttpCallHandler",String.valueOf(statusCode));
if(statusCode != 200){ if(statusCode != 200){
JSONObject jsonReturn = new JSONObject(); JSONObject jsonReturn = new JSONObject();
if(statusCode == 404){ if(statusCode == 404){
@ -89,7 +81,6 @@ public class HttpCallHandler {
stringBuilder.append(line); stringBuilder.append(line);
} }
//stringBuilder.append("{\"status\":"+200+"}");
JSONObject json = new JSONObject(stringBuilder.toString()); JSONObject json = new JSONObject(stringBuilder.toString());
json.put("status",200); json.put("status",200);
returnValue = json.toString(); returnValue = json.toString();
@ -97,129 +88,22 @@ public class HttpCallHandler {
return returnValue; return returnValue;
} }
public void postHttpSession(URL url, Map<String,Integer> params) throws Exception {
HttpURLConnection urlConnection = null;
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("POST");
urlConnection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
urlConnection.setRequestProperty("Accept","application/json");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
public String executeLoginHttp(String urlParam, String[] params){ JSONObject jsonParam = new JSONObject();
BufferedReader bufferedReader = null; for(Map.Entry<String,Integer> pair : params.entrySet()){
HttpURLConnection connection = null; jsonParam.put(pair.getKey(),pair.getValue());
String res = null;
try{
URL url = new URL(urlParam);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
connection.setRequestProperty("Accept","application/json");
connection.setDoOutput(true);
connection.setDoInput(true);
JSONObject jsonParam = new JSONObject();
jsonParam.put("email",params[0]);
jsonParam.put("password",params[1]);
DataOutputStream os = new DataOutputStream(connection.getOutputStream());
os.writeBytes(jsonParam.toString());
int statusCode = connection.getResponseCode();
if(statusCode != 200){
JSONObject jsonReturn = new JSONObject();
System.out.println("Response code is : "+statusCode);
if(statusCode == 404){
jsonReturn.put("status",404);
jsonReturn.put("response","Not Found");
return jsonReturn.toString();
}else if(statusCode == 403){
jsonReturn.put("status",403);
jsonReturn.put("response","Wrong Password");
return jsonReturn.toString();
}
}else{
bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine())!=null){
stringBuilder.append(line);
}
JSONObject jsonSuccess = new JSONObject(stringBuilder.toString());
jsonSuccess.put("status",200);
res = jsonSuccess.toString();
os.flush();
os.close();
}
return res;
}catch (Exception e){
e.printStackTrace();
return null;
} finally {
if(connection != null){
connection.disconnect();
}
if(bufferedReader != null){
try {
bufferedReader.close();
}catch (IOException e){
e.printStackTrace();
}
}
} }
}
public String executeRegisterHttp(String urlParam, User user){ DataOutputStream os = new DataOutputStream(urlConnection.getOutputStream());
BufferedReader bufferedReader = null; os.writeBytes(jsonParam.toString());
HttpURLConnection connection = null; urlConnection.getResponseCode();
String res = null;
try{
URL url = new URL(urlParam);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
connection.setRequestProperty("Accept","application/json");
connection.setDoOutput(true);
connection.setDoInput(true);
JSONObject jsonParam = new JSONObject();
jsonParam.put("name",user.getName());
jsonParam.put("firstname",user.getFirstname());
jsonParam.put("email",user.getEmail());
jsonParam.put("password",user.getPassword());
DataOutputStream os = new DataOutputStream(connection.getOutputStream());
os.writeBytes(jsonParam.toString());
int statusCode = connection.getResponseCode();
if(statusCode!=200){
JSONObject jsonReturn = new JSONObject();
System.out.println("Response code is : "+statusCode);
if(statusCode == 302){
jsonReturn.put("status",302);
jsonReturn.put("response","User Already Exist !");
return jsonReturn.toString();
}else {
return null;
}
}else {
bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine())!=null){
stringBuilder.append(line);
}
JSONObject jsonSuccess = new JSONObject(stringBuilder.toString());
jsonSuccess.put("status",200);
res = jsonSuccess.toString();
os.flush();
os.close();
}
return res;
}catch (Exception e){
e.printStackTrace();
return null;
} finally {
if(connection != null){
connection.disconnect();
}
if(bufferedReader != null){
try {
bufferedReader.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
} }
} }

View file

@ -0,0 +1,19 @@
package monnethic.mobile.restApi;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
public class SessionApiHandler {
public void endSession(String session_id){
HttpCallHandler httpCallHandler = new HttpCallHandler();
try{
String url = Config.END_SESSION;
Map<String, Integer> map = new HashMap<>();
map.put("session_id",Integer.parseInt(session_id));
httpCallHandler.postHttpSession(new URL(url), map);
}catch (Exception e){
e.printStackTrace();
}
}
}

View file

@ -1,6 +1,5 @@
package monnethic.mobile.restApi; package monnethic.mobile.restApi;
import android.util.Log;
import org.json.JSONObject; import org.json.JSONObject;
import java.net.URL; import java.net.URL;
import java.util.HashMap; import java.util.HashMap;
@ -14,7 +13,6 @@ public class TransactionApiHandler {
try{ try{
String url = Config.TRANSACTION_SEND; String url = Config.TRANSACTION_SEND;
Map<String,String> map = new HashMap<>(); Map<String,String> map = new HashMap<>();
Log.i("TransactionApiHandler",sendingTransaction.toString());
map.put("source_user_hash",sendingTransaction.getSource_user_hash()); map.put("source_user_hash",sendingTransaction.getSource_user_hash());
map.put("source_user_pwd",sendingTransaction.getSource_user_pwd()); map.put("source_user_pwd",sendingTransaction.getSource_user_pwd());
map.put("transaction_from",sendingTransaction.getTransaction_from()); map.put("transaction_from",sendingTransaction.getTransaction_from());
@ -23,7 +21,6 @@ public class TransactionApiHandler {
map.put("transaction_unit",sendingTransaction.getTransaction_unit()); map.put("transaction_unit",sendingTransaction.getTransaction_unit());
String response = httpCallHandler.postHttp(new URL(url),map); String response = httpCallHandler.postHttp(new URL(url),map);
JSONObject jsonObject = new JSONObject(response); JSONObject jsonObject = new JSONObject(response);
Log.i("TransactionApiHandler",jsonObject.toString());
return jsonObject.getString("response"); return jsonObject.getString("response");
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();

View file

@ -1,6 +1,5 @@
package monnethic.mobile.restApi; package monnethic.mobile.restApi;
import android.util.Log;
import org.json.JSONObject; import org.json.JSONObject;
import java.net.URL; import java.net.URL;
import java.util.HashMap; import java.util.HashMap;
@ -25,12 +24,17 @@ public class UserApiHandler {
String responseCall = httpCallHandler.postHttp(new URL(url), map); String responseCall = httpCallHandler.postHttp(new URL(url), map);
JSONObject jsonObject = new JSONObject(responseCall); JSONObject jsonObject = new JSONObject(responseCall);
u.setUser_hash(jsonObject.getString("user_hash")); u.setUser_hash(jsonObject.getString("user_hash"));
Log.i("UserApiHandler-register","user_hash :"+jsonObject.getString("user_hash"));
JSONObject jsonReturn = new JSONObject(); JSONObject jsonReturn = new JSONObject();
jsonReturn.put("user_hash",u.getUser_hash()); jsonReturn.put("user_hash",u.getUser_hash());
//jsonReturn.put("session_id",String.valueOf(jsonObject.getString("session_id"))); //TODO
jsonReturn.put("session_id",String.valueOf(0)); String urlSession = Config.START_SESSION;
Map<String, String> mapSession = new HashMap<>();
mapSession.put("user_email",u.getEmail());
mapSession.put("user_hash",u.getUser_hash());
String responseCallSession = httpCallHandler.postHttp(new URL(urlSession), mapSession);
JSONObject jsonObjectSession = new JSONObject(responseCallSession);
jsonReturn.put("session_id",String.valueOf(jsonObjectSession.getInt("session_id")));
return jsonReturn; return jsonReturn;
}catch (Exception e){ }catch (Exception e){
@ -57,10 +61,14 @@ public class UserApiHandler {
JSONObject jsonReturn = new JSONObject(); JSONObject jsonReturn = new JSONObject();
jsonReturn.put("status",200); jsonReturn.put("status",200);
jsonReturn.put("user_hash",u.getUser_hash()); jsonReturn.put("user_hash",u.getUser_hash());
//jsonReturn.put("session_id",String.valueOf(jsonObject.getString("session_id"))); //TODO
String urlSession = Config.START_SESSION;
jsonReturn.put("session_id",String.valueOf(0)); Map<String, String> mapSession = new HashMap<>();
mapSession.put("user_email",u.getEmail());
mapSession.put("user_hash",u.getUser_hash());
String responseCallSession = httpCallHandler.postHttp(new URL(urlSession), mapSession);
JSONObject jsonObjectSession = new JSONObject(responseCallSession);
jsonReturn.put("session_id",String.valueOf(jsonObjectSession.getInt("session_id")));
return jsonReturn; return jsonReturn;
} }

View file

@ -10,11 +10,13 @@ import android.widget.AdapterView;
import android.widget.ListView; import android.widget.ListView;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import java.util.ArrayList; import java.util.ArrayList;
import monnethic.mobile.restApi.SessionApiHandler;
import monnethic.mobile.restApi.WalletApiHandler; import monnethic.mobile.restApi.WalletApiHandler;
import monnethic.mobile.wallet.Wallet; import monnethic.mobile.wallet.Wallet;
public class DisplayWalletSearch extends AppCompatActivity { public class DisplayWalletSearch extends AppCompatActivity {
private ArrayList<Wallet> userWallets; private ArrayList<Wallet> userWallets;
private String session_id;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -26,6 +28,7 @@ public class DisplayWalletSearch extends AppCompatActivity {
String user_name = intent.getStringExtra("user_name"); String user_name = intent.getStringExtra("user_name");
String user_firstname = intent.getStringExtra("user_firstname"); String user_firstname = intent.getStringExtra("user_firstname");
String user_hash = intent.getStringExtra("user_hash"); String user_hash = intent.getStringExtra("user_hash");
session_id = intent.getStringExtra("SESSION_ID");
try { try {
userWallets = new SearchWalletTask().execute(user_hash).get(); userWallets = new SearchWalletTask().execute(user_hash).get();
@ -84,4 +87,23 @@ public class DisplayWalletSearch 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

@ -13,6 +13,7 @@ import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import monnethic.mobile.database.User; import monnethic.mobile.database.User;
import monnethic.mobile.homepage.InputController; import monnethic.mobile.homepage.InputController;
import monnethic.mobile.restApi.SessionApiHandler;
import monnethic.mobile.restApi.UserApiHandler; import monnethic.mobile.restApi.UserApiHandler;
public class SearchUser extends AppCompatActivity { public class SearchUser extends AppCompatActivity {
@ -20,12 +21,20 @@ public class SearchUser extends AppCompatActivity {
EditText phoneNumber; EditText phoneNumber;
Button buttonCancel; Button buttonCancel;
Button buttonOk; Button buttonOk;
private String session_id;
private String user_hash;
private String user_password;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_user); setContentView(R.layout.activity_search_user);
Intent intent = getIntent();
user_hash = intent.getStringExtra("USER_HASH");
user_password = intent.getStringExtra("USER_PWD");
session_id = intent.getStringExtra("SESSION_ID");
initView(); initView();
} }
@ -88,6 +97,7 @@ public class SearchUser extends AppCompatActivity {
displayWalletIntent.putExtra("user_name",user.getName()); displayWalletIntent.putExtra("user_name",user.getName());
displayWalletIntent.putExtra("user_firstname",user.getFirstname()); displayWalletIntent.putExtra("user_firstname",user.getFirstname());
displayWalletIntent.putExtra("user_hash",user.getUser_hash()); displayWalletIntent.putExtra("user_hash",user.getUser_hash());
displayWalletIntent.putExtra("SESSION_ID",session_id);
displayWalletIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); displayWalletIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
SearchUser.this.startActivity(displayWalletIntent); SearchUser.this.startActivity(displayWalletIntent);
finish(); finish();
@ -116,4 +126,23 @@ public class SearchUser 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

@ -10,6 +10,7 @@ import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import monnethic.mobile.restApi.SessionApiHandler;
import monnethic.mobile.restApi.TransactionApiHandler; import monnethic.mobile.restApi.TransactionApiHandler;
public class ApprovePayementActivity extends AppCompatActivity { public class ApprovePayementActivity extends AppCompatActivity {
@ -111,6 +112,19 @@ public class ApprovePayementActivity extends AppCompatActivity {
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); // Always call the superclass method first super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); 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

@ -1,14 +1,15 @@
package monnethic.mobile.transaction; package monnethic.mobile.transaction;
import android.content.Intent; import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import monnethic.mobile.qrcode.QrCodeScannerActivity; import monnethic.mobile.qrcode.QrCodeScannerActivity;
import monnethic.mobile.restApi.SessionApiHandler;
public class MakePayementActivity extends AppCompatActivity { public class MakePayementActivity extends AppCompatActivity {
Button btnScanQr; Button btnScanQr;
@ -70,6 +71,19 @@ public class MakePayementActivity extends AppCompatActivity {
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); // Always call the superclass method first super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); 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

@ -1,14 +1,15 @@
package monnethic.mobile.transaction; package monnethic.mobile.transaction;
import android.content.Intent; import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import monnethic.mobile.qrcode.QrCodeActivity; import monnethic.mobile.qrcode.QrCodeActivity;
import monnethic.mobile.restApi.SessionApiHandler;
public class ReceivePayementActivity extends AppCompatActivity { public class ReceivePayementActivity extends AppCompatActivity {
Button cancelButton; Button cancelButton;
@ -61,6 +62,19 @@ public class ReceivePayementActivity extends AppCompatActivity {
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); // Always call the superclass method first super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); 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

@ -5,13 +5,13 @@ import android.content.Intent;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.Toast; import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import monnethic.mobile.homepage.InputController; import monnethic.mobile.homepage.InputController;
import monnethic.mobile.restApi.SessionApiHandler;
import monnethic.mobile.restApi.TransactionApiHandler; import monnethic.mobile.restApi.TransactionApiHandler;
import monnethic.mobile.search.SearchUser; import monnethic.mobile.search.SearchUser;
@ -39,11 +39,6 @@ public class TransactionActivity extends AppCompatActivity {
session_id = intent.getStringExtra("SESSION_ID"); session_id = intent.getStringExtra("SESSION_ID");
wallet_hash = intent.getStringExtra("WALLET_HASH"); wallet_hash = intent.getStringExtra("WALLET_HASH");
Log.i("UserAccountActivity", "user_hash : "+user_hash);
Log.i("UserAccountActivity", "user_password : "+user_password);
Log.i("UserAccountActivity", "session_id : "+session_id);
Log.i("UserAccountActivity", "wallet_hash : "+wallet_hash);
buttonCancel.setOnClickListener(new View.OnClickListener() { buttonCancel.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
@ -98,6 +93,9 @@ public class TransactionActivity extends AppCompatActivity {
public void launchSearchActivity(){ public void launchSearchActivity(){
Intent searchIntent = new Intent(TransactionActivity.this, SearchUser.class); Intent searchIntent = new Intent(TransactionActivity.this, SearchUser.class);
searchIntent.putExtra("USER_HASH",user_hash);
searchIntent.putExtra("USER_PWD",user_password);
searchIntent.putExtra("SESSION_ID",session_id);
startActivityForResult(searchIntent,1); startActivityForResult(searchIntent,1);
} }
@ -110,12 +108,6 @@ public class TransactionActivity extends AppCompatActivity {
} }
} }
@Override
protected void onStop() {
super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show();
}
private class TransactionTask extends AsyncTask<SendingTransaction,String,String> { private class TransactionTask extends AsyncTask<SendingTransaction,String,String> {
@Override @Override
@ -142,4 +134,23 @@ public class TransactionActivity 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

@ -4,12 +4,13 @@ import android.content.Intent;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import monnethic.mobile.restApi.SessionApiHandler;
import monnethic.mobile.restApi.WalletApiHandler; import monnethic.mobile.restApi.WalletApiHandler;
import monnethic.mobile.transaction.MakePayementActivity; import monnethic.mobile.transaction.MakePayementActivity;
import monnethic.mobile.transaction.ReceivePayementActivity; import monnethic.mobile.transaction.ReceivePayementActivity;
@ -69,11 +70,6 @@ public class UserAccountActivity extends AppCompatActivity {
} }
}); });
Log.i("UserAccountActivity", "user_hash : "+user_hash);
Log.i("UserAccountActivity", "user_password : "+user_password);
Log.i("UserAccountActivity", "session_id : "+session_id);
Log.i("UserAccountActivity", "wallet_hash : "+wallet_hash);
String[] params = {wallet_hash}; String[] params = {wallet_hash};
new GetUserBalanceTask().execute(params); new GetUserBalanceTask().execute(params);
} }
@ -134,14 +130,25 @@ public class UserAccountActivity extends AppCompatActivity {
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); // Always call the superclass method first super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); 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;
}
} }
@Override @Override
protected void onRestart() { protected void onRestart() {
super.onRestart(); // Always call the superclass method first super.onRestart(); // Always call the superclass method first
Log.i("UserAccountActivity",wallet_hash);
new GetUserBalanceTask().execute(wallet_hash); new GetUserBalanceTask().execute(wallet_hash);
Toast.makeText(getApplicationContext(), "onRestart called", Toast.LENGTH_LONG).show();
} }
} }

View file

@ -9,8 +9,9 @@ import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import monnethic.mobile.restApi.SessionApiHandler;
import monnethic.mobile.restApi.WalletApiHandler; import monnethic.mobile.restApi.WalletApiHandler;
import monnethic.mobile.user.UserAccountActivity; import monnethic.mobile.user.UserAccountActivity;
@ -101,6 +102,19 @@ public class CreateWalletActivity extends AppCompatActivity {
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); // Always call the superclass method first super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); 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

@ -1,12 +1,13 @@
package monnethic.mobile.wallet; package monnethic.mobile.wallet;
import android.content.Intent; import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import monnethic.mobile.restApi.SessionApiHandler;
public class HomeWalletActivity extends AppCompatActivity { public class HomeWalletActivity extends AppCompatActivity {
private String user_hash; private String user_hash;
@ -59,6 +60,19 @@ public class HomeWalletActivity extends AppCompatActivity {
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); // Always call the superclass method first super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); 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

@ -8,9 +8,9 @@ import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R; import com.example.monnthic.monnethicmobile.R;
import java.util.ArrayList; import java.util.ArrayList;
import monnethic.mobile.restApi.SessionApiHandler;
import monnethic.mobile.restApi.WalletApiHandler; import monnethic.mobile.restApi.WalletApiHandler;
import monnethic.mobile.user.UserAccountActivity; import monnethic.mobile.user.UserAccountActivity;
@ -95,6 +95,19 @@ public class SelectWalletActivity extends AppCompatActivity {
@Override @Override
protected void onStop() { protected void onStop() {
super.onStop(); // Always call the superclass method first super.onStop(); // Always call the superclass method first
Toast.makeText(getApplicationContext(), "onStop called", Toast.LENGTH_LONG).show(); 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

@ -1,61 +0,0 @@
package monnethic.mobile.wallet;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.example.monnthic.monnethicmobile.R;
import monnethic.mobile.transaction.TransactionActivity;
public class WalletPresenterActivity extends AppCompatActivity {
private EditText addressPublic;
private TextView balance;
private String address;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wallet_presenter);
addressPublic = findViewById(R.id.address_pub);
balance = findViewById(R.id.balance);
Button refreshBalance = findViewById(R.id.refreshBalance);
Button buttonSendTransaction = findViewById(R.id.send_transaction);
Intent intent = getIntent();
address = intent.getStringExtra("WALLET_ADDRESS");
addressPublic.setText(address);
if(initiateBalance(address)==null){
balance.setText("IN DEV");
}else{
balance.setText("IN DEV");
}
buttonSendTransaction.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
launchTransactionActivity();
}
});
refreshBalance.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
initiateBalance(address);
}
});
}
public void launchTransactionActivity(){
Intent transactionIntent = new Intent(WalletPresenterActivity.this, TransactionActivity.class);
transactionIntent.putExtra("WALLET_ADDRESS",address);
WalletPresenterActivity.this.startActivity(transactionIntent);
}
public String initiateBalance(String address){
return "";
}
}

View file

@ -1,94 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/Balance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="BALANCE"
app:layout_constraintBottom_toTopOf="@+id/balance"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.247"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/send_transaction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="114dp"
android:text="SEND TRANSACTION"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/balance" />
<TextView
android:id="@+id/publicAddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/address_pub"
android:layout_alignStart="@+id/address_pub"
android:text="PUBLIC ADDRESS"
app:layout_constraintBottom_toTopOf="@+id/address_pub"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.294"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/balance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="234dp"
android:ems="10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/address_pub" />
<Button
android:id="@+id/refreshBalance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:text="REFRESH"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.971"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/address_pub"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_above="@+id/Balance"
android:layout_centerHorizontal="true"
android:layout_marginBottom="71dp"
android:editable="false"
android:ems="10"
android:inputType="none"
android:singleLine="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>