diff --git a/otgc/build.gradle b/otgc/build.gradle
index c90c345a54cc99cccbd1131ae7cb5914f4b7795b..78604feb710d75d7be6d3d6c48bb22844f267996 100644
--- a/otgc/build.gradle
+++ b/otgc/build.gradle
@@ -30,7 +30,7 @@ android {
minSdkVersion 21
targetSdkVersion 28
versionCode 13
- versionName "2.4.0"
+ versionName "2.5.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
compileOptions {
diff --git a/otgc/src/main/assets/kyrio-ee-cert.pem b/otgc/src/main/assets/kyrio-ee-cert.pem
index 6ab9a5d3a60562e233e11d6d1dbee78adc5687ef..3ee52a3567ae79f89012a20f3c78847e37669002 100644
--- a/otgc/src/main/assets/kyrio-ee-cert.pem
+++ b/otgc/src/main/assets/kyrio-ee-cert.pem
@@ -1,14 +1,14 @@
-----BEGIN CERTIFICATE-----
-MIIEEzCCA7mgAwIBAgIJAI0K+3tTskzXMAoGCCqGSM49BAMCMFsxDDAKBgNVBAoM
+MIIEEzCCA7mgAwIBAgIJAI0K+3tTsk0AMAoGCCqGSM49BAMCMFsxDDAKBgNVBAoM
A09DRjEiMCAGA1UECwwZS3lyaW8gVGVzdCBJbmZyYXN0cnVjdHVyZTEnMCUGA1UE
-AwweS3lyaW8gVEVTVCBJbnRlcm1lZGlhdGUgQ0EwMDAyMB4XDTE5MDkyMzA5MjUx
-OFoXDTE5MTAyMzA5MjUxOFowYTEMMAoGA1UECgwDT0NGMSIwIAYDVQQLDBlLeXJp
+AwweS3lyaW8gVEVTVCBJbnRlcm1lZGlhdGUgQ0EwMDAyMB4XDTE5MTAyNDA5NDg1
+NFoXDTE5MTEyMzA5NDg1NFowYTEMMAoGA1UECgwDT0NGMSIwIAYDVQQLDBlLeXJp
byBUZXN0IEluZnJhc3RydWN0dXJlMS0wKwYDVQQDDCQxZTFiZWJmYi04ZjAzLTQ3
-ODUtNWZhNy0xYjcwNGU2NTQzNjAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQj
-V7MJwkO4J4PWR4KgbVHrFHSQipHMRNu704OPmnAQQ3tnEhjnYxn0TODDvN8YekE5
-voDDOX98mYpxhPa5hz52o4ICXjCCAlowCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMC
+ODUtNWZhNy0xYjcwNGU2NTQzNjAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATW
+d0t/5GahEMUSb8dhaOIZdTDHDTelbWWfjSxA6OhcMy1uKGewCg7e2R2ZTK7ZM/th
+KSXuMywN0JXA6BoW9on8o4ICXjCCAlowCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMC
A4gwKQYDVR0lBCIwIAYIKwYBBQUHAwIGCCsGAQUFBwMBBgorBgEEAYLefAEGMB0G
-A1UdDgQWBBRjlMq7Dkw3IN1X1CTuDLEITgjQGTAfBgNVHSMEGDAWgBQZc2oEGgsH
+A1UdDgQWBBS+4P5iaPJfppBg66266sma6Ffe9jAfBgNVHSMEGDAWgBQZc2oEGgsH
cE9TeVM2h/wMunyuCzCBlgYIKwYBBQUHAQEEgYkwgYYwXQYIKwYBBQUHMAKGUWh0
dHA6Ly90ZXN0cGtpLmt5cmlvLmNvbS9vY2YvY2FjZXJ0cy9CQkU2NEY5QTdFRTM3
RDI5QTA1RTRCQjc3NTk1RjMwOEJFNDFFQjA3LmNydDAlBggrBgEFBQcwAYYZaHR0
@@ -19,6 +19,6 @@ AjBgBgorBgEEAYORVgEABFIwUDAJAgECAgEAAgEAMDYMGTEuMy42LjEuNC4xLjUx
NDE0LjAuMC4xLjAMGTEuMy42LjEuNC4xLjUxNDE0LjAuMC4yLjAMBE9UR0MMBURF
S1JBMCoGCisGAQQBg5FWAQEEHDAaBgsrBgEEAYORVgEBAAYLKwYBBAGDkVYBAQEw
MAYKKwYBBAGDkVYBAgQiMCAMDjEuMy42LjEuNC4xLjcxDAlEaXNjb3ZlcnkMAzEu
-MDAKBggqhkjOPQQDAgNIADBFAiBLKD1R5LUOUJdMq2VWlzbzpZjvLeN1CFQIPS4y
-cjbm9wIhANmGPf7y8/s/fKWy/dEaIGjo79lButKOe0JWZaburW3P
+MDAKBggqhkjOPQQDAgNIADBFAiEA3Ay4oPSGwARJWub9/k58xiqARpRKjCDaGGZi
+mHTurqYCIC/e7Y9NAMiweZZ2JaGAYXC7T8YTqAFneT9jaq2o3c9m
-----END CERTIFICATE-----
diff --git a/otgc/src/main/assets/kyrio-ee-key.pem b/otgc/src/main/assets/kyrio-ee-key.pem
index 74373c9fb7afb0b735ebd640052ddf226420a59c..eb4fad6e470d7c95474c364ae9d33bb9669c2875 100644
--- a/otgc/src/main/assets/kyrio-ee-key.pem
+++ b/otgc/src/main/assets/kyrio-ee-key.pem
@@ -1,5 +1,8 @@
+-----BEGIN EC PARAMETERS-----
+BggqhkjOPQMBBw==
+-----END EC PARAMETERS-----
-----BEGIN EC PRIVATE KEY-----
-MHcCAQEEIChO1xeRf0WA/npKbjLKPzlnTDhE7v95O5ZG2fhZbBjLoAoGCCqGSM49
-AwEHoUQDQgAEI1ezCcJDuCeD1keCoG1R6xR0kIqRzETbu9ODj5pwEEN7ZxIY52MZ
-9Ezgw7zfGHpBOb6Awzl/fJmKcYT2uYc+dg==
+MHcCAQEEIDUCAKRYHFbz7MVYj4LASsOxX54sYcVNbE4MLwIa/0j/oAoGCCqGSM49
+AwEHoUQDQgAE1ndLf+RmoRDFEm/HYWjiGXUwxw03pW1ln40sQOjoXDMtbihnsAoO
+3tkdmUyu2TP7YSkl7jMsDdCVwOgaFvaJ/A==
-----END EC PRIVATE KEY-----
diff --git a/otgc/src/main/java/org/openconnectivity/otgc/data/repository/IORepository.java b/otgc/src/main/java/org/openconnectivity/otgc/data/repository/IORepository.java
index 80ca11b83c5b49e017e9c677b3d805a6109dfa36..d8fa8cb98d081815aa3f0be05c3a43b7e57d19f9 100644
--- a/otgc/src/main/java/org/openconnectivity/otgc/data/repository/IORepository.java
+++ b/otgc/src/main/java/org/openconnectivity/otgc/data/repository/IORepository.java
@@ -147,6 +147,9 @@ public class IORepository {
} catch (IOException e) {
Timber.e("%s file storage failed", path);
emitter.onError(e);
+ } catch (Exception e) {
+ Timber.e(e.getMessage());
+ emitter.onError(e);
}
});
}
diff --git a/otgc/src/main/java/org/openconnectivity/otgc/view/trustanchor/TrustAnchorActivity.java b/otgc/src/main/java/org/openconnectivity/otgc/view/trustanchor/TrustAnchorActivity.java
index ecc3f00fbcac537f0016c5e46947270b0ac33a94..17a933d28ae5bbf8f19662a5dd5b21a967b54cb5 100644
--- a/otgc/src/main/java/org/openconnectivity/otgc/view/trustanchor/TrustAnchorActivity.java
+++ b/otgc/src/main/java/org/openconnectivity/otgc/view/trustanchor/TrustAnchorActivity.java
@@ -25,6 +25,7 @@ import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.ProgressBar;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
@@ -238,7 +239,16 @@ public class TrustAnchorActivity extends AppCompatActivity implements Injectable
}
private void handleError(@NonNull ViewModelError error) {
- // TODO:
+ int errorId = -1;
+ switch ((TrustAnchorViewModel.Error)error.getType()) {
+ case ADD_ROOT_CERT:
+ errorId = R.string.trust_anchor_create_error;
+ break;
+ }
+
+ if (errorId != 0) {
+ Toast.makeText(this, errorId, Toast.LENGTH_SHORT).show();
+ }
}
private void processCredential(@NonNull OcCredential credential) {
diff --git a/otgc/src/main/java/org/openconnectivity/otgc/viewmodel/TrustAnchorViewModel.java b/otgc/src/main/java/org/openconnectivity/otgc/viewmodel/TrustAnchorViewModel.java
index 3a3eb69ba86b2cde85f939a5007e7219aac380f7..3f11fbc5950ffea541acb9e6b0db43029e6fbbd0 100644
--- a/otgc/src/main/java/org/openconnectivity/otgc/viewmodel/TrustAnchorViewModel.java
+++ b/otgc/src/main/java/org/openconnectivity/otgc/viewmodel/TrustAnchorViewModel.java
@@ -12,6 +12,7 @@ import org.openconnectivity.otgc.domain.usecase.trustanchor.RemoveTrustAnchorByC
import org.openconnectivity.otgc.domain.usecase.trustanchor.StoreTrustAnchorUseCase;
import org.openconnectivity.otgc.utils.rx.SchedulersFacade;
import org.openconnectivity.otgc.utils.viewmodel.ViewModelError;
+import org.openconnectivity.otgc.utils.viewmodel.ViewModelErrorType;
import java.io.File;
@@ -90,7 +91,7 @@ public class TrustAnchorViewModel extends ViewModel {
.observeOn(schedulersFacade.ui())
.subscribe(
() -> retrieveTrustAnchors(),
- throwable -> {}
+ throwable -> mError.setValue(new ViewModelError(Error.ADD_ROOT_CERT, throwable.getMessage()))
));
}
@@ -103,4 +104,8 @@ public class TrustAnchorViewModel extends ViewModel {
throwable -> {}
));
}
+
+ public enum Error implements ViewModelErrorType {
+ ADD_ROOT_CERT
+ }
}
diff --git a/otgc/src/main/res/values-es/strings.xml b/otgc/src/main/res/values-es/strings.xml
index 932f5bea2b83464566c2ed0cad74cfa577dbcfe4..bdf95663a0e4881092d4462a22b96c51b38a3b31 100644
--- a/otgc/src/main/res/values-es/strings.xml
+++ b/otgc/src/main/res/values-es/strings.xml
@@ -166,6 +166,7 @@
ID de rol: %1$s, Autoridad de rol: %2$s
ID Credencial: %1$s
Uso: %1$s
+ No se puede almacenar el certificado raíz desde la ubicación seleccionada
Error escaneando las redes Wi-Fi
Configurando y conectado el dispositivo mediante Wi-Fi Easy Setup
Wi-Fi Easy Setup ha fallado
diff --git a/otgc/src/main/res/values/strings.xml b/otgc/src/main/res/values/strings.xml
index 01b011b2c9848f7a9a806854fd6a45892950a5eb..970ea3d574e413e6e3cb6e2903d1c89f1ac209c4 100644
--- a/otgc/src/main/res/values/strings.xml
+++ b/otgc/src/main/res/values/strings.xml
@@ -216,6 +216,7 @@
Credential ID: %1$s
Usage: %1$s
Role ID: %1$s, Role Authority: %2$s
+ Cannot store the root certificate from the selected location
Unnamed
Info