|
|
@@ -0,0 +1,73 @@
|
|
|
+package com.adealink.weparty.profile.country
|
|
|
+
|
|
|
+import android.app.Activity
|
|
|
+import android.content.Intent
|
|
|
+import androidx.activity.viewModels
|
|
|
+import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
+import com.adealink.frame.base.fastLazy
|
|
|
+import com.adealink.frame.mvvm.view.viewBinding
|
|
|
+import com.adealink.frame.router.annotation.RouterUri
|
|
|
+import com.adealink.weparty.commonui.BaseActivity
|
|
|
+import com.adealink.weparty.commonui.recycleview.adapter.multitype.MultiTypeAdapter
|
|
|
+import com.adealink.weparty.module.profile.Profile
|
|
|
+import com.adealink.weparty.profile.country.data.CountryData
|
|
|
+import com.adealink.weparty.profile.country.data.CountryItemData
|
|
|
+import com.adealink.weparty.profile.country.listener.ICountryItemListener
|
|
|
+import com.adealink.weparty.profile.country.manager.countryManager
|
|
|
+import com.adealink.weparty.profile.country.view.CountryItemViewBinder
|
|
|
+import com.adealink.weparty.profile.country.view.CountrySectionItemViewBinder
|
|
|
+import com.adealink.weparty.profile.country.viewmodel.CountryViewModel
|
|
|
+import com.adealink.weparty.profile.databinding.ActivityCountrySelectBinding
|
|
|
+import com.adealink.weparty.profile.viewmodel.ProfileViewModelFactory
|
|
|
+import com.qmuiteam.qmui.widget.util.QMUIStatusBarHelper
|
|
|
+
|
|
|
+/**
|
|
|
+ * 端内的国家选择页面,区分于SmsCountrySelectActivity
|
|
|
+ * Created by XiaoDongLin.
|
|
|
+ * Date: 2025/3/11
|
|
|
+ */
|
|
|
+@RouterUri(path = [Profile.CountrySelect.PATH], desc = "国家选择")
|
|
|
+class CountrySelectActivity : BaseActivity(), ICountryItemListener {
|
|
|
+ val binding by viewBinding(ActivityCountrySelectBinding::inflate)
|
|
|
+ private val listAdapter by fastLazy { MultiTypeAdapter() }
|
|
|
+ private val countryViewModel by viewModels<CountryViewModel> { ProfileViewModelFactory() }
|
|
|
+ private val source by fastLazy { intent.getStringExtra(Profile.CountrySelect.EXTRA_FROM) }
|
|
|
+
|
|
|
+ override fun initViews() {
|
|
|
+ QMUIStatusBarHelper.setStatusBarLightMode(this)
|
|
|
+ setContentView(binding.root)
|
|
|
+ listAdapter.register(CountryItemViewBinder(this))
|
|
|
+ binding.rvCountry.apply {
|
|
|
+ adapter = listAdapter
|
|
|
+ layoutManager = LinearLayoutManager(this@CountrySelectActivity)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun observeViewModel() {
|
|
|
+ countryViewModel.countryListLD.observe(this) {
|
|
|
+ val allCountryDataList = mutableListOf<CountryItemData>()
|
|
|
+ it.forEach { countryRes ->
|
|
|
+ val countryData = CountryData(
|
|
|
+ countryCode = countryRes.code,
|
|
|
+ nationFlag = countryRes.iconUrl,
|
|
|
+ country = countryManager.getCountryName(countryRes.code)
|
|
|
+ )
|
|
|
+ allCountryDataList.add(countryData)
|
|
|
+ }
|
|
|
+ listAdapter.items = allCountryDataList
|
|
|
+ listAdapter.notifyDataSetChanged()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun loadData() {
|
|
|
+ countryViewModel.getCountryList(true)
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onCountrySelect(countryData: CountryData) {
|
|
|
+ val intent = Intent()
|
|
|
+ intent.putExtra(Profile.CountrySelect.EXTRA_SELECTED_COUNTRY, countryData)
|
|
|
+ intent.putExtra(Profile.CountrySelect.EXTRA_FROM, source)
|
|
|
+ setResult(Activity.RESULT_OK, intent)
|
|
|
+ finish()
|
|
|
+ }
|
|
|
+}
|