Browse Source

Updated FetchUserStatus to adapt for backend changes. Moved Intent.startActivity(GettingStarted) back to MainActivity. Substituted FirebaseInstanceId for GlobalValues instance.

Víctor Hernández 3 years ago
parent
commit
a6ed1ce323

BIN
.idea/caches/build_file_checksums.ser View File


+ 31
- 38
app/src/main/java/uprrp/tania/App.java View File

1
 package uprrp.tania;
1
 package uprrp.tania;
2
 
2
 
3
 import android.app.Application;
3
 import android.app.Application;
4
-import android.content.Intent;
5
-import android.content.SharedPreferences;
6
 import android.util.Log;
4
 import android.util.Log;
7
 import android.widget.Toast;
5
 import android.widget.Toast;
8
 
6
 
24
 import org.researchstack.backbone.storage.file.SimpleFileAccess;
22
 import org.researchstack.backbone.storage.file.SimpleFileAccess;
25
 import org.researchstack.backbone.storage.file.UnencryptedProvider;
23
 import org.researchstack.backbone.storage.file.UnencryptedProvider;
26
 
24
 
27
-import uprrp.tania.activities.GettingStartedActivity;
28
-
29
 public class App extends Application {
25
 public class App extends Application {
30
 
26
 
31
     private static final String TAG = "App";
27
     private static final String TAG = "App";
51
 
47
 
52
         StorageAccess.getInstance().init(pinCodeConfig, encryptionProvider, fileAccess, database);
48
         StorageAccess.getInstance().init(pinCodeConfig, encryptionProvider, fileAccess, database);
53
 
49
 
54
-        // We need to know if the user has already registered, otherwise they need to do that first
55
-        SharedPreferences prefs = getSharedPreferences("prefs", MODE_PRIVATE);
56
-        boolean needsToRegister = prefs.getBoolean("needsToRegister", true);
57
-        if(needsToRegister) {
58
-            Intent needsRegisterIntent = new Intent(this, GettingStartedActivity.class);
59
-            startActivity(needsRegisterIntent);
60
-        }
61
-
62
-        // Enable notifications
63
-        CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
64
-                getApplicationContext(),
65
-                getString(R.string.identityPoolID), // Identity pool ID
66
-                Regions.US_EAST_1 // Region
67
-        );
68
-        SNSRegister snsRegister = new SNSRegister(credentialsProvider);
69
-        snsRegister.execute();
70
-
71
-        // Get device token (store globally
72
-        FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
73
-            @Override
74
-            public void onSuccess(InstanceIdResult instanceIdResult) {
75
-                String token = instanceIdResult.getToken();
76
-                GlobalValues.getInstance().setDeviceToken(token);
77
-                Log.d(TAG, "Got token: " + GlobalValues.getInstance().getDeviceToken());
78
-            }
79
-        }).addOnFailureListener(new OnFailureListener() {
80
-            @Override
81
-            public void onFailure(@NonNull Exception e) {
82
-                GlobalValues.getInstance().setDeviceToken(null);
83
-                Toast.makeText(getApplicationContext(), "Couldn't retrieve token!", Toast.LENGTH_LONG).show();
84
-                Log.e(TAG, "Error occurred while retrieving token...");
85
-                e.printStackTrace();
86
-            }
87
-        });
50
+        // Get device token
51
+        FirebaseInstanceId.getInstance().getInstanceId()
52
+                .addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
53
+                    @Override
54
+                    public void onSuccess(InstanceIdResult instanceIdResult) {
55
+
56
+                        // Store token globally
57
+                        String token = instanceIdResult.getToken();
58
+                        GlobalValues.getInstance().setDeviceToken(token);
59
+                        Log.d(TAG, "Got token: " + GlobalValues.getInstance().getDeviceToken());
60
+
61
+                        // Enable notifications (NEEDS TOKEN TO BE GLOBALLY AVAILABLE)
62
+                        CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
63
+                                getApplicationContext(),
64
+                                getString(R.string.identityPoolID), // Identity pool ID
65
+                                Regions.US_EAST_1 // Region
66
+                        );
67
+                        SNSRegister snsRegister = new SNSRegister(credentialsProvider);
68
+                        snsRegister.execute();
69
+
70
+                    }
71
+                })
72
+                .addOnFailureListener(new OnFailureListener() {
73
+                    @Override
74
+                    public void onFailure(@NonNull Exception e) {
75
+                        GlobalValues.getInstance().setDeviceToken(null);
76
+                        Toast.makeText(getApplicationContext(), "Couldn't retrieve token!", Toast.LENGTH_LONG).show();
77
+                        Log.e(TAG, "Error occurred while retrieving token...");
78
+                        e.printStackTrace();
79
+                    }
80
+                });
88
 
81
 
89
     }
82
     }
90
 }
83
 }

+ 3
- 2
app/src/main/java/uprrp/tania/SNSRegister.java View File

1
 package uprrp.tania;
1
 package uprrp.tania;
2
 
2
 
3
 import android.os.AsyncTask;
3
 import android.os.AsyncTask;
4
+
4
 import com.amazonaws.auth.CognitoCachingCredentialsProvider;
5
 import com.amazonaws.auth.CognitoCachingCredentialsProvider;
5
 import com.amazonaws.services.sns.AmazonSNSClient;
6
 import com.amazonaws.services.sns.AmazonSNSClient;
6
 import com.amazonaws.services.sns.model.CreatePlatformEndpointRequest;
7
 import com.amazonaws.services.sns.model.CreatePlatformEndpointRequest;
10
 import com.amazonaws.services.sns.model.InvalidParameterException;
11
 import com.amazonaws.services.sns.model.InvalidParameterException;
11
 import com.amazonaws.services.sns.model.NotFoundException;
12
 import com.amazonaws.services.sns.model.NotFoundException;
12
 import com.amazonaws.services.sns.model.SetEndpointAttributesRequest;
13
 import com.amazonaws.services.sns.model.SetEndpointAttributesRequest;
13
-import com.google.firebase.iid.FirebaseInstanceId;
14
 
14
 
15
 import java.util.HashMap;
15
 import java.util.HashMap;
16
 import java.util.Map;
16
 import java.util.Map;
19
 
19
 
20
 public class SNSRegister extends AsyncTask <String, Void, String> {
20
 public class SNSRegister extends AsyncTask <String, Void, String> {
21
 
21
 
22
+    private static final String TAG = "SNSRegister";
22
     AmazonSNSClient client;
23
     AmazonSNSClient client;
23
     String arnStorage = null;
24
     String arnStorage = null;
24
 
25
 
34
     @Override
35
     @Override
35
     protected String doInBackground(String... strings) {
36
     protected String doInBackground(String... strings) {
36
         String endpointArn = retrieveEndpointArn();
37
         String endpointArn = retrieveEndpointArn();
37
-        String token = FirebaseInstanceId.getInstance().getToken();
38
+        String token = GlobalValues.getInstance().getDeviceToken(); // FirebaseInstanceId.getInstance().getToken()
38
 
39
 
39
         boolean updateNeeded = false;
40
         boolean updateNeeded = false;
40
         boolean createNeeded = (null == endpointArn);
41
         boolean createNeeded = (null == endpointArn);

+ 2
- 33
app/src/main/java/uprrp/tania/activities/GettingStartedActivity.java View File

1
-/*************************************************************
2
- * By: Coralys Cubero Rivera
3
- * Date: 2019
4
- *************************************************************/
5
-
6
 package uprrp.tania.activities;
1
 package uprrp.tania.activities;
7
 
2
 
8
 import android.Manifest;
3
 import android.Manifest;
20
 import androidx.annotation.Nullable;
15
 import androidx.annotation.Nullable;
21
 import androidx.appcompat.app.AppCompatActivity;
16
 import androidx.appcompat.app.AppCompatActivity;
22
 
17
 
23
-import com.amazonaws.auth.CognitoCachingCredentialsProvider;
24
-import com.amazonaws.regions.Regions;
25
-import com.google.android.gms.tasks.OnSuccessListener;
26
-import com.google.firebase.iid.FirebaseInstanceId;
27
-import com.google.firebase.iid.InstanceIdResult;
28
 import com.itextpdf.text.BadElementException;
18
 import com.itextpdf.text.BadElementException;
29
 import com.itextpdf.text.BaseColor;
19
 import com.itextpdf.text.BaseColor;
30
 import com.itextpdf.text.Chunk;
20
 import com.itextpdf.text.Chunk;
59
 import java.io.IOException;
49
 import java.io.IOException;
60
 import java.net.MalformedURLException;
50
 import java.net.MalformedURLException;
61
 
51
 
52
+import uprrp.tania.GlobalValues;
62
 import uprrp.tania.R;
53
 import uprrp.tania.R;
63
-import uprrp.tania.SNSRegister;
64
 import uprrp.tania.SendConsentForm;
54
 import uprrp.tania.SendConsentForm;
65
 
55
 
66
-
67
 public class GettingStartedActivity extends AppCompatActivity {
56
 public class GettingStartedActivity extends AppCompatActivity {
68
 
57
 
69
     private static final int REQUEST_CONSENT = 0;
58
     private static final int REQUEST_CONSENT = 0;
74
     public static final String NAME = "name";
63
     public static final String NAME = "name";
75
     public static final String CONSENT = "consent";
64
     public static final String CONSENT = "consent";
76
     public static final String SIGNATURE = "signature";
65
     public static final String SIGNATURE = "signature";
77
-    public String device_token;
78
 
66
 
79
     @Override
67
     @Override
80
     protected void onCreate(@Nullable Bundle savedInstanceState) {
68
     protected void onCreate(@Nullable Bundle savedInstanceState) {
85
         String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
73
         String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
86
         requestPermissions(permissions, 1);
74
         requestPermissions(permissions, 1);
87
 
75
 
88
-        //////////////////// Let's get NOTIFICATIONS //////////////////////////
89
-        FirebaseInstanceId.getInstance().getInstanceId()
90
-                .addOnSuccessListener(GettingStartedActivity.this, new OnSuccessListener<InstanceIdResult>() {
91
-                    @Override
92
-                    public void onSuccess(InstanceIdResult instanceIdResult) {
93
-                        device_token = instanceIdResult.getToken();
94
-                    }
95
-                });
96
-
97
-        CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
98
-                getApplicationContext(),
99
-                "us-east-1:574094cd-0784-4e26-bd14-4fa72ae63579", // Identity pool ID
100
-                Regions.US_EAST_1 // Region
101
-        );
102
-
103
-        SNSRegister snsRegister = new SNSRegister(credentialsProvider);
104
-        snsRegister.execute();
105
-        ////////////////////////////////////////////////////////////////
106
-
107
         Button createAccount = findViewById(R.id.buttonCreateAccount);
76
         Button createAccount = findViewById(R.id.buttonCreateAccount);
108
         Button loginAccount = findViewById(R.id.buttonRecoverAccount);
77
         Button loginAccount = findViewById(R.id.buttonRecoverAccount);
109
 
78
 
180
                 try {
149
                 try {
181
                     signature.put("signaturePDFBase64", consentFormBase64);
150
                     signature.put("signaturePDFBase64", consentFormBase64);
182
                     signature.put("signatureDate", signatureDate);
151
                     signature.put("signatureDate", signatureDate);
183
-                    signature.put("token", FirebaseInstanceId.getInstance().getToken());
152
+                    signature.put("token", GlobalValues.getInstance().getDeviceToken()); // FirebaseInstanceId.getInstance().getToken()
184
 
153
 
185
                 } catch (JSONException e) {
154
                 } catch (JSONException e) {
186
                     e.printStackTrace();
155
                     e.printStackTrace();

+ 3
- 14
app/src/main/java/uprrp/tania/activities/LoginActivity.java View File

12
 import android.widget.Button;
12
 import android.widget.Button;
13
 import android.widget.EditText;
13
 import android.widget.EditText;
14
 import android.widget.Toast;
14
 import android.widget.Toast;
15
-import androidx.appcompat.app.AppCompatActivity;
16
 
15
 
17
-import com.google.android.gms.tasks.OnSuccessListener;
18
-import com.google.firebase.iid.FirebaseInstanceId;
19
-import com.google.firebase.iid.InstanceIdResult;
16
+import androidx.appcompat.app.AppCompatActivity;
20
 
17
 
21
 import org.json.JSONException;
18
 import org.json.JSONException;
22
 import org.json.JSONObject;
19
 import org.json.JSONObject;
23
 
20
 
21
+import uprrp.tania.GlobalValues;
24
 import uprrp.tania.R;
22
 import uprrp.tania.R;
25
 import uprrp.tania.SendLoginToServer;
23
 import uprrp.tania.SendLoginToServer;
26
 
24
 
28
 public class LoginActivity extends AppCompatActivity {
26
 public class LoginActivity extends AppCompatActivity {
29
 
27
 
30
     private JSONObject recoverAccount = new JSONObject();
28
     private JSONObject recoverAccount = new JSONObject();
31
-    private String device_token;
32
 
29
 
33
     @Override
30
     @Override
34
     protected void onCreate(Bundle savedInstanceState) {
31
     protected void onCreate(Bundle savedInstanceState) {
35
         super.onCreate(savedInstanceState);
32
         super.onCreate(savedInstanceState);
36
         setContentView(R.layout.activity_login);
33
         setContentView(R.layout.activity_login);
37
 
34
 
38
-        //Let's get the device's token
39
-        FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
40
-            @Override
41
-            public void onSuccess(InstanceIdResult instanceIdResult) {
42
-                device_token = instanceIdResult.getToken();
43
-            }
44
-        });
45
-
46
         final EditText emailText = findViewById(R.id.emailTextRecover);
35
         final EditText emailText = findViewById(R.id.emailTextRecover);
47
         final EditText passwordText = findViewById(R.id.passwordTextRecover);
36
         final EditText passwordText = findViewById(R.id.passwordTextRecover);
48
 
37
 
56
                     if (!emailText.getText().toString().equals("")&& !passwordText.getText().toString().equals("")) {
45
                     if (!emailText.getText().toString().equals("")&& !passwordText.getText().toString().equals("")) {
57
                         recoverAccount.put("email", emailText.getText());
46
                         recoverAccount.put("email", emailText.getText());
58
                         recoverAccount.put("password", passwordText.getText());
47
                         recoverAccount.put("password", passwordText.getText());
59
-                        recoverAccount.put("token", device_token);
48
+                        recoverAccount.put("token", GlobalValues.getInstance().getDeviceToken());
60
 
49
 
61
                         //Log.d("LOGIN ACCOUNT JSON", recoverAccount.toString());
50
                         //Log.d("LOGIN ACCOUNT JSON", recoverAccount.toString());
62
                         new SendLoginToServer(getApplicationContext()).execute(recoverAccount.toString());
51
                         new SendLoginToServer(getApplicationContext()).execute(recoverAccount.toString());

+ 12
- 0
app/src/main/java/uprrp/tania/activities/MainActivity.java View File

1
 package uprrp.tania.activities;
1
 package uprrp.tania.activities;
2
 
2
 
3
+import android.content.Intent;
4
+import android.content.SharedPreferences;
3
 import android.os.Bundle;
5
 import android.os.Bundle;
4
 import android.view.MenuItem;
6
 import android.view.MenuItem;
5
 
7
 
29
         setContentView(R.layout.activity_main);
31
         setContentView(R.layout.activity_main);
30
 
32
 
31
 
33
 
34
+        // We need to know if the user has already registered, otherwise they need to do that first
35
+        SharedPreferences prefs = getSharedPreferences("prefs", MODE_PRIVATE);
36
+        boolean needsToRegister = prefs.getBoolean("needsToRegister", true);
37
+        if(needsToRegister) {
38
+            Intent needsRegisterIntent = new Intent(this, GettingStartedActivity.class);
39
+            startActivity(needsRegisterIntent);
40
+            return;
41
+        }
42
+
43
+
32
         // Create toolbar
44
         // Create toolbar
33
         Toolbar toolbar = findViewById(R.id.toolbar);
45
         Toolbar toolbar = findViewById(R.id.toolbar);
34
         setSupportActionBar(toolbar);
46
         setSupportActionBar(toolbar);

+ 4
- 15
app/src/main/java/uprrp/tania/activities/RegisterActivity.java View File

21
 
21
 
22
 import androidx.appcompat.app.AppCompatActivity;
22
 import androidx.appcompat.app.AppCompatActivity;
23
 
23
 
24
-import com.google.android.gms.tasks.OnSuccessListener;
25
-import com.google.firebase.iid.FirebaseInstanceId;
26
-import com.google.firebase.iid.InstanceIdResult;
27
-
28
 import org.json.JSONException;
24
 import org.json.JSONException;
29
 import org.json.JSONObject;
25
 import org.json.JSONObject;
26
+
30
 import java.util.Calendar;
27
 import java.util.Calendar;
31
 import java.util.Objects;
28
 import java.util.Objects;
32
 
29
 
30
+import uprrp.tania.GlobalValues;
33
 import uprrp.tania.R;
31
 import uprrp.tania.R;
34
 import uprrp.tania.SendRegistrationToServer;
32
 import uprrp.tania.SendRegistrationToServer;
35
 
33
 
36
 public class RegisterActivity extends AppCompatActivity {
34
 public class RegisterActivity extends AppCompatActivity {
37
 
35
 
38
-    private static final String TAG = "Cognito";
39
-    private String device_token;
36
+    private static final String TAG = "RegisterActivity";
40
     private JSONObject registrationInfo = new JSONObject();
37
     private JSONObject registrationInfo = new JSONObject();
41
     private DatePickerDialog.OnDateSetListener mDateSetListener;
38
     private DatePickerDialog.OnDateSetListener mDateSetListener;
42
     private String name;
39
     private String name;
46
         super.onCreate(savedInstanceState);
43
         super.onCreate(savedInstanceState);
47
         setContentView(R.layout.activity_registration);
44
         setContentView(R.layout.activity_registration);
48
 
45
 
49
-        // Get device's token
50
-        FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
51
-            @Override
52
-            public void onSuccess(InstanceIdResult instanceIdResult) {
53
-                device_token = instanceIdResult.getToken();
54
-            }
55
-        });
56
-
57
         final EditText nameEditText = findViewById(R.id.nameEditText);
46
         final EditText nameEditText = findViewById(R.id.nameEditText);
58
 
47
 
59
         final TextView birthDateText = findViewById(R.id.birthDateText);
48
         final TextView birthDateText = findViewById(R.id.birthDateText);
132
                         } else if (noJob.isChecked()) {
121
                         } else if (noJob.isChecked()) {
133
                             registrationInfo.put("hasJob", "No job");
122
                             registrationInfo.put("hasJob", "No job");
134
                         }
123
                         }
135
-                        registrationInfo.put("token", device_token);
124
+                        registrationInfo.put("token", GlobalValues.getInstance().getDeviceToken());
136
                     } else {
125
                     } else {
137
                         Toast.makeText(RegisterActivity.this, "All the fields are needed to complete registration.", Toast.LENGTH_LONG).show();
126
                         Toast.makeText(RegisterActivity.this, "All the fields are needed to complete registration.", Toast.LENGTH_LONG).show();
138
                     }
127
                     }

+ 2
- 14
app/src/main/java/uprrp/tania/activities/ResetPasswordActivity.java View File

17
 import androidx.annotation.Nullable;
17
 import androidx.annotation.Nullable;
18
 import androidx.appcompat.app.AppCompatActivity;
18
 import androidx.appcompat.app.AppCompatActivity;
19
 
19
 
20
-import com.google.android.gms.tasks.OnSuccessListener;
21
-import com.google.firebase.iid.FirebaseInstanceId;
22
-import com.google.firebase.iid.InstanceIdResult;
23
-
24
 import org.json.JSONObject;
20
 import org.json.JSONObject;
25
 
21
 
22
+import uprrp.tania.GlobalValues;
26
 import uprrp.tania.R;
23
 import uprrp.tania.R;
27
 import uprrp.tania.SendResetPasswordToServer;
24
 import uprrp.tania.SendResetPasswordToServer;
28
 
25
 
29
 public class ResetPasswordActivity extends AppCompatActivity {
26
 public class ResetPasswordActivity extends AppCompatActivity {
30
 
27
 
31
-    String device_token;
32
     String forgotPasswordKey;
28
     String forgotPasswordKey;
33
     @Override
29
     @Override
34
     protected void onCreate(@Nullable Bundle savedInstanceState) {
30
     protected void onCreate(@Nullable Bundle savedInstanceState) {
35
         super.onCreate(savedInstanceState);
31
         super.onCreate(savedInstanceState);
36
         setContentView(R.layout.activity_reset_password);
32
         setContentView(R.layout.activity_reset_password);
37
 
33
 
38
-        //Let's get the device's token
39
-        FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener(new OnSuccessListener<InstanceIdResult>() {
40
-            @Override
41
-            public void onSuccess(InstanceIdResult instanceIdResult) {
42
-                device_token = instanceIdResult.getToken();
43
-            }
44
-        });
45
-
46
         Intent intent = getIntent();
34
         Intent intent = getIntent();
47
         if(Intent.ACTION_VIEW.equals(intent.getAction())){
35
         if(Intent.ACTION_VIEW.equals(intent.getAction())){
48
             Uri uri = intent.getData();
36
             Uri uri = intent.getData();
62
             public void onClick(View v) {
50
             public void onClick(View v) {
63
                 try {
51
                 try {
64
                     if (newPassword.getText().toString().equals(confirmPassword.getText().toString())){
52
                     if (newPassword.getText().toString().equals(confirmPassword.getText().toString())){
65
-                        resetPasswordJSON.put("token", device_token);
53
+                        resetPasswordJSON.put("token", GlobalValues.getInstance().getDeviceToken());
66
                         resetPasswordJSON.put("password", newPassword.getText().toString());
54
                         resetPasswordJSON.put("password", newPassword.getText().toString());
67
                         resetPasswordJSON.put("forgotPasswordKey", forgotPasswordKey);
55
                         resetPasswordJSON.put("forgotPasswordKey", forgotPasswordKey);
68
 
56
 

+ 1
- 1
app/src/main/java/uprrp/tania/networking/FetchUserStatus.java View File

55
 
55
 
56
             String response = serverResponse.toString();
56
             String response = serverResponse.toString();
57
             Log.d(TAG, "rawString:" + response); // log
57
             Log.d(TAG, "rawString:" + response); // log
58
-            if(response.equals("no esta inscrito")) {
58
+            if(response.contains("No joda")) { // no esta inscrito
59
                 return new JSONArray("[]");
59
                 return new JSONArray("[]");
60
             } else {
60
             } else {
61
                 return new JSONArray(response);
61
                 return new JSONArray(response);