diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/nearby/AddNearbyContactFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/nearby/AddNearbyContactFragment.java index 81b386d01..c6fb17258 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/nearby/AddNearbyContactFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/nearby/AddNearbyContactFragment.java @@ -20,6 +20,7 @@ import org.briarproject.briar.android.contact.add.nearby.AddContactState.QrCodeS import org.briarproject.briar.android.fragment.BaseFragment; import org.briarproject.briar.android.qrcode.CameraException; import org.briarproject.briar.android.qrcode.CameraView; +import org.briarproject.briar.android.view.InfoView; import org.briarproject.briar.android.view.QrCodeView; import org.briarproject.nullsafety.MethodsNotNullByDefault; import org.briarproject.nullsafety.ParametersNotNullByDefault; @@ -57,6 +58,7 @@ public class AddNearbyContactFragment extends BaseFragment private CameraView cameraView; private LinearLayout cameraOverlay; private View statusView; + private InfoView infoView; private QrCodeView qrCodeView; private TextView status; @@ -91,6 +93,9 @@ public class AddNearbyContactFragment extends BaseFragment cameraOverlay = view.findViewById(R.id.camera_overlay); statusView = view.findViewById(R.id.status_container); status = view.findViewById(R.id.connect_status); + infoView = view.findViewById(R.id.info_view); + TextView info = view.findViewById(R.id.info_text); + info.setText(R.string.info_both_must_scan); qrCodeView = view.findViewById(R.id.qr_code_view); qrCodeView.setFullscreenListener(this); @@ -160,6 +165,7 @@ public class AddNearbyContactFragment extends BaseFragment } else if (state instanceof KeyAgreementWaiting) { status.setText(R.string.waiting_for_contact_to_scan); } else if (state instanceof KeyAgreementStarted) { + infoView.setVisibility(INVISIBLE); qrCodeView.setVisibility(INVISIBLE); status.setText(R.string.authenticating_with_device); } else if (state instanceof ContactExchangeStarted) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/InfoView.java b/briar-android/src/main/java/org/briarproject/briar/android/view/InfoView.java new file mode 100644 index 000000000..e50ec759f --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/view/InfoView.java @@ -0,0 +1,33 @@ +package org.briarproject.briar.android.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.LayoutInflater; + +import org.briarproject.briar.R; +import org.briarproject.nullsafety.InterfaceNotNullByDefault; + +import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; + +import static android.content.Context.LAYOUT_INFLATER_SERVICE; + +@InterfaceNotNullByDefault +public class InfoView extends CardView { + + public InfoView(Context context) { + this(context, null); + } + + public InfoView(Context context, @Nullable AttributeSet attrs) { + this(context, attrs, 0); + } + + public InfoView(Context context, @Nullable AttributeSet attrs, + int defStyleAttr) { + super(context, attrs, defStyleAttr); + LayoutInflater inflater = (LayoutInflater) + context.getSystemService(LAYOUT_INFLATER_SERVICE); + inflater.inflate(R.layout.info_view, this, true); + } +} diff --git a/briar-android/src/main/res/layout/fragment_keyagreement_qr.xml b/briar-android/src/main/res/layout/fragment_keyagreement_qr.xml index 33728c9f5..7ba8b54ec 100644 --- a/briar-android/src/main/res/layout/fragment_keyagreement_qr.xml +++ b/briar-android/src/main/res/layout/fragment_keyagreement_qr.xml @@ -1,5 +1,6 @@ - + android:layout_height="wrap_content" + app:layout_constraintBottom_toTopOf="@+id/connect_status" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_chainStyle="packed" /> - + + + + + + + + + \ No newline at end of file diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 93f373087..83a90004c 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -167,6 +167,7 @@ Unavailable on your system Status: Error + Information No contacts to show @@ -257,6 +258,7 @@ Authenticating with device\u2026 Could not connect to your contact If this problem persists, please send feedback to help us improve the app. + You must both scan each other\'s QR codes