From 194d27a6e71518ef24fde588aa1a6854e734692f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Sun, 25 Aug 2024 22:07:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E5=8F=91=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 21 ++-- .../android/app/model/SuggestAnchorData.kt | 2 +- .../android/app/ui/BlocklistActivity.kt | 1 + .../xuqinmin/android/app/ui/ChatActivity.kt | 11 ++ .../xuqinmin/android/app/ui/EditActivity.kt | 26 +++-- .../android/app/ui/FeedbackActivity.kt | 2 + .../android/app/ui/FriendsActivity.kt | 3 +- .../xuqinmin/android/app/ui/StartActivity.kt | 106 ++++++++++++++++++ .../android/app/ui/fragment/MeFragment.kt | 40 +++++++ .../xuqinmin/android/app/viewmodel/StartVM.kt | 88 +++++++++++++++ .../xuqinmin/android/app/viewmodel/VMEdit.kt | 3 + .../android/app/viewmodel/VMSuggestAnchor.kt | 2 +- app/src/main/res/layout/activity_chat.xml | 22 ++-- app/src/main/res/layout/activity_edit.xml | 2 +- app/src/main/res/layout/activity_start.xml | 40 +++++++ app/src/main/res/layout/dialog_report.xml | 32 +++--- app/src/main/res/layout/dialog_tags.xml | 1 + app/src/main/res/layout/fragment_me.xml | 96 +--------------- app/src/main/res/layout/item_friends.xml | 2 + app/src/main/res/layout/item_suggest.xml | 1 + app/src/main/res/layout/item_tag.xml | 8 +- app/src/main/res/mipmap-hdpi/icon.png | Bin 0 -> 14533 bytes app/src/main/res/mipmap-hdpi/start_bg.png | Bin 0 -> 15123 bytes app/src/main/res/mipmap-hdpi/start_bg2.png | Bin 0 -> 58919 bytes app/src/main/res/mipmap-mdpi/icon.png | Bin 0 -> 7095 bytes app/src/main/res/mipmap-mdpi/start_bg.png | Bin 0 -> 8125 bytes app/src/main/res/mipmap-mdpi/start_bg2.png | Bin 0 -> 34279 bytes app/src/main/res/mipmap-xhdpi/icon.png | Bin 0 -> 18820 bytes app/src/main/res/mipmap-xhdpi/start_bg.png | Bin 0 -> 23793 bytes app/src/main/res/mipmap-xhdpi/start_bg2.png | Bin 0 -> 78065 bytes app/src/main/res/mipmap-xxhdpi/icon.png | Bin 0 -> 39465 bytes app/src/main/res/mipmap-xxhdpi/start_bg.png | Bin 0 -> 45569 bytes app/src/main/res/mipmap-xxhdpi/start_bg2.png | Bin 0 -> 183447 bytes app/src/main/res/mipmap-xxxhdpi/icon.png | Bin 0 -> 54297 bytes app/src/main/res/mipmap-xxxhdpi/start_bg.png | Bin 0 -> 52440 bytes app/src/main/res/mipmap-xxxhdpi/start_bg2.png | Bin 0 -> 211192 bytes config.gradle | 4 +- settings.gradle | 1 + 38 files changed, 368 insertions(+), 146 deletions(-) create mode 100644 app/src/main/java/com/xuqinmin/android/app/ui/StartActivity.kt create mode 100644 app/src/main/java/com/xuqinmin/android/app/viewmodel/StartVM.kt create mode 100644 app/src/main/res/layout/activity_start.xml create mode 100644 app/src/main/res/mipmap-hdpi/icon.png create mode 100644 app/src/main/res/mipmap-hdpi/start_bg.png create mode 100644 app/src/main/res/mipmap-hdpi/start_bg2.png create mode 100644 app/src/main/res/mipmap-mdpi/icon.png create mode 100644 app/src/main/res/mipmap-mdpi/start_bg.png create mode 100644 app/src/main/res/mipmap-mdpi/start_bg2.png create mode 100644 app/src/main/res/mipmap-xhdpi/icon.png create mode 100644 app/src/main/res/mipmap-xhdpi/start_bg.png create mode 100644 app/src/main/res/mipmap-xhdpi/start_bg2.png create mode 100644 app/src/main/res/mipmap-xxhdpi/icon.png create mode 100644 app/src/main/res/mipmap-xxhdpi/start_bg.png create mode 100644 app/src/main/res/mipmap-xxhdpi/start_bg2.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/icon.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/start_bg.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/start_bg2.png diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7f2abe8..b7d5282 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,6 +34,16 @@ android:theme="@style/AppTheme" android:usesCleartextTraffic="true" tools:replace="android:label"> + + + + + + + @@ -43,8 +53,7 @@ + android:windowSoftInputMode="adjustNothing" /> @@ -85,13 +94,7 @@ - - - - - - + android:screenOrientation="portrait"/> () { binding.startVideo2.gone() binding.msgStartVideo.gone() binding.more.gone() + binding.sendGift.gone() + binding.chatTop.gone() } } @@ -276,6 +279,13 @@ class ChatActivity : BaseActivity() { } vm.resultInfo.observe(this) { adapter1.setmDatas(it.labels) + if (it.labels.isEmpty()) { + binding.tags2.gone() + binding.line.gone() + } else { + binding.line.visible() + binding.tags2.visible() + } } binding.title.text = toUser?.nickname @@ -286,6 +296,7 @@ class ChatActivity : BaseActivity() { ImageHelper.load(binding.avatar, toUser?.avatar) ImageHelper.load(binding.avatar3, toUser?.avatar) + ImageHelper.load(binding.head, toUser?.avatar) val color = when (toUser?.online) { 0 -> Color.parseColor("#FFB9BECC") 1 -> Color.parseColor("#FF26D526") diff --git a/app/src/main/java/com/xuqinmin/android/app/ui/EditActivity.kt b/app/src/main/java/com/xuqinmin/android/app/ui/EditActivity.kt index d94f7fc..2219eb2 100644 --- a/app/src/main/java/com/xuqinmin/android/app/ui/EditActivity.kt +++ b/app/src/main/java/com/xuqinmin/android/app/ui/EditActivity.kt @@ -102,14 +102,14 @@ class EditActivity : BaseActivity() { binding.birthday.text = value } } - binding.genderRoot.setOnClickListener { - AlertView( - "Choose Gender", "", "Cancel", arrayOf("Male", "Female"), null, mContext, - AlertView.Style.ActionSheet - ) { _, position -> - binding.gender.text = if (position == 0) "Male" else "Female" - }.show() - } +// binding.genderRoot.setOnClickListener { +// AlertView( +// "Gender(Unchangeable)", "", "Cancel", arrayOf("Male", "Female"), null, mContext, +// AlertView.Style.ActionSheet +// ) { _, position -> +// binding.gender.text = if (position == 0) "Male" else "Female" +// }.show() +// } binding.save.setOnClickListener { LoadingDialog.showDialog("") val g = binding.gender.text.toString() @@ -170,8 +170,10 @@ class EditActivity : BaseActivity() { R.mipmap.avatar_upload, it.headImage ?: R.mipmap.avatar_upload ) + vm.setAvatar(it.headImage) binding.name.setText(it.nickname) binding.birthday.text = it.age + binding.signature.setText(it.signature) if (!it.country.isNullOrBlank()) { country = it.country binding.country.text = CountryHelper.getCountryName(it.country) @@ -182,9 +184,11 @@ class EditActivity : BaseActivity() { vm.status_sgin.observe(this) { LoadingDialog.dismissDialog() - it?.also { - ImageHelper.load(binding.avatar, it) - } + ImageHelper.load( + binding.avatar, + R.mipmap.avatar_upload, + it ?: R.mipmap.avatar_upload + ) } vm.result.observe(this) { LoadingDialog.dismissDialog() diff --git a/app/src/main/java/com/xuqinmin/android/app/ui/FeedbackActivity.kt b/app/src/main/java/com/xuqinmin/android/app/ui/FeedbackActivity.kt index 78aa7a9..5b81dc1 100644 --- a/app/src/main/java/com/xuqinmin/android/app/ui/FeedbackActivity.kt +++ b/app/src/main/java/com/xuqinmin/android/app/ui/FeedbackActivity.kt @@ -2,6 +2,7 @@ package com.xuqinmin.android.app.ui import android.os.Bundle import androidx.activity.viewModels +import com.xuqinmin.android.app.BuildConfig import com.xuqinmin.android.app.R import com.xuqinmin.android.app.databinding.ActivityFeedbackBinding import com.xuqinmin.android.app.viewmodel.VMFeedback @@ -29,6 +30,7 @@ class FeedbackActivity : BaseActivity() { LoadingDialog.showDialog("") vm.feedback(t, binding.titleEmail.text.toString()) } + binding.name.text = "${BuildConfig.APP_Name} Team" } override fun initData() { diff --git a/app/src/main/java/com/xuqinmin/android/app/ui/FriendsActivity.kt b/app/src/main/java/com/xuqinmin/android/app/ui/FriendsActivity.kt index 11c6bb2..4ca9aa4 100644 --- a/app/src/main/java/com/xuqinmin/android/app/ui/FriendsActivity.kt +++ b/app/src/main/java/com/xuqinmin/android/app/ui/FriendsActivity.kt @@ -61,6 +61,7 @@ class FriendsActivity : clipToOutline = true outlineProvider = CircleProvider } + holder.setImage(R.id.avatar, item.headImage) holder.setBackgroundColor( R.id.status, when (item.online) { @@ -71,7 +72,7 @@ class FriendsActivity : ) holder.setBackgroundResource( R.id.btn, - if (item.status == 0) R.drawable.bg_cfd4e0_25 else R.drawable.bg_ff02a7_25 + if (item.status == 0) R.drawable.bg_ff02a7_25 else R.drawable.bg_cfd4e0_25 ) holder.setText( R.id.btn, if (viewModel.type == 0) "Unfollow" else { diff --git a/app/src/main/java/com/xuqinmin/android/app/ui/StartActivity.kt b/app/src/main/java/com/xuqinmin/android/app/ui/StartActivity.kt new file mode 100644 index 0000000..a3ce562 --- /dev/null +++ b/app/src/main/java/com/xuqinmin/android/app/ui/StartActivity.kt @@ -0,0 +1,106 @@ +package com.xuqinmin.android.app.ui; + +import android.content.Intent +import android.os.Bundle +import android.telephony.TelephonyManager +import androidx.activity.viewModels +import com.xuqinmin.android.app.MyApplication +import com.xuqinmin.android.app.R +import com.xuqinmin.android.app.common.DEVICE_ID +import com.xuqinmin.android.app.common.GOOGLE_ID +import com.xuqinmin.android.app.common.MCC +import com.xuqinmin.android.app.databinding.ActivityStartBinding +import com.xuqinmin.android.app.model.DataLogin +import com.xuqinmin.android.app.viewmodel.StartVM +import com.xuqm.base.common.AppManager +import com.xuqm.base.common.DeviceUuidFactory +import com.xuqm.base.common.GsonImplHelp +import com.xuqm.base.common.SHARE_LOGIN_OBJ +import com.xuqm.base.common.SHARE_UESR_ID +import com.xuqm.base.common.SHARE_UESR_TOKEN +import com.xuqm.base.common.ToolsHelper +import com.xuqm.base.dialog.loading.LoadingDialog +import com.xuqm.base.extensions.getStringForPreferences +import com.xuqm.base.extensions.putInt +import com.xuqm.base.extensions.putString +import com.xuqm.base.extensions.showMessage +import com.xuqm.base.ui.BaseActivity + +class StartActivity : BaseActivity() { + + override fun getLayoutId(): Int = R.layout.activity_start + + + override fun fullscreen(): Boolean = true + + private val vm: StartVM by viewModels() + override fun initView(savedInstanceState: Bundle?) { + super.initView(savedInstanceState) + AppManager.getInstance().logout() + } + + override fun initData() { + super.initData() + val telManager = getSystemService(TELEPHONY_SERVICE) as TelephonyManager + val simOperator = telManager.simOperator + putString(DEVICE_ID, DeviceUuidFactory(mContext).deviceUuid.toString()) +// putString(DEVICE_ID, DeviceUuidFactory(mContext).deviceUuid.toString()+"test111_"+ Random(2).toString()) + putString( + MCC, if (telManager.simState == TelephonyManager.SIM_STATE_READY) simOperator.substring( + 0, 3 + ) else "-1" + ) + + vm.result.observe(this) { + it?.also { + MyApplication.modelInit = it + } + val stringForPreferences = getStringForPreferences(SHARE_LOGIN_OBJ) + if (stringForPreferences.isNotEmpty()) { + LoadingDialog.showDialog("") + val googleId = getStringForPreferences(GOOGLE_ID) + vm.thirdLogin( + DataLogin( + getStringForPreferences(DEVICE_ID), + if (ToolsHelper.isNull(googleId)) getStringForPreferences(DEVICE_ID) else googleId, + if (ToolsHelper.isNull(googleId)) 0 else 2 + ) + ) + } else { + startActivity(Intent(mContext, WelcomeActivity::class.java)) + } + } + vm.resultLogin.observe(this) { + LoadingDialog.dismissDialog() + if (it == null) { + "Login failed, please try again later.".showMessage() + } else { + MyApplication.modelHideIn = it + putString(SHARE_LOGIN_OBJ, GsonImplHelp.get().toJson(it)) + putString(SHARE_UESR_TOKEN, it.token) + putInt(SHARE_UESR_ID, it.userId) + if (it.isInfo == 0) { + startActivity( + Intent( + mContext, RegisterActivity::class.java + ) + ) + } else { + goToMain() + } + } + } + vm.init() + + } + + private fun goToMain() { + startActivity( + Intent( + mContext, MainActivity::class.java + ) + ) + mContext.finish() + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/xuqinmin/android/app/ui/fragment/MeFragment.kt b/app/src/main/java/com/xuqinmin/android/app/ui/fragment/MeFragment.kt index cc57573..8f99ea2 100644 --- a/app/src/main/java/com/xuqinmin/android/app/ui/fragment/MeFragment.kt +++ b/app/src/main/java/com/xuqinmin/android/app/ui/fragment/MeFragment.kt @@ -1,12 +1,16 @@ package com.xuqinmin.android.app.ui.fragment import android.content.Intent +import android.graphics.Color +import android.widget.LinearLayout import androidx.fragment.app.viewModels import com.oikawaii.library.outline.CircleProvider +import com.oikawaii.library.outline.FilletProvider import com.xuqinmin.android.app.MyApplication import com.xuqinmin.android.app.R import com.xuqinmin.android.app.databinding.FragmentMeBinding import com.xuqinmin.android.app.model.Balance +import com.xuqinmin.android.app.model.Label import com.xuqinmin.android.app.ui.BlocklistActivity import com.xuqinmin.android.app.ui.CoinStoreActivity import com.xuqinmin.android.app.ui.EditActivity @@ -14,9 +18,17 @@ import com.xuqinmin.android.app.ui.FeedbackActivity import com.xuqinmin.android.app.ui.FriendsActivity import com.xuqinmin.android.app.ui.SettingActivity import com.xuqinmin.android.app.viewmodel.VMMe +import com.xuqm.base.adapter.CommonAdapter +import com.xuqm.base.adapter.ViewHolder +import com.xuqm.base.common.DimensHelper import com.xuqm.base.common.ImageHelper import com.xuqm.base.extensions.showMessage import com.xuqm.base.ui.BaseFragment +import com.xuqm.sdhbwfu.core.extensions.gone +import com.xuqm.sdhbwfu.core.extensions.linearLayoutManagerForHorizontal +import com.xuqm.sdhbwfu.core.extensions.loge +import com.xuqm.sdhbwfu.core.extensions.visibility +import com.xuqm.sdhbwfu.core.extensions.visible import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -24,6 +36,7 @@ import org.greenrobot.eventbus.ThreadMode class MeFragment : BaseFragment() { override fun getLayoutId(): Int = R.layout.fragment_me private val vm: VMMe by viewModels() +// private var labels: List