Procházet zdrojové kódy

添加首页地址配置功能

Frankensteinly před 7 měsíci
rodič
revize
dfa8ad56bc

+ 9 - 7
app/src/main/AndroidManifest.xml

@@ -49,8 +49,15 @@
             android:windowSoftInputMode="adjustPan|adjustResize" />
         <activity
             android:name=".view.activity.LoginActivity"
-            android:exported="false"
-            android:launchMode="singleTask" />
+            android:exported="true"
+            android:launchMode="singleTask" >
+
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
         <activity
             android:name=".view.activity.CreateTicketActivity"
             android:exported="false" />
@@ -95,11 +102,6 @@
         <activity
             android:name=".view.activity.MainActivity"
             android:exported="true">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
         </activity>
     </application>
 

+ 10 - 0
app/src/main/java/com/grkj/iscs/util/CommonUtils.kt

@@ -6,6 +6,7 @@ import android.Manifest.permission.BLUETOOTH_ADVERTISE
 import android.Manifest.permission.BLUETOOTH_CONNECT
 import android.Manifest.permission.BLUETOOTH_SCAN
 import android.content.Context
+import android.content.Intent
 import android.os.Build
 import androidx.appcompat.app.AppCompatActivity
 import com.grkj.iscs.MyApplication
@@ -13,6 +14,7 @@ import com.grkj.iscs.model.Constants.PERMISSION_REQUEST_CODE
 import pub.devrel.easypermissions.EasyPermissions
 import java.text.SimpleDateFormat
 import java.util.Locale
+import kotlin.system.exitProcess
 
 object CommonUtils {
 
@@ -82,4 +84,12 @@ object CommonUtils {
     fun isValidHex(hexString: String): Boolean {
         return hexRegex.matches(hexString)
     }
+
+    fun restartApp(ctx: Context) {
+        ctx.packageManager?.getLaunchIntentForPackage(ctx.packageName)?.let {
+            it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
+            ctx.startActivity(it)
+        }
+        exitProcess(0)
+    }
 }

+ 1 - 0
app/src/main/java/com/grkj/iscs/util/NetHttpManager.kt

@@ -51,6 +51,7 @@ class NetHttpManager {
             .addMsgConvertor(GsonMsgConvertor())
             .bodyType("application/json")
             .baseUrl(UrlConsts.BASE_URL)
+            .baseUrl(SPUtils.getBaseUrl(ctx))
             .responseListener { task: HttpTask<*>?, result: HttpResult? ->
                 if (result?.status != 200) {
                     LogUtil.d(

+ 19 - 0
app/src/main/java/com/grkj/iscs/util/SPUtils.kt

@@ -3,6 +3,7 @@ package com.grkj.iscs.util
 import android.content.Context
 import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
+import com.grkj.iscs.model.UrlConsts
 import com.grkj.iscs.model.bo.UpdateKeyReturnBO
 import com.grkj.iscs.model.vo.card.CardInfoRespVO
 import com.grkj.iscs.model.vo.system.SystemAttributePageRespVO
@@ -15,6 +16,7 @@ object SPUtils {
     private const val SP_CONFIG_NAME = "iscs_config"
     private const val SP_DATA = "iscs_data"
     private const val SP_ATTRIBUTE = "iscs_attribute"
+    private const val SP_URL = "iscs_url"
 
     private const val KEY_LOGIN_USER_CARD_ID = "card_id"
     private const val KEY_LOGIN_USER_CARD_CODE = "card_code"
@@ -32,6 +34,7 @@ object SPUtils {
     private const val KEY_DATA_UPDATE_KEY_RETURN = "update_key_return"
 
     private const val KEY_SYSTEM_ATTRIBUTE = "system_attribute"
+    private const val KEY_BASE_URL = "base_url"
 
     fun getLoginUser(context: Context): CardInfoRespVO? {
         val sp = context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE)
@@ -214,4 +217,20 @@ object SPUtils {
         }
         return list.find { it.sysAttrKey == key }?.sysAttrValue
     }
+
+    fun saveBaseUrl(context: Context, url: String) {
+        val sp = context.getSharedPreferences(SP_URL, Context.MODE_PRIVATE)
+        val edit = sp.edit()
+        edit.putString(KEY_BASE_URL, url)
+        edit.commit()
+    }
+
+    fun getBaseUrl(context: Context): String {
+        val sp = context.getSharedPreferences(SP_URL, Context.MODE_PRIVATE)
+        val spUrl = sp.getString(KEY_BASE_URL, null)
+        if (spUrl.isNullOrEmpty()) {
+            return UrlConsts.BASE_URL
+        }
+        return spUrl
+    }
 }

+ 6 - 0
app/src/main/java/com/grkj/iscs/view/activity/LoginActivity.kt

@@ -15,9 +15,11 @@ import com.grkj.iscs.model.vo.card.CardInfoRespVO
 import com.grkj.iscs.model.vo.user.UserInfoRespVO
 import com.grkj.iscs.util.AppUtils
 import com.grkj.iscs.util.FingerprintUtil
+import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.util.log.LogUtil
 import com.grkj.iscs.view.base.BaseMvpActivity
 import com.grkj.iscs.view.dialog.LoginDialog
+import com.grkj.iscs.view.dialog.UrlConfigDialog
 import com.grkj.iscs.view.iview.ILoginView
 import com.grkj.iscs.view.presenter.LoginPresenter
 import com.zhy.adapter.recyclerview.CommonAdapter
@@ -34,6 +36,10 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
     override fun initView() {
         mBinding?.tvVersion?.text = "v${AppUtils.getPkgVerName(this)}"
 
+        mBinding?.tvVersion?.setOnClickListener {
+            UrlConfigDialog(this).show()
+        }
+
         mBinding?.main?.setBackgroundResource(R.mipmap.login_bg)
 
         val pairList = mutableListOf(

+ 39 - 0
app/src/main/java/com/grkj/iscs/view/dialog/UrlConfigDialog.kt

@@ -0,0 +1,39 @@
+package com.grkj.iscs.view.dialog
+
+import android.content.Context
+import com.grkj.iscs.R
+import com.grkj.iscs.databinding.DialogUrlConfigBinding
+import com.grkj.iscs.util.CommonUtils
+import com.grkj.iscs.util.SPUtils
+import com.grkj.iscs.util.ToastUtils
+import com.grkj.iscs.view.base.BaseDialog
+
+/**
+ * url配置弹框
+ */
+class UrlConfigDialog(ctx: Context) : BaseDialog<DialogUrlConfigBinding>(ctx) {
+
+    override val viewBinding: DialogUrlConfigBinding
+        get() = DialogUrlConfigBinding.inflate(layoutInflater)
+
+    override fun initView() {
+        mBinding?.et?.setText(SPUtils.getBaseUrl(context))
+
+        mBinding?.btnConfirm?.setOnClickListener {
+            saveUrl()
+            dismiss()
+        }
+
+        mBinding?.btnCancel?.setOnClickListener {
+            dismiss()
+        }
+    }
+
+    private fun saveUrl() {
+        if (mBinding?.et?.text.toString().isEmpty()) {
+            ToastUtils.tip(R.string.use_default_url)
+        }
+        SPUtils.saveBaseUrl(context, mBinding?.et?.text.toString())
+        CommonUtils.restartApp(context)
+    }
+}

+ 1 - 9
app/src/main/java/com/grkj/iscs/view/presenter/SystemSettingPresenter.kt

@@ -98,14 +98,6 @@ class SystemSettingPresenter : BasePresenter<ISystemSettingView>() {
         BusinessManager.disconnectDock()
         SPUtils.saveDockConfig(mContext!!, Gson().toJson(dockList))
         SPUtils.savePortConfig(mContext!!, port)
-        restartApp(ctx)
-    }
-
-    private fun restartApp(ctx: Context) {
-        ctx.packageManager?.getLaunchIntentForPackage(ctx.packageName)?.let {
-            it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
-            ctx.startActivity(it)
-        }
-        exitProcess(0)
+        CommonUtils.restartApp(ctx)
     }
 }

+ 59 - 0
app/src/main/res/layout/dialog_url_config.xml

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    app:cardCornerRadius="@dimen/common_radius">
+
+    <RelativeLayout
+        android:layout_width="@dimen/dialog_tip_width"
+        android:layout_height="@dimen/dialog_tip_height">
+
+        <TextView
+            style="@style/CommonTextView"
+            android:layout_width="match_parent"
+            android:background="@color/main_color"
+            android:gravity="left"
+            android:paddingVertical="5dp"
+            android:paddingLeft="10dp"
+            android:text="@string/action_confirm" />
+
+        <EditText
+            android:id="@+id/et"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:layout_marginHorizontal="@dimen/common_spacing"
+            android:background="@drawable/selectable_input_text_bg"
+            android:hint="@string/please_set_url"
+            android:padding="@dimen/selectable_input_edit_padding"
+            android:textColor="@color/black"
+            android:textSize="@dimen/common_text_size" />
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginBottom="@dimen/common_spacing"
+            android:orientation="horizontal">
+
+            <TextView
+                android:id="@+id/btn_confirm"
+                style="@style/CommonBtnBlue"
+                android:layout_width="80dp"
+                android:layout_height="25dp"
+                android:backgroundTint="#E600AE00"
+                android:text="@string/confirm" />
+
+            <TextView
+                android:id="@+id/btn_cancel"
+                style="@style/CommonBtnBlue"
+                android:layout_width="80dp"
+                android:layout_height="25dp"
+                android:layout_marginLeft="@dimen/common_spacing"
+                android:backgroundTint="#99FF0000"
+                android:text="@string/cancel" />
+        </LinearLayout>
+    </RelativeLayout>
+</androidx.cardview.widget.CardView>

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -279,4 +279,6 @@
     <string name="sending_ticket">工作票下发中······</string>
     <string name="send_ticket_fail">作业票下发失败</string>
     <string name="login_method_tip">● 您可以通过指纹或刷卡直接进行登录</string>
+    <string name="use_default_url">将使用默认地址</string>
+    <string name="please_set_url">请输入地址,清空保存将使用默认地址</string>
 </resources>