diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/AddLinkedUserActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/AddLinkedUserActivity.kt index 8d88224..8642e0a 100644 --- a/app/src/main/java/com/example/defenseapplication/liveVideo/AddLinkedUserActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/liveVideo/AddLinkedUserActivity.kt @@ -1,6 +1,8 @@ package com.example.defenseapplication.liveVideo import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope @@ -23,6 +25,7 @@ import androidx.recyclerview.widget.RecyclerView class AddLinkedUserActivity : AppCompatActivity() { private lateinit var binding: AddLinkedUserActivityBinding private val selectedPhoneSet = mutableSetOf() + private val fullUserItemList = mutableListOf() private val userItemList = mutableListOf() private val selectedUserIdMap = mutableMapOf() @@ -106,9 +109,9 @@ class AddLinkedUserActivity : AppCompatActivity() { } private fun updateFamilyMemberList(familyMembersList: List) { - userItemList.clear() + fullUserItemList.clear() familyMembersList.forEach { member -> - userItemList.add( + fullUserItemList.add( UserItem( name = member.nickName ?: member.parentName ?: "未知用户", phone = member.phonenumber ?: "", @@ -116,6 +119,20 @@ class AddLinkedUserActivity : AppCompatActivity() { ) ) } + filterUsers(binding.etSearch.text?.toString() ?: "") + } + + private fun filterUsers(keyword: String) { + userItemList.clear() + if (keyword.isEmpty()) { + userItemList.addAll(fullUserItemList) + } else { + val lowerKeyword = keyword.lowercase() + fullUserItemList.filter { + it.name.lowercase().contains(lowerKeyword) || + it.phone.contains(keyword) + }.forEach { userItemList.add(it) } + } binding.rvAddLinkedUser.adapter?.notifyDataSetChanged() } @@ -130,6 +147,14 @@ class AddLinkedUserActivity : AppCompatActivity() { binding.ivBack.setOnClickListener { finish() } + + binding.etSearch.addTextChangedListener(object : TextWatcher { + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {} + override fun afterTextChanged(s: Editable?) { + filterUsers(s?.toString() ?: "") + } + }) } private fun addDeviceUser() { diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt index 4a3cea5..790d7d6 100644 --- a/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt @@ -279,16 +279,32 @@ class LinkedUserActivity : AppCompatActivity() { }) binding.btnAddLinkedUser.setOnClickListener { - val intent = Intent(this, AddLinkedUserActivity::class.java) - startActivity(intent) + if (checkUserLimit()) { + val intent = Intent(this, AddLinkedUserActivity::class.java) + startActivity(intent) + } } binding.fabAdd.setOnClickListener { - val intent = Intent(this, com.example.defenseapplication.personal.InvitationCodeActivity::class.java) - startActivity(intent) + if (checkUserLimit()) { + val intent = Intent(this, com.example.defenseapplication.personal.InvitationCodeActivity::class.java) + startActivity(intent) + } } } + private fun checkUserLimit(): Boolean { + if (fullUserList.size >= 11) { + val dialog = CustomDialogFragmentText() + dialog.setTitle(getString(R.string.notice)) + dialog.setMessage(getString(R.string.max_add_11_users)) + dialog.setShowInput(false) + dialog.show(supportFragmentManager, "UserLimitDialog") + return false + } + return true + } + private fun setupModeUI() { if (mode == MODE_SETTINGS) { binding.btnAddLinkedUser.visibility = View.VISIBLE diff --git a/app/src/main/java/com/example/defenseapplication/personal/PersonalProfileActivity.kt b/app/src/main/java/com/example/defenseapplication/personal/PersonalProfileActivity.kt index c8cc00d..90ff934 100644 --- a/app/src/main/java/com/example/defenseapplication/personal/PersonalProfileActivity.kt +++ b/app/src/main/java/com/example/defenseapplication/personal/PersonalProfileActivity.kt @@ -44,7 +44,7 @@ import java.io.InputStream import java.text.SimpleDateFormat import java.util.Date import java.util.Locale - +//个人资料页面 class PersonalProfileActivity : AppCompatActivity() { private lateinit var binding: PersonalProfileActivityBinding private var userInfo: UserInfoBean? = null diff --git a/app/src/main/res/layout/add_linked_user_activity.xml b/app/src/main/res/layout/add_linked_user_activity.xml index 732e08f..e7d535e 100644 --- a/app/src/main/res/layout/add_linked_user_activity.xml +++ b/app/src/main/res/layout/add_linked_user_activity.xml @@ -58,12 +58,18 @@ android:src="@drawable/search" android:layout_marginRight="8dp"/> - + android:layout_weight="1" + android:background="@null" + android:hint="@string/search_preset_text" + android:textColorHint="@color/gray" + android:textColor="@color/black" + android:textSize="14sp" + android:singleLine="true" + android:imeOptions="actionSearch"/> diff --git a/app/src/main/res/layout/home_menu_fragment.xml b/app/src/main/res/layout/home_menu_fragment.xml index c362a50..6596c32 100644 --- a/app/src/main/res/layout/home_menu_fragment.xml +++ b/app/src/main/res/layout/home_menu_fragment.xml @@ -93,7 +93,7 @@ 创建文件失败 上传中... 上传失败 + 最多添加11个用户 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 89b3fd8..7fd985e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -473,4 +473,5 @@ Select from Album Select Date Select Time + A maximum of 11 users can be added \ No newline at end of file