This commit is contained in:
2026-05-20 17:51:44 +08:00
parent 246b39ca1a
commit e6a3c1605f
9 changed files with 77 additions and 29 deletions

View File

@@ -50,7 +50,12 @@ class FamilySwitchAdapter(
) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: FamilyItem, isSelected: Boolean) {
binding.tvFamilyName.text = item.name
val displayName = if (item.role == "appadmin") {
binding.root.context.getString(R.string.my_family_admin, item.name)
} else {
binding.root.context.getString(R.string.family_member, item.name)
}
binding.tvFamilyName.text = displayName
binding.root.setBackgroundColor(
ContextCompat.getColor(

View File

@@ -2,5 +2,6 @@ package com.example.defenseapplication.model
data class FamilyItem(
val id: String,
val name: String
val name: String,
val role: String
)

View File

@@ -81,7 +81,7 @@ class FamilySwitchDialog(
withContext(Dispatchers.Main) {
if (response.code == 200 && response.data != null) {
familyBeanList = response.data.reversed()
val familyItems = familyBeanList.map { FamilyItem(it.id, it.parentName) }
val familyItems = familyBeanList.map { FamilyItem(it.id, it.parentName, it.role) }
adapter.updateList(familyItems)
familyBeanList.firstOrNull()?.let {

View File

@@ -3,8 +3,9 @@ package com.example.defenseapplication.view
import android.app.Dialog
import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.Gravity
import android.view.Window
import android.view.WindowManager
import android.widget.LinearLayout
import android.widget.TextView
import com.example.defenseapplication.R
@@ -16,23 +17,28 @@ import com.example.defenseapplication.utils.LanguageUtil
class LanguageDialog(
context: Context,
private val onLanguageSelected: (String) -> Unit
) : Dialog(context) {
) : Dialog(context, R.style.BottomDialogStyle) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requestWindowFeature(Window.FEATURE_NO_TITLE)
setContentView(R.layout.dialog_language)
// 设置对话框宽度为屏幕宽度的80%
window?.setLayout(
(context.resources.displayMetrics.widthPixels * 0.8).toInt(),
LinearLayout.LayoutParams.WRAP_CONTENT
)
val window = window
val params = window?.attributes
params?.width = WindowManager.LayoutParams.MATCH_PARENT
params?.height = WindowManager.LayoutParams.WRAP_CONTENT
params?.gravity = Gravity.BOTTOM
window?.attributes = params
window?.setBackgroundDrawableResource(android.R.color.transparent)
window?.setDimAmount(0.5f)
initViews()
}
private fun initViews() {
val llChinese = findViewById<LinearLayout>(R.id.llChinese)
val llEnglish = findViewById<LinearLayout>(R.id.llEnglish)
val tvChinese = findViewById<TextView>(R.id.tvChinese)
val tvEnglish = findViewById<TextView>(R.id.tvEnglish)
val tvCancel = findViewById<TextView>(R.id.tvCancel)
@@ -46,12 +52,12 @@ class LanguageDialog(
tvEnglish.setTextColor(context.getColor(R.color.green))
}
tvChinese.setOnClickListener {
llChinese.setOnClickListener {
onLanguageSelected(LanguageUtil.LANGUAGE_CHINESE)
dismiss()
}
tvEnglish.setOnClickListener {
llEnglish.setOnClickListener {
onLanguageSelected(LanguageUtil.LANGUAGE_ENGLISH)
dismiss()
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -21,34 +21,66 @@
android:layout_height="1dp"
android:background="#EEEEEE" />
<TextView
android:id="@+id/tvChinese"
<LinearLayout
android:id="@+id/llChinese"
android:layout_width="match_parent"
android:layout_height="56dp"
android:gravity="center"
android:text="@string/chinese"
android:textColor="@color/black"
android:textSize="16sp"
android:layout_height="80dp"
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true" />
android:focusable="true">
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/chinexe"
android:scaleType="centerInside" />
<TextView
android:id="@+id/tvChinese"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/chinese"
android:textColor="@color/black"
android:textSize="18sp"
android:layout_marginStart="16dp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#EEEEEE" />
<TextView
android:id="@+id/tvEnglish"
<LinearLayout
android:id="@+id/llEnglish"
android:layout_width="match_parent"
android:layout_height="56dp"
android:gravity="center"
android:text="@string/english"
android:textColor="@color/black"
android:textSize="16sp"
android:layout_height="80dp"
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true" />
android:focusable="true">
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/english"
android:scaleType="centerInside" />
<TextView
android:id="@+id/tvEnglish"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/english"
android:textColor="@color/black"
android:textSize="18sp"
android:layout_marginStart="16dp" />
</LinearLayout>
<View
android:layout_width="match_parent"
@@ -67,4 +99,4 @@
android:clickable="true"
android:focusable="true" />
</LinearLayout>
</LinearLayout>

View File

@@ -62,6 +62,8 @@
<string name="profile">个人</string>
<string name="admin_user">管理者</string>
<string name="normal_user">普通用户</string>
<string name="my_family_admin">%s管理员</string>
<string name="family_member">%s成员</string>
<!-- Home Menu -->
<string name="my_devices">我的设备</string>

View File

@@ -97,6 +97,8 @@
<string name="switch_family">Switch Family</string>
<string name="current_family">Current Family</string>
<string name="my_family">My Family</string>
<string name="my_family_admin">%s (Admin)</string>
<string name="family_member">%s (Member)</string>
<string name="add_family">Add Family</string>
<string name="family_name">Family Name</string>
<string name="enter_family_name">Enter family name</string>