TIM v2.3.1版本的 MD5 值为:d6957e3ee7ce901ccc491cefdea0da8c

以下内容为反编译后的 PrinterHandler.java 源代码,内容仅作参考


package com.tencent.mobileqq.app;

import android.content.ContentValues;
import android.content.Intent;
import com.dataline.activities.PrinterActivity;
import com.dataline.util.PrinterSessionAdapter;
import com.tencent.litetransfersdk.Session;
import com.tencent.mobileqq.app.proxy.DataLineMsgProxy;
import com.tencent.mobileqq.app.proxy.ProxyManager;
import com.tencent.mobileqq.data.PrinterItemMsgRecord;
import com.tencent.mobileqq.filemanager.data.FMConfig;
import com.tencent.mobileqq.filemanager.util.FMDialogUtil;
import com.tencent.mobileqq.filemanager.util.FileManagerUtil;
import com.tencent.mobileqq.persistence.EntityManager;
import com.tencent.mobileqq.service.message.MessageCache;
import com.tencent.mobileqq.statistics.ReportController;
import com.tencent.mobileqq.utils.AlbumConstants;
import com.tencent.mobileqq.utils.FileUtils;
import com.tencent.open.pcpush.OpenFileUtil;
import com.tencent.qphone.base.util.QLog;
import com.tencent.tim.R;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Timer;
import msf.msgcomm.msg_comm;
import tencent.im.s2c.msgtype0x211.submsgtype0x9.C2CType0x211_SubC2CType0x9;
public class PrinterHandler {
    public static final int f87443a = 55;
    public static final String f18269a = "dataline.Printer";
    public static final int f87444b = 56;
    public static final String f18270b = "printer";
    public static final int f87445c = 57;
    public static final String f18271c = "sFilesSelected";
    public static final int d = 0;
    public static final String f18272d = "sPrinterName";
    public static final int e = 1;
    public static final String f18273e = "sPrintParam";
    public static final int f = 2;
    public static final String f18274f = "sPrintResult";
    public static final int g = 3;
    public static final String f18275g = "sPrintSessionID";
    public static final int h = 5;
    public static final String f18276h = "sPrintDin";
    public static final String i = "http://qzs.qq.com/open/mobile/iot_print/html/printOpt.html";
    public PrinterSessionAdapter f18278a;
    public QQAppInterface f18280a;
    public List f18283a;
    public List f18284b;
    public int f18285i;
    public String j;
    public ArrayList f18281a = new ArrayList();
    public HashMap f18282a = new HashMap();
    long f18277a = 0;
    private DataLineObserver f18279a = new ouu(this);

    public PrinterHandler(QQAppInterface qQAppInterface) {
        this.f18280a = null;
        this.f18280a = qQAppInterface;
        this.f18280a.addObserver(this.f18279a);
    }

    public void m4563a() {
        this.f18280a.removeObserver(this.f18279a);
    }

    public void a(int i2) {
        if (1021 == i2 && QLog.isDevelopLevel()) {
            QLog.d(f18269a, 4, "向pc枚举打印机,server回包,");
        }
    }

    public void a(DataLineHandler dataLineHandler) {
        RegisterProxySvcPackHandler registerProxySvcPackHandler = (RegisterProxySvcPackHandler) this.f18280a.getBusinessHandler(10);
        if (registerProxySvcPackHandler.a() == 0 || registerProxySvcPackHandler.f() != 1) {
            dataLineHandler.b(12, false, (Object) null);
            if (this.f18282a.size() > 0) {
                Timer timer = new Timer();
                timer.schedule(new ous(this, dataLineHandler, timer), 5000L);
            }
        }
    }

    public void a(DataLineHandler dataLineHandler, msg_comm.Msg msg2, C2CType0x211_SubC2CType0x9.MsgBody msgBody) {
        long j;
        switch (msgBody.uint32_CMD.get()) {
            case 2:
                if (QLog.isDevelopLevel()) {
                    QLog.d(f18269a, 4, "收到pc的打印机列表");
                }
                PrinterStatusHandler printerStatusHandler = (PrinterStatusHandler) this.f18280a.getBusinessHandler(74);
                printerStatusHandler.a(false);
                C2CType0x211_SubC2CType0x9.MsgBody.MsgPrinter msgPrinter = (C2CType0x211_SubC2CType0x9.MsgBody.MsgPrinter) msgBody.msg_printer.get();
                if (msgPrinter == null) {
                    if (QLog.isColorLevel()) {
                        QLog.d(f18269a, 2, "收到pc的打印机列表, msgPrinter为空");
                        return;
                    }
                    return;
                }
                this.f18283a = msgPrinter.rpt_string_printer.get();
                this.f18284b = msgPrinter.rpt_msg_support_file_info.get();
                if (((RegisterProxySvcPackHandler) this.f18280a.getBusinessHandler(10)).a() != 0 && this.f18283a != null && this.f18283a.size() > 0) {
                    printerStatusHandler.a(true);
                }
                dataLineHandler.b(12, false, (Object) null);
                ReportController.b(this.f18280a, "dc01331", "", "", "0X8004022", "0X8004022", 0, 0, "", "", "", "");
                return;
            case 3:
                int i2 = -1;
                C2CType0x211_SubC2CType0x9.MsgBody.MsgPrinter msgPrinter2 = (C2CType0x211_SubC2CType0x9.MsgBody.MsgPrinter) msgBody.msg_printer.get();
                if (msgPrinter2 == null) {
                    if (QLog.isColorLevel()) {
                        QLog.d(f18269a, 2, "收到pc的打印结果, msgPrinter为空");
                        j = 0;
                    }
                    j = 0;
                } else {
                    i2 = msgPrinter2.uint32_print_result.get();
                    List list = msgPrinter2.rpt_uint64_session_id.get();
                    if (list == null || list.size() == 0) {
                        if (QLog.isColorLevel()) {
                            QLog.d(f18269a, 2, "收到pc的打印结果, rpt_uint64_session_id为空. print_result = " + i2);
                            j = 0;
                        }
                        j = 0;
                    } else {
                        j = ((Long) list.get(0)).longValue();
                    }
                }
                if (QLog.isColorLevel()) {
                    QLog.d(f18269a, 2, "收到pc的打印结果, print_result = " + i2 + ", print_id = " + j);
                }
                new Intent().putExtra(f18274f, i2);
                dataLineHandler.b(18, i2 == 0, Long.valueOf(j));
                ReportController.b(this.f18280a, "dc01331", "", "", "0X8004021", "0X8004021", (int) j, i2, "", "", "", "");
                return;
            default:
                return;
        }
    }

    public void a(PrinterItemMsgRecord printerItemMsgRecord) {
        if (printerItemMsgRecord.mTimer_for_Print != null) {
            printerItemMsgRecord.mTimer_for_Print.cancel();
            printerItemMsgRecord.mTimer_for_Print = null;
        }
        this.f18281a.remove(printerItemMsgRecord);
        this.f18282a.remove(Long.valueOf(printerItemMsgRecord.uSessionID));
        ReportController.b(this.f18280a, "dc01331", "", "", "0X8004021", "0X8004021", (int) printerItemMsgRecord.uSessionID, -2, "", "", "", "");
        this.f18280a.m4638a().a(String.valueOf(0), 0, printerItemMsgRecord.getTableName(), "msgId=?", new String[]{String.valueOf(printerItemMsgRecord.msgId)}, 2, null);
    }

    public void b(PrinterItemMsgRecord printerItemMsgRecord) {
        this.f18280a.m4638a().a(String.valueOf(0), 0, printerItemMsgRecord.getTableName(), printerItemMsgRecord.m5862clone(), 0, null);
    }

    public void c(PrinterItemMsgRecord printerItemMsgRecord) {
        ProxyManager m4638a = this.f18280a.m4638a();
        ContentValues contentValues = new ContentValues();
        contentValues.put("status", Integer.valueOf(printerItemMsgRecord.status));
        m4638a.a(String.valueOf(0), 0, printerItemMsgRecord.getTableName(), contentValues, "msgId=?", new String[]{String.valueOf(printerItemMsgRecord.msgId)}, 1, null);
    }

    public int a() {
        ProxyManager m4638a = this.f18280a.m4638a();
        EntityManager createEntityManager = this.f18280a.getEntityManagerFactory().createEntityManager();
        if (DataLineMsgProxy.a(m4638a, PrinterItemMsgRecord.sTagleName)) {
            m4638a.a(createEntityManager);
        }
        long j = 2147483647L;
        if (this.f18281a.size() > 0) {
            j = ((PrinterItemMsgRecord) this.f18281a.get(0)).msgId;
        }
        List m7240a = createEntityManager.m7240a(PrinterItemMsgRecord.class, "select * from mr_dataline_printer where msgid<? order by msgid desc limit 5", new String[]{String.valueOf(j)});
        createEntityManager.m7241a();
        if (m7240a != null) {
            int size = m7240a.size();
            for (int i2 = 0; i2 < m7240a.size(); i2++) {
                PrinterItemMsgRecord printerItemMsgRecord = (PrinterItemMsgRecord) m7240a.get(i2);
                if (printerItemMsgRecord.status < 10) {
                    printerItemMsgRecord.status = 11;
                }
                this.f18281a.add(0, printerItemMsgRecord);
            }
            return size;
        }
        return 0;
    }

    public int b() {
        if (this.f18281a.size() > 0) {
            while (this.f18281a.size() > 5 && ((PrinterItemMsgRecord) this.f18281a.get(0)).status != 2) {
                this.f18281a.remove(0);
            }
            return this.f18281a.size();
        }
        int a2 = a();
        if (this.f18277a == 0) {
            if (this.f18281a.size() > 0) {
                this.f18277a = ((PrinterItemMsgRecord) this.f18281a.get(this.f18281a.size() - 1)).msgId;
            }
            if (QLog.isColorLevel()) {
                QLog.d(f18269a, 2, "初始化PrinterItemMsgRecord的msgid为" + this.f18277a);
            }
        }
        return a2;
    }

    public void a(int i2, Session session, double d2, boolean z) {
        if (DataLineHandler.a(session, f18270b)) {
            switch (i2) {
                case 0:
                    PrinterItemMsgRecord printerItemMsgRecord = (PrinterItemMsgRecord) this.f18282a.get(Long.valueOf(session.uSessionID));
                    if (printerItemMsgRecord != null) {
                        printerItemMsgRecord.status = 2;
                        printerItemMsgRecord.progress = 0.7d * d2;
                        return;
                    }
                    return;
                case 1:
                    PrinterItemMsgRecord printerItemMsgRecord2 = (PrinterItemMsgRecord) this.f18282a.get(Long.valueOf(session.uSessionID));
                    if (printerItemMsgRecord2 != null) {
                        printerItemMsgRecord2.status = 2;
                        printerItemMsgRecord2.progress = (float) (0.7d * d2);
                        return;
                    }
                    return;
                case 2:
                    PrinterItemMsgRecord printerItemMsgRecord3 = (PrinterItemMsgRecord) this.f18282a.get(Long.valueOf(session.uSessionID));
                    if (printerItemMsgRecord3 != null) {
                        if (z) {
                            printerItemMsgRecord3.progress = 0.699999988079071d;
                            printerItemMsgRecord3.status = 2;
                            Timer timer = new Timer();
                            printerItemMsgRecord3.mTimer_for_Print = timer;
                            out outVar = new out(this, printerItemMsgRecord3.uSessionID, timer);
                            long a2 = MessageCache.a();
                            long max = Math.max(Math.min(a2 >= printerItemMsgRecord3.time ? a2 - printerItemMsgRecord3.time : a2, 1800L), 60L);
                            if (QLog.isDevelopLevel()) {
                                QLog.d(f18269a, 4, "printID=" + printerItemMsgRecord3.uSessionID + ", 当前时间[" + a2 + "], 开始时间[" + printerItemMsgRecord3.time + "], 超时时间[" + max);
                            }
                            printerItemMsgRecord3.mTimer_for_Print.schedule(outVar, max * 1000);
                            return;
                        }
                        printerItemMsgRecord3.status = 12;
                        c(printerItemMsgRecord3);
                        return;
                    }
                    return;
                case 3:
                    long j = this.f18277a + 1;
                    this.f18277a = j;
                    PrinterItemMsgRecord printerItemMsgRecord4 = new PrinterItemMsgRecord(j);
                    printerItemMsgRecord4.uSessionID = session.uSessionID;
                    if (QLog.isColorLevel()) {
                        QLog.d(f18269a, 2, "获得printID=" + printerItemMsgRecord4.uSessionID + ", path=" + session.strFilePathSrc);
                    }
                    printerItemMsgRecord4.filename = session.strFilePathSrc;
                    printerItemMsgRecord4.time = MessageCache.a();
                    this.f18281a.add(printerItemMsgRecord4);
                    b(printerItemMsgRecord4);
                    this.f18282a.put(Long.valueOf(printerItemMsgRecord4.uSessionID), printerItemMsgRecord4);
                    return;
                default:
                    return;
            }
        }
    }

    public void a(Long l, boolean z) {
        PrinterItemMsgRecord printerItemMsgRecord;
        PrinterItemMsgRecord printerItemMsgRecord2 = (PrinterItemMsgRecord) this.f18282a.get(l);
        if (printerItemMsgRecord2 == null) {
            for (int size = this.f18281a.size() - 1; size >= 0; size--) {
                if (((PrinterItemMsgRecord) this.f18281a.get(size)).uSessionID == l.longValue()) {
                    printerItemMsgRecord = (PrinterItemMsgRecord) this.f18281a.get(size);
                    break;
                }
            }
        }
        printerItemMsgRecord = printerItemMsgRecord2;
        if (printerItemMsgRecord != null) {
            printerItemMsgRecord.status = z ? 10 : 11;
            printerItemMsgRecord.progress = 1.0d;
            if (printerItemMsgRecord.mTimer_for_Print != null) {
                printerItemMsgRecord.mTimer_for_Print.cancel();
                printerItemMsgRecord.mTimer_for_Print = null;
            }
            this.f18282a.remove(l);
            c(printerItemMsgRecord);
        }
    }

    public String[] m4564a() {
        if (!((PrinterStatusHandler) this.f18280a.getBusinessHandler(74)).m4565a() || this.f18284b == null) {
            return null;
        }
        String[] strArr = new String[this.f18284b.size()];
        for (int size = this.f18284b.size() - 1; size >= 0; size--) {
            strArr[size] = "." + ((C2CType0x211_SubC2CType0x9.MsgBody.SupportFileInfo) this.f18284b.get(size)).str_file_suffix.get();
        }
        return strArr;
    }

    public void a(BaseActivity baseActivity, String str) {
        if (FileManagerUtil.m6585a()) {
            if (FileUtils.a(str) > FMConfig.a()) {
                FMDialogUtil.a(baseActivity, (int) R.string.f59329name_res_0x7f0a039b, (int) R.string.f59332name_res_0x7f0a039e, new ouv(this, baseActivity, str));
                return;
            }
            return;
        }
        Intent intent = new Intent(baseActivity, PrinterActivity.class);
        intent.putExtra(AlbumConstants.i, 55);
        ArrayList<String> arrayList = new ArrayList<>();
        arrayList.add(str);
        intent.putStringArrayListExtra("PhotoConst.PHOTO_PATHS", arrayList);
        baseActivity.startActivity(intent);
        baseActivity.finish();
        ReportController.b(this.f18280a, "dc01331", "", "", "0X8004059", "0X8004059", 0, 0, "", "", "", "");
    }

    public boolean a(String str) {
        String[] m4564a;
        return (str == null || (m4564a = m4564a()) == null || !OpenFileUtil.a(str.toLowerCase(), m4564a)) ? false : true;
    }
}