From 4c53c2365ff06b4096fec8497b56d995e86cd595 Mon Sep 17 00:00:00 2001 From: liuyang Date: Wed, 10 Oct 2018 16:35:55 +0800 Subject: [PATCH] =?UTF-8?q?APK=E5=9B=BE=E7=89=87=E6=8A=93=E5=8F=96?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E5=8F=8A=E8=BD=AE=E6=92=AD=E6=B5=81=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E6=8A=93=E5=8F=96=EF=BC=8C=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E4=BF=AE=E6=94=B9=20#BYLSERVER-1438?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/duolebo/blyrobot/MainActivity.kt | 17 +++++++---- .../java/com/duolebo/blyrobot/data/Task.kt | 28 ++++++++++++++++++- .../duolebo/blyrobot/ui/AppConfigListItem.kt | 5 ++++ .../java/com/duolebo/blyrobot/util/Config.kt | 2 +- 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt b/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt index 6020e5e..e119364 100644 --- a/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt +++ b/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt @@ -81,11 +81,12 @@ class MainActivity : AppCompatActivity(), IAppBaseCallback { } private fun getLocalAppList() { - ThreadProxy.getInstance().execute(object : Runnable { - override fun run() { - apkPackageInfo = ApkPackageInfo.getAppInfos(applicationContext) + ThreadProxy.getInstance().execute { + apkPackageInfo = ApkPackageInfo.getAppInfos(applicationContext) + runOnUiThread { + appInfoAdapter.notifyDataSetChanged() } - }) + } } private fun initRefreshTimer() { @@ -143,7 +144,7 @@ class MainActivity : AppCompatActivity(), IAppBaseCallback { } } - private fun getAppIcon(packageName: String): Drawable? { + fun getAppIcon(packageName: String): Drawable? { var drawable:Drawable ?= null apkPackageInfo?.run { val targetPackage = this.find { @@ -158,7 +159,7 @@ class MainActivity : AppCompatActivity(), IAppBaseCallback { return drawable } - class AppConfigAdapter: BaseAdapter() { + inner class AppConfigAdapter: BaseAdapter() { private val dataList = ArrayList() @@ -176,6 +177,10 @@ class MainActivity : AppCompatActivity(), IAppBaseCallback { itemView = convertView as AppConfigListItem itemView.setData(dataList[position]) + val drawable = getAppIcon(dataList[position].packageName) + drawable?.run { + itemView.setIcon(this) + } return itemView } diff --git a/app/src/main/java/com/duolebo/blyrobot/data/Task.kt b/app/src/main/java/com/duolebo/blyrobot/data/Task.kt index 55371ca..0bbb3fe 100644 --- a/app/src/main/java/com/duolebo/blyrobot/data/Task.kt +++ b/app/src/main/java/com/duolebo/blyrobot/data/Task.kt @@ -1,6 +1,7 @@ package com.duolebo.blyrobot.data import android.content.Context +import android.os.Build import android.os.Environment import android.util.Log import android.widget.Toast @@ -14,6 +15,7 @@ import com.duolebo.blyrobot.util.Config import net.gotev.uploadservice.* import net.gotev.uploadservice.ftp.FTPUploadRequest import net.gotev.uploadservice.ftp.UnixPermissions +import org.json.JSONArray import org.json.JSONObject import java.io.File import java.text.SimpleDateFormat @@ -71,9 +73,18 @@ class Task : IAppBaseCallback { dir.mkdirs() } + // 准备上传报告信息 + private fun prepareReport() { + this.reportJson = JSONObject() + reportJson.putOpt(ApkInfo.NAME, this.apkInfo.name) + reportJson.putOpt(ApkInfo.PACKAGE_NAME, this.apkInfo.packageName) + reportJson.putOpt("device", Build.BRAND + "|" + Build.HARDWARE + "|" + Build.VERSION.RELEASE) + reportJson.putOpt("channels", JSONArray()) + } + fun start() { this.status = "1" - this.reportJson = JSONObject() + this.prepareReport() // 启动应用 this.launchApp() // 频道轮询处理 @@ -144,6 +155,21 @@ class Task : IAppBaseCallback { if (screenShots.size > 0) uploadImages.addAll(screenShots) val playUrlItems = analysisCapture() + + val channels = this.reportJson.optJSONArray("channels") + val channelJson = JSONObject() + channelJson.putOpt("channelImage", screenShots[0]) + channelJson.putOpt("channelEpgImage", screenShots[1]) + channelJson.putOpt("channelId", this.channelIndex) + + val playUrls = JSONArray() + for (playUrl in playUrlItems) { + playUrls.put(playUrl.url) + } + + channelJson.putOpt("playUrls", playUrls) + + channels.put(channelJson) } // 抓包处理 diff --git a/app/src/main/java/com/duolebo/blyrobot/ui/AppConfigListItem.kt b/app/src/main/java/com/duolebo/blyrobot/ui/AppConfigListItem.kt index 3cb899a..5d5af53 100644 --- a/app/src/main/java/com/duolebo/blyrobot/ui/AppConfigListItem.kt +++ b/app/src/main/java/com/duolebo/blyrobot/ui/AppConfigListItem.kt @@ -1,6 +1,7 @@ package com.duolebo.blyrobot.ui import android.content.Context +import android.graphics.drawable.Drawable import android.view.LayoutInflater import android.widget.RelativeLayout import com.duolebo.blyrobot.R @@ -17,4 +18,8 @@ class AppConfigListItem(context: Context?) : RelativeLayout(context) { this.appName.text = apkInfo.name this.packageName.text = apkInfo.packageName } + + fun setIcon(drawable: Drawable) { + this.appIcon.setImageDrawable(drawable) + } } \ No newline at end of file diff --git a/app/src/main/java/com/duolebo/blyrobot/util/Config.kt b/app/src/main/java/com/duolebo/blyrobot/util/Config.kt index 9fe65be..271ebec 100644 --- a/app/src/main/java/com/duolebo/blyrobot/util/Config.kt +++ b/app/src/main/java/com/duolebo/blyrobot/util/Config.kt @@ -3,7 +3,7 @@ package com.duolebo.blyrobot.util import com.duolebo.appbase.prj.bmtv.protocol.IProtocolConfig class Config: IProtocolConfig { - private val isDebug = false + private val isDebug = true override fun getProtocolUrl(): String { if (isDebug) -- 2.21.0