diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index c7b8f2e..f0067cf 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2827fab..b0c7b20 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -5,27 +5,33 @@
-
+
+
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index d69538f..ef38851 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,12 +1,12 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 26
+ compileSdkVersion 27
defaultConfig {
- applicationId "com.example.monnthic.monnthicmobile"
+ applicationId 'com.monnethic.appmobile'
multiDexEnabled true
minSdkVersion 19
- targetSdkVersion 26
+ targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -21,38 +21,23 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
- packagingOptions {
- exclude 'META-INF/INDEX.LIST'
- exclude 'META-INF/DEPENDENCIES'
- exclude 'META-INF/io.netty.versions.properties'
+ buildToolsVersion '28.0.3'
+ productFlavors {
}
}
dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'com.android.support:appcompat-v7:26.1.0'
- implementation 'com.android.support:design:26.1.0'
- implementation 'com.android.support:multidex:1.0.3'
- implementation 'com.android.support.constraint:constraint-layout:1.1.3'
- //implementation 'org.glassfish:javax.json:1.0.4'
- implementation 'com.google.code.gson:gson:2.8.5'
- implementation ('org.hyperledger.fabric-sdk-java:fabric-sdk-java:1.0.0'){
- //exclude group:'org.glassfish', module:'javax.json'
- exclude group:'log4j', module:'log4j'
- exclude group:'org.jacoco', module:"jacoco-maven-plugin"
- }
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
+ implementation 'com.android.support:appcompat-v7:27.1.1'
testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.1'
- androidTestImplementation 'com.android.support.test:rules:1.0.1'
- androidTestImplementation 'com.android.support:support-annotations:26.1.0'
- androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.1', {
- exclude group: 'com.android.support', module: 'support-annotations'
- })
- implementation 'com.j256.ormlite:ormlite-core:5.1'
- implementation 'com.j256.ormlite:ormlite-jdbc:5.1'
- implementation group: 'org.postgresql', name: 'postgresql', version: '42.2.5'
+ 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'
+ implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.google.zxing:core:3.2.1'
implementation 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
- implementation 'com.google.android.gms:play-services-vision:11.8.0'
- implementation group: 'com.madgag.spongycastle', name: 'core', version: '1.54.0.0'
+ implementation 'com.google.android.gms:play-services-vision:17.0.2'
+ implementation 'com.j256.ormlite:ormlite-core:5.1'
+ implementation 'com.j256.ormlite:ormlite-jdbc:5.1'
+ implementation 'org.postgresql:postgresql:42.2.5'
}
diff --git a/app/src/androidTest/java/monnethic/mobile/test/LearningTest.java b/app/src/androidTest/java/monnethic/mobile/test/LearningTest.java
index 0b86eba..e700131 100644
--- a/app/src/androidTest/java/monnethic/mobile/test/LearningTest.java
+++ b/app/src/androidTest/java/monnethic/mobile/test/LearningTest.java
@@ -5,19 +5,9 @@ import android.support.test.InstrumentationRegistry;
import com.example.monnthic.monnethicmobile.R;
-import org.json.JSONObject;
import org.junit.Test;
-
-import java.io.BufferedReader;
import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.io.Writer;
-import javax.json.Json;
-import javax.json.JsonObject;
-import javax.json.JsonReader;
diff --git a/app/src/androidTest/java/monnethic/mobile/test/blockchain/TestQuery.java b/app/src/androidTest/java/monnethic/mobile/test/blockchain/TestQuery.java
deleted file mode 100644
index c233919..0000000
--- a/app/src/androidTest/java/monnethic/mobile/test/blockchain/TestQuery.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package monnethic.mobile.test.blockchain;
-
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-
-import org.hyperledger.fabric.sdk.ProposalResponse;
-import org.junit.Test;
-
-import java.util.Collection;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import monnethic.mobile.blockchain.client.CAClientWrapper;
-import monnethic.mobile.blockchain.client.ChannelClientWrapper;
-import monnethic.mobile.blockchain.client.FabriClientWrapper;
-import monnethic.mobile.blockchain.network.Config;
-import monnethic.mobile.blockchain.participant.UserContext;
-import monnethic.mobile.test.blockchain.Utility.UtilTest;
-
-
-public class TestQuery {
-
- @Test
- public void TestAEnrollAdmin() throws Exception {
- try{
- Context appContext = InstrumentationRegistry.getTargetContext();
- String caUrl = Config.CA_ORG1_URL;
- CAClientWrapper caClientWrapper = new CAClientWrapper(caUrl,null,null,null);
- UserContext adminContext = new UserContext();
- adminContext.setName(Config.ADMIN);
- adminContext.setAffiliation(Config.ORG1);
- adminContext.setMspId(Config.ORG1_MSP);
- caClientWrapper.setAdminContext(adminContext);
- adminContext = caClientWrapper.enrollAdmin(appContext,Config.ADMIN,Config.ADMIN_PASSWORD,Config.ORG1);
- Logger.getLogger(TestQuery.class.getName()).log(Level.INFO, "adminContext Enrollement : "+adminContext.getEnrollment().toString());
-
- }catch (Exception e){
- e.printStackTrace();
- }
- }
-
- /*
- @Test
- public void TestAQueryChainCode() throws Exception {
- // Test query for user a on blockchain
- try{
- String query = "query";
- String[] args1 = {"a"};
- Context appContext = InstrumentationRegistry.getTargetContext();
-
- String caUrl = Config.CA_ORG1_URL;
- CAClientWrapper caClientWrapper = new CAClientWrapper(caUrl,null,null,null);
-
- UserContext adminContext = new UserContext();
- adminContext.setName(Config.ADMIN);
- adminContext.setAffiliation(Config.ORG1);
- adminContext.setMspId(Config.ORG1_MSP);
-
- caClientWrapper.setAdminContext(adminContext);
- adminContext = caClientWrapper.enrollAdmin(appContext,Config.ADMIN,Config.ADMIN_PASSWORD,Config.ORG1);
-
- FabriClientWrapper fabriClientWrapper = new FabriClientWrapper(adminContext);
- ChannelClientWrapper channelClientWrapper = fabriClientWrapper.createChannelClient(Config.CHANNEL_NAME);
-
- Logger.getLogger(TestQuery.class.getName()).log(Level.INFO, "Querying for USER A ...");
-
- Collection responsesQuery = channelClientWrapper.queryByChainCode(Config.CHAINCODE_NAME,query,args1);
-
- for(ProposalResponse pres : responsesQuery){
- String stringResponse = new String(pres.getChaincodeActionResponsePayload());
- Logger.getLogger(TestQuery.class.getName()).log(Level.INFO, stringResponse);
- }
-
- } catch (Exception e){
- e.printStackTrace();
- }
- }
- */
-
-
- /*
- @Test
- public void TestBQuery() throws Exception {
- try{
- UserContext userContext = new UserContext();
- userContext.setName(Config.ADMIN);
- userContext.setAffiliation(Config.ORG1);
- userContext.setMspId(Config.ORG1_MSP);
-
- FabriClientWrapper client = new FabriClientWrapper(userContext);
-
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- */
-}
diff --git a/app/src/androidTest/java/monnethic/mobile/test/blockchain/Utility/UtilTest.java b/app/src/androidTest/java/monnethic/mobile/test/blockchain/Utility/UtilTest.java
deleted file mode 100644
index 91297e8..0000000
--- a/app/src/androidTest/java/monnethic/mobile/test/blockchain/Utility/UtilTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package monnethic.mobile.test.blockchain.Utility;
-
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-
-import org.junit.FixMethodOrder;
-import org.junit.Test;
-import org.junit.runners.MethodSorters;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-
-import monnethic.mobile.blockchain.participant.UserContext;
-import monnethic.mobile.blockchain.utility.Util;
-
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class UtilTest {
- /*
- @Test
- public void readEmptyUserContext() throws Exception {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getTargetContext();
-
-
- }*/
-
- @Test
- public void testAreadNonUserContext() throws Exception {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getTargetContext();
- UserContext uc = Util.readUserContext(appContext,"tata","abdel");
- if(uc!=null){
- Logger.getLogger(UtilTest.class.getName()).log(Level.INFO, "UserContext is : "+uc.toString());
- }else{
- Logger.getLogger(UtilTest.class.getName()).log(Level.INFO, "UserContext doesn't exist");
- }
- }
-
-
- @Test
- public void testBwriteUserContext() throws Exception {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getTargetContext();
- UserContext user = new UserContext();
- user.setName("abdel");
- user.setAffiliation("toto");
- user.setEnrollment(null);
- user.setMspId("test");
-
- Util.writeUserContext(appContext, user);
- }
-
- @Test
- public void testCreadUserContext() throws Exception {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getTargetContext();
- UserContext uc = Util.readUserContext(appContext,"toto","abdel");
- Logger.getLogger(UtilTest.class.getName()).log(Level.INFO, "UserContext is : "+uc.toString());
- }
-
-
-}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4f61d86..e1f8301 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,11 +4,10 @@
+
-
-
-
diff --git a/app/src/main/java/monnethic/mobile/blockchain/client/CAClientWrapper.java b/app/src/main/java/monnethic/mobile/blockchain/client/CAClientWrapper.java
deleted file mode 100644
index 2189106..0000000
--- a/app/src/main/java/monnethic/mobile/blockchain/client/CAClientWrapper.java
+++ /dev/null
@@ -1,149 +0,0 @@
-package monnethic.mobile.blockchain.client;
-
-import android.content.Context;
-
-import org.hyperledger.fabric.sdk.Enrollment;
-import org.hyperledger.fabric.sdk.exception.CryptoException;
-import org.hyperledger.fabric.sdk.security.CryptoSuite;
-import org.hyperledger.fabric_ca.sdk.HFCAClient;
-import org.hyperledger.fabric_ca.sdk.RegistrationRequest;
-import org.hyperledger.fabric.sdk.exception.InvalidArgumentException;
-import java.lang.reflect.InvocationTargetException;
-import java.net.MalformedURLException;
-import java.util.Properties;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import monnethic.mobile.blockchain.participant.UserContext;
-import monnethic.mobile.blockchain.utility.Util;
-
-public class CAClientWrapper {
-
- private String caUrl;
- private HFCAClient hfcaClient;
- private Properties properties;
- private String org;
- private String mspId;
- private UserContext adminContext;
-
- public UserContext getAdminContext() {
- return adminContext;
- }
-
- public void setAdminContext(UserContext adminContext){
- this.adminContext=adminContext;
- }
-
-
- public CAClientWrapper(String caUrl, Properties properties, String org, String mspId) throws MalformedURLException, IllegalAccessException, InstantiationException, ClassNotFoundException, CryptoException, InvalidArgumentException, NoSuchMethodException, InvocationTargetException {
- this.caUrl=caUrl;
- this.properties=properties;
- this.org=org;
- this.mspId=mspId;
- init();
- }
-
- public void init() throws MalformedURLException, IllegalAccessException, InstantiationException, ClassNotFoundException, CryptoException, InvalidArgumentException, NoSuchMethodException, InvocationTargetException {
- CryptoSuite cryptoSuite = CryptoSuite.Factory.getCryptoSuite();
- hfcaClient = HFCAClient.createNewInstance(caUrl,properties);
- hfcaClient.setCryptoSuite(cryptoSuite);
- }
-
- public HFCAClient getHfcaClient(){
- return hfcaClient;
- }
-
- /*
- public CAClientWrapper(String url, String org){
- this.org=org;
- init(url);
- }
-
- private void init(String url){
- try{
- this.hfcaClient = HFCAClient.createNewInstance(url,null);
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- */
-
-
- //Method to enroll admin and save his info
- public UserContext enrollAdmin(Context context, String name, String secret, String org) throws Exception {
- UserContext adminContext;
- adminContext = Util.readUserContext(context,org,name);
- if(adminContext!=null){
- Logger.getLogger(CAClientWrapper.class.getName()).log(Level.WARNING, "Admin already enrolled, skip");
- return adminContext;
- }
-
- Enrollment enrollment = hfcaClient.enroll(name,secret);
- Logger.getLogger(CAClientWrapper.class.getName()).log(Level.INFO, "Admin enrolled");
-
- //adminContext = new UserContext();
- //adminContext.setName(name);
- //adminContext.setAffiliation(org);
- //adminContext.setMspId(mspId);
- adminContext.setEnrollment(enrollment);
-
- Util.writeUserContext(context,adminContext);
- return adminContext;
- }
-
- //Method to register and enroll user
- public void regiserUser(Context context, String userName, String registrarAdmin) throws Exception{
- UserContext userContext;
- userContext = Util.readUserContext(context,org,userName);
- if(userContext!=null){
- Logger.getLogger(CAClientWrapper.class.getName()).log(Level.WARNING, "User already registered");
- return;
- }
- RegistrationRequest registrationRequest = new RegistrationRequest(userName,org);
- UserContext registrarContext = Util.readUserContext(context,org,registrarAdmin);
- if(registrarAdmin==null){
- Logger.getLogger(CAClientWrapper.class.getName()).log(Level.SEVERE, "Registar not enrolled");
- throw new Exception("registrar context not found");
- }
-
- String enrollSecret = hfcaClient.register(registrationRequest, registrarContext);
-
- Enrollment enrollment = hfcaClient.enroll(userName,enrollSecret);
-
- userContext = new UserContext();
- userContext.setMspId(mspId);
- userContext.setAffiliation(org); //TODO GET MSPID IN ORGANIZATIONS, ORGNAME
- userContext.setEnrollment(enrollment);
- userContext.setName(userName);
-
- Util.writeUserContext(context,userContext);
- Logger.getLogger(CAClientWrapper.class.getName()).log(Level.INFO, "User has been successfully registered");
- }
-
-
- //Method to get userContext
- public static UserContext getUserContext(Context context, String userName, String org){
- UserContext userContext;
- userContext = Util.readUserContext(context,org,userName);
- if(userContext!=null){
- return userContext;
- }
- Logger.getLogger(CAClientWrapper.class.getName()).log(Level.SEVERE, "User context not found : "+userName+" - "+org);
- return userContext;
- }
-
- //Method to enroll user.
- public UserContext enrollUser(Context context, String userName, String enrollSecret, String org) throws Exception {
- Enrollment enrollment = hfcaClient.enroll(userName,enrollSecret);
-
- UserContext userContext = new UserContext();
- userContext.setMspId(mspId);
- userContext.setAffiliation(this.org);
- userContext.setEnrollment(enrollment);
- userContext.setName(userName);
-
- Util.writeUserContext(context, userContext);
- Logger.getLogger(CAClientWrapper.class.getName()).log(Level.INFO, "UserName - "+userName+" enrolled");
- return userContext;
- }
-}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/client/ChannelClientWrapper.java b/app/src/main/java/monnethic/mobile/blockchain/client/ChannelClientWrapper.java
deleted file mode 100644
index ebab5e2..0000000
--- a/app/src/main/java/monnethic/mobile/blockchain/client/ChannelClientWrapper.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package monnethic.mobile.blockchain.client;
-
-import org.hyperledger.fabric.sdk.ChaincodeID;
-import org.hyperledger.fabric.sdk.Channel;
-import org.hyperledger.fabric.sdk.ProposalResponse;
-import org.hyperledger.fabric.sdk.QueryByChaincodeRequest;
-import org.hyperledger.fabric.sdk.exception.InvalidArgumentException;
-import org.hyperledger.fabric.sdk.exception.ProposalException;
-
-import java.util.Collection;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-public class ChannelClientWrapper {
- FabriClientWrapper fabriClientWrapper;
- Channel channel;
- String name;
-
- public Channel getChannel() {
- return channel;
- }
-
- public String getName() {
- return name;
- }
-
- public FabriClientWrapper getFabriClientWrapper() {
- return fabriClientWrapper;
- }
-
- public ChannelClientWrapper(String name, Channel channel, FabriClientWrapper fabriClientWrapper){
- this.name=name;
- this.channel=channel;
- this.fabriClientWrapper=fabriClientWrapper;
- }
-
- public Collection queryByChainCode(String chaincodeName, String functionName, String[] args) throws InvalidArgumentException, ProposalException {
- Logger.getLogger(ChannelClientWrapper.class.getName()).log(Level.INFO, "Querying "+chaincodeName+" with "+functionName);
-
- QueryByChaincodeRequest request = fabriClientWrapper.getHfClient().newQueryProposalRequest();
- ChaincodeID chaincodeId = ChaincodeID.newBuilder().setName(chaincodeName).build();
- request.setChaincodeID(chaincodeId);
- request.setFcn(functionName);
-
- if(args != null){
- request.setArgs(args);
- }
- Collection response = channel.queryByChaincode(request);
- return response;
- }
-}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/client/FabriClientWrapper.java b/app/src/main/java/monnethic/mobile/blockchain/client/FabriClientWrapper.java
deleted file mode 100644
index 2608273..0000000
--- a/app/src/main/java/monnethic/mobile/blockchain/client/FabriClientWrapper.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package monnethic.mobile.blockchain.client;
-
-import org.hyperledger.fabric.sdk.Channel;
-import org.hyperledger.fabric.sdk.HFClient;
-import org.hyperledger.fabric.sdk.exception.CryptoException;
-import org.hyperledger.fabric.sdk.exception.InvalidArgumentException;
-import org.hyperledger.fabric.sdk.security.CryptoSuite;
-
-import java.lang.reflect.InvocationTargetException;
-
-import monnethic.mobile.blockchain.participant.UserContext;
-
-public class FabriClientWrapper {
- private HFClient hfClient;
-
- public HFClient getHfClient() {
- return hfClient;
- }
-
- public FabriClientWrapper(UserContext userContext) throws CryptoException, InvalidArgumentException, IllegalAccessException, InstantiationException, ClassNotFoundException, NoSuchMethodException, InvocationTargetException {
- CryptoSuite cryptoSuite = CryptoSuite.Factory.getCryptoSuite();
- hfClient = HFClient.createNewInstance();
- hfClient.setCryptoSuite(cryptoSuite);
- hfClient.setUserContext(userContext);
- }
-
- public ChannelClientWrapper createChannelClient(String name) throws InvalidArgumentException {
- Channel channel = hfClient.newChannel(name);
- ChannelClientWrapper client = new ChannelClientWrapper(name, channel, this);
- return client;
- }
-}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/network/Config.java b/app/src/main/java/monnethic/mobile/blockchain/network/Config.java
deleted file mode 100644
index 672dc66..0000000
--- a/app/src/main/java/monnethic/mobile/blockchain/network/Config.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package monnethic.mobile.blockchain.network;
-
-public class Config {
- //TODO SET STATIC FINAL VAR FOR NETWORK CONFIG, REPLACE LOADCONFIGINFO
- public static final String ORG1_MSP = "Org1MSP";
-
- public static final String ORG1 = "org1";
-
- public static final String ADMIN = "AdminOrg1";
-
- public static final String ADMIN_PASSWORD = "AdminOrg1Pwd";
-
- public static final String CA_ORG1_URL = "http://vps577432.ovh.net:7054";
-
- public static final String ORDERER_URL = "vps577432.ovh.net:7050";
-
- public static final String ORDERER_NAME = "orderer.example.com";
-
- public static final String CHANNEL_NAME = "mychannel";
-
- public static final String CHAINCODE_NAME = "mycc";
-
- public static final String ORG1_PEER_0 = "peer0.org1.example.com";
-
- public static final String ORG1_PEER_0_URL = "vps577432.ovh.net:7051";
-
-}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/network/LoadConfigInfo.java b/app/src/main/java/monnethic/mobile/blockchain/network/LoadConfigInfo.java
deleted file mode 100644
index a869683..0000000
--- a/app/src/main/java/monnethic/mobile/blockchain/network/LoadConfigInfo.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package monnethic.mobile.blockchain.network;
-
-import android.content.Context;
-
-import com.example.monnthic.monnethicmobile.R;
-
-//import org.hyperledger.fabric.sdk.NetworkConfig;
-import org.json.JSONObject;
-
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.logging.XMLFormatter;
-
-import javax.json.JsonObject;
-
-public class LoadConfigInfo {
- private static final Integer lock = 0;
- private static JSONObject jsonObject;
-
- //Generate JSONObject from configFile
- private LoadConfigInfo(Context context) {
-
- InputStream is = context.getResources().openRawResource(R.raw.config);
- Writer writer = new StringWriter();
- char[] buffer = new char[1024];
- try {
- Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
- int n;
- while ((n = reader.read(buffer)) != -1) {
- writer.write(buffer, 0, n);
- }
- } catch (Exception e){
- e.getMessage();
- } finally {
- try{
- if(is!=null) {
- is.close();
- }
- }catch (Exception e){
- e.getMessage();
- }
- }
-
- String jsonString = writer.toString();
- try{
- jsonObject = new JSONObject(jsonString);
- }catch (Exception e){
- e.getMessage();
- }
- }
-
- private static void getInstanceFile(Context context){
- try{
- synchronized (lock){
- if(jsonObject == null){
- new LoadConfigInfo(context);
- }
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- }
-
- //TODO GET ORGANIZATION INFOS
- public static String getOrgInfo(Context context, String org) {
- getInstanceFile(context);
- return "";
- }
-
-
- //TODO GET ORGANIZATION NAME
- public static String getOrgName(Context context){
- getInstanceFile(context);
- return "";
- }
-
- //TODO GET MSPID IN ORG NAME
- public static String getMspId(Context context,String orgName){
- getInstanceFile(context);
- return "";
- }
-}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/participant/UserContext.java b/app/src/main/java/monnethic/mobile/blockchain/participant/UserContext.java
deleted file mode 100644
index 671a138..0000000
--- a/app/src/main/java/monnethic/mobile/blockchain/participant/UserContext.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package monnethic.mobile.blockchain.participant;
-
-import org.hyperledger.fabric.sdk.Enrollment;
-import org.hyperledger.fabric.sdk.User;
-
-import java.io.Serializable;
-import java.util.Set;
-
-public class UserContext implements User, Serializable {
-
- private static final long serialVersionUID = 1L;
- protected String name;
- protected Set roles;
- protected String account;
- protected String affiliation;
- protected Enrollment enrollment;
- protected String mspId;
-
- @Override
- public String getName() {
- return name;
- }
-
- public void setName(String name){
- this.name=name;
- }
-
- @Override
- public Set getRoles() {
- return roles;
- }
-
- public void setRoles(Set roles){
- this.roles=roles;
- }
-
- @Override
- public String getAccount() {
- return account;
- }
-
- public void setAccount(String account){
- this.account=account;
- }
-
- @Override
- public String getAffiliation() {
- return affiliation;
- }
-
- public void setAffiliation(String affiliation){
- this.affiliation=affiliation;
- }
-
- @Override
- public Enrollment getEnrollment() {
- return enrollment;
- }
-
- public void setEnrollment(Enrollment enrollment){
- this.enrollment=enrollment;
- }
-
- @Override
- public String getMspId() {
- return mspId;
- }
-
- public void setMspId(String mspId){
- this.mspId=mspId;
- }
-}
diff --git a/app/src/main/java/monnethic/mobile/blockchain/utility/Util.java b/app/src/main/java/monnethic/mobile/blockchain/utility/Util.java
deleted file mode 100644
index 59708f9..0000000
--- a/app/src/main/java/monnethic/mobile/blockchain/utility/Util.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package monnethic.mobile.blockchain.utility;
-
-import android.content.Context;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import monnethic.mobile.blockchain.participant.UserContext;
-
-public class Util {
-
- private Context context;
-
- public Util(Context context){
- this.context=context;
- }
-
- //Method which write user info into a directory
- public static void writeUserContext(Context context, UserContext userContext){
- ObjectOutputStream out = null;
- FileOutputStream fileOutputStream = null;
- try{
- String filename = userContext.getName()+".context";
- String dirPath = context.getFilesDir()+"userInfos/"+userContext.getAffiliation();
- String pathFile = dirPath+"/"+filename;
- Logger.getLogger(Util.class.getName()).log(Level.INFO, "pathFile is : "+pathFile);
- File dir = new File(dirPath);
- if(!dir.exists()){
- Boolean res = dir.mkdirs();
- if(res){
- Logger.getLogger(Util.class.getName()).log(Level.INFO, "RESPONSE IS TRUE");
- }else{
- Logger.getLogger(Util.class.getName()).log(Level.SEVERE, "RESPONSE IS FALSE");
- }
- }
-
- File file = new File(pathFile);
- fileOutputStream = new FileOutputStream(file);
- out = new ObjectOutputStream(fileOutputStream);
- Logger.getLogger(Util.class.getName()).log(Level.INFO, "out is : "+out);
- out.writeObject(userContext);
- }catch (Exception e){
- e.printStackTrace();
- } finally {
- try {
- if (out != null){
- out.close();
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- try{
- if(fileOutputStream != null){
- fileOutputStream.close();
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- }
-
- //Method to read user in file
- public static UserContext readUserContext(Context context, String affiliation, String username){
- UserContext userContext = null;
- FileInputStream fileInputStream = null;
- ObjectInputStream in = null;
-
- try{
- String filename = username+".context";
- String dirPath = context.getFilesDir()+"userInfos/"+affiliation;
- String pathFile = dirPath+"/"+filename;
-
- File file = new File(pathFile);
-
- if(file.exists()){
- fileInputStream = new FileInputStream(pathFile);
- in = new ObjectInputStream(fileInputStream);
- userContext = (UserContext) in.readObject();
- }
- } catch (Exception e){
- e.printStackTrace();
- } finally {
- try {
- if(in != null){
- in.close();
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- try {
- if(fileInputStream!=null){
- fileInputStream.close();
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- return userContext;
- }
-}
diff --git a/app/src/main/java/monnethic/mobile/database/DatabaseHelper.java b/app/src/main/java/monnethic/mobile/database/DatabaseHelper.java
deleted file mode 100644
index da74c7d..0000000
--- a/app/src/main/java/monnethic/mobile/database/DatabaseHelper.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package monnethic.mobile.database;
-
-import android.util.Log;
-
-import monnethic.mobile.transaction.Transaction;
-import monnethic.mobile.user.User;
-
-import com.j256.ormlite.dao.Dao;
-import com.j256.ormlite.dao.DaoManager;
-import com.j256.ormlite.jdbc.JdbcConnectionSource;
-import com.j256.ormlite.support.ConnectionSource;
-
-public class DatabaseHelper {
- private static final String DATABASE_NAME = "monnethic";
- private static final String DATABASE_USER = "";
- private static final String DATABASE_PWD = "";
- private final static String DATABASE_URL = "jdbc:postgresql:///"+DATABASE_NAME;
-
-
- public ConnectionSource setupDatabaseConnection(){
- try{
- return new JdbcConnectionSource(DATABASE_URL, DATABASE_USER, DATABASE_PWD);
- }catch (Exception e){
- System.out.print("\n"+e.getMessage());
- return null;
- }
- }
-
- /*
- public void insertTransaction(Transaction tx){
- try{
- //Dao dao = getDao(Transaction.class);
- //dao.create(tx);
- } catch(Exception exception){
- Log.e("DATABASE","Can't insert Transaction into Database", exception);
- }
- }
- */
-}
diff --git a/app/src/main/java/monnethic/mobile/database/DatabaseTest.java b/app/src/main/java/monnethic/mobile/database/DatabaseTest.java
deleted file mode 100644
index c16a01b..0000000
--- a/app/src/main/java/monnethic/mobile/database/DatabaseTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package monnethic.mobile.database;
-
-import com.j256.ormlite.field.DatabaseField;
-import com.j256.ormlite.table.DatabaseTable;
-
-@DatabaseTable(tableName = "T_TEST")
-public class DatabaseTest {
- private static final String NAME_FIELD_NAME = "name";
- private static final String ID_FIELD_NAME = "id";
-
- @DatabaseField(columnName = ID_FIELD_NAME, id = true)
- private int id;
- @DatabaseField(columnName = NAME_FIELD_NAME, canBeNull = false)
- private String name;
-
- public DatabaseTest(int id, String name) {
- this.id = id;
- this.name = name;
- }
-
- public DatabaseTest() {
-
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-}
diff --git a/app/src/main/java/monnethic/mobile/database/Transaction.java b/app/src/main/java/monnethic/mobile/database/Transaction.java
new file mode 100644
index 0000000..964dec6
--- /dev/null
+++ b/app/src/main/java/monnethic/mobile/database/Transaction.java
@@ -0,0 +1,86 @@
+package monnethic.mobile.database;
+
+import com.j256.ormlite.field.DatabaseField;
+import com.j256.ormlite.table.DatabaseTable;
+
+import java.math.BigInteger;
+import java.util.Date;
+
+public class Transaction {
+ private int transactionId;
+ private long transactionDate;
+ private String transactionFrom;
+ private String transactionTo;
+ private String transactionHash;
+ private Double transactionAmount;
+ private String transactionUnit;
+
+ //Constructors
+ public Transaction(String transactionFrom, String transactionTo, String transactionHash, Double transactionAmount, String transactionUnit) {
+ this.transactionFrom = transactionFrom;
+ this.transactionTo = transactionTo;
+ this.transactionHash = transactionHash;
+ this.transactionAmount = transactionAmount;
+ this.transactionUnit = transactionUnit;
+ }
+
+ public Transaction(int transactionId, long transactionDate, String transactionFrom, String transactionTo, String transactionHash, Double transactionAmount, String transactionUnit) {
+ this.transactionId = transactionId;
+ this.transactionDate = transactionDate;
+ this.transactionFrom = transactionFrom;
+ this.transactionTo = transactionTo;
+ this.transactionHash = transactionHash;
+ this.transactionAmount = transactionAmount;
+ this.transactionUnit = transactionUnit;
+ }
+
+ //Getters and Setters
+ public int getTransactionId() {
+ return transactionId;
+ }
+ public void setTransactionId(int transactionId) {
+ this.transactionId = transactionId;
+ }
+
+ public long getTransactionDate() {
+ return transactionDate;
+ }
+ public void setTransactionDate(long transactionDate) {
+ this.transactionDate = transactionDate;
+ }
+
+ public String getTransactionFrom() {
+ return transactionFrom;
+ }
+ public void setTransactionFrom(String transactionFrom) {
+ this.transactionFrom = transactionFrom;
+ }
+
+ public String getTransactionTo() {
+ return transactionTo;
+ }
+ public void setTransactionTo(String transactionTo) {
+ this.transactionTo = transactionTo;
+ }
+
+ public String getTransactionHash() {
+ return transactionHash;
+ }
+ public void setTransactionHash(String transactionHash) {
+ this.transactionHash = transactionHash;
+ }
+
+ public Double getTransactionAmount() {
+ return transactionAmount;
+ }
+ public void setTransactionAmount(Double transactionAmount) {
+ this.transactionAmount = transactionAmount;
+ }
+
+ public String getTransactionUnit() {
+ return transactionUnit;
+ }
+ public void setTransactionUnit(String transactionUnit) {
+ this.transactionUnit = transactionUnit;
+ }
+}
diff --git a/app/src/main/java/monnethic/mobile/user/User.java b/app/src/main/java/monnethic/mobile/database/User.java
similarity index 77%
rename from app/src/main/java/monnethic/mobile/user/User.java
rename to app/src/main/java/monnethic/mobile/database/User.java
index 06bbb2b..f0f898a 100644
--- a/app/src/main/java/monnethic/mobile/user/User.java
+++ b/app/src/main/java/monnethic/mobile/database/User.java
@@ -1,4 +1,4 @@
-package monnethic.mobile.user;
+package monnethic.mobile.database;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
@@ -8,32 +8,20 @@ import java.util.Date;
* Created by Guillaume on 15/04/2018.
*/
-
-//Class User which represent an User in the postgresDB
-@DatabaseTable(tableName = "T_USER")
+//Class User which represent an User for api rest
public class User {
- @DatabaseField(canBeNull = false)
+ private int userId;
private String name;
- @DatabaseField(canBeNull = false)
private String firstname;
- @DatabaseField(id = true)
private String email;
- @DatabaseField(canBeNull = false)
private String password;
- @DatabaseField(canBeNull = false)
private long creation_date;
- @DatabaseField(canBeNull = false)
private long modification_date;
- @DatabaseField(canBeNull = false)
private boolean verified;
- @DatabaseField(canBeNull = false)
private boolean approved;
+ private String user_hash;
//Constructors
- //Default constructor for ORMLite
- public User() {
- }
-
public User(String name, String firstname, String email, String password) {
this.name = name;
this.firstname = firstname;
@@ -41,9 +29,11 @@ public class User {
this.password = password;
}
- public User(String name, String firstname, String email, String password, long creation_date, long modification_date, boolean verified, boolean approved) {
+ public User(int userId, String name, String firstname, String user_hash, String email, String password, long creation_date, long modification_date, boolean verified, boolean approved) {
+ this.userId=userId;
this.name = name;
this.firstname = firstname;
+ this.user_hash = user_hash;
this.email = email;
this.password = password;
this.creation_date = creation_date;
@@ -54,10 +44,12 @@ public class User {
//Getters and Setters
+ public int getUserId(){return userId;}
+ public void setUserId(int userId){this.userId=userId;}
+
public String getName() {
return name;
}
-
public void setName(String name) {
this.name = name;
}
@@ -65,15 +57,16 @@ public class User {
public String getFirstname() {
return firstname;
}
-
public void setFirstname(String firstname) {
this.firstname = firstname;
}
+ public String getUser_hash(){return user_hash;}
+ public void setUser_hash(String user_hash){this.user_hash=user_hash;}
+
public String getEmail() {
return email;
}
-
public void setEmail(String email) {
this.email = email;
}
@@ -81,7 +74,6 @@ public class User {
public String getPassword() {
return password;
}
-
public void setPassword(String password) {
this.password = password;
}
@@ -89,7 +81,6 @@ public class User {
public long getCreation_date() {
return creation_date;
}
-
public void setCreation_date(long creation_date) {
this.creation_date = creation_date;
}
@@ -97,7 +88,6 @@ public class User {
public long getModification_date() {
return modification_date;
}
-
public void setModification_date(long modification_date) {
this.modification_date = modification_date;
}
@@ -105,7 +95,6 @@ public class User {
public boolean isVerified() {
return verified;
}
-
public void setVerified(boolean verified) {
this.verified = verified;
}
@@ -113,7 +102,6 @@ public class User {
public boolean isApproved() {
return approved;
}
-
public void setApproved(boolean approved) {
this.approved = approved;
}
diff --git a/app/src/main/java/monnethic/mobile/demo/DemoActivity.java b/app/src/main/java/monnethic/mobile/demo/DemoActivity.java
deleted file mode 100644
index c840472..0000000
--- a/app/src/main/java/monnethic/mobile/demo/DemoActivity.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package monnethic.mobile.demo;
-
-import android.content.Intent;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-
-import com.example.monnthic.monnethicmobile.R;
-
-import monnethic.mobile.wallet.WalletPresenterActivity;
-
-public class DemoActivity extends AppCompatActivity {
- private static final String WALLET_A = "0x5421c79d465a288c28e10aa43f9b7dff1b313c8e";
- private static final String WALLET_B = "";
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_demo_wallet);
- Button bWalletA = findViewById(R.id.walletA);
- Button bWalletB = findViewById(R.id.walletB);
-
- bWalletA.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- launchWalletPresenterActivity(0);
- }
- });
- bWalletB.setOnClickListener(new View.OnClickListener() {
- public void onClick(View view) {
- launchWalletPresenterActivity(1);
- }
- });
- }
-
- public void launchWalletPresenterActivity(int idWallet) {
- if (idWallet == 0) {
- Intent demoWalletIntent = new Intent(DemoActivity.this, WalletPresenterActivity.class);
- demoWalletIntent.putExtra("WALLET_ADDRESS",WALLET_A);
- DemoActivity.this.startActivity(demoWalletIntent);
- } else {
- Intent demoWalletIntent = new Intent(DemoActivity.this, WalletPresenterActivity.class);
- demoWalletIntent.putExtra("WALLET_ADDRESS","WALLET B");
- DemoActivity.this.startActivity(demoWalletIntent);
- }
- }
-}
diff --git a/app/src/main/java/monnethic/mobile/homepage/HomepageActivity.java b/app/src/main/java/monnethic/mobile/homepage/HomepageActivity.java
index 4d3ea29..01957f9 100644
--- a/app/src/main/java/monnethic/mobile/homepage/HomepageActivity.java
+++ b/app/src/main/java/monnethic/mobile/homepage/HomepageActivity.java
@@ -8,8 +8,6 @@ import android.widget.Button;
import com.example.monnthic.monnethicmobile.R;
-import monnethic.mobile.demo.DemoActivity;
-
public class HomepageActivity extends AppCompatActivity {
//TODO MOVE TO LOGIN ACTIVITY
private static final String[] DUMMY_CREDENTIALS = new String[]{
@@ -22,7 +20,6 @@ public class HomepageActivity extends AppCompatActivity {
setContentView(R.layout.activity_homepage);
Button bRegister = findViewById(R.id.register);
Button bLogin = findViewById(R.id.login);
- Button bDemo = findViewById(R.id.demo);
bRegister.setOnClickListener(new View.OnClickListener() {
@Override
@@ -36,11 +33,6 @@ public class HomepageActivity extends AppCompatActivity {
launchLoginActivity();
}
});
- bDemo.setOnClickListener(new View.OnClickListener(){
- public void onClick(View view){
- launchDemoActivity();
- }
- });
}
public void launchRegisterActivity(){
@@ -51,8 +43,5 @@ public class HomepageActivity extends AppCompatActivity {
Intent loginIntent = new Intent(HomepageActivity.this, LoginActivity.class);
HomepageActivity.this.startActivity(loginIntent);
}
- public void launchDemoActivity(){
- Intent demoIntent = new Intent(HomepageActivity.this, DemoActivity.class);
- HomepageActivity.this.startActivity(demoIntent);
- }
+
}
diff --git a/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java b/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java
index 819a60f..b05c660 100644
--- a/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java
+++ b/app/src/main/java/monnethic/mobile/homepage/LoginActivity.java
@@ -10,7 +10,7 @@ import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R;
-import monnethic.mobile.wallet.WalletActivity;
+import monnethic.mobile.user.UserAccountActivity;
public class LoginActivity extends AppCompatActivity {
@@ -64,9 +64,9 @@ public class LoginActivity extends AppCompatActivity {
}
public void launchWalletActivity(int ldapId){
//LAUNCH APP WALLET WITH ID USER
- Intent walletIntent = new Intent(LoginActivity.this, WalletActivity.class);
- walletIntent.putExtra("idUser", ldapId);
- LoginActivity.this.startActivity(walletIntent);
+ Intent accountIntent = new Intent(LoginActivity.this, UserAccountActivity.class);
+ accountIntent.putExtra("idUser", ldapId);
+ LoginActivity.this.startActivity(accountIntent);
finish();
}
}
diff --git a/app/src/main/java/monnethic/mobile/homepage/RegisterActivity.java b/app/src/main/java/monnethic/mobile/homepage/RegisterActivity.java
index c998bf9..a331b61 100644
--- a/app/src/main/java/monnethic/mobile/homepage/RegisterActivity.java
+++ b/app/src/main/java/monnethic/mobile/homepage/RegisterActivity.java
@@ -10,8 +10,8 @@ import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R;
-import monnethic.mobile.user.User;
-import monnethic.mobile.wallet.WalletActivity;
+import monnethic.mobile.database.User;
+import monnethic.mobile.user.UserAccountActivity;
public class RegisterActivity extends AppCompatActivity {
@@ -78,14 +78,14 @@ public class RegisterActivity extends AppCompatActivity {
Toast.makeText(this, "User already have an account, please log in", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(this, "INSERT", Toast.LENGTH_SHORT).show();
- launchWalletActivity(1);
+ launchUserActivity(1);
}
}
//TODO LAUNCH WALLET ACTIVITY
- private void launchWalletActivity(int ldapId){
+ private void launchUserActivity(int ldapId){
//LAUNCH APP WALLET WITH ID USER
- Intent walletIntent = new Intent(RegisterActivity.this, WalletActivity.class);
+ Intent walletIntent = new Intent(RegisterActivity.this, UserAccountActivity.class);
walletIntent.putExtra("idUser", ldapId);
RegisterActivity.this.startActivity(walletIntent);
finish();
diff --git a/app/src/main/java/monnethic/mobile/restApi/Config.java b/app/src/main/java/monnethic/mobile/restApi/Config.java
new file mode 100644
index 0000000..f493470
--- /dev/null
+++ b/app/src/main/java/monnethic/mobile/restApi/Config.java
@@ -0,0 +1,5 @@
+package monnethic.mobile.restApi;
+
+public class Config {
+ static public String URL_BALANCE = "http://10.0.2.2:8083/balance?name=";
+}
diff --git a/app/src/main/java/monnethic/mobile/transaction/Transaction.java b/app/src/main/java/monnethic/mobile/transaction/Transaction.java
deleted file mode 100644
index f2f4dea..0000000
--- a/app/src/main/java/monnethic/mobile/transaction/Transaction.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package monnethic.mobile.transaction;
-
-import com.j256.ormlite.field.DatabaseField;
-import com.j256.ormlite.table.DatabaseTable;
-
-import java.math.BigInteger;
-import java.util.Date;
-
-@DatabaseTable(tableName = "T_TRANSACTION")
-public class Transaction {
- @DatabaseField(columnName = "transactionId", generatedId = true, unique = true)
- private int id;
- @DatabaseField(columnName = "transactionDate")
- private Date transactionDate;
- @DatabaseField(columnName = "transactionDSrcAddress")
- private String sourceAddress;
- @DatabaseField(columnName = "transactionDestAddress")
- private String destAddress;
- @DatabaseField(columnName = "transactionHash")
- private String transactionHash;
- @DatabaseField(columnName = "transactionBlockNumber")
- private String blockNumber;
- @DatabaseField(columnName = "transactionAmout")
- private BigInteger amount;
- @DatabaseField(columnName = "transactionUnit")
- private String unit;
-
- public Transaction() {
- super();
- }
-
- public Transaction(Date transactionDate, String sourceAddress, String destAddress, String transactionHash, String blockNumber, BigInteger amount, String unit) {
- super();
- this.transactionDate = transactionDate;
- this.sourceAddress = sourceAddress;
- this.destAddress = destAddress;
- this.transactionHash = transactionHash;
- this.blockNumber = blockNumber;
- this.amount = amount;
- this.unit = unit;
- }
-
- public String getSourceAddress() {
- return sourceAddress;
- }
-
- public void setSourceAddress(String sourceAddress) {
- this.sourceAddress = sourceAddress;
- }
-
- public String getDestAddress() {
- return destAddress;
- }
-
- public void setDestAddress(String destAddress) {
- this.destAddress = destAddress;
- }
-
- public String getTransactionHash() {
- return transactionHash;
- }
-
- public void setTransactionHash(String transactionHash) {
- this.transactionHash = transactionHash;
- }
-
- public BigInteger getAmount() {
- return amount;
- }
-
- public void setAmount(BigInteger amount) {
- this.amount = amount;
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public Date getTransactionDate() {
- return transactionDate;
- }
-
- public void setTransactionDate(Date transactionDate) {
- this.transactionDate = transactionDate;
- }
-
- public String getUnit() {
- return unit;
- }
-
- public void setUnit(String unit) {
- this.unit = unit;
- }
-
- public String getBlockNumber() {
- return blockNumber;
- }
-
- public void setBlockNumber(String blockNumber) {
- this.blockNumber = blockNumber;
- }
-}
diff --git a/app/src/main/java/monnethic/mobile/user/UserAccountActivity.java b/app/src/main/java/monnethic/mobile/user/UserAccountActivity.java
index a5eee8a..7d03b09 100644
--- a/app/src/main/java/monnethic/mobile/user/UserAccountActivity.java
+++ b/app/src/main/java/monnethic/mobile/user/UserAccountActivity.java
@@ -1,6 +1,7 @@
package monnethic.mobile.user;
import android.content.Intent;
+import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
@@ -10,23 +11,34 @@ import android.widget.Toast;
import com.example.monnthic.monnethicmobile.R;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+import monnethic.mobile.restApi.Config;
import monnethic.mobile.transaction.MakePayementActivity;
import monnethic.mobile.transaction.ReceivePayementActivity;
public class UserAccountActivity extends AppCompatActivity {
- private TextView solde;
+
+ private TextView balance;
+ private String strUrl = Config.URL_BALANCE+"b";
+ private String result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_account);
- solde = findViewById(R.id.viewSolde);
+ balance = findViewById(R.id.balanceView);
Button buttonPayement = findViewById(R.id.buttonPayement);
Button buttonReceive = findViewById(R.id.buttonReceive);
Button buttonSettings = findViewById(R.id.buttonSettings);
+ Button buttonRefresh = findViewById(R.id.buttonRefreshBalance);
+
- //refreshSolde();
buttonPayement.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -45,13 +57,21 @@ public class UserAccountActivity extends AppCompatActivity {
settings();
}
});
+ buttonRefresh.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ refreshBalance("b");
+ }
+ });
+
+ new GetUserBalanceTask().execute(strUrl);
}
+
public void sendPayement(){
Intent payementIntent = new Intent(UserAccountActivity.this, MakePayementActivity.class);
UserAccountActivity.this.startActivity(payementIntent);
}
public void receivePayement(){
-
Intent receivePayementIntent = new Intent(UserAccountActivity.this, ReceivePayementActivity.class);
UserAccountActivity.this.startActivity(receivePayementIntent);
}
@@ -59,7 +79,66 @@ public class UserAccountActivity extends AppCompatActivity {
Toast.makeText(this, "Coming soon", Toast.LENGTH_SHORT).show();
}
- public void refreshSolde(){
- solde.setText("0.00");
+ public void refreshBalance(String userHash){
+ String url = Config.URL_BALANCE+userHash;
+ new GetUserBalanceTask().execute(url);
+ }
+
+ public void setBalance(String value){
+ balance.setText(value);
+ }
+
+
+ public class GetUserBalanceTask extends AsyncTask
+ {
+ @Override
+ protected void onPreExecute() {
+ super.onPreExecute();
+ }
+
+ @Override
+ protected void onPostExecute(String s) {
+ balance.setText(s);
+ }
+
+ @Override
+ protected String doInBackground(String... params) {
+ System.out.println(params[0]);
+ InputStream inputStream = null;
+ HttpURLConnection conn = null;
+ try{
+ URL url = new URL(params[0]);
+ conn = (HttpURLConnection) url.openConnection();
+ conn.setRequestMethod("GET");
+ conn.connect();
+
+ int response = conn.getResponseCode();
+ if(response != 200){
+ return "Error response";
+ }
+
+ inputStream = conn.getInputStream();
+ if(inputStream == null){
+ return "Error inputStream";
+ }
+
+ BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
+ StringBuffer buffer = new StringBuffer();
+ String line;
+
+ while ((line = reader.readLine())!=null){
+ buffer.append(line);
+ }
+
+ String value = new String(buffer);
+
+ System.out.println("result is "+value);
+ result = value;
+
+ } catch (Exception e){
+ System.out.println("Exception : "+e);
+ }
+ return result;
+ }
}
}
diff --git a/app/src/main/java/monnethic/mobile/user/UserDao.java b/app/src/main/java/monnethic/mobile/user/UserDao.java
deleted file mode 100644
index fcdc274..0000000
--- a/app/src/main/java/monnethic/mobile/user/UserDao.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package monnethic.mobile.user;
-
-import com.j256.ormlite.dao.Dao;
-import com.j256.ormlite.dao.DaoManager;
-import com.j256.ormlite.stmt.PreparedQuery;
-import com.j256.ormlite.stmt.QueryBuilder;
-import com.j256.ormlite.stmt.UpdateBuilder;
-import java.sql.Timestamp;
-import monnethic.mobile.database.DatabaseHelper;
-
-//Class to communicate with database with ORMLite
-public class UserDao {
- private DatabaseHelper dbh = new DatabaseHelper();
- private Dao userDao;
-
- public Dao createUserDaoConnection(){
- try {
- return DaoManager.createDao(dbh.setupDatabaseConnection(),User.class);
- }catch (Exception e){
- System.out.println(e.getMessage());
- return null;
- }
- }
-
- public void addUser(User user)throws Exception {
- userDao = createUserDaoConnection();
- userDao.create(user);
- }
-
- public boolean checkApprovedUser(String email) throws Exception {
- userDao = createUserDaoConnection();
- QueryBuilder queryBuilder = userDao.queryBuilder();
- queryBuilder.where().eq("email",email);
- PreparedQuery preparedQuery = queryBuilder.prepare();
- User user = userDao.queryForFirst(preparedQuery);
- return user.isApproved();
- }
-
- public boolean checkVerifiedUser(String email) throws Exception {
- userDao = createUserDaoConnection();
- QueryBuilder queryBuilder = userDao.queryBuilder();
- queryBuilder.where().eq("email",email);
- PreparedQuery preparedQuery = queryBuilder.prepare();
- User user = userDao.queryForFirst(preparedQuery);
- return user.isVerified();
- }
-
- public boolean updateUserPassword(String email, String password) throws Exception {
- userDao = createUserDaoConnection();
- UpdateBuilder updateBuilder = userDao.updateBuilder();
- updateBuilder.updateColumnValue("password",password);
- Timestamp timestamp = new Timestamp(System.currentTimeMillis());
- updateBuilder.updateColumnValue("modification_date",timestamp.getTime());
- updateBuilder.where().eq("email",email);
- updateBuilder.update();
-
- if(checkUserPassword(email, password)){
- return true;
- }else{
- return false;
- }
- }
-
- private boolean verifyUserExist(String email) throws Exception {
- userDao = createUserDaoConnection();
- QueryBuilder queryBuilder = userDao.queryBuilder();
- queryBuilder.where().eq("email",email);
- PreparedQuery preparedQuery = queryBuilder.prepare();
- User user = userDao.queryForFirst(preparedQuery);
-
- if(user==null){
- return false;
- }else{
- return true;
- }
- }
-
- public boolean checkUserPassword(String email, String password) throws Exception {
- User user = getUser(email);
- if(password.equals(user.getPassword())){
- return true;
- }else{
- return false;
- }
- }
-
- public User getUser(String email) throws Exception {
- if(!verifyUserExist(email)){
- return null;
- }else{
- userDao = createUserDaoConnection();
- QueryBuilder queryBuilder = userDao.queryBuilder();
- queryBuilder.where().eq("email",email);
- PreparedQuery preparedQuery = queryBuilder.prepare();
- return userDao.queryForFirst(preparedQuery);
- }
- }
-
-
- public void approveUser (String email) throws Exception{
- userDao = createUserDaoConnection();
- UpdateBuilder updateBuilder = userDao.updateBuilder();
- updateBuilder.updateColumnValue("approved",true);
- Timestamp timestamp = new Timestamp(System.currentTimeMillis());
- updateBuilder.updateColumnValue("modification_date",timestamp.getTime());
- updateBuilder.where().eq("email",email);
- updateBuilder.update();
- }
- public void verifyUser (String email) throws Exception{
- userDao = createUserDaoConnection();
- UpdateBuilder updateBuilder = userDao.updateBuilder();
- updateBuilder.updateColumnValue("verified",true);
- Timestamp timestamp = new Timestamp(System.currentTimeMillis());
- updateBuilder.updateColumnValue("modification_date",timestamp.getTime());
- updateBuilder.where().eq("email",email);
- updateBuilder.update();
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/monnethic/mobile/wallet/WalletActivity.java b/app/src/main/java/monnethic/mobile/wallet/WalletActivity.java
deleted file mode 100644
index 6edc548..0000000
--- a/app/src/main/java/monnethic/mobile/wallet/WalletActivity.java
+++ /dev/null
@@ -1,55 +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.Toast;
-
-import com.example.monnthic.monnethicmobile.R;
-
-import monnethic.mobile.user.UserAccountActivity;
-
-public class WalletActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_wallet);
-
- Button buttonCreate = findViewById(R.id.buttonCreateWallet);
- Button buttonRestore = findViewById(R.id.buttonRestoreWallet);
- Button buttonSkip = findViewById(R.id.buttonSkip);
-
- buttonCreate.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- createWallet();
- }
- });
- buttonRestore.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- restoreWallet();
- }
- });
- buttonSkip.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- skip();
- }
- });
- }
- public void skip(){
- Intent userIntent = new Intent(WalletActivity.this, UserAccountActivity.class);
- WalletActivity.this.startActivity(userIntent);
- finish();
- }
- public void createWallet(){
- Toast.makeText(this, "Coming soon", Toast.LENGTH_SHORT).show();
- }
- public void restoreWallet(){
- Toast.makeText(this, "Coming soon", Toast.LENGTH_SHORT).show();
- }
-}
diff --git a/app/src/main/res/layout/activity_demo_wallet.xml b/app/src/main/res/layout/activity_demo_wallet.xml
deleted file mode 100644
index 76604c8..0000000
--- a/app/src/main/res/layout/activity_demo_wallet.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_homepage.xml b/app/src/main/res/layout/activity_homepage.xml
index 86faf34..14baf3e 100644
--- a/app/src/main/res/layout/activity_homepage.xml
+++ b/app/src/main/res/layout/activity_homepage.xml
@@ -43,7 +43,7 @@
android:layout_gravity="center"
android:text="version v0.1"
android:textAlignment="center" />
-
+
@@ -28,12 +27,12 @@
android:id="@+id/editTextPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignStart="@+id/editTextEmail"
android:layout_below="@+id/editTextEmail"
+ android:layout_alignStart="@+id/editTextEmail"
android:layout_marginTop="69dp"
android:ems="10"
android:hint="Password"
- android:inputType="textPersonName" />
+ android:inputType="textPassword" />
+ app:layout_constraintHorizontal_bias="0.502"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.905" />
diff --git a/app/src/main/res/layout/activity_qr_code_scanner.xml b/app/src/main/res/layout/activity_qr_code_scanner.xml
index e08f9c2..f049470 100644
--- a/app/src/main/res/layout/activity_qr_code_scanner.xml
+++ b/app/src/main/res/layout/activity_qr_code_scanner.xml
@@ -1,6 +1,5 @@
diff --git a/app/src/main/res/layout/activity_user_account.xml b/app/src/main/res/layout/activity_user_account.xml
index 2c0c4a0..76368f3 100644
--- a/app/src/main/res/layout/activity_user_account.xml
+++ b/app/src/main/res/layout/activity_user_account.xml
@@ -13,8 +13,8 @@
@@ -25,32 +25,61 @@
android:layout_height="wrap_content"
android:layout_below="@+id/buttonSettings"
android:layout_centerHorizontal="true"
- android:layout_marginTop="24dp"
+ android:layout_marginTop="13dp"
android:text="User account" />
-
-
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_wallet.xml b/app/src/main/res/layout/activity_wallet.xml
deleted file mode 100644
index c6e1e62..0000000
--- a/app/src/main/res/layout/activity_wallet.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 73811b2..a42cc49 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
- Monnéthic Mobile
+ Monnethic Mobile
Sign in
diff --git a/app/src/test/java/monnethic/mobile/test/blockchain/TestQuery.java b/app/src/test/java/monnethic/mobile/test/blockchain/TestQuery.java
deleted file mode 100644
index 7ec2870..0000000
--- a/app/src/test/java/monnethic/mobile/test/blockchain/TestQuery.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package monnethic.mobile.test.blockchain;
-
-import android.content.Context;
-
-import org.junit.FixMethodOrder;
-import org.junit.Test;
-import org.junit.runners.MethodSorters;
-
-import monnethic.mobile.blockchain.client.CAClientWrapper;
-import monnethic.mobile.blockchain.network.Config;
-import monnethic.mobile.blockchain.participant.UserContext;
-
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class TestQuery {
- @Test
- void TestAQueryChainCode(){
- try{
- //context appContext = InstrumentationRegistry.getTargetContext();
-
- String caUrl = Config.CA_ORG1_URL;
- CAClientWrapper caClientWrapper = new CAClientWrapper(caUrl,null,null,null);
-
- UserContext adminContext = new UserContext();
- adminContext.setName(Config.ADMIN);
- adminContext.setAffiliation(Config.ORG1);
- adminContext.setMspId(Config.ORG1_MSP);
-
- caClientWrapper.setAdminContext(adminContext);
- //adminContext = caClientWrapper.enrollAdmin(appContext);
- } catch (Exception e){
- e.printStackTrace();
- }
-
-
- }
-}
diff --git a/app/src/test/java/monnethic/mobile/test/database/DatabaseHelperTest.java b/app/src/test/java/monnethic/mobile/test/database/DatabaseHelperTest.java
deleted file mode 100644
index cc60b28..0000000
--- a/app/src/test/java/monnethic/mobile/test/database/DatabaseHelperTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package monnethic.mobile.test.database;
-
-import com.j256.ormlite.dao.Dao;
-import com.j256.ormlite.dao.DaoManager;
-import org.junit.Test;
-import monnethic.mobile.database.DatabaseHelper;
-import monnethic.mobile.database.DatabaseTest;
-
-
-//Testing class for postgresql connection
-public class DatabaseHelperTest {
- private DatabaseHelper dbh = new DatabaseHelper();
-
- //Test connection by getting existing data in T_TEST
- @Test
- public void TestConnection(){
- Dao testDao;
- try{
- testDao = DaoManager.createDao(dbh.setupDatabaseConnection(),DatabaseTest.class);
- DatabaseTest dbt = testDao.queryForId(1);
- assert dbt != null;
- assert "thomas".equals(dbt.getName());
- }catch (Exception e){
- System.out.println("\n"+e.getMessage());
- }
- }
-}
diff --git a/app/src/test/java/monnethic/mobile/test/user/UserDaoTest.java b/app/src/test/java/monnethic/mobile/test/user/UserDaoTest.java
deleted file mode 100644
index 1471e4e..0000000
--- a/app/src/test/java/monnethic/mobile/test/user/UserDaoTest.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package monnethic.mobile.test.user;
-
-import com.j256.ormlite.dao.Dao;
-import com.j256.ormlite.table.TableUtils;
-
-import org.junit.FixMethodOrder;
-import org.junit.Test;
-import org.junit.runners.MethodSorters;
-
-import java.sql.Timestamp;
-import monnethic.mobile.user.User;
-import monnethic.mobile.user.UserDao;
-
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class UserDaoTest {
- private UserDao udao = new UserDao();
- private final String USER_EMAIL = "thomas.marshal@gmail.com";
- private final String USER_PASSWORD = "avcde";
-
- @Test
- public void TestACreateTable(){
- try{
- Dao userDao;
- userDao = udao.createUserDaoConnection();
- TableUtils.createTable(userDao);
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
-
- @Test
- public void TestBInsertUser(){
- Timestamp timestamp = new Timestamp(System.currentTimeMillis());
- User user = new User("marshal","thomas",USER_EMAIL,USER_PASSWORD,timestamp.getTime(),timestamp.getTime(),false,false);
- try{
- udao.addUser(user);
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
-
- @Test
- public void TestCGetGeneratedUser(){
- try{
- User uTest = udao.getUser(USER_EMAIL);
- if(uTest==null){
- System.out.println("User don't Exist");
- }else {
- System.out.println(uTest.getEmail());
- }
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
-
- @Test
- public void TestDCheckApprovedUser(){
- try{
- boolean response = udao.checkApprovedUser(USER_EMAIL);
- if(response){
- System.out.println("Approved");
- }else{
- System.out.println("Not Approved");
- }
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
-
- @Test
- public void TestECheckVerifiedUser(){
- try{
- boolean response = udao.checkVerifiedUser(USER_EMAIL);
- if(response){
- System.out.println("Verified");
- }else{
- System.out.println("Not Verified");
- }
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
-
- @Test
- public void TestFCheckUserPassword(){
- try{
- boolean response = udao.checkUserPassword(USER_EMAIL,USER_PASSWORD);
- if(response){
- System.out.println("Password OK");
- }else{
- System.out.println("Password Failed");
- }
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
-
- @Test
- public void TestGUpdateUserPassword(){
- String newPassword = "newPassword";
- try{
- boolean response = udao.updateUserPassword(USER_EMAIL,newPassword);
- if(response){
- System.out.println("Password Changed");
- }else{
- System.out.println("Password Update Failed");
- }
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
-
- @Test
- public void TestHApproveVerifyUser(){
- try{
- udao.approveUser(USER_EMAIL);
- udao.verifyUser(USER_EMAIL);
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
-
- @Test
- public void TestICheckApprovedUser(){
- try{
- boolean response = udao.checkApprovedUser(USER_EMAIL);
- if(response){
- System.out.println("Approved");
- }else{
- System.out.println("Not Approved");
- }
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
-
- @Test
- public void TestJCheckVerifiedUser(){
- try{
- boolean response = udao.checkVerifiedUser(USER_EMAIL);
- if(response){
- System.out.println("Verified");
- }else{
- System.out.println("Not Verified");
- }
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- }
-
-}