Commit 543554ec authored by wanglei's avatar wanglei

...

parent 53c4c454
......@@ -25,6 +25,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.ScanQR"
tools:targetApi="31">
<activity
android:name=".ui.language.LanguageActivity"
android:exported="false" />
<activity
android:name=".ui.product.ProductCodeActivity"
android:exported="false" />
......
package com.base.scanqr.bean
data class LanguageBean(
val key: String,
val language: String,
val country:String,
) {
var isSelect: Boolean = false
companion object {
const val English = "English"
const val 简体中文 = "简体中文"
const val português = "português"
const val Español = "Español "
const val Français = "Français"
const val Deutsch = "Deutsch"
const val ไทย = "ไทย"
const val Bahasa_Indonesia = "Bahasa Indonesia"
const val Melayu = "Melayu"
const val Tiếng_Việt = "Tiếng Việt"
const val 日本語 = "日本語"
const val Italiano = "Italiano"
const val 한국인 = "한국인"
const val Nederlands = "Nederlands"
const val 繁體中文 = "繁體中文"
const val Türk = "Türk"
}
}
\ No newline at end of file
package com.base.scanqr.ui.language
import androidx.core.view.updatePadding
import com.base.scanqr.base.BaseActivity
import com.base.scanqr.bean.ConstObject.appLanguageCountrySp
import com.base.scanqr.bean.ConstObject.appLanguageSp
import com.base.scanqr.bean.LanguageBean
import com.base.scanqr.databinding.ActivityLanguageBinding
import com.base.scanqr.utils.BarUtils
import com.gyf.immersionbar.ktx.immersionBar
import java.util.Locale
class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageBinding::inflate) {
private var adapter: LanguageAdapter? = null
override fun initView() {
super.initView()
binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight())
adapter = LanguageAdapter {
}
binding.rv.adapter = adapter
}
override fun initListener() {
super.initListener()
}
override fun onResumeOneShoot() {
super.onResumeOneShoot()
initData()
}
private fun initData() {
val languageBeanList = listOf(
LanguageBean(LanguageBean.English, Locale.ENGLISH.language, Locale.ENGLISH.country),
LanguageBean(LanguageBean.简体中文, Locale.SIMPLIFIED_CHINESE.language, Locale.SIMPLIFIED_CHINESE.country),
// LanguageBean(LanguageBean.繁體中文, Locale.TRADITIONAL_CHINESE.language, Locale.TRADITIONAL_CHINESE.country),
LanguageBean(LanguageBean.日本語, Locale.JAPAN.language, Locale.JAPAN.country),
LanguageBean(LanguageBean.한국인, Locale.KOREAN.language, Locale.KOREAN.country),
)
languageBeanList.findLast { it.language == appLanguageSp && it.country == appLanguageCountrySp }?.isSelect = true
adapter?.submitList(languageBeanList)
}
override fun configSystemBar() {
immersionBar {
statusBarColor("#FFFFFFFF")
statusBarDarkFont(true)
}
}
}
\ No newline at end of file
package com.base.scanqr.ui.language
import android.annotation.SuppressLint
import android.content.Context
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.base.scanqr.R
import com.base.scanqr.bean.LanguageBean
import com.base.scanqr.databinding.ItemLanguageBinding
import com.base.scanqr.utils.XmlEx.inflate
import com.chad.library.adapter4.BaseQuickAdapter
class LanguageAdapter(
val click: (item: LanguageBean) -> Unit
) : BaseQuickAdapter<LanguageBean, LanguageAdapter.LanguageViewHolder>() {
inner class LanguageViewHolder(view: View) : RecyclerView.ViewHolder(view)
@SuppressLint("NotifyDataSetChanged")
override fun onBindViewHolder(holder: LanguageViewHolder, position: Int, item: LanguageBean?) {
item ?: return
val binding = ItemLanguageBinding.bind(holder.itemView)
binding.tv.text = item.key
binding.fl.isSelected = item.isSelect
binding.ivSelector.isSelected = item.isSelect
binding.root.setOnClickListener {
items.map { it.isSelect = false }
item.isSelect = true
notifyDataSetChanged()
click.invoke(item)
}
}
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): LanguageViewHolder {
return LanguageViewHolder(R.layout.item_language.inflate(parent))
}
}
\ No newline at end of file
......@@ -9,6 +9,7 @@ import com.base.scanqr.R
import com.base.scanqr.base.BaseFragment
import com.base.scanqr.bean.EmailUIBean
import com.base.scanqr.databinding.FragmentSettingsBinding
import com.base.scanqr.ui.language.LanguageActivity
import com.base.scanqr.utils.BarUtils
import com.base.scanqr.utils.IntentUtils.intentSendEmail
import com.base.scanqr.utils.ToastUtils.toast
......@@ -45,5 +46,9 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>(FragmentSettingsB
requireContext().startActivity(intent)
}
}
binding.llLanguage.setOnClickListener {
val activity = requireActivity() as MainActivity?
activity?.startActivity(Intent(activity, LanguageActivity::class.java))
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#EFF1FF" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/xuanze" android:state_selected="true" />
<item android:drawable="@mipmap/weixuan" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_stroke_eff1ff_10" android:state_selected="true"/>
<item android:drawable="@drawable/bg_ffffff_10" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#EFF1FF" />
<stroke
android:width="0.5dp"
android:color="#6473F8" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".ui.language.LanguageActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent">
<FrameLayout
android:id="@+id/fl_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="16dp"
android:paddingVertical="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/fanhui"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="@string/choose_language"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/fl_back"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:id="@+id/fl_queren"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/queren"
tools:ignore="ContentDescription" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@id/cl_top"
tools:listitem="@layout/item_language" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -207,10 +207,11 @@
android:orientation="vertical">
<!-- 语言-->
<LinearLayout
android:id="@+id/llLanguage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone">
android:visibility="visible">
<ImageView
android:layout_width="wrap_content"
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/fl"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginHorizontal="16dp"
android:layout_marginVertical="6dp"
android:background="@drawable/bg_selector_language">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|start"
android:layout_marginStart="16dp"
android:textColor="@color/black"
android:textSize="17sp"
tools:text="English" />
<ImageView
android:id="@+id/ivSelector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="24dp"
android:src="@drawable/bg_selector_circle"
tools:ignore="ContentDescription" />
</FrameLayout>
\ No newline at end of file
......@@ -62,4 +62,5 @@
<string name="check_app_update">Check app update</string>
<string name="version">"Version "</string>
<string name="no_qrcode">NO QRCode</string>
<string name="choose_language">Choose language</string>
</resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment