mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
prepare functionality to join oob-verification
This commit is contained in:
@@ -606,6 +606,12 @@ JNIEXPORT jlong Java_com_b44t_messenger_MrMailbox_checkScannedQrCPtr(JNIEnv *env
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_MrMailbox_joinOob(JNIEnv *env, jclass cls, jint contact_id)
|
||||
{
|
||||
mrmailbox_join_oob(get_mrmailbox_t(env, cls), contact_id);
|
||||
}
|
||||
|
||||
|
||||
/* MrMailbox - misc. */
|
||||
|
||||
JNIEXPORT jstring Java_com_b44t_messenger_MrMailbox_getInfo(JNIEnv *env, jclass cls)
|
||||
|
||||
@@ -38,6 +38,7 @@ import android.content.res.Configuration;
|
||||
import android.graphics.Outline;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.StringRes;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.view.MotionEvent;
|
||||
@@ -721,8 +722,21 @@ public class ChatlistActivity extends BaseFragment implements NotificationCenter
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity());
|
||||
String qrRawString = scanResult.getContents();
|
||||
final MrLot qrParsed = MrMailbox.checkScannedQr(qrRawString);
|
||||
String nameNAddr = MrMailbox.getContact(qrParsed.getId()).getNameNAddr();
|
||||
switch( qrParsed.getState() ) {
|
||||
|
||||
case MrMailbox.MR_QR_FINGERPRINT_ASK_OOB:
|
||||
builder.setMessage(AndroidUtilities.replaceTags(String.format(ApplicationLoader.applicationContext.getString(R.string.OobFingerprintAskOob), nameNAddr)));
|
||||
builder.setPositiveButton(R.string.OK, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
MrMailbox.joinOob(qrParsed.getId());
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton(R.string.Cancel, null);
|
||||
break;
|
||||
|
||||
|
||||
case MrMailbox.MR_QR_FINGERPRINT_WITHOUT_ADDR:
|
||||
builder.setMessage(AndroidUtilities.replaceTags(ApplicationLoader.applicationContext.getString(R.string.OobFingerprintWithoutAddr)+"\n\n<c#808080>"+ApplicationLoader.applicationContext.getString(R.string.OobFingerprint)+":\n"+qrParsed.getText2()+"</c>"));
|
||||
builder.setPositiveButton(R.string.OK, null);
|
||||
@@ -735,10 +749,15 @@ public class ChatlistActivity extends BaseFragment implements NotificationCenter
|
||||
});
|
||||
break;
|
||||
|
||||
case MrMailbox.MR_QR_FINGERPRINT_ASK_CMP:
|
||||
case MrMailbox.MR_QR_FINGERPRINT_MISMATCH:
|
||||
builder.setMessage(AndroidUtilities.replaceTags(String.format(ApplicationLoader.applicationContext.getString(R.string.OobFingerprintMismatch), nameNAddr)));
|
||||
builder.setPositiveButton(R.string.OK, null);
|
||||
break;
|
||||
|
||||
case MrMailbox.MR_QR_FINGERPRINT_OK:
|
||||
case MrMailbox.MR_QR_ADDR:
|
||||
String name = MrMailbox.getContact(qrParsed.getId()).getNameNAddr();
|
||||
builder.setMessage(AndroidUtilities.replaceTags(String.format(ApplicationLoader.applicationContext.getString(R.string.AskStartChatWith), name)));
|
||||
@StringRes int resId = qrParsed.getState()==MrMailbox.MR_QR_ADDR? R.string.AskStartChatWith : R.string.OobFingerprintOk;
|
||||
builder.setMessage(AndroidUtilities.replaceTags(String.format(ApplicationLoader.applicationContext.getString(resId, nameNAddr))));
|
||||
builder.setPositiveButton(R.string.OK, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
@@ -750,13 +769,6 @@ public class ChatlistActivity extends BaseFragment implements NotificationCenter
|
||||
builder.setNegativeButton(R.string.Cancel, null);
|
||||
break;
|
||||
|
||||
case MrMailbox.MR_QR_FINGERPRINT_MISMATCH: {
|
||||
String addr = MrMailbox.getContact(qrParsed.getId()).getAddr();
|
||||
builder.setMessage(AndroidUtilities.replaceTags(String.format(ApplicationLoader.applicationContext.getString(R.string.OobFingerprintMismatch), addr)));
|
||||
builder.setPositiveButton(R.string.OK, null);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
String msg;
|
||||
final String scannedText;
|
||||
|
||||
@@ -183,14 +183,16 @@ public class MrMailbox {
|
||||
// out-of-band verification
|
||||
public native static String getQr();
|
||||
|
||||
public final static int MR_QR_FINGERPRINT_ASK_CMP = 200;
|
||||
public final static int MR_QR_FINGERPRINT_MISMATCH = 205;
|
||||
public final static int MR_QR_FINGERPRINT_WITHOUT_ADDR = 210;
|
||||
public final static int MR_QR_ADDR = 220;
|
||||
public final static int MR_QR_TEXT = 230;
|
||||
public final static int MR_QR_FINGERPRINT_ASK_OOB = 200;
|
||||
public final static int MR_QR_FINGERPRINT_OK = 210;
|
||||
public final static int MR_QR_FINGERPRINT_MISMATCH = 220;
|
||||
public final static int MR_QR_FINGERPRINT_WITHOUT_ADDR = 230;
|
||||
public final static int MR_QR_ADDR = 320;
|
||||
public final static int MR_QR_TEXT = 330;
|
||||
public final static int MR_QR_ERROR = 400;
|
||||
public static MrLot checkScannedQr(String qr) { return new MrLot(checkScannedQrCPtr(qr)); }
|
||||
public native static int checkScannedQrCPtr(String qr);
|
||||
public native static void joinOob(int contact_id);
|
||||
|
||||
// static
|
||||
public native static String MrGetVersionStr ();
|
||||
|
||||
@@ -431,6 +431,8 @@
|
||||
<string name="QrShow">Show QR code</string>
|
||||
<string name="QrScanContainsText">The scanned QR code contains the following text:\n\n%1$s</string>
|
||||
<string name="OobFingerprint">Fingerprint</string>
|
||||
<string name="OobFingerprintWithoutAddr">This QR code contains a fingerprint but no e-mail address.\n\nFor an out-of-band-verification, please first establish an encrpyted connection to the recipient.</string>
|
||||
<string name="OobFingerprintAskOob">Verify contact and start chatting with <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>?</string>
|
||||
<string name="OobFingerprintOk">Contact <![CDATA[<i>]]>%1$s<![CDATA[</i>]]> verified successfully. Start chatting now?</string>
|
||||
<string name="OobFingerprintMismatch">The scanned fingerprint does <![CDATA[<b>]]>not match<![CDATA[</b>]]> the fingerprint last seen for <![CDATA[<i>]]>%1$s<![CDATA[</i>]]>.</string>
|
||||
<string name="OobFingerprintWithoutAddr">This QR code contains a fingerprint but no e-mail address.\n\nFor an out-of-band-verification, please first establish an encrpyted connection to the recipient.</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user