Compare commits
8 Commits
98e7d57c7d
...
d30c025874
| Author | SHA1 | Date | |
|---|---|---|---|
| d30c025874 | |||
| 78d2d2cd79 | |||
| 9eb47345fe | |||
| 57188d27cc | |||
| e40403f7db | |||
| 09fdb75644 | |||
| 0f07736d1e | |||
| e7331f64f4 |
11
.idea/deploymentTargetSelector.xml
generated
11
.idea/deploymentTargetSelector.xml
generated
@@ -13,6 +13,17 @@
|
||||
</DropdownSelection>
|
||||
<DialogSelection />
|
||||
</SelectionState>
|
||||
<SelectionState runConfigName="AlarmLogActivity">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
<DropdownSelection timestamp="2026-05-18T09:18:19.023586Z">
|
||||
<Target type="DEFAULT_BOOT">
|
||||
<handle>
|
||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=80bece4" />
|
||||
</handle>
|
||||
</Target>
|
||||
</DropdownSelection>
|
||||
<DialogSelection />
|
||||
</SelectionState>
|
||||
</selectionStates>
|
||||
</component>
|
||||
</project>
|
||||
@@ -3,7 +3,7 @@ plugins {
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.example.defenseapplication"
|
||||
namespace = "com.ckkj.defense_device"
|
||||
compileSdk {
|
||||
version = release(36) {
|
||||
minorApiLevel = 1
|
||||
@@ -11,9 +11,9 @@ android {
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "com.example.defenseapplication"
|
||||
applicationId = "com.ckkj.defense_device"
|
||||
minSdk = 24
|
||||
targetSdk = 36
|
||||
targetSdk = 30
|
||||
versionCode = 1
|
||||
versionName = "1.0"
|
||||
|
||||
@@ -103,6 +103,8 @@ dependencies {
|
||||
implementation("com.contrarywind:Android-PickerView:4.1.9")
|
||||
// GSYVideoPlayer
|
||||
implementation("io.github.carguo:gsyvideoplayer:13.0.0")
|
||||
//下载
|
||||
implementation("io.github.chiclaim:downloader:1.0.2")
|
||||
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication
|
||||
package com.ckkj.defense_device
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
@@ -1,14 +1,9 @@
|
||||
package com.example.defenseapplication
|
||||
package com.ckkj.defense_device
|
||||
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import bean.LoginBean
|
||||
import com.blankj.utilcode.util.Utils
|
||||
import com.example.defenseapplication.bean.BaseInfo
|
||||
import com.example.defenseapplication.utils.ApiConfig
|
||||
import com.example.defenseapplication.utils.LanguageUtil
|
||||
import com.example.defenseapplication.utils.UserinfoUtil
|
||||
import com.google.gson.Gson
|
||||
import com.ckkj.defense_device.utils.LanguageUtil
|
||||
|
||||
class MyApplication : Application() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.adapter
|
||||
package com.ckkj.defense_device.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@@ -6,7 +6,7 @@ import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.R
|
||||
import com.ckkj.defense_device.R
|
||||
|
||||
data class Device(
|
||||
val name: String,
|
||||
@@ -1,11 +1,10 @@
|
||||
package com.example.defenseapplication.adapter
|
||||
package com.ckkj.defense_device.adapter
|
||||
|
||||
import android.graphics.Color
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.ItemAddLinkedUserBinding
|
||||
import com.ckkj.defense_device.databinding.ItemAddLinkedUserBinding
|
||||
|
||||
data class UserItem(val name: String, val phone: String, val userId: String = "")
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.example.defenseapplication.adapter
|
||||
package com.ckkj.defense_device.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.bean.DeviceAlarmBean
|
||||
import com.example.defenseapplication.databinding.ItemAlarmLogBinding
|
||||
import com.ckkj.defense_device.bean.DeviceAlarmBean
|
||||
import com.ckkj.defense_device.databinding.ItemAlarmLogBinding
|
||||
|
||||
class AlarmLogAdapter(
|
||||
private val items: List<DeviceAlarmBean>,
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.example.defenseapplication.adapter
|
||||
package com.ckkj.defense_device.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.bumptech.glide.Glide
|
||||
import com.example.defenseapplication.bean.DeviceAlarmBean
|
||||
import com.example.defenseapplication.databinding.ItemAlarmLogHorizontalBinding
|
||||
import com.ckkj.defense_device.bean.DeviceAlarmBean
|
||||
import com.ckkj.defense_device.databinding.ItemAlarmLogHorizontalBinding
|
||||
|
||||
class AlarmLogHorizontalAdapter(
|
||||
private val items: List<DeviceAlarmBean>,
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.example.defenseapplication.adapter
|
||||
package com.ckkj.defense_device.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.ItemDeviceBinding
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.ItemDeviceBinding
|
||||
|
||||
data class DeviceUi(
|
||||
val name: String,
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.example.defenseapplication.adapter
|
||||
package com.ckkj.defense_device.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.bean.FamilyBean
|
||||
import com.example.defenseapplication.databinding.ItemFamilyBinding
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.bean.FamilyBean
|
||||
import com.ckkj.defense_device.databinding.ItemFamilyBinding
|
||||
|
||||
class FamilyAdapter(
|
||||
private val onItemClick: (String) -> Unit
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.example.defenseapplication.adapter
|
||||
package com.ckkj.defense_device.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.ItemSwitchFamilyBinding
|
||||
import com.example.defenseapplication.model.FamilyItem
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.ItemSwitchFamilyBinding
|
||||
import com.ckkj.defense_device.model.FamilyItem
|
||||
|
||||
class FamilySwitchAdapter(
|
||||
private var familyList: List<FamilyItem>,
|
||||
@@ -1,11 +1,10 @@
|
||||
package com.example.defenseapplication.adapter
|
||||
package com.ckkj.defense_device.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.ItemLinkedUserBinding
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.ItemLinkedUserBinding
|
||||
|
||||
data class LinkedUser(
|
||||
val userId: String,
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.example.defenseapplication.adapter
|
||||
package com.ckkj.defense_device.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.databinding.ItemMessageGroupTitleBinding
|
||||
import com.example.defenseapplication.databinding.ItemMessageNoticeBinding
|
||||
import com.ckkj.defense_device.databinding.ItemMessageGroupTitleBinding
|
||||
import com.ckkj.defense_device.databinding.ItemMessageNoticeBinding
|
||||
|
||||
sealed class MessageListItem {
|
||||
data class Header(val title: String) : MessageListItem()
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.example.defenseapplication.adapter
|
||||
package com.ckkj.defense_device.adapter
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.databinding.ItemWifiBinding
|
||||
import com.ckkj.defense_device.databinding.ItemWifiBinding
|
||||
|
||||
class WifiListAdapter(
|
||||
wifiList: List<String>,
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.example.defenseapplication.base
|
||||
package com.ckkj.defense_device.base
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.utils.ActivityManager
|
||||
import com.example.defenseapplication.utils.LanguageUtil
|
||||
import com.ckkj.defense_device.utils.ActivityManager
|
||||
import com.ckkj.defense_device.utils.LanguageUtil
|
||||
|
||||
open class BaseActivity : AppCompatActivity() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class AddDeviceBean(
|
||||
val deviceEm: String? = null,//设备型号
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class AddDeviceUserRequest(
|
||||
val deviceId: String,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
/**
|
||||
* 统一返回数据基类(根据你的后端实际字段调整)
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
class DeleteBean {
|
||||
var deviceId: String? = null
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class DeleteDeviceUserRequest(
|
||||
val userId: String,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class DeviceAlarmResponse(
|
||||
val total: Int,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class DeviceBean(
|
||||
val alertAudio: String? = null,//告警播放
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class DeviceUserBean(
|
||||
val createDept: Int ? = null, //创建部门
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class FamilyBean(
|
||||
val id: String,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class FamilyMembersBean(
|
||||
val id: String? = null, // ID
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class GetCodeBean<T> (
|
||||
val code:Int,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
import android.os.Parcel
|
||||
import android.os.Parcelable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class MessageListResponse(
|
||||
val total: Int,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class ObtainInviterInformationBean(
|
||||
val nickName: String? = null,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class ObtainInviterInformationRequest(
|
||||
val childId: String
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class SwitchFamilyRequest(
|
||||
val clientId: String,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class UpdatePassword(
|
||||
val oldPassword: String,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class UpdateUserInfo(
|
||||
val userId: String?=null,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class UploadResponse(
|
||||
val code: Int,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.bean
|
||||
package com.ckkj.defense_device.bean
|
||||
|
||||
data class VerifyOptionPasswordRequest(
|
||||
val optionPassword: String
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.example.defenseapplication.home
|
||||
package com.ckkj.defense_device.home
|
||||
|
||||
import android.Manifest
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
@@ -14,10 +13,10 @@ import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.adapter.AddDeviceAdapter
|
||||
import com.example.defenseapplication.adapter.Device
|
||||
import com.example.defenseapplication.databinding.AddDeviceActivityBinding
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.adapter.AddDeviceAdapter
|
||||
import com.ckkj.defense_device.adapter.Device
|
||||
import com.ckkj.defense_device.databinding.AddDeviceActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import com.maning.mlkitscanner.scan.MNScanManager
|
||||
import com.maning.mlkitscanner.scan.callback.act.MNScanCallback
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.home
|
||||
package com.ckkj.defense_device.home
|
||||
|
||||
import android.Manifest
|
||||
import android.content.BroadcastReceiver
|
||||
@@ -23,10 +23,10 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.adapter.WifiListAdapter
|
||||
import com.example.defenseapplication.databinding.AddFamilyActivityBinding
|
||||
import com.example.defenseapplication.databinding.DialogWifiListBinding
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.adapter.WifiListAdapter
|
||||
import com.ckkj.defense_device.databinding.AddFamilyActivityBinding
|
||||
import com.ckkj.defense_device.databinding.DialogWifiListBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
//选择Wi-Fi
|
||||
class AddFamilyActivity : AppCompatActivity() {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.home
|
||||
package com.ckkj.defense_device.home
|
||||
|
||||
import android.content.Intent
|
||||
import android.graphics.drawable.AnimationDrawable
|
||||
@@ -6,14 +6,9 @@ import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.AddDeviceActivityBinding
|
||||
import com.example.defenseapplication.databinding.ConnectDeviceActivityBinding
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.ConnectDeviceActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
//连接设备
|
||||
class ConnectDeviceActivity : AppCompatActivity() {
|
||||
@@ -1,15 +1,10 @@
|
||||
package com.example.defenseapplication.home
|
||||
package com.ckkj.defense_device.home
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.base.BaseActivity
|
||||
import com.example.defenseapplication.databinding.HomeActivityBinding
|
||||
import com.example.defenseapplication.databinding.HomeMenuFragmentBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.base.BaseActivity
|
||||
import com.ckkj.defense_device.databinding.HomeActivityBinding
|
||||
|
||||
class HomeActivity : BaseActivity() {
|
||||
// ViewBinding 核心对象
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.home
|
||||
package com.ckkj.defense_device.home
|
||||
|
||||
import android.Manifest
|
||||
import android.app.Activity
|
||||
@@ -21,23 +21,23 @@ import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.adapter.DeviceAdapter
|
||||
import com.example.defenseapplication.adapter.DeviceUi
|
||||
import com.example.defenseapplication.adapter.FamilyAdapter
|
||||
import com.example.defenseapplication.bean.DeviceBean
|
||||
import com.example.defenseapplication.bean.FamilyBean
|
||||
import com.example.defenseapplication.bean.SwitchFamilyRequest
|
||||
import com.example.defenseapplication.databinding.HomeMenuFragmentBinding
|
||||
import com.example.defenseapplication.liveVideo.LiveVideoActivity
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.DeviceUpdateEvent
|
||||
import com.example.defenseapplication.utils.FamilySwitchEvent
|
||||
import com.example.defenseapplication.utils.MessageStatusManager
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.utils.UserinfoUtil
|
||||
import com.example.defenseapplication.view.DefenseDialogs
|
||||
import com.example.defenseapplication.view.showDefenseDialog
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.adapter.DeviceAdapter
|
||||
import com.ckkj.defense_device.adapter.DeviceUi
|
||||
import com.ckkj.defense_device.adapter.FamilyAdapter
|
||||
import com.ckkj.defense_device.bean.DeviceBean
|
||||
import com.ckkj.defense_device.bean.FamilyBean
|
||||
import com.ckkj.defense_device.bean.SwitchFamilyRequest
|
||||
import com.ckkj.defense_device.databinding.HomeMenuFragmentBinding
|
||||
import com.ckkj.defense_device.liveVideo.LiveVideoActivity
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.DeviceUpdateEvent
|
||||
import com.ckkj.defense_device.utils.FamilySwitchEvent
|
||||
import com.ckkj.defense_device.utils.MessageStatusManager
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.utils.UserinfoUtil
|
||||
import com.ckkj.defense_device.view.DefenseDialogs
|
||||
import com.ckkj.defense_device.view.showDefenseDialog
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import com.maning.mlkitscanner.scan.MNScanManager
|
||||
import com.maning.mlkitscanner.scan.callback.act.MNScanCallback
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.example.defenseapplication.home
|
||||
package com.ckkj.defense_device.home
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.adapter.MessageListAdapter
|
||||
import com.example.defenseapplication.adapter.MessageListItem
|
||||
import com.example.defenseapplication.databinding.MessageActivityBinding
|
||||
import com.example.defenseapplication.utils.MessageStatusManager
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.adapter.MessageListAdapter
|
||||
import com.ckkj.defense_device.adapter.MessageListItem
|
||||
import com.ckkj.defense_device.databinding.MessageActivityBinding
|
||||
import com.ckkj.defense_device.utils.MessageStatusManager
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -24,7 +24,7 @@ class MessageActivity : AppCompatActivity() {
|
||||
private val pageSize = 10
|
||||
private var isLoading = false
|
||||
private var hasMoreData = true
|
||||
private val allMessages = mutableListOf<com.example.defenseapplication.bean.MessageBean>()
|
||||
private val allMessages = mutableListOf<com.ckkj.defense_device.bean.MessageBean>()
|
||||
private var lastLoadedCount = 0
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
@@ -160,7 +160,7 @@ class MessageActivity : AppCompatActivity() {
|
||||
binding.tvNoMoreData.visibility = View.GONE
|
||||
}
|
||||
|
||||
private fun convertToMessageListItems(messages: List<com.example.defenseapplication.bean.MessageBean>): List<MessageListItem> {
|
||||
private fun convertToMessageListItems(messages: List<com.ckkj.defense_device.bean.MessageBean>): List<MessageListItem> {
|
||||
val items = mutableListOf<MessageListItem>()
|
||||
val groupedMessages = messages.groupBy { extractDate(it.createTime ?: "") }
|
||||
groupedMessages.forEach { (date, messageList) ->
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.home
|
||||
package com.ckkj.defense_device.home
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
@@ -9,21 +9,20 @@ import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.bean.UserInfoBean
|
||||
import com.example.defenseapplication.databinding.PersonalFragmentBinding
|
||||
import com.example.defenseapplication.liveVideo.LinkedUserActivity
|
||||
import com.example.defenseapplication.personal.FaceManagementActivity
|
||||
import com.example.defenseapplication.personal.PasswordManagementActivity
|
||||
import com.example.defenseapplication.personal.PersonalProfileActivity
|
||||
import com.example.defenseapplication.utils.AppLanguage
|
||||
import com.example.defenseapplication.utils.LanguageUtil
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.utils.UserinfoUtil
|
||||
import com.example.defenseapplication.utils.ActivityManager
|
||||
import com.example.defenseapplication.view.FamilySwitchDialog
|
||||
import com.example.defenseapplication.view.LanguageDialog
|
||||
import com.example.defenseapplication.home.HomeActivity
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.bean.UserInfoBean
|
||||
import com.ckkj.defense_device.databinding.PersonalFragmentBinding
|
||||
import com.ckkj.defense_device.liveVideo.LinkedUserActivity
|
||||
import com.ckkj.defense_device.personal.FaceManagementActivity
|
||||
import com.ckkj.defense_device.personal.PasswordManagementActivity
|
||||
import com.ckkj.defense_device.personal.PersonalProfileActivity
|
||||
import com.ckkj.defense_device.utils.AppLanguage
|
||||
import com.ckkj.defense_device.utils.LanguageUtil
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.utils.UserinfoUtil
|
||||
import com.ckkj.defense_device.utils.ActivityManager
|
||||
import com.ckkj.defense_device.view.FamilySwitchDialog
|
||||
import com.ckkj.defense_device.view.LanguageDialog
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -107,7 +106,7 @@ class PersonalFragment : Fragment() {
|
||||
withContext(Dispatchers.Main) {
|
||||
if (response.code == 200) {
|
||||
UserinfoUtil.clearUserInfo()
|
||||
val intent = Intent(requireContext(), com.example.defenseapplication.login.LoginActivity::class.java)
|
||||
val intent = Intent(requireContext(), com.ckkj.defense_device.login.LoginActivity::class.java)
|
||||
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
||||
startActivity(intent)
|
||||
requireActivity().finish()
|
||||
@@ -1,14 +1,13 @@
|
||||
package com.example.defenseapplication.home
|
||||
package com.ckkj.defense_device.home
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.bean.AddDeviceBean
|
||||
import com.example.defenseapplication.bean.DeviceBean
|
||||
import com.example.defenseapplication.databinding.SetNameActivityBinding
|
||||
import com.example.defenseapplication.liveVideo.LiveVideoActivity
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.bean.AddDeviceBean
|
||||
import com.ckkj.defense_device.databinding.SetNameActivityBinding
|
||||
import com.ckkj.defense_device.liveVideo.LiveVideoActivity
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,14 +1,15 @@
|
||||
package com.example.defenseapplication.home
|
||||
package com.ckkj.defense_device.home
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.databinding.ActivityStartBinding
|
||||
import com.example.defenseapplication.login.LoginActivity
|
||||
import com.example.defenseapplication.utils.ApiConfig
|
||||
import com.example.defenseapplication.utils.UserinfoUtil
|
||||
import com.ckkj.defense_device.databinding.ActivityStartBinding
|
||||
import com.ckkj.defense_device.login.LoginActivity
|
||||
import com.ckkj.defense_device.utils.ApiConfig
|
||||
import com.ckkj.defense_device.utils.UserinfoUtil
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
class StartActivity : AppCompatActivity() {
|
||||
private lateinit var binding: ActivityStartBinding
|
||||
@@ -17,6 +18,10 @@ class StartActivity : AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ActivityStartBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(null)
|
||||
.init()
|
||||
|
||||
// 延迟2秒后再判断登录状态
|
||||
Handler(Looper.getMainLooper()).postDelayed({
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.os.Bundle
|
||||
import android.text.Editable
|
||||
@@ -7,15 +7,15 @@ import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.adapter.AddLinkedUserAdapter
|
||||
import com.example.defenseapplication.adapter.UserItem
|
||||
import com.example.defenseapplication.bean.AddDeviceUserRequest
|
||||
import com.example.defenseapplication.bean.FamilyMembersBean
|
||||
import com.example.defenseapplication.databinding.AddLinkedUserActivityBinding
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.DeviceUserUpdateEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.adapter.AddLinkedUserAdapter
|
||||
import com.ckkj.defense_device.adapter.UserItem
|
||||
import com.ckkj.defense_device.bean.AddDeviceUserRequest
|
||||
import com.ckkj.defense_device.bean.FamilyMembersBean
|
||||
import com.ckkj.defense_device.databinding.AddLinkedUserActivityBinding
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.DeviceUserUpdateEvent
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.media.AudioManager
|
||||
import android.media.MediaScannerConnection
|
||||
import android.os.Bundle
|
||||
import android.os.Environment
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
@@ -11,22 +13,28 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.adapter.AlarmLogAdapter
|
||||
import com.example.defenseapplication.bean.DeviceAlarmBean
|
||||
import com.example.defenseapplication.databinding.AlarmLogActivityBinding
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.adapter.AlarmLogAdapter
|
||||
import com.ckkj.defense_device.bean.DeviceAlarmBean
|
||||
import com.ckkj.defense_device.databinding.AlarmLogActivityBinding
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
|
||||
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
|
||||
import com.shuyu.gsyvideoplayer.utils.OrientationUtils
|
||||
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
|
||||
import com.bigkoo.pickerview.builder.TimePickerBuilder
|
||||
import com.bigkoo.pickerview.listener.OnTimeSelectListener
|
||||
import com.example.defenseapplication.view.MyGSYVideoPlayer
|
||||
import com.shuyu.gsyvideoplayer.GSYVideoManager
|
||||
import com.ckkj.defense_device.view.CustomDialogFragment
|
||||
import com.ckkj.defense_device.view.LoadingDialog
|
||||
import com.ckkj.defense_device.view.MyGSYVideoPlayer
|
||||
import com.ckkj.defense_device.view.showDefenseDialog
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.launch
|
||||
import java.io.File
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import android.net.Uri
|
||||
import com.chiclaim.android.downloader.DownloadRequest
|
||||
import com.chiclaim.android.downloader.DownloadListener
|
||||
|
||||
//告警记录
|
||||
class AlarmLogActivity : AppCompatActivity() {
|
||||
@@ -42,12 +50,16 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
|
||||
private var isMute = false
|
||||
private lateinit var audioManager: AudioManager
|
||||
private var isRightMenuVisible = false
|
||||
private var currentAlarmItem: DeviceAlarmBean? = null
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = AlarmLogActivityBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
ImmersionBar.with(this)
|
||||
.statusBarDarkFont(true)
|
||||
.titleBar(null)
|
||||
.init()
|
||||
audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
|
||||
|
||||
deviceId = intent.getStringExtra("device_id")
|
||||
@@ -132,8 +144,10 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
}
|
||||
private fun initRecyclerView() {
|
||||
adapter = AlarmLogAdapter(alarmList) { item ->
|
||||
currentAlarmItem = item
|
||||
if (!item.video.isNullOrEmpty()) {
|
||||
Toast.makeText(this, "该告警记录有视频", Toast.LENGTH_SHORT).show()
|
||||
binding.exoPlayContextId.setUp(item.video, true, item.categoryName)
|
||||
binding.exoPlayContextId.startPlayLogic()
|
||||
} else {
|
||||
Toast.makeText(this, "该告警记录没有视频", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
@@ -165,6 +179,7 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
originalAlarmList.clear()
|
||||
originalAlarmList.addAll(newData)
|
||||
filterAlarmListByDate(calendar)
|
||||
currentAlarmItem = alarmList.firstOrNull()
|
||||
Log.d("AlarmLogActivity", "已获取 ${newData.size} 条数据")
|
||||
|
||||
} catch (e: Exception) {
|
||||
@@ -202,8 +217,10 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
|
||||
if (alarmList.isEmpty()) {
|
||||
showEmptyView()
|
||||
currentAlarmItem = null
|
||||
} else {
|
||||
hideEmptyView()
|
||||
currentAlarmItem = alarmList.firstOrNull()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -220,10 +237,45 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
binding.ivDownload.setOnClickListener {
|
||||
Toast.makeText(this,"下载视频",Toast.LENGTH_SHORT).show()
|
||||
|
||||
// val item = currentAlarmItem
|
||||
//
|
||||
// if (item?.video.isNullOrEmpty()) {
|
||||
// Toast.makeText(
|
||||
// this,
|
||||
// "没有可下载的视频",
|
||||
// Toast.LENGTH_SHORT
|
||||
// ).show()
|
||||
// return@setOnClickListener
|
||||
// }
|
||||
|
||||
showConfirmDialog(
|
||||
getString(R.string.tip),
|
||||
getString(R.string.download_alarm_video_confirm)
|
||||
) {
|
||||
|
||||
//downloadVideo(item!!.video)
|
||||
downloadVideo(
|
||||
"https://media.w3.org/2010/05/sintel/trailer.mp4"
|
||||
)
|
||||
|
||||
Toast.makeText(
|
||||
this,
|
||||
getString(R.string.download_start),
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
}
|
||||
binding.ivDelete.setOnClickListener {
|
||||
|
||||
val item = currentAlarmItem
|
||||
if (item == null) {
|
||||
Toast.makeText(this, "没有可删除的告警记录", Toast.LENGTH_SHORT).show()
|
||||
return@setOnClickListener
|
||||
}
|
||||
showConfirmDialog(getString(R.string.tip), getString(R.string.delete_alarm_video_confirm)) {
|
||||
val loadingDialog = LoadingDialog(this).setMessage("删除中...").apply { show() }
|
||||
deleteAlarmItem(item.id, loadingDialog)
|
||||
}
|
||||
}
|
||||
binding.ivMute.setOnClickListener {
|
||||
isMute = !isMute
|
||||
@@ -272,6 +324,102 @@ class AlarmLogActivity : AppCompatActivity() {
|
||||
binding.exoPlayContextId.onVideoResume()
|
||||
}
|
||||
|
||||
private fun showConfirmDialog(title: String, message: String, onConfirm: () -> Unit) {
|
||||
val config = CustomDialogFragment.Config(
|
||||
title = title,
|
||||
message = message,
|
||||
positiveText = getString(R.string.confirm),
|
||||
negativeText = getString(R.string.cancel)
|
||||
)
|
||||
showDefenseDialog(config, onPositiveClick = { onConfirm() })
|
||||
}
|
||||
|
||||
private fun downloadVideo(url: String) {
|
||||
|
||||
val dir = File(
|
||||
Environment.getExternalStoragePublicDirectory(
|
||||
Environment.DIRECTORY_MOVIES
|
||||
),
|
||||
"AlarmVideo"
|
||||
)
|
||||
|
||||
if (!dir.exists()) {
|
||||
dir.mkdirs()
|
||||
}
|
||||
|
||||
val targetFile = File(
|
||||
dir,
|
||||
"${System.currentTimeMillis()}.mp4"
|
||||
)
|
||||
|
||||
val request = DownloadRequest(
|
||||
this,
|
||||
url
|
||||
)
|
||||
.setDestinationUri(Uri.fromFile(targetFile))
|
||||
.setNotificationTitle("${"视频名称"}:视频下载")
|
||||
.registerListener(object : DownloadListener {
|
||||
|
||||
override fun onDownloadStart() {
|
||||
Log.d("DOWNLOAD", "开始下载")
|
||||
}
|
||||
|
||||
override fun onProgressUpdate(percent: Int) {
|
||||
Log.d("DOWNLOAD", "进度:$percent%")
|
||||
}
|
||||
override fun onDownloadComplete(uri: Uri) {
|
||||
MediaScannerConnection.scanFile(
|
||||
this@AlarmLogActivity,
|
||||
arrayOf(targetFile.absolutePath),
|
||||
arrayOf("video/mp4"),
|
||||
null
|
||||
)
|
||||
|
||||
runOnUiThread {
|
||||
ToastUtils.showSuccess(
|
||||
this@AlarmLogActivity,
|
||||
"下载成功"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDownloadFailed(e: Throwable) {
|
||||
runOnUiThread {
|
||||
ToastUtils.showError(
|
||||
this@AlarmLogActivity,
|
||||
"下载失败:${e.message}"
|
||||
)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
request.startDownload()
|
||||
}
|
||||
|
||||
private fun deleteAlarmItem(id: String, loadingDialog: LoadingDialog) {
|
||||
lifecycleScope.launch {
|
||||
try {
|
||||
val response = RetrofitNetwork.getNetworkService().deleteMessage(id)
|
||||
if (response.code == 200) {
|
||||
Toast.makeText(this@AlarmLogActivity, getString(R.string.delete_success), Toast.LENGTH_SHORT).show()
|
||||
originalAlarmList.removeAll { it.id == id }
|
||||
alarmList.removeAll { it.id == id }
|
||||
adapter?.notifyDataSetChanged()
|
||||
currentAlarmItem = alarmList.firstOrNull()
|
||||
if (alarmList.isEmpty()) {
|
||||
showEmptyView()
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(this@AlarmLogActivity, response.msg, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(this@AlarmLogActivity, "删除失败: ${e.message}", Toast.LENGTH_SHORT).show()
|
||||
} finally {
|
||||
loadingDialog.dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
@@ -8,12 +8,12 @@ import java.util.Calendar
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.AutoModeActivityBinding
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.DeviceUpdateEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.view.AutoModeNoticeDialog
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.AutoModeActivityBinding
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.DeviceUpdateEvent
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.view.AutoModeNoticeDialog
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -173,7 +173,7 @@ class AutoModeActivity : AppCompatActivity() {
|
||||
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
val deviceBean = com.example.defenseapplication.bean.DeviceBean(
|
||||
val deviceBean = com.ckkj.defense_device.bean.DeviceBean(
|
||||
id = deviceId,
|
||||
workMode = selectedMode,
|
||||
startTime = startTime,
|
||||
@@ -1,12 +1,11 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.os.Bundle
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.databinding.DeviceInfoActivityBinding
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.databinding.DeviceInfoActivityBinding
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -55,7 +54,7 @@ class DeviceInfoActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateDeviceInfo(device: com.example.defenseapplication.bean.DeviceBean) {
|
||||
private fun updateDeviceInfo(device: com.ckkj.defense_device.bean.DeviceBean) {
|
||||
binding.tvDeviceModelValue.text = device.deviceNo.toString()
|
||||
binding.tvDeviceNoValue.text = device.deviceSn.toString()
|
||||
binding.tvFwVersionValue.text = device.fwVer.toString()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
@@ -11,22 +11,21 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.adapter.LinkedUser
|
||||
import com.example.defenseapplication.adapter.LinkedUserAdapter
|
||||
import com.example.defenseapplication.bean.DeleteDeviceUserRequest
|
||||
import com.example.defenseapplication.bean.DeviceUserBean
|
||||
import com.example.defenseapplication.bean.FamilyMembersBean
|
||||
import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
|
||||
import com.example.defenseapplication.databinding.LinkedUserActivityBinding
|
||||
import com.example.defenseapplication.personal.PasswordInputDialog
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.DeviceUserUpdateEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.view.CustomDialogFragmentText
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.adapter.LinkedUser
|
||||
import com.ckkj.defense_device.adapter.LinkedUserAdapter
|
||||
import com.ckkj.defense_device.bean.DeleteDeviceUserRequest
|
||||
import com.ckkj.defense_device.bean.DeviceUserBean
|
||||
import com.ckkj.defense_device.bean.FamilyMembersBean
|
||||
import com.ckkj.defense_device.bean.VerifyOptionPasswordRequest
|
||||
import com.ckkj.defense_device.databinding.LinkedUserActivityBinding
|
||||
import com.ckkj.defense_device.personal.PasswordInputDialog
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.DeviceUserUpdateEvent
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.view.CustomDialogFragmentText
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import com.yanzhenjie.recyclerview.SwipeMenuItem
|
||||
import com.yanzhenjie.recyclerview.SwipeRecyclerView
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -339,7 +338,7 @@ class LinkedUserActivity : AppCompatActivity() {
|
||||
|
||||
binding.fabAdd.setOnClickListener {
|
||||
if (checkUserLimit()) {
|
||||
val intent = Intent(this, com.example.defenseapplication.personal.InvitationCodeActivity::class.java)
|
||||
val intent = Intent(this, com.ckkj.defense_device.personal.InvitationCodeActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.content.Intent
|
||||
import android.content.res.Configuration
|
||||
@@ -9,13 +9,13 @@ import android.view.View
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.bumptech.glide.Glide
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.adapter.AlarmLogHorizontalAdapter
|
||||
import com.example.defenseapplication.base.BaseActivity
|
||||
import com.example.defenseapplication.bean.DeviceAlarmBean
|
||||
import com.example.defenseapplication.databinding.LiveVideoActivityBinding
|
||||
import com.example.defenseapplication.utils.ActivityManager
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.adapter.AlarmLogHorizontalAdapter
|
||||
import com.ckkj.defense_device.base.BaseActivity
|
||||
import com.ckkj.defense_device.bean.DeviceAlarmBean
|
||||
import com.ckkj.defense_device.databinding.LiveVideoActivityBinding
|
||||
import com.ckkj.defense_device.utils.ActivityManager
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
|
||||
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
|
||||
@@ -184,7 +184,7 @@ class LiveVideoActivity : BaseActivity() {
|
||||
private fun initListener() {
|
||||
binding.btnBack.setOnClickListener {
|
||||
ActivityManager.finishExceptHome()
|
||||
val intent = Intent(this, com.example.defenseapplication.home.HomeActivity::class.java)
|
||||
val intent = Intent(this, com.ckkj.defense_device.home.HomeActivity::class.java)
|
||||
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
|
||||
startActivity(intent)
|
||||
finish()
|
||||
@@ -200,9 +200,9 @@ class LiveVideoActivity : BaseActivity() {
|
||||
isLightOn = !isLightOn
|
||||
|
||||
if (isLightOn) {
|
||||
binding.ivLight.setImageResource(com.example.defenseapplication.R.mipmap.light_on_open)
|
||||
binding.ivLight.setImageResource(com.ckkj.defense_device.R.mipmap.light_on_open)
|
||||
} else {
|
||||
binding.ivLight.setImageResource(com.example.defenseapplication.R.mipmap.light_on)
|
||||
binding.ivLight.setImageResource(com.ckkj.defense_device.R.mipmap.light_on)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.base.BaseActivity
|
||||
import com.example.defenseapplication.databinding.SettingsActivityBinding
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.view.CustomDialogFragmentText
|
||||
import com.example.defenseapplication.view.RecognitionModeDialog
|
||||
import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
|
||||
import com.example.defenseapplication.personal.PasswordInputDialog
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.base.BaseActivity
|
||||
import com.ckkj.defense_device.databinding.SettingsActivityBinding
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.view.CustomDialogFragmentText
|
||||
import com.ckkj.defense_device.view.RecognitionModeDialog
|
||||
import com.ckkj.defense_device.bean.VerifyOptionPasswordRequest
|
||||
import com.ckkj.defense_device.personal.PasswordInputDialog
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -183,7 +183,7 @@ class SettingsActivity : BaseActivity() {
|
||||
binding.tvRelatedUsers.text = "$count 人"
|
||||
}
|
||||
|
||||
private fun updateDeviceInfo(device: com.example.defenseapplication.bean.DeviceBean) {
|
||||
private fun updateDeviceInfo(device: com.ckkj.defense_device.bean.DeviceBean) {
|
||||
binding.tvDeviceName.text = device.deviceName ?: "未设置"
|
||||
binding.tvWifiName.text = device.wifiName ?: "未设置"
|
||||
|
||||
@@ -236,7 +236,7 @@ class SettingsActivity : BaseActivity() {
|
||||
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
val deviceBean = com.example.defenseapplication.bean.DeviceBean(
|
||||
val deviceBean = com.ckkj.defense_device.bean.DeviceBean(
|
||||
id = deviceId,
|
||||
deviceName = name,
|
||||
)
|
||||
@@ -273,7 +273,7 @@ class SettingsActivity : BaseActivity() {
|
||||
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
val deviceBean = com.example.defenseapplication.bean.DeviceBean(
|
||||
val deviceBean = com.ckkj.defense_device.bean.DeviceBean(
|
||||
id = deviceId,
|
||||
patternPerception = patternPerception,
|
||||
)
|
||||
@@ -305,13 +305,13 @@ class SettingsActivity : BaseActivity() {
|
||||
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
try {
|
||||
val deleteBean = com.example.defenseapplication.bean.DeleteBean()
|
||||
val deleteBean = com.ckkj.defense_device.bean.DeleteBean()
|
||||
deleteBean.deviceId = deviceId
|
||||
val response = RetrofitNetwork.getNetworkService().deleteDevice(deleteBean)
|
||||
withContext(Dispatchers.Main) {
|
||||
if (response.code == 200) {
|
||||
Toast.makeText(this@SettingsActivity, "解绑成功", Toast.LENGTH_SHORT).show()
|
||||
val intent = Intent(this@SettingsActivity, com.example.defenseapplication.home.HomeActivity::class.java)
|
||||
val intent = Intent(this@SettingsActivity, com.ckkj.defense_device.home.HomeActivity::class.java)
|
||||
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
startActivity(intent)
|
||||
finish()
|
||||
@@ -1,17 +1,17 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.animation.ObjectAnimator
|
||||
import android.os.Bundle
|
||||
import android.widget.ImageView
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.bean.DeviceBean
|
||||
import com.example.defenseapplication.databinding.StrikePositionActivityBinding
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.view.CustomDialogFragment
|
||||
import com.example.defenseapplication.view.showDefenseDialog
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.bean.DeviceBean
|
||||
import com.ckkj.defense_device.databinding.StrikePositionActivityBinding
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.view.CustomDialogFragment
|
||||
import com.ckkj.defense_device.view.showDefenseDialog
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -45,7 +45,7 @@ class StrikePositionActivity : AppCompatActivity() {
|
||||
|
||||
private var selectedZone: Zone = Zone.CHEST
|
||||
|
||||
// Touch tracking for ImageView (captured in onTouch, used in ACTION_UP for click detection)
|
||||
// ImageView 的触控追踪(在 onTouch 中捕获,ACTION_UP 用于点击检测)
|
||||
private var lastTouchX = 0f
|
||||
private var lastTouchY = 0f
|
||||
|
||||
@@ -67,7 +67,7 @@ class StrikePositionActivity : AppCompatActivity() {
|
||||
binding.ivBack.setOnClickListener { finish() }
|
||||
binding.btnSubmit.setOnClickListener { showConfirmDialog() }
|
||||
|
||||
// Use OnTouchListener to track touch coordinates
|
||||
// 使用 OnTouchListen 来跟踪触摸坐标
|
||||
binding.ivHumanBody.setOnTouchListener { _, event ->
|
||||
lastTouchX = event.x
|
||||
lastTouchY = event.y
|
||||
@@ -77,7 +77,7 @@ class StrikePositionActivity : AppCompatActivity() {
|
||||
false
|
||||
}
|
||||
|
||||
// OnClick fires on ACTION_UP; coordinates captured from lastTouchX/Y
|
||||
// OnClick 对ACTION_UP开火;坐标来自lastTouchXY
|
||||
binding.ivHumanBody.setOnClickListener {
|
||||
val imageView = it as ImageView
|
||||
val (nx, ny) = resolveTapLocation(lastTouchX, lastTouchY, imageView)
|
||||
@@ -100,10 +100,12 @@ class StrikePositionActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a screen coordinate (from onTouch) into a normalised [0..1] offset
|
||||
* inside the drawable, accounting for:
|
||||
* - ImageView scaling (scaleType="fitCenter" adds letterboxing)
|
||||
* - Letterbox / pillarbox margins when image aspect ≠ view aspect
|
||||
* 这段代码将触摸坐标转换为图片内部的归一化位置:
|
||||
*
|
||||
* 1. 计算图片等比缩放后的实际尺寸
|
||||
* 2. 计算letterbox/pillarbox的偏移量
|
||||
* 3. 将触摸点限制在图片有效区域内
|
||||
* 4. 返回相对于图片的归一化坐标(0-1范围)
|
||||
*/
|
||||
private fun resolveTapLocation(rawX: Float, rawY: Float, imageView: ImageView): Pair<Float, Float> {
|
||||
val drawable = imageView.drawable ?: return Pair(0f, 0f)
|
||||
@@ -114,22 +116,22 @@ class StrikePositionActivity : AppCompatActivity() {
|
||||
val intrinsicWidth = drawable.intrinsicWidth.toFloat()
|
||||
val intrinsicHeight = drawable.intrinsicHeight.toFloat()
|
||||
|
||||
// scale: the uniform factor the image is scaled by to fit the view
|
||||
// 比例:图像被缩放以适应视图的均匀因子
|
||||
val scale = min(ivWidth / intrinsicWidth, ivHeight / intrinsicHeight)
|
||||
|
||||
// Physical pixel size of the drawable after scaling
|
||||
// 缩放后绘制的物理像素大小
|
||||
val drawnW = intrinsicWidth * scale
|
||||
val drawnH = intrinsicHeight * scale
|
||||
|
||||
// Letterbox offsets (top / left) when aspect ratios differ
|
||||
// 当宽高比不同时,信箱偏移(左上角)
|
||||
val drawableLeft = (ivWidth - drawnW) / 2f
|
||||
val drawableTop = (ivHeight - drawnH) / 2f
|
||||
|
||||
// Clamp touch to the actual drawable area
|
||||
// 夹紧触地接触实际可绘制区域
|
||||
val clampedX = max(drawableLeft, min(rawX, drawableLeft + drawnW))
|
||||
val clampedY = max(drawableTop, min(rawY, drawableTop + drawnH))
|
||||
|
||||
// Normalised offset [0..1] within the drawable
|
||||
// 可绘制物内的归一化偏移 [0..1]
|
||||
val normalizedX = (clampedX - drawableLeft) / drawnW
|
||||
val normalizedY = (clampedY - drawableTop) / drawnH
|
||||
|
||||
@@ -137,14 +139,11 @@ class StrikePositionActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Zones are divided by:
|
||||
* - Horizontal boundary at ny = 0.5 → top = HEAD, bottom = shoulders
|
||||
* - Vertical boundary 1 at nx = 1/3 → left = LEFT_SHOULDER
|
||||
* - Vertical boundary 2 at nx = 2/3 → right = RIGHT_SHOULDER, middle = CHEST
|
||||
* 这段代码根据归一化坐标确定触摸区域:
|
||||
*
|
||||
* If the touch falls within ±tolerance of any boundary line, the nearest
|
||||
* zone centre (Euclidean distance in normalised space) is used to avoid
|
||||
* arbitrary assignments at boundary pixels.
|
||||
* 1. 将图片分为头部、左肩、胸部、右肩四个区域
|
||||
* 2. 边界附近±0.04范围内,使用最近区域中心避免误判
|
||||
* 3. 上半部分为头部,下半部分按1/3和2/3垂直线划分
|
||||
*/
|
||||
private fun zoneForLocation(nx: Float, ny: Float): Zone {
|
||||
val hBoundary = 0.5f
|
||||
@@ -168,7 +167,14 @@ class StrikePositionActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns the Zone whose normalised centre is closest (Euclidean) to (nx, ny). */
|
||||
/**
|
||||
* 这段代码找到距离触摸点最近的区域:
|
||||
*
|
||||
* 1. 遍历所有Zone,计算与触摸点的欧氏距离平方
|
||||
* 2. 返回距离最小的Zone作为结果
|
||||
* 3. 若无匹配则默认返回CHEST
|
||||
* */
|
||||
|
||||
private fun nearestZone(nx: Float, ny: Float): Zone {
|
||||
return Zone.values().minByOrNull { zone ->
|
||||
val dx = nx - zone.normalizedX
|
||||
@@ -178,12 +184,12 @@ class StrikePositionActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Positions the marker (ivStrikeMarker) at the zone's centre, clamped so the
|
||||
* marker never goes out of the ivHumanBody bounds.
|
||||
*
|
||||
* Because the marker is a child of ivHumanBody and starts at its center
|
||||
* (layout_gravity="center"), we compute the offset from that center point
|
||||
* and apply it via translationX/Y so the marker's layout bounds stay intact.
|
||||
这段代码更新标记位置到区域中心:
|
||||
|
||||
1. 根据Zone的归一化坐标计算目标位置
|
||||
2. 限制标记不超出图片边界(Y仅限制上限)
|
||||
3. 相对于ImageView中心计算偏移量并应用
|
||||
4. 支持动画或即时移动两种方式
|
||||
*/
|
||||
private fun updateMarkerPosition(zone: Zone, animated: Boolean) {
|
||||
if (humanBodyWidth <= 0 || humanBodyHeight <= 0) return
|
||||
@@ -198,9 +204,7 @@ class StrikePositionActivity : AppCompatActivity() {
|
||||
val rawX = humanBodyWidth * zone.normalizedX
|
||||
val rawY = humanBodyHeight * zone.normalizedY
|
||||
|
||||
// Clamp X so the marker never extends beyond the drawable edges.
|
||||
// Y clamp only has an upper bound — HEAD at normalizedY=0 is allowed to go
|
||||
// all the way to the top (translationY can be negative).
|
||||
//用X夹住,使标记永远不会超出可绘制的边缘。Y钳只有一个上界——在归一化Y=0处的HEAD可以一直达到顶端(平移Y可以为负)。
|
||||
val clampedX = min(max(rawX, halfMarkerW), humanBodyWidth - halfMarkerW)
|
||||
val clampedY = min(rawY, humanBodyHeight - halfMarkerH)
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.bean.DeleteDeviceUserRequest
|
||||
import com.example.defenseapplication.bean.ObtainInviterInformationRequest
|
||||
import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
|
||||
import com.example.defenseapplication.personal.PasswordInputDialog
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.DeviceUserUpdateEvent
|
||||
import com.example.defenseapplication.databinding.UserDetailsActivityBinding
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.view.CustomDialogFragmentText
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.bean.DeleteDeviceUserRequest
|
||||
import com.ckkj.defense_device.bean.ObtainInviterInformationRequest
|
||||
import com.ckkj.defense_device.bean.VerifyOptionPasswordRequest
|
||||
import com.ckkj.defense_device.personal.PasswordInputDialog
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.DeviceUserUpdateEvent
|
||||
import com.ckkj.defense_device.databinding.UserDetailsActivityBinding
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.view.CustomDialogFragmentText
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -73,7 +72,7 @@ class UserDetailsActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateUI(data: com.example.defenseapplication.bean.ObtainInviterInformationBean) {
|
||||
private fun updateUI(data: com.ckkj.defense_device.bean.ObtainInviterInformationBean) {
|
||||
binding.tvContactName.text = data.nickName ?: "未知用户"
|
||||
binding.tvPhone.text = data.phonenumber ?: ""
|
||||
binding.tvIdCard.text = data.idCard ?: ""
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.bean.DeviceBean
|
||||
import com.example.defenseapplication.databinding.VoiceSettingsActivityBinding
|
||||
import com.example.defenseapplication.utils.ApiService
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.bean.DeviceBean
|
||||
import com.ckkj.defense_device.databinding.VoiceSettingsActivityBinding
|
||||
import com.ckkj.defense_device.utils.ApiService
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
@@ -6,10 +6,10 @@ import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.widget.doAfterTextChanged
|
||||
import com.example.defenseapplication.bean.DeviceBean
|
||||
import com.example.defenseapplication.databinding.WarningVoiceContentActivityBinding
|
||||
import com.example.defenseapplication.utils.ApiService
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.bean.DeviceBean
|
||||
import com.ckkj.defense_device.databinding.WarningVoiceContentActivityBinding
|
||||
import com.ckkj.defense_device.utils.ApiService
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,16 +1,15 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.base.BaseActivity
|
||||
import com.example.defenseapplication.bean.DeviceBean
|
||||
import com.example.defenseapplication.databinding.WaterGunSettingsActivityBinding
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.view.ContainerSelectDialog
|
||||
import com.example.defenseapplication.view.CustomDialogFragmentText
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.base.BaseActivity
|
||||
import com.ckkj.defense_device.bean.DeviceBean
|
||||
import com.ckkj.defense_device.databinding.WaterGunSettingsActivityBinding
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.view.ContainerSelectDialog
|
||||
import com.ckkj.defense_device.view.CustomDialogFragmentText
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.liveVideo
|
||||
package com.ckkj.defense_device.liveVideo
|
||||
|
||||
import android.Manifest
|
||||
import android.content.BroadcastReceiver
|
||||
@@ -18,13 +18,13 @@ import android.widget.PopupWindow
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.adapter.WifiListAdapter
|
||||
import com.example.defenseapplication.bean.DeviceBean
|
||||
import com.example.defenseapplication.databinding.DialogWifiListBinding
|
||||
import com.example.defenseapplication.databinding.WifiManagementActivityBinding
|
||||
import com.example.defenseapplication.utils.DeviceIdEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.adapter.WifiListAdapter
|
||||
import com.ckkj.defense_device.bean.DeviceBean
|
||||
import com.ckkj.defense_device.databinding.DialogWifiListBinding
|
||||
import com.ckkj.defense_device.databinding.WifiManagementActivityBinding
|
||||
import com.ckkj.defense_device.utils.DeviceIdEvent
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,14 +1,9 @@
|
||||
package com.example.defenseapplication.login
|
||||
package com.ckkj.defense_device.login
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.FaceLoginActivityBinding
|
||||
import com.ckkj.defense_device.databinding.FaceLoginActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
//人脸识别
|
||||
class FaceLoginActivity : AppCompatActivity() {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.login
|
||||
package com.ckkj.defense_device.login
|
||||
|
||||
import android.Manifest
|
||||
import android.content.pm.PackageManager
|
||||
@@ -13,8 +13,8 @@ import androidx.camera.core.Preview
|
||||
import androidx.camera.lifecycle.ProcessCameraProvider
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.example.defenseapplication.databinding.FaceVerificationActivityBinding
|
||||
import com.example.defenseapplication.view.FaceAnalyzer
|
||||
import com.ckkj.defense_device.databinding.FaceVerificationActivityBinding
|
||||
import com.ckkj.defense_device.view.FaceAnalyzer
|
||||
import com.google.mlkit.vision.face.FaceDetection
|
||||
import com.google.mlkit.vision.face.FaceDetectorOptions
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.login
|
||||
package com.ckkj.defense_device.login
|
||||
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.GradientDrawable
|
||||
@@ -7,9 +7,9 @@ import android.os.CountDownTimer
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import bean.ForgotRequest
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.ForgetPasswordActivityBinding
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.ForgetPasswordActivityBinding
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.google.firebase.crashlytics.buildtools.reloc.org.apache.http.util.TextUtils
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.login
|
||||
package com.ckkj.defense_device.login
|
||||
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
@@ -11,11 +11,11 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.constraintlayout.widget.ConstraintSet
|
||||
import bean.LoginRequest
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.ActivityLoginBinding
|
||||
import com.example.defenseapplication.home.HomeActivity
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.utils.UserinfoUtil
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.ActivityLoginBinding
|
||||
import com.ckkj.defense_device.home.HomeActivity
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.utils.UserinfoUtil
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.login
|
||||
package com.ckkj.defense_device.login
|
||||
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
@@ -8,9 +8,9 @@ import android.os.CountDownTimer
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import bean.RegisterRequest
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.RegisterActivityBinding
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.RegisterActivityBinding
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,15 +1,11 @@
|
||||
package com.example.defenseapplication.login
|
||||
package com.ckkj.defense_device.login
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.os.CountDownTimer
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.RegisterSuccessActivityBinding
|
||||
import com.example.defenseapplication.home.HomeActivity
|
||||
import com.ckkj.defense_device.databinding.RegisterSuccessActivityBinding
|
||||
import com.ckkj.defense_device.home.HomeActivity
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
//注册成功界面
|
||||
class RegisterSuccessActivity : AppCompatActivity() {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.model
|
||||
package com.ckkj.defense_device.model
|
||||
|
||||
data class FamilyItem(
|
||||
val id: String,
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.example.defenseapplication.personal
|
||||
package com.ckkj.defense_device.personal
|
||||
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.bean.UpdatePassword
|
||||
import com.example.defenseapplication.databinding.ChangePasswordActivityBinding
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.bean.UpdatePassword
|
||||
import com.ckkj.defense_device.databinding.ChangePasswordActivityBinding
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.example.defenseapplication.personal
|
||||
package com.ckkj.defense_device.personal
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.databinding.FaceManagementActivityBinding
|
||||
import com.example.defenseapplication.login.FaceLoginActivity
|
||||
import com.ckkj.defense_device.databinding.FaceManagementActivityBinding
|
||||
import com.ckkj.defense_device.login.FaceLoginActivity
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
//人脸管理页面
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.personal
|
||||
package com.ckkj.defense_device.personal
|
||||
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
@@ -13,11 +13,11 @@ import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
|
||||
import com.example.defenseapplication.databinding.DialogExpireTimeBinding
|
||||
import com.example.defenseapplication.databinding.InvitationCodeActivityBinding
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.bean.VerifyOptionPasswordRequest
|
||||
import com.ckkj.defense_device.databinding.DialogExpireTimeBinding
|
||||
import com.ckkj.defense_device.databinding.InvitationCodeActivityBinding
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.google.zxing.BarcodeFormat
|
||||
import com.google.zxing.EncodeHintType
|
||||
import com.google.zxing.qrcode.QRCodeWriter
|
||||
@@ -1,14 +1,9 @@
|
||||
package com.example.defenseapplication.personal
|
||||
package com.ckkj.defense_device.personal
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.LoginPasswordActivityBinding
|
||||
import com.example.defenseapplication.databinding.PasswordManagementActivityBinding
|
||||
import com.ckkj.defense_device.databinding.LoginPasswordActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
|
||||
//登录密码
|
||||
@@ -1,16 +1,16 @@
|
||||
package com.example.defenseapplication.personal
|
||||
package com.ckkj.defense_device.personal
|
||||
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.bean.UpdateUserInfo
|
||||
import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
|
||||
import com.example.defenseapplication.databinding.OperationPasswordActivityBinding
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.view.CustomDialogFragment
|
||||
import com.example.defenseapplication.view.LoadingDialog
|
||||
import com.example.defenseapplication.view.showDefenseDialog
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.bean.UpdateUserInfo
|
||||
import com.ckkj.defense_device.bean.VerifyOptionPasswordRequest
|
||||
import com.ckkj.defense_device.databinding.OperationPasswordActivityBinding
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.view.CustomDialogFragment
|
||||
import com.ckkj.defense_device.view.LoadingDialog
|
||||
import com.ckkj.defense_device.view.showDefenseDialog
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.example.defenseapplication.personal
|
||||
package com.ckkj.defense_device.personal
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.example.defenseapplication.databinding.PasswordManagementActivityBinding
|
||||
import com.ckkj.defense_device.databinding.PasswordManagementActivityBinding
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
//密码管理
|
||||
class PasswordManagementActivity : AppCompatActivity() {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.personal
|
||||
package com.ckkj.defense_device.personal
|
||||
|
||||
import android.Manifest
|
||||
import android.content.ContentResolver
|
||||
@@ -11,24 +11,21 @@ import android.os.Environment
|
||||
import android.provider.MediaStore
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.FileProvider
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.bean.UpdateUserInfo
|
||||
import com.example.defenseapplication.bean.UserInfoBean
|
||||
import com.example.defenseapplication.databinding.PersonalProfileActivityBinding
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.view.AvatarSelectDialog
|
||||
import com.example.defenseapplication.view.CustomDialogFragmentText
|
||||
import com.example.defenseapplication.view.LoadingDialog
|
||||
import com.example.defenseapplication.view.PhoneModifyDialogFragment
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.bean.UpdateUserInfo
|
||||
import com.ckkj.defense_device.bean.UserInfoBean
|
||||
import com.ckkj.defense_device.databinding.PersonalProfileActivityBinding
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.view.AvatarSelectDialog
|
||||
import com.ckkj.defense_device.view.CustomDialogFragmentText
|
||||
import com.ckkj.defense_device.view.LoadingDialog
|
||||
import com.ckkj.defense_device.view.PhoneModifyDialogFragment
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.example.defenseapplication.personal
|
||||
package com.ckkj.defense_device.personal
|
||||
|
||||
import android.os.Bundle
|
||||
import android.os.CountDownTimer
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import bean.ForgotRequest
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.RetrievePasswordActivityBinding
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.RetrievePasswordActivityBinding
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.gyf.immersionbar.ImmersionBar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
import android.app.Activity
|
||||
import java.lang.ref.WeakReference
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.util.Log
|
||||
import com.example.defenseapplication.bean.BaseInfo
|
||||
import com.ckkj.defense_device.bean.BaseInfo
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.JsonParser
|
||||
import okhttp3.Interceptor
|
||||
@@ -1,32 +1,32 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
import android.R
|
||||
import bean.ForgotRequest
|
||||
import com.example.defenseapplication.bean.DeviceBean
|
||||
import com.example.defenseapplication.bean.DeviceUserBean
|
||||
import com.example.defenseapplication.bean.FamilyBean
|
||||
import com.example.defenseapplication.bean.GetCodeBean
|
||||
import com.ckkj.defense_device.bean.DeviceBean
|
||||
import com.ckkj.defense_device.bean.DeviceUserBean
|
||||
import com.ckkj.defense_device.bean.FamilyBean
|
||||
import com.ckkj.defense_device.bean.GetCodeBean
|
||||
import bean.LoginBean
|
||||
import bean.LoginRequest
|
||||
import bean.RegisterRequest
|
||||
import com.example.defenseapplication.bean.AddDeviceBean
|
||||
import com.example.defenseapplication.bean.AddDeviceUserRequest
|
||||
import com.example.defenseapplication.bean.DeleteBean
|
||||
import com.example.defenseapplication.bean.DeleteDeviceUserRequest
|
||||
import com.example.defenseapplication.bean.DeviceAlarmResponse
|
||||
import com.example.defenseapplication.bean.FamilyMembersBean
|
||||
import com.example.defenseapplication.bean.MessageBean
|
||||
import com.example.defenseapplication.bean.MessageListResponse
|
||||
import com.example.defenseapplication.bean.ObtainInviterInformationBean
|
||||
import com.example.defenseapplication.bean.ObtainInviterInformationRequest
|
||||
import com.example.defenseapplication.bean.SwitchFamilyRequest
|
||||
import com.example.defenseapplication.bean.UpdatePassword
|
||||
import com.example.defenseapplication.bean.UpdateUserInfo
|
||||
import com.example.defenseapplication.bean.UploadResponse
|
||||
import com.example.defenseapplication.bean.UserInfoBean
|
||||
import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
|
||||
import com.ckkj.defense_device.bean.AddDeviceBean
|
||||
import com.ckkj.defense_device.bean.AddDeviceUserRequest
|
||||
import com.ckkj.defense_device.bean.DeleteBean
|
||||
import com.ckkj.defense_device.bean.DeleteDeviceUserRequest
|
||||
import com.ckkj.defense_device.bean.DeviceAlarmResponse
|
||||
import com.ckkj.defense_device.bean.FamilyMembersBean
|
||||
import com.ckkj.defense_device.bean.MessageBean
|
||||
import com.ckkj.defense_device.bean.MessageListResponse
|
||||
import com.ckkj.defense_device.bean.ObtainInviterInformationBean
|
||||
import com.ckkj.defense_device.bean.ObtainInviterInformationRequest
|
||||
import com.ckkj.defense_device.bean.SwitchFamilyRequest
|
||||
import com.ckkj.defense_device.bean.UpdatePassword
|
||||
import com.ckkj.defense_device.bean.UpdateUserInfo
|
||||
import com.ckkj.defense_device.bean.UploadResponse
|
||||
import com.ckkj.defense_device.bean.UserInfoBean
|
||||
import com.ckkj.defense_device.bean.VerifyOptionPasswordRequest
|
||||
import okhttp3.MultipartBody
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.DELETE
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Multipart
|
||||
import retrofit2.http.POST
|
||||
@@ -236,8 +236,15 @@ interface ApiService {
|
||||
/**
|
||||
* 查看告警消息
|
||||
*/
|
||||
//@GET("/app/appMessageInfo/{id}")
|
||||
//suspend fun getMessageInfo(@retrofit2.http.Path("id") id: String): GetCodeBean<MessageBean>
|
||||
@GET("/app/appMessageInfo/{id}")
|
||||
suspend fun getMessageInfo(@retrofit2.http.Path("id") id: String): GetCodeBean<MessageBean>
|
||||
|
||||
|
||||
/**
|
||||
* 删除告警消息
|
||||
*/
|
||||
@DELETE("/app/deleteMessage/{id}")
|
||||
suspend fun deleteMessage(@retrofit2.http.Path("id") id: String): GetCodeBean<Any>
|
||||
|
||||
|
||||
/**
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
object DeviceIdEvent {
|
||||
private val listeners = mutableListOf<DeviceIdListener>()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
object DeviceUpdateEvent {
|
||||
private val listeners = mutableListOf<DeviceUpdateListener>()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
object DeviceUserUpdateEvent {
|
||||
private val listeners = mutableListOf<DeviceUserUpdateListener>()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
object FamilySwitchEvent {
|
||||
private val listeners = mutableListOf<FamilySwitchListener>()
|
||||
@@ -1,6 +1,4 @@
|
||||
package com.example.defenseapplication.utils
|
||||
|
||||
import android.content.Context
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
/**
|
||||
* HTTP 请求头的语言值管理,统一由 LanguageUtil 提供
|
||||
@@ -1,8 +1,6 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.content.res.Configuration
|
||||
import android.os.Build
|
||||
import android.os.LocaleList
|
||||
import java.util.Locale
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.smart.data.repository
|
||||
|
||||
import com.example.defenseapplication.utils.ApiService
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.utils.ApiService
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
|
||||
|
||||
class MainRepository(val apiService: ApiService = RetrofitNetwork.getNetworkService()) {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
object MessageStatusManager {
|
||||
private var unreadCount = 0
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
import com.google.gson.Gson
|
||||
import okhttp3.OkHttpClient
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.utils
|
||||
package com.ckkj.defense_device.utils
|
||||
|
||||
import bean.LoginBean
|
||||
import com.blankj.utilcode.util.SPUtils
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.WindowManager
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.DialogAutoModeNoticeBinding
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.DialogAutoModeNoticeBinding
|
||||
import java.util.Calendar
|
||||
|
||||
class AutoModeNoticeDialog(context: Context) : Dialog(context) {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
@@ -6,10 +6,8 @@ import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.DialogAvatarSelectBinding
|
||||
import com.ckkj.defense_device.databinding.DialogAvatarSelectBinding
|
||||
|
||||
class AvatarSelectDialog(context: Context) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
@@ -6,10 +6,9 @@ import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.DialogContainerSelectBinding
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.DialogContainerSelectBinding
|
||||
|
||||
class ContainerSelectDialog(context: Context) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.DialogInterface
|
||||
@@ -9,8 +9,8 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowManager
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.databinding.DialogCustomBinding
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.databinding.DialogCustomBinding
|
||||
|
||||
class CustomDialogFragmentText : DialogFragment() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.app.Dialog
|
||||
import android.os.Bundle
|
||||
@@ -14,7 +14,7 @@ import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import com.example.defenseapplication.R
|
||||
import com.ckkj.defense_device.R
|
||||
|
||||
class CustomDialogFragment : androidx.fragment.app.DialogFragment() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.*
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
@@ -10,14 +10,14 @@ import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.adapter.FamilySwitchAdapter
|
||||
import com.example.defenseapplication.bean.FamilyBean
|
||||
import com.example.defenseapplication.bean.SwitchFamilyRequest
|
||||
import com.example.defenseapplication.model.FamilyItem
|
||||
import com.example.defenseapplication.utils.FamilySwitchEvent
|
||||
import com.example.defenseapplication.utils.RetrofitNetwork
|
||||
import com.example.defenseapplication.utils.UserinfoUtil
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.adapter.FamilySwitchAdapter
|
||||
import com.ckkj.defense_device.bean.FamilyBean
|
||||
import com.ckkj.defense_device.bean.SwitchFamilyRequest
|
||||
import com.ckkj.defense_device.model.FamilyItem
|
||||
import com.ckkj.defense_device.utils.FamilySwitchEvent
|
||||
import com.ckkj.defense_device.utils.RetrofitNetwork
|
||||
import com.ckkj.defense_device.utils.UserinfoUtil
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
@@ -8,9 +8,9 @@ import android.view.Window
|
||||
import android.view.WindowManager
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import com.example.defenseapplication.R
|
||||
import com.example.defenseapplication.utils.AppLanguage
|
||||
import com.example.defenseapplication.utils.LanguageUtil
|
||||
import com.ckkj.defense_device.R
|
||||
import com.ckkj.defense_device.utils.AppLanguage
|
||||
import com.ckkj.defense_device.utils.LanguageUtil
|
||||
|
||||
/**
|
||||
* 语言选择对话框
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
@@ -7,7 +7,7 @@ import android.graphics.drawable.ColorDrawable
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.WindowManager
|
||||
import com.example.defenseapplication.databinding.DialogLoadingBinding
|
||||
import com.ckkj.defense_device.databinding.DialogLoadingBinding
|
||||
|
||||
class LoadingDialog(context: Context) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.defenseapplication.view
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.ckkj.defense_device.view
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import com.ckkj.defense_device.R
|
||||
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
|
||||
import com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer
|
||||
|
||||
class MyGSYVideoPlayerLive @JvmOverloads constructor(
|
||||
context: Context, attrs: AttributeSet? = null
|
||||
) : StandardGSYVideoPlayer(context, attrs) {
|
||||
|
||||
override fun init(context: Context) {
|
||||
super.init(context)
|
||||
startButton.visibility = View.GONE
|
||||
}
|
||||
|
||||
override fun updateStartImage() {
|
||||
startButton.visibility = View.GONE
|
||||
}
|
||||
override fun startWindowFullscreen(
|
||||
context: Context?,
|
||||
actionBar: Boolean,
|
||||
statusBar: Boolean
|
||||
): GSYBaseVideoPlayer {
|
||||
|
||||
val player = super.startWindowFullscreen(
|
||||
context,
|
||||
actionBar,
|
||||
statusBar
|
||||
) as MyGSYVideoPlayerLive
|
||||
|
||||
// 隐藏GSY自带UI
|
||||
//player.backButton.visibility = View.GONE
|
||||
player.titleTextView.visibility = View.GONE
|
||||
player.startButton.visibility = View.GONE
|
||||
player.fullscreenButton.visibility = View.GONE
|
||||
|
||||
player.findViewById<View>(
|
||||
com.shuyu.gsyvideoplayer.R.id.current
|
||||
)?.visibility = View.GONE
|
||||
|
||||
player.findViewById<View>(
|
||||
com.shuyu.gsyvideoplayer.R.id.total
|
||||
)?.visibility = View.GONE
|
||||
|
||||
player.findViewById<View>(
|
||||
com.shuyu.gsyvideoplayer.R.id.progress
|
||||
)?.visibility = View.GONE
|
||||
|
||||
player.findViewById<View>(
|
||||
com.shuyu.gsyvideoplayer.R.id.layout_bottom
|
||||
)?.visibility = View.GONE
|
||||
|
||||
player.findViewById<View>(
|
||||
com.shuyu.gsyvideoplayer.R.id.layout_top
|
||||
)?.visibility = View.GONE
|
||||
|
||||
// 加载你的全屏覆盖层
|
||||
val overlay = LayoutInflater.from(context)
|
||||
.inflate(
|
||||
R.layout.layout_my_player,
|
||||
player,
|
||||
false
|
||||
)
|
||||
|
||||
player.addView(overlay)
|
||||
|
||||
// 找按钮
|
||||
overlay.findViewById<View>(R.id.btnAi)
|
||||
?.setOnClickListener {
|
||||
|
||||
}
|
||||
|
||||
overlay.findViewById<View>(R.id.btnCapture)
|
||||
?.setOnClickListener {
|
||||
|
||||
}
|
||||
|
||||
return player
|
||||
}
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user