Table of Contents

printing

The print command is given by the user via the m_PrintCheckImageButtonbutton in activity_printview. Inside PrintView_GP_Activity this results in a call to GeneralPrint().

private void GeneralPrint()
    {
        SetPrintButtonStatus(true);
        if (m_bWaitForRecovery)
        {
            RecoveryPrint();
            return;
        }
        if (m_iSelRoute == 1)
        {
            m_MobileUtility.SetStop(false);
            m_MobileUtility.SetTextureAndPrintOut();
            m_MobileUtility.SendPhoto();
            return;
        } else
        {
            m_SDcardUtility.SetStop(false);
            m_SDcardUtility.SetTextureAndPrintOut();
            m_SDcardUtility.SendPhoto();
            return;
        }
    }

Let us focus on m_MobileUtility first, assuming that m_SDcardUtility leads nowhere. The former is an instance of com.hiti.printerprotocol.utility.MobileUtility

SetStop

SetStop appears to be a factory for MobileHandler() which is an inner class. MobileHandler() actually lacks an implementation of SetStop(). However, it extends com.hiti.printerprotocol.MSGHandler.

public void SetStop(boolean flag)
    {
        if (m_MobileHandler == null)
        {
            m_MobileHandler = new MobileHandler();
        }
        if (flag)
        {
            m_MobileHandler.SetStop(true);
            return;
        } else
        {
            m_MobileHandler.SetStop(false);
            return;
        }
    }

It turns out that this function is inconsequential. as it simply records a flag:

    public void SetStop(boolean flag)
    {
        m_boStop = flag;
    }

SetTextureAndPrintOut();

This function appears to contain a switch statement that sets the media size choosing between three options (possible 4x6, 5x7, 6x8?). Here is the portend of that switch:


m_strChooseMediaSize = m_Context.getString(PRINTOUT_1); MAX_WIDTH = 1844F; MAX_HEIGHT = 1240F; m_iPaperSize = 2; goto _L8 _L3: m_strChooseMediaSize = m_Context.getString(PRINTOUT_2); MAX_WIDTH = 2140F; MAX_HEIGHT = 1544F; m_iPaperSize = 3; goto _L8 _L4: m_strChooseMediaSize = m_Context.getString(PRINTOUT_3); MAX_WIDTH = 2434F; MAX_HEIGHT = 1844F; m_iPaperSize = 4;

It looks like the pixels of the media sizes are being set. Otherwise, this functions is a dead end.

SendPhoto()

This function is simple enough:

public void SendPhoto()
    {
        if (HavePrintingPhotoListener())
        {
            m_OnMobileListener.StartCheckPrintInfo();
        }
        m_HitiPPR_GetPrinterInfo = new HitiPPR_GetPrinterInfo(m_Context, m_MobileHandler);
        m_HitiPPR_GetPrinterInfo.start();
    }

From our reversed code, it looks like StartCheckPrintInfo(); is empty. Perhaps it is intended to be implemented at a later time?

Our trail seems to lead to HitiPPR_GetPrinterInfo.