From a9c373c1d59b08631f4ada51f157c9a1204cc351 Mon Sep 17 00:00:00 2001 From: sollyu Date: Thu, 28 Dec 2017 15:33:52 +0800 Subject: [PATCH 1/3] move scan qr --- .../android/appenv/activitys/ActivityDetail.kt | 4 ++-- .../android/appenv/activitys/ActivityLog.kt | 1 - .../sollyu/android/appenv/commons/Application.kt | 5 ----- app/src/main/res/drawable/ic_scan.xml | 16 ++++++++++++++++ app/src/main/res/layout/activity_detail.xml | 10 ++++++++++ app/src/main/res/menu/activity_detail.xml | 1 - 6 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 app/src/main/res/drawable/ic_scan.xml diff --git a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityDetail.kt b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityDetail.kt index c4484bd..33885b8 100644 --- a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityDetail.kt +++ b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityDetail.kt @@ -168,7 +168,6 @@ class ActivityDetail : ActivityBase() { when (item.itemId) { R.id.menuDeleteConfig -> { this.onItemClickDeleteConfig() } R.id.menuUploadConfig -> { this.onItemClickUploadConfig() } - R.id.menuScanQRCode -> { this.onItemClickScanQRCode() } R.id.menuSolutionSave -> { this.onItemClickSolutionSave() } R.id.menuSolutionLoad -> { this.onItemClickSolutionLoad() } R.id.menuSolutionDele -> { this.onItemClickSolutionDelete()} @@ -618,7 +617,8 @@ class ActivityDetail : ActivityBase() { /** * */ - private fun onItemClickScanQRCode() { + @Event(R.id.menu_scan_qr_code) + private fun onItemClickScanQRCode(view: View) { ActivityScanQR.launch(activity, ActivityScanQR.FROM_DETAIL) } diff --git a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityLog.kt b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityLog.kt index bf39a9d..8e72a29 100644 --- a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityLog.kt +++ b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityLog.kt @@ -13,7 +13,6 @@ import android.content.Intent import android.text.method.ScrollingMovementMethod import android.view.Menu import android.view.MenuItem -import com.elvishew.xlog.XLog import com.sollyu.android.appenv.R import com.sollyu.android.appenv.commons.Application import kotlinx.android.synthetic.main.activity_log.* diff --git a/app/src/main/java/com/sollyu/android/appenv/commons/Application.kt b/app/src/main/java/com/sollyu/android/appenv/commons/Application.kt index c051e97..107cecf 100644 --- a/app/src/main/java/com/sollyu/android/appenv/commons/Application.kt +++ b/app/src/main/java/com/sollyu/android/appenv/commons/Application.kt @@ -13,21 +13,16 @@ import android.support.v7.app.AppCompatDelegate import com.elvishew.xlog.LogConfiguration import com.elvishew.xlog.LogLevel import com.elvishew.xlog.XLog -import com.elvishew.xlog.XLog.logLevel -import com.elvishew.xlog.flattener.DefaultFlattener import com.elvishew.xlog.flattener.Flattener import com.elvishew.xlog.printer.AndroidPrinter import com.elvishew.xlog.printer.file.FilePrinter import com.elvishew.xlog.printer.file.backup.NeverBackupStrategy -import com.elvishew.xlog.printer.file.naming.DateFileNameGenerator import com.sollyu.android.appenv.BuildConfig import com.sollyu.android.not.proguard.NotProguard import com.umeng.analytics.MobclickAgent import com.umeng.commonsdk.UMConfigure import org.apache.commons.io.FileUtils import org.apache.commons.io.IOUtils -import org.apache.commons.text.CharacterPredicates -import org.apache.commons.text.RandomStringGenerator import java.text.SimpleDateFormat import java.util.* diff --git a/app/src/main/res/drawable/ic_scan.xml b/app/src/main/res/drawable/ic_scan.xml new file mode 100644 index 0000000..bfc9b25 --- /dev/null +++ b/app/src/main/res/drawable/ic_scan.xml @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/app/src/main/res/layout/activity_detail.xml b/app/src/main/res/layout/activity_detail.xml index cf9deaf..359beee 100644 --- a/app/src/main/res/layout/activity_detail.xml +++ b/app/src/main/res/layout/activity_detail.xml @@ -34,6 +34,16 @@ app:menu_labels_singleLine="true" app:srcCompat="@android:drawable/ic_dialog_email"> + + + - From 1506cb56b74dbf722442bbc5ff2b9940d0ac5712 Mon Sep 17 00:00:00 2001 From: sollyu Date: Thu, 28 Dec 2017 17:34:34 +0800 Subject: [PATCH 2/3] add register activity --- app/src/main/AndroidManifest.xml | 3 +- .../android/appenv/activitys/ActivityMain.kt | 1 + .../appenv/activitys/ActivityRegister.kt | 82 +++++++++ .../android/appenv/activitys/ActivityWeb.kt | 6 + .../appenv/define/AppEnvConstants.java | 1 + app/src/main/res/layout/activity_register.xml | 170 ++++++++++++++++++ app/src/main/res/values-zh/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 8 files changed, 266 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/sollyu/android/appenv/activitys/ActivityRegister.kt create mode 100644 app/src/main/res/layout/activity_register.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2c355d2..be83a39 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -56,7 +56,8 @@ - + + diff --git a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityMain.kt b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityMain.kt index 2594f99..6802429 100644 --- a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityMain.kt +++ b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityMain.kt @@ -153,6 +153,7 @@ class ActivityMain : ActivityBase(), NavigationView.OnNavigationItemSelectedList } R.id.nav_cloud -> { ActivityWeb.launch(activity, "应用变量 后台", AppEnvConstants.URL_APPENV_SERVER) + // ActivityRegister.launch(activity) //Snackbar.make(fab, "后台维护中……", Snackbar.LENGTH_LONG).show() } R.id.nav_about -> { diff --git a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityRegister.kt b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityRegister.kt new file mode 100644 index 0000000..8be4ae9 --- /dev/null +++ b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityRegister.kt @@ -0,0 +1,82 @@ +/* + * Copyright © 2017 Sollyu + * + * Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + * + * This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. + */ + +package com.sollyu.android.appenv.activitys + +import android.app.Activity +import android.content.Intent +import android.view.View +import com.afollestad.materialdialogs.MaterialDialog +import com.alibaba.fastjson.JSON +import com.sollyu.android.appenv.R +import com.sollyu.android.appenv.define.AppEnvConstants +import com.squareup.okhttp.* +import kotlinx.android.synthetic.main.activity_register.* +import kotlinx.android.synthetic.main.include_toolbar.* +import org.xutils.view.annotation.Event +import org.xutils.x +import java.io.IOException + +class ActivityRegister : ActivityBase() { + + companion object { + fun launch(activity: Activity) { + activity.startActivity(Intent(activity, ActivityRegister::class.java)) + } + } + + override fun getMobclickAgentTag(): String { + return "Register" + } + + override fun onInitView() { + super.onInitView() + setContentView(R.layout.activity_register) + x.view().inject(activity) + + setSupportActionBar(toolbar) + supportActionBar?.setTitle(R.string.register_title) + supportActionBar?.setHomeButtonEnabled(true) + supportActionBar?.setDisplayHomeAsUpEnabled(true) + } + + @Suppress("unused") + @Event(R.id.btnLogin) + private fun onItemClickLogin(view: View) { + + val postBody = FormEncodingBuilder() + .add("user_name" , etUserName.text.toString()) + .add("user_password" , etPwd.text.toString()) + .add("user_password_confirm", etPwdConfirm.text.toString()) + .add("user_email" , etEMail.text.toString()) + .build() + + val materialDialog = MaterialDialog.Builder(activity).title(R.string.tip).content(R.string.register_processing).progress(true, 0).cancelable(false).show() + OkHttpClient().newCall(Request.Builder().url(AppEnvConstants.URL_APPENV_REGISTER).post(postBody).build()).enqueue(object : Callback{ + override fun onFailure(request: Request, e: IOException) { + materialDialog.dismiss() + activity.runOnUiThread { MaterialDialog.Builder(activity).title(R.string.error).content(e.message?:"null").show() } + } + + override fun onResponse(response: Response) { + materialDialog.dismiss() + val serverResult = response.body().string() + try { + val resultJsonObject = JSON.parseObject(serverResult) + if (resultJsonObject.getInteger("ret") == 200) { + activity.runOnUiThread { MaterialDialog.Builder(activity).title(R.string.tip).content("注册成功").canceledOnTouchOutside(false).positiveText(android.R.string.ok).onPositive { _, _ -> activity.finish() }.show() } + } else { + activity.runOnUiThread { MaterialDialog.Builder(activity).title(R.string.tip).content("注册失败:\n" + resultJsonObject.getString("msg")).positiveText(android.R.string.ok).show() } + } + } catch (e: Exception) { + activity.runOnUiThread { MaterialDialog.Builder(activity).title(R.string.tip).content("注册失败,原因未知").positiveText(android.R.string.ok).show() } + } + } + }) + } +} diff --git a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityWeb.kt b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityWeb.kt index 616c5ae..d545b6f 100644 --- a/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityWeb.kt +++ b/app/src/main/java/com/sollyu/android/appenv/activitys/ActivityWeb.kt @@ -105,6 +105,12 @@ class ActivityWeb : ActivityBase(), ChromeClientCallbackManager.ReceivedTitleCal inner class JsInterfaceHolder{ + @Suppress("unused") + @JavascriptInterface + fun register() { + ActivityRegister.launch(activity) + } + @Suppress("unused") @JavascriptInterface fun downloadConfig(configId: String, packageName: String, configName: String, packageLabel: String) { diff --git a/app/src/main/java/com/sollyu/android/appenv/define/AppEnvConstants.java b/app/src/main/java/com/sollyu/android/appenv/define/AppEnvConstants.java index 73996d1..1b8a8bd 100644 --- a/app/src/main/java/com/sollyu/android/appenv/define/AppEnvConstants.java +++ b/app/src/main/java/com/sollyu/android/appenv/define/AppEnvConstants.java @@ -20,4 +20,5 @@ public class AppEnvConstants { public static final String URL_APPENV_DOWNLOAD_PACKAGE = URL_APPENV_SERVER + "/api/download/package"; public static final String URL_APPENV_SHARE_START = URL_APPENV_HOST + "/share"; public static final String URL_APPENV_REPORT_PHONE = URL_APPENV_HOST + "/api/phone/report"; + public static final String URL_APPENV_REGISTER = URL_APPENV_HOST + "/api/register"; } diff --git a/app/src/main/res/layout/activity_register.xml b/app/src/main/res/layout/activity_register.xml new file mode 100644 index 0000000..8e971fa --- /dev/null +++ b/app/src/main/res/layout/activity_register.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +