diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java index c95f561ea..1d68a2cff 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java @@ -13,9 +13,8 @@ import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.db.DatabaseExecutor; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; -import org.briarproject.briar.R; -import org.briarproject.briar.android.viewmodel.LiveResult; import org.briarproject.briar.android.viewmodel.LiveEvent; +import org.briarproject.briar.android.viewmodel.LiveResult; import org.briarproject.briar.android.viewmodel.MutableLiveEvent; import java.util.concurrent.Executor; @@ -103,12 +102,10 @@ public class AddContactViewModel extends AndroidViewModel { addContactResult.postValue(new LiveResult<>(true)); } catch (UnsupportedVersionException e) { logException(LOG, WARNING, e); - addContactResult - .postValue(new LiveResult<>(R.string.unsupported_link)); + addContactResult.postValue(new LiveResult<>(e)); } catch (DbException | FormatException e) { logException(LOG, WARNING, e); - addContactResult.postValue( - new LiveResult<>(R.string.adding_contact_error)); + addContactResult.postValue(new LiveResult<>(e)); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java index d01e78e31..0b3680c54 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java @@ -14,6 +14,7 @@ import android.widget.Button; import android.widget.ProgressBar; import android.widget.Toast; +import org.briarproject.bramble.api.UnsupportedVersionException; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; @@ -106,8 +107,14 @@ public class NicknameFragment extends BaseFragment { viewModel.getAddContactResult().observe(this, result -> { if (result == null) return; if (result.hasError()) { - Toast.makeText(getContext(), result.getErrorRes(), LENGTH_LONG) - .show(); + int stringRes; + if (result + .getException() instanceof UnsupportedVersionException) { + stringRes = R.string.unsupported_link; + } else { + stringRes = R.string.adding_contact_error; + } + Toast.makeText(getContext(), stringRes, LENGTH_LONG).show(); } else { Intent intent = new Intent(getActivity(), PendingContactListActivity.class); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/viewmodel/LiveResult.java b/briar-android/src/main/java/org/briarproject/briar/android/viewmodel/LiveResult.java index 4bb19db0f..661d2d722 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/viewmodel/LiveResult.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/viewmodel/LiveResult.java @@ -1,7 +1,6 @@ package org.briarproject.briar.android.viewmodel; import android.support.annotation.Nullable; -import android.support.annotation.StringRes; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; @@ -10,17 +9,17 @@ public class LiveResult { @Nullable private T result; - @StringRes - private int errorRes; + @Nullable + private Exception exception; public LiveResult(T result) { this.result = result; - this.errorRes = 0; + this.exception = null; } - public LiveResult(@StringRes int errorRes) { + public LiveResult(Exception exception) { this.result = null; - this.errorRes = errorRes; + this.exception = exception; } @Nullable @@ -28,13 +27,13 @@ public class LiveResult { return result; } - @StringRes - public int getErrorRes() { - return errorRes; + @Nullable + public Exception getException() { + return exception; } public boolean hasError() { - return errorRes != 0; + return exception != null; } }