导航菜单

页面标题

页面副标题

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

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

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


package org.thoughtcrime.securesms.service;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.Messenger;
import android.util.Log;
import com.b44t.messenger.DcAccounts;
import java.lang.ref.WeakReference;
import org.thoughtcrime.securesms.ConversationListActivity;
import org.thoughtcrime.securesms.RegistrationActivity;
import org.thoughtcrime.securesms.connect.AccountManager;
import org.thoughtcrime.securesms.connect.DcHelper;

public class IPCAddAccountsService extends Service {
    public static final String ACCOUNT_DATA = "ACCOUNT_DATA";
    public static final int ADD_ACCOUNT = 1;
    private static final String TAG = "IPCAddAccountsService";
    private final Messenger messenger = new Messenger(new IncomingHandler(this));

    @Override
    public int onStartCommand(Intent intent, int i, int i2) {
        return 2;
    }

    private static class IncomingHandler extends Handler {
        final WeakReference<Context> contextRef;

        public IncomingHandler(Context context) {
            this.contextRef = new WeakReference<>(context);
        }

        @Override
        public void handleMessage(Message message) {
            Bundle data = message.getData();
            Context context = this.contextRef.get();
            if (data == null || context == null || message.what != 1) {
                return;
            }
            String string = data.getString(DcHelper.CONFIG_ADDRESS);
            Log.d(IPCAddAccountsService.TAG, "ADD ACCOUNT called for account: " + string);
            DcAccounts accounts = DcHelper.getAccounts(context);
            for (int i : accounts.getAll()) {
                if (accounts.getAccount(i).getConfig(DcHelper.CONFIG_CONFIGURED_ADDRESS).equals(string)) {
                    Log.d(IPCAddAccountsService.TAG, string + " already exists. Switching account.");
                    AccountManager.getInstance().switchAccount(context, i);
                    Intent intent = new Intent(context, (Class<?>) ConversationListActivity.class);
                    intent.addFlags(268468224);
                    context.startActivity(intent);
                    return;
                }
            }
            AccountManager.getInstance().beginAccountCreation(context);
            Intent intent2 = new Intent(context, (Class<?>) RegistrationActivity.class);
            intent2.putExtra(IPCAddAccountsService.ACCOUNT_DATA, data);
            intent2.addFlags(268468224);
            context.startActivity(intent2);
        }
    }

    @Override
    public IBinder onBind(Intent intent) {
        return this.messenger.getBinder();
    }
}