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