导航菜单

页面标题

页面副标题

Delta Chat v1.58.3 - NewConversationActivity.java 源代码

正在查看: Delta Chat v1.58.3 应用的 NewConversationActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package org.thoughtcrime.securesms;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import com.b44t.messenger.DcContext;
import com.google.zxing.integration.android.IntentIntegrator;
import org.thoughtcrime.securesms.connect.DcHelper;
import org.thoughtcrime.securesms.qr.QrActivity;
import org.thoughtcrime.securesms.qr.QrCodeHandler;
import org.thoughtcrime.securesms.util.MailtoUtil;
import org.thoughtcrime.securesms.util.RelayUtil;

public class NewConversationActivity extends ContactSelectionActivity {
    static final boolean $assertionsDisabled = false;
    private static final String TAG = "NewConversationActivity";

    @Override
    public void onCreate(Bundle bundle, boolean z) {
        super.onCreate(bundle, z);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        handleIntent();
    }

    private void handleIntent() {
        Intent intent = getIntent();
        String action = intent.getAction();
        if ("android.intent.action.VIEW".equals(action) || "android.intent.action.SENDTO".equals(action)) {
            try {
                Uri data = intent.getData();
                if (data != null) {
                    data.getScheme();
                    if (MailtoUtil.isMailto(data)) {
                        String text = MailtoUtil.getText(data);
                        String[] recipients = MailtoUtil.getRecipients(data);
                        if (recipients.length >= 1) {
                            if (!text.isEmpty()) {
                                getIntent().putExtra(ConversationActivity.TEXT_EXTRA, text);
                            }
                            String str = recipients[0];
                            DcContext context = DcHelper.getContext(this);
                            int lookupContactIdByAddr = context.lookupContactIdByAddr(str);
                            if (lookupContactIdByAddr == 0 && context.mayBeValidAddr(str)) {
                                lookupContactIdByAddr = context.createContact((String) null, recipients[0]);
                            }
                            if (lookupContactIdByAddr == 0) {
                                Toast.makeText((Context) this, R.string.bad_email_address, 1).show();
                                return;
                            } else {
                                onContactSelected(lookupContactIdByAddr);
                                return;
                            }
                        }
                        Intent intent2 = new Intent((Context) this, (Class<?>) ShareActivity.class);
                        intent2.putExtra("android.intent.extra.TEXT", text);
                        startActivity(intent2);
                        finish();
                    }
                }
            } catch (Exception e) {
                Log.e(TAG, "start activity from external 'mailto:' link failed", e);
            }
        }
    }

    @Override
    public void onContactSelected(final int i) {
        if (i == -2) {
            startActivity(new Intent((Context) this, (Class<?>) GroupCreateActivity.class));
            return;
        }
        if (i == -5) {
            Intent intent = new Intent((Context) this, (Class<?>) GroupCreateActivity.class);
            intent.putExtra(GroupCreateActivity.CREATE_BROADCAST, true);
            startActivity(intent);
        } else {
            if (i == -4) {
                new IntentIntegrator(this).setCaptureActivity(QrActivity.class).initiateScan();
                return;
            }
            final DcContext context = DcHelper.getContext(this);
            if (context.getChatIdByContactId(i) != 0) {
                openConversation(context.getChatIdByContactId(i));
            } else {
                new AlertDialog.Builder(this).setMessage(getString(R.string.ask_start_chat_with, new Object[]{context.getContact(i).getDisplayName()})).setCancelable(true).setNegativeButton(android.R.string.cancel, (DialogInterface.OnClickListener) null).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                    @Override
                    public final void onClick(DialogInterface dialogInterface, int i2) {
                        NewConversationActivity.this.m1264x59b114d5(context, i, dialogInterface, i2);
                    }
                }).show();
            }
        }
    }

    void m1264x59b114d5(DcContext dcContext, int i, DialogInterface dialogInterface, int i2) {
        openConversation(dcContext.createChatByContactId(i));
    }

    protected void onActivityResult(int i, int i2, Intent intent) {
        super.onActivityResult(i, i2, intent);
        if (i != 49374) {
            return;
        }
        new QrCodeHandler(this).onScanPerformed(IntentIntegrator.parseActivityResult(i, i2, intent));
    }

    private void openConversation(int i) {
        Intent intent = new Intent((Context) this, (Class<?>) ConversationActivity.class);
        intent.putExtra(ConversationActivity.TEXT_EXTRA, getIntent().getStringExtra(ConversationActivity.TEXT_EXTRA));
        intent.setDataAndType(getIntent().getData(), getIntent().getType());
        intent.putExtra("chat_id", i);
        if (RelayUtil.isRelayingMessageContent(this)) {
            RelayUtil.acquireRelayMessageContent(this, intent);
        }
        startActivity(intent);
        finish();
    }
}