From 1b98a75e6585b399673bf9206ab81d056987a35f Mon Sep 17 00:00:00 2001 From: liuyang Date: Sun, 7 Oct 2018 18:29:08 +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=E7=8A=B6=E6=80=81=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=20#BYLSERVER-1438?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/duolebo/blyrobot/data/ApkInfo.kt | 3 ++ .../java/com/duolebo/blyrobot/data/Task.kt | 6 ++- .../blyrobot/protocol/ApkReportProtocol.kt | 11 +++++ .../duolebo/blyrobot/ui/AppConfigListItem.kt | 20 +++++++++ app/src/main/res/layout/activity_main.xml | 14 +++++-- app/src/main/res/layout/app_config_item.xml | 41 +++++++++++++++++++ 6 files changed, 91 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/com/duolebo/blyrobot/ui/AppConfigListItem.kt create mode 100644 app/src/main/res/layout/app_config_item.xml diff --git a/app/src/main/java/com/duolebo/blyrobot/data/ApkInfo.kt b/app/src/main/java/com/duolebo/blyrobot/data/ApkInfo.kt index c2b8faf..57d1fde 100644 --- a/app/src/main/java/com/duolebo/blyrobot/data/ApkInfo.kt +++ b/app/src/main/java/com/duolebo/blyrobot/data/ApkInfo.kt @@ -6,6 +6,7 @@ import org.json.JSONArray import org.json.JSONObject class ApkInfo: IModel { + lateinit var name: String //包名 lateinit var packageName: String //启动apk配置信息 @@ -28,6 +29,7 @@ class ApkInfo: IModel { lateinit var menuKeyEvent: String override fun from(json: JSONObject): Boolean { + this.name = json.optString(NAME) this.packageName = json.optString(PACKAGE_NAME) this.launcher = json.optString(LAUNCHER) this.launchDelay = json.optInt(LAUNCH_DELAY, 15) @@ -53,6 +55,7 @@ class ApkInfo: IModel { const val VIDEO_EXTS = "m3u8|.ts|.mp4|.rmvb|.mkv|.wmv" //data key + const val NAME = "name" const val PACKAGE_NAME = "packageName" const val LAUNCHER = "launcher" const val LAUNCH_DELAY = "launchDelay" 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 179c054..4ded089 100644 --- a/app/src/main/java/com/duolebo/blyrobot/data/Task.kt +++ b/app/src/main/java/com/duolebo/blyrobot/data/Task.kt @@ -64,9 +64,13 @@ class Task : IAppBaseCallback { fun start() { this.reportJson = JSONObject() + // 启动应用 this.launchApp() + // 频道轮询处理 this.processChannels() + // 上传图片 this.uploadImage() + // 上报服务器 this.report() } @@ -278,7 +282,7 @@ class Task : IAppBaseCallback { } private fun report() { - reportProtocol.execute(dataHandler) + reportProtocol.withBody(reportJson.toString()).execute(dataHandler) } override fun onProtocolFailed(p0: IProtocol?) { diff --git a/app/src/main/java/com/duolebo/blyrobot/protocol/ApkReportProtocol.kt b/app/src/main/java/com/duolebo/blyrobot/protocol/ApkReportProtocol.kt index ccb21b5..f48a398 100644 --- a/app/src/main/java/com/duolebo/blyrobot/protocol/ApkReportProtocol.kt +++ b/app/src/main/java/com/duolebo/blyrobot/protocol/ApkReportProtocol.kt @@ -6,15 +6,26 @@ import com.duolebo.appbase.prj.bmtv.protocol.IProtocolConfig import com.duolebo.appbase.prj.bmtv.protocol.ProtocolBase import com.duolebo.blyrobot.data.ApkReportData import com.duolebo.blyrobot.util.Config +import java.lang.StringBuilder class ApkReportProtocol(context: Context?, config: IProtocolConfig?) : ProtocolBase(context, config) { val model = ApkReportData() + var body = "" + + fun withBody(body: String): ApkReportProtocol { + this.body = body + return this + } override fun prepareProtocolBody(p0: MutableMap?) { } + override fun prepareHttpBody(): ByteArray { + return body.toByteArray() + } + override fun getData(): IModel { return model } diff --git a/app/src/main/java/com/duolebo/blyrobot/ui/AppConfigListItem.kt b/app/src/main/java/com/duolebo/blyrobot/ui/AppConfigListItem.kt new file mode 100644 index 0000000..3cb899a --- /dev/null +++ b/app/src/main/java/com/duolebo/blyrobot/ui/AppConfigListItem.kt @@ -0,0 +1,20 @@ +package com.duolebo.blyrobot.ui + +import android.content.Context +import android.view.LayoutInflater +import android.widget.RelativeLayout +import com.duolebo.blyrobot.R +import com.duolebo.blyrobot.data.ApkInfo +import kotlinx.android.synthetic.main.app_config_item.view.* + +class AppConfigListItem(context: Context?) : RelativeLayout(context) { + + init { + LayoutInflater.from(context).inflate(R.layout.app_config_item, this) + } + + fun setData(apkInfo: ApkInfo) { + this.appName.text = apkInfo.name + this.packageName.text = apkInfo.packageName + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 9387ace..23ea9c5 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,10 +6,12 @@ android:layout_width="match_parent"> + android:layout_alignParentTop="true" + android:layout_centerHorizontal="true" + android:orientation="horizontal">