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,8 +1,6 @@
1 1
 package uprrp.tania;
2 2
 
3 3
 import android.app.Application;
4
-import android.content.Intent;
5
-import android.content.SharedPreferences;
6 4
 import android.util.Log;
7 5
 import android.widget.Toast;
8 6
 
@@ -24,8 +22,6 @@ import org.researchstack.backbone.storage.file.PinCodeConfig;
24 22
 import org.researchstack.backbone.storage.file.SimpleFileAccess;
25 23
 import org.researchstack.backbone.storage.file.UnencryptedProvider;
26 24
 
27
-import uprrp.tania.activities.GettingStartedActivity;
28
-
29 25
 public class App extends Application {
30 26
 
31 27
     private static final String TAG = "App";
@@ -51,40 +47,37 @@ public class App extends Application {
51 47
 
52 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,6 +1,7 @@
1 1
 package uprrp.tania;
2 2
 
3 3
 import android.os.AsyncTask;
4
+
4 5
 import com.amazonaws.auth.CognitoCachingCredentialsProvider;
5 6
 import com.amazonaws.services.sns.AmazonSNSClient;
6 7
 import com.amazonaws.services.sns.model.CreatePlatformEndpointRequest;
@@ -10,7 +11,6 @@ import com.amazonaws.services.sns.model.GetEndpointAttributesResult;
10 11
 import com.amazonaws.services.sns.model.InvalidParameterException;
11 12
 import com.amazonaws.services.sns.model.NotFoundException;
12 13
 import com.amazonaws.services.sns.model.SetEndpointAttributesRequest;
13
-import com.google.firebase.iid.FirebaseInstanceId;
14 14
 
15 15
 import java.util.HashMap;
16 16
 import java.util.Map;
@@ -19,6 +19,7 @@ import java.util.regex.Pattern;
19 19
 
20 20
 public class SNSRegister extends AsyncTask <String, Void, String> {
21 21
 
22
+    private static final String TAG = "SNSRegister";
22 23
     AmazonSNSClient client;
23 24
     String arnStorage = null;
24 25
 
@@ -34,7 +35,7 @@ public class SNSRegister extends AsyncTask <String, Void, String> {
34 35
     @Override
35 36
     protected String doInBackground(String... strings) {
36 37
         String endpointArn = retrieveEndpointArn();
37
-        String token = FirebaseInstanceId.getInstance().getToken();
38
+        String token = GlobalValues.getInstance().getDeviceToken(); // FirebaseInstanceId.getInstance().getToken()
38 39
 
39 40
         boolean updateNeeded = false;
40 41
         boolean createNeeded = (null == endpointArn);

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

@@ -1,8 +1,3 @@
1
-/*************************************************************
2
- * By: Coralys Cubero Rivera
3
- * Date: 2019
4
- *************************************************************/
5
-
6 1
 package uprrp.tania.activities;
7 2
 
8 3
 import android.Manifest;
@@ -20,11 +15,6 @@ import android.widget.Toast;
20 15
 import androidx.annotation.Nullable;
21 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 18
 import com.itextpdf.text.BadElementException;
29 19
 import com.itextpdf.text.BaseColor;
30 20
 import com.itextpdf.text.Chunk;
@@ -59,11 +49,10 @@ import java.io.FileOutputStream;
59 49
 import java.io.IOException;
60 50
 import java.net.MalformedURLException;
61 51
 
52
+import uprrp.tania.GlobalValues;
62 53
 import uprrp.tania.R;
63
-import uprrp.tania.SNSRegister;
64 54
 import uprrp.tania.SendConsentForm;
65 55
 
66
-
67 56
 public class GettingStartedActivity extends AppCompatActivity {
68 57
 
69 58
     private static final int REQUEST_CONSENT = 0;
@@ -74,7 +63,6 @@ public class GettingStartedActivity extends AppCompatActivity {
74 63
     public static final String NAME = "name";
75 64
     public static final String CONSENT = "consent";
76 65
     public static final String SIGNATURE = "signature";
77
-    public String device_token;
78 66
 
79 67
     @Override
80 68
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -85,25 +73,6 @@ public class GettingStartedActivity extends AppCompatActivity {
85 73
         String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
86 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 76
         Button createAccount = findViewById(R.id.buttonCreateAccount);
108 77
         Button loginAccount = findViewById(R.id.buttonRecoverAccount);
109 78
 
@@ -180,7 +149,7 @@ public class GettingStartedActivity extends AppCompatActivity {
180 149
                 try {
181 150
                     signature.put("signaturePDFBase64", consentFormBase64);
182 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 154
                 } catch (JSONException e) {
186 155
                     e.printStackTrace();

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

@@ -12,15 +12,13 @@ import android.view.View;
12 12
 import android.widget.Button;
13 13
 import android.widget.EditText;
14 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 18
 import org.json.JSONException;
22 19
 import org.json.JSONObject;
23 20
 
21
+import uprrp.tania.GlobalValues;
24 22
 import uprrp.tania.R;
25 23
 import uprrp.tania.SendLoginToServer;
26 24
 
@@ -28,21 +26,12 @@ import uprrp.tania.SendLoginToServer;
28 26
 public class LoginActivity extends AppCompatActivity {
29 27
 
30 28
     private JSONObject recoverAccount = new JSONObject();
31
-    private String device_token;
32 29
 
33 30
     @Override
34 31
     protected void onCreate(Bundle savedInstanceState) {
35 32
         super.onCreate(savedInstanceState);
36 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 35
         final EditText emailText = findViewById(R.id.emailTextRecover);
47 36
         final EditText passwordText = findViewById(R.id.passwordTextRecover);
48 37
 
@@ -56,7 +45,7 @@ public class LoginActivity extends AppCompatActivity {
56 45
                     if (!emailText.getText().toString().equals("")&& !passwordText.getText().toString().equals("")) {
57 46
                         recoverAccount.put("email", emailText.getText());
58 47
                         recoverAccount.put("password", passwordText.getText());
59
-                        recoverAccount.put("token", device_token);
48
+                        recoverAccount.put("token", GlobalValues.getInstance().getDeviceToken());
60 49
 
61 50
                         //Log.d("LOGIN ACCOUNT JSON", recoverAccount.toString());
62 51
                         new SendLoginToServer(getApplicationContext()).execute(recoverAccount.toString());

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

@@ -1,5 +1,7 @@
1 1
 package uprrp.tania.activities;
2 2
 
3
+import android.content.Intent;
4
+import android.content.SharedPreferences;
3 5
 import android.os.Bundle;
4 6
 import android.view.MenuItem;
5 7
 
@@ -29,6 +31,16 @@ public class MainActivity extends PinCodeActivity {
29 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 44
         // Create toolbar
33 45
         Toolbar toolbar = findViewById(R.id.toolbar);
34 46
         setSupportActionBar(toolbar);

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

@@ -21,22 +21,19 @@ import android.widget.Toast;
21 21
 
22 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 24
 import org.json.JSONException;
29 25
 import org.json.JSONObject;
26
+
30 27
 import java.util.Calendar;
31 28
 import java.util.Objects;
32 29
 
30
+import uprrp.tania.GlobalValues;
33 31
 import uprrp.tania.R;
34 32
 import uprrp.tania.SendRegistrationToServer;
35 33
 
36 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 37
     private JSONObject registrationInfo = new JSONObject();
41 38
     private DatePickerDialog.OnDateSetListener mDateSetListener;
42 39
     private String name;
@@ -46,14 +43,6 @@ public class RegisterActivity extends AppCompatActivity {
46 43
         super.onCreate(savedInstanceState);
47 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 46
         final EditText nameEditText = findViewById(R.id.nameEditText);
58 47
 
59 48
         final TextView birthDateText = findViewById(R.id.birthDateText);
@@ -132,7 +121,7 @@ public class RegisterActivity extends AppCompatActivity {
132 121
                         } else if (noJob.isChecked()) {
133 122
                             registrationInfo.put("hasJob", "No job");
134 123
                         }
135
-                        registrationInfo.put("token", device_token);
124
+                        registrationInfo.put("token", GlobalValues.getInstance().getDeviceToken());
136 125
                     } else {
137 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,32 +17,20 @@ import android.widget.Toast;
17 17
 import androidx.annotation.Nullable;
18 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 20
 import org.json.JSONObject;
25 21
 
22
+import uprrp.tania.GlobalValues;
26 23
 import uprrp.tania.R;
27 24
 import uprrp.tania.SendResetPasswordToServer;
28 25
 
29 26
 public class ResetPasswordActivity extends AppCompatActivity {
30 27
 
31
-    String device_token;
32 28
     String forgotPasswordKey;
33 29
     @Override
34 30
     protected void onCreate(@Nullable Bundle savedInstanceState) {
35 31
         super.onCreate(savedInstanceState);
36 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 34
         Intent intent = getIntent();
47 35
         if(Intent.ACTION_VIEW.equals(intent.getAction())){
48 36
             Uri uri = intent.getData();
@@ -62,7 +50,7 @@ public class ResetPasswordActivity extends AppCompatActivity {
62 50
             public void onClick(View v) {
63 51
                 try {
64 52
                     if (newPassword.getText().toString().equals(confirmPassword.getText().toString())){
65
-                        resetPasswordJSON.put("token", device_token);
53
+                        resetPasswordJSON.put("token", GlobalValues.getInstance().getDeviceToken());
66 54
                         resetPasswordJSON.put("password", newPassword.getText().toString());
67 55
                         resetPasswordJSON.put("forgotPasswordKey", forgotPasswordKey);
68 56
 

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

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