diff --git a/app/build.gradle b/app/build.gradle
index c2d0764e0..c0fd101dc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -12,8 +12,8 @@ android {
targetSdkVersion 27
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- versionCode 6
- versionName "0.1.2"
+ versionCode 7
+ versionName "0.2.0"
// Enabling multidex support.
multiDexEnabled true
diff --git a/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java b/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java
index afd7ad521..abe03b903 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java
+++ b/app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java
@@ -40,6 +40,7 @@ import com.nextcloud.talk.api.helpers.api.ApiHelper;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.controllers.base.BaseController;
import com.nextcloud.talk.jobs.PushRegistrationJob;
+import com.nextcloud.talk.utils.ErrorMessageHolder;
import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.database.user.UserUtils;
@@ -180,6 +181,9 @@ public class AccountVerificationController extends BaseController {
}, throwable -> {
progressText.setText(String.format(getResources().getString(
R.string.nc_nextcloud_talk_app_not_installed), getResources().getString(R.string.nc_app_name)));
+ ErrorMessageHolder.getInstance().setMessageType(
+ ErrorMessageHolder.ErrorMessageType.SERVER_WITHOUT_TALK);
+
abortVerification();
}, () -> dispose(roomsQueryDisposable));
diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java b/app/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java
index 77286bf55..c00d029fe 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java
+++ b/app/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java
@@ -247,11 +247,17 @@ public class ServerSelectionController extends BaseController {
@Override
protected void onAttach(@NonNull View view) {
super.onAttach(view);
- if (ErrorMessageHolder.getInstance().getMessageType() != null &&
- ErrorMessageHolder.getInstance().getMessageType()
- .equals(ErrorMessageHolder.ErrorMessageType.ACCOUNT_SCHEDULED_FOR_DELETION)) {
- textFieldBoxes.setError(getResources().getString(R.string.nc_account_scheduled_for_deletion),
- false);
+ if (ErrorMessageHolder.getInstance().getMessageType() != null) {
+ if (ErrorMessageHolder.getInstance().getMessageType()
+ .equals(ErrorMessageHolder.ErrorMessageType.ACCOUNT_SCHEDULED_FOR_DELETION)) {
+ textFieldBoxes.setError(getResources().getString(R.string.nc_account_scheduled_for_deletion),
+ false);
+ ErrorMessageHolder.getInstance().setMessageType(null);
+ } else if (ErrorMessageHolder.getInstance().getMessageType()
+ .equals(ErrorMessageHolder.ErrorMessageType.SERVER_WITHOUT_TALK)) {
+ textFieldBoxes.setError(getResources().getString(R.string.nc_settings_no_talk_installed),
+ false);
+ }
ErrorMessageHolder.getInstance().setMessageType(null);
}
}
diff --git a/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java b/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java
index 38b10362e..d2db4d1f2 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java
+++ b/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java
@@ -366,6 +366,10 @@ public class SettingsController extends BaseController {
messageText.setText(getResources().getString(R.string.nc_settings_wrong_account));
messageView.setVisibility(View.VISIBLE);
break;
+ case SERVER_WITHOUT_TALK:
+ messageText.setTextColor(getResources().getColor(R.color.nc_darkRed));
+ messageText.setText(getResources().getString(R.string.nc_settings_wrong_account));
+ messageView.setVisibility(View.VISIBLE);
default:
messageView.setVisibility(View.GONE);
break;
diff --git a/app/src/main/java/com/nextcloud/talk/utils/ErrorMessageHolder.java b/app/src/main/java/com/nextcloud/talk/utils/ErrorMessageHolder.java
index 81294f5fd..a5f068d9f 100644
--- a/app/src/main/java/com/nextcloud/talk/utils/ErrorMessageHolder.java
+++ b/app/src/main/java/com/nextcloud/talk/utils/ErrorMessageHolder.java
@@ -39,7 +39,7 @@ public class ErrorMessageHolder {
}
public enum ErrorMessageType {
- WRONG_ACCOUNT, ACCOUNT_UPDATED_NOT_ADDED, ACCOUNT_SCHEDULED_FOR_DELETION
+ WRONG_ACCOUNT, ACCOUNT_UPDATED_NOT_ADDED, ACCOUNT_SCHEDULED_FOR_DELETION, SERVER_WITHOUT_TALK
}
diff --git a/app/src/main/java/com/nextcloud/talk/utils/PushUtils.java b/app/src/main/java/com/nextcloud/talk/utils/PushUtils.java
index c2f9cfad0..9f979c0cb 100644
--- a/app/src/main/java/com/nextcloud/talk/utils/PushUtils.java
+++ b/app/src/main/java/com/nextcloud/talk/utils/PushUtils.java
@@ -96,6 +96,7 @@ public class PushUtils {
NextcloudTalkApplication.getSharedApplication().getComponentApplication().inject(this);
keysFile = NextcloudTalkApplication.getSharedApplication().getDir("PushKeyStore", Context.MODE_PRIVATE);
+
publicKeyFile = new File(NextcloudTalkApplication.getSharedApplication().getDir("PushKeystore",
Context.MODE_PRIVATE), "push_key.pub");
privateKeyFile = new File(NextcloudTalkApplication.getSharedApplication().getDir("PushKeystore",
diff --git a/app/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java b/app/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java
index 15cc476a6..fd158a561 100644
--- a/app/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java
+++ b/app/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java
@@ -56,6 +56,7 @@ public class MagicTrustManager implements X509TrustManager {
public MagicTrustManager() {
keystoreFile = new File(NextcloudTalkApplication.getSharedApplication().getDir("CertsKeystore",
Context.MODE_PRIVATE), "keystore.bks");
+
try {
trustedKeyStore = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream fileInputStream = new FileInputStream(keystoreFile);
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2841c05d3..ed266a176 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -17,7 +17,7 @@
Display name fetched
Display name couldn\'t be fetched, aborting
%1$s app found
- %1$s app not installed, aborting
+ %1$s app not installed on the server, aborting
Display name stored
Could not store display name, aborting
@@ -48,6 +48,8 @@
Remove account
Add a new account
Only current account can be reauthorized
+ Talk app is not installed on the server you tried to authorize
+ against
Your already existing account was updated, instead of adding a new one
The account is scheduled for deletion, and cannot be changed