diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index d655409..37735c1 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/build.gradle b/app/build.gradle index ef38851..e7ff473 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,7 +29,9 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:27.1.1' + implementation 'com.android.support:design:27.1.1' testImplementation 'junit:junit:4.12' + testImplementation 'org.json:json:20140107' implementation 'com.android.support.constraint:constraint-layout:1.1.3' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfd28bf..98d711f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -37,7 +37,10 @@ - + + + + \ No newline at end of file diff --git a/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java b/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java index 6d39295..2d542af 100644 --- a/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java +++ b/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java @@ -17,6 +17,7 @@ import org.json.JSONObject; import monnethic.mobile.restApi.Config; import monnethic.mobile.restApi.HttpCallHandler; import monnethic.mobile.user.UserAccountActivity; +import monnethic.mobile.wallet.HomeWalletActivity; public class LoginActivity extends AppCompatActivity { private EditText email; @@ -81,9 +82,12 @@ public class LoginActivity extends AppCompatActivity { try{ if(result!=null){ if(result.getInt("status") == 200){ - Intent accountIntent = new Intent(LoginActivity.this, UserAccountActivity.class); - accountIntent.putExtra("userHash", result.getString("userHash")); - LoginActivity.this.startActivity(accountIntent); + //Intent accountIntent = new Intent(LoginActivity.this, UserAccountActivity.class); + Intent walletHomeIntent = new Intent(LoginActivity.this, HomeWalletActivity.class); + walletHomeIntent.putExtra("USER_HASH", result.getString("userHash")); + walletHomeIntent.putExtra("USER_PWD",password.getText().toString()); + walletHomeIntent.putExtra("SESSION_ID","0"); + LoginActivity.this.startActivity(walletHomeIntent); finish(); }else{ Toast.makeText(mContext, result.getString("response"), Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/monnethic/mobile/restApi/Config.java b/app/src/main/java/monnethic/mobile/restApi/Config.java index 3a17cf7..89d3878 100644 --- a/app/src/main/java/monnethic/mobile/restApi/Config.java +++ b/app/src/main/java/monnethic/mobile/restApi/Config.java @@ -3,10 +3,10 @@ package monnethic.mobile.restApi; public class Config { //BASE static private String BASE_URL = "http://10.0.2.2:10053/"; - - //DATABASE + //static private String BASE_URL = "http://localhost:10053/"; 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_WALLET = BASE_URL+"api/rest/wallet/"; //USER static public String USER_LOGIN = BASE_URL_USER+"login"; @@ -21,6 +21,14 @@ public class Config { static public String TRANSACTION_RECEIVED = BASE_URL_TRANSACTION+"received"; static public String TRANSACTION_SAVE = BASE_URL_TRANSACTION+"save"; + //WALLET + static public String WALLET_CREATE = BASE_URL_WALLET+"create"; + static public String WALLET_GET_WALLET = BASE_URL_WALLET+"getWallet"; + static public String WALLET_GET_USER_WALLETS = BASE_URL_WALLET+"getUserWallets"; + static public String WALLET_DELETE = BASE_URL_WALLET+"delete"; + static public String WALLET_TRANSFER = BASE_URL_WALLET+"transfer"; + + //BLOCKCHAIN static private String BASE_URL_QUERY = BASE_URL+"/api/rest/query/"; diff --git a/app/src/main/java/monnethic/mobile/restApi/HttpCallHandler.java b/app/src/main/java/monnethic/mobile/restApi/HttpCallHandler.java index d576d9d..61722d7 100644 --- a/app/src/main/java/monnethic/mobile/restApi/HttpCallHandler.java +++ b/app/src/main/java/monnethic/mobile/restApi/HttpCallHandler.java @@ -14,6 +14,36 @@ import monnethic.mobile.database.User; public class HttpCallHandler { + public String getHttp(URL url) throws Exception { + InputStream inputStream; + BufferedReader bufferedReader = null; + HttpURLConnection urlConnection = null; + + urlConnection = (HttpURLConnection) url.openConnection(); + urlConnection.setRequestMethod("GET"); + urlConnection.connect(); + + int responseCode = urlConnection.getResponseCode(); + if(responseCode != 200){ + throw new Exception("ERROR != 200"); + } + inputStream = urlConnection.getInputStream(); + if(inputStream == null){ + throw new Exception("ERROR inputStream"); + } + + bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); + StringBuilder stringBuilder = new StringBuilder(); + String line; + + while ((line = bufferedReader.readLine())!=null){ + stringBuilder.append(line); + } + + return stringBuilder.toString(); + } + + public String executeGetHttp(String urlParam, String[] params){ InputStream inputStream; BufferedReader bufferedReader = null; diff --git a/app/src/main/java/monnethic/mobile/restApi/WalletApiHandler.java b/app/src/main/java/monnethic/mobile/restApi/WalletApiHandler.java new file mode 100644 index 0000000..af8bfb3 --- /dev/null +++ b/app/src/main/java/monnethic/mobile/restApi/WalletApiHandler.java @@ -0,0 +1,42 @@ +package monnethic.mobile.restApi; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.net.URL; +import java.util.ArrayList; + +import monnethic.mobile.wallet.Wallet; + +public class WalletApiHandler { + + public ArrayList getUserWallets(String[] params){ + ArrayList walletList = new ArrayList<>(); + HttpCallHandler httpCallHandler = new HttpCallHandler(); + try { + String url = Config.WALLET_GET_USER_WALLETS+"?userHash="+params[0]; + String responseCall = httpCallHandler.getHttp(new URL(url)); + JSONArray jsonArray = new JSONArray(responseCall); + + for(int i=0; i userWallets; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_select_wallet); + + ListView listView = (ListView) findViewById(R.id.listViewWallet); + Intent intent = getIntent(); + String user_hash = intent.getStringExtra("USER_HASH"); + String[] params = {user_hash}; + + Log.i("SelectWalletActivity", "user_hash : "+user_hash); + try { + userWallets = new getUserWalletTask().execute(params).get(); + } catch (Exception e){ + e.printStackTrace(); + } + + Log.i("SelectWalletActivity", "userWallets : "+userWallets); + ArrayAdapter adapter = new ArrayAdapter(this, R.layout.activity_select_wallet, userWallets); + listView.setAdapter(adapter); + + //TODO + //ON CLICK ITEM + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView adapterView, View view, int i, long l) { + Wallet w = (Wallet) listView.getItemAtPosition(i); + Toast.makeText(getBaseContext(),w.getType(),Toast.LENGTH_SHORT).show(); + } + }); + } + + //AsyncTask for login + static private class getUserWalletTask extends AsyncTask> { + @Override + protected ArrayList doInBackground(String... params) { + ArrayList walletsList = new ArrayList<>(); + try{ + WalletApiHandler walletApiHandler = new WalletApiHandler(); + walletsList = walletApiHandler.getUserWallets(params); + Log.i("SelectWalletActivity", "walletsList : "+walletsList); + }catch (Exception e){ + e.printStackTrace(); + } + Log.i("SelectWalletActivity", "BEFORE RETURN : walletsList : "+walletsList); + return walletsList; + } + } +} diff --git a/app/src/main/java/monnethic/mobile/wallet/Wallet.java b/app/src/main/java/monnethic/mobile/wallet/Wallet.java new file mode 100644 index 0000000..65529ed --- /dev/null +++ b/app/src/main/java/monnethic/mobile/wallet/Wallet.java @@ -0,0 +1,102 @@ +package monnethic.mobile.wallet; + +public class Wallet { + private int wallet_id; + private String wallet_hash; + private String user_hash; + private String type; + private Double balance; + private long creation_date; + private long modification_date; + private boolean is_active; + + //Constructors + //Default constructor for ORMLite + public Wallet() { + } + + public Wallet(String type,String user_hash){ + this.type=type; + this.user_hash=user_hash; + } + + public Wallet(String wallet_hash, String user_hash, String type, boolean isActive) { + this.wallet_hash = wallet_hash; + this.user_hash = user_hash; + this.type = type; + this.is_active = isActive; + } + + public Wallet(String wallet_hash, String user_hash, String type, Double balance, boolean isActive) { + this.wallet_hash = wallet_hash; + this.user_hash = user_hash; + this.type = type; + this.balance = balance; + this.is_active = isActive; + } + + public int getWallet_id() { + return wallet_id; + } + + public void setWallet_id(int wallet_id) { + this.wallet_id = wallet_id; + } + + public String getWallet_hash() { + return wallet_hash; + } + public void setWallet_hash(String wallet_hash) { + this.wallet_hash = wallet_hash; + } + + public String getUser_hash() { + return user_hash; + } + public void setUser_hash(String user_hash) { + this.user_hash = user_hash; + } + + public String getType() { + return type; + } + public void setType(String type) { + this.type = type; + } + + public Double getBalance() { + return balance; + } + public void setBalance(Double balance) { + this.balance = balance; + } + + public boolean is_active() { + return is_active; + } + + public void setIs_active(boolean is_active) { + this.is_active = is_active; + } + + public long getCreation_date() { + return creation_date; + } + + public void setCreation_date(long creation_date) { + this.creation_date = creation_date; + } + + public long getModification_date() { + return modification_date; + } + + public void setModification_date(long modification_date) { + this.modification_date = modification_date; + } + + @Override + public String toString() { + return "{wallet_hash:"+wallet_hash+",user_hash:"+user_hash+",type:"+type+",balance:"+balance+"}"; + } +} diff --git a/app/src/main/res/layout/activity_create_wallet.xml b/app/src/main/res/layout/activity_create_wallet.xml new file mode 100644 index 0000000..715e4ee --- /dev/null +++ b/app/src/main/res/layout/activity_create_wallet.xml @@ -0,0 +1,60 @@ + + + + + + + + + +