Untitled

mail@pastecode.io avatar
unknown
kotlin
3 years ago
3.1 kB
24
Indexable
Never
    private fun emdkProfile() {
        EMDKManager.getEMDKManager(this, object : EMDKManager.EMDKListener {
            override fun onOpened(emdkManager: EMDKManager?) {
                eMDKManager = emdkManager

                try {
                    emdkManager?.let { manager ->
                        val profileManager = manager.getInstance(EMDKManager.FEATURE_TYPE.PROFILE) as ProfileManager
                        profileManager.addDataListener { resultData ->
                            when (resultData.result.statusCode) {
                                EMDKResults.STATUS_CODE.SUCCESS -> {}
                                EMDKResults.STATUS_CODE.UNKNOWN -> {}
                                
                                EMDKResults.STATUS_CODE.CHECK_XML -> {
                                    try {
                                        val parser = Xml.newPullParser()
                                        val statusXMLResponse: String = resultData.result.statusString
                                        parser.setInput(StringReader(statusXMLResponse))
                                        parseXML(parser)
                                    } catch (e: Throwable) {
                                        e.printStackTrace()
                                    }
                                }
                  
                                else -> toast(resultData.result.statusString)
                            }
                        }

                  		profileManager.processProfileAsync("default_profile_mx_8_2", ProfileManager.PROFILE_FLAG.SET, null as Array<String?>?)
                    }
                } catch (e: Throwable) {
                    e.printStackTrace()
                }
            }

            override fun onClosed() {
                eMDKManager?.release()
                eMDKManager = null
            }
        })
    }
                
    private fun parseXML(myParser: XmlPullParser) { 
        var event: Int
        try {
            event = myParser.eventType
            while (event != XmlPullParser.END_DOCUMENT) {
                when (event) {
                    XmlPullParser.START_TAG ->
                        if (myParser.name == "parm-error") {
                            val errorName        = myParser.getAttributeValue(null, "name")
                            val errorDescription = myParser.getAttributeValue(null, "desc")
                            val failureMessage   = "Failure-$errorName-$errorDescription"
                        } else if (myParser.name == "characteristic-error") {
                            val errorType        = myParser.getAttributeValue(null, "type")
                            val errorDescription = myParser.getAttributeValue(null, "desc")
                            val failureMessage   = "Failure-$errorType-$errorDescription"
                        }

                    XmlPullParser.END_TAG -> { }
                }

                event = myParser.next()
            }
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }