honghengqiang 3 lat temu
rodzic
commit
8e2180798f

+ 3 - 0
.idea/misc.xml

@@ -57,6 +57,7 @@
         <entry key="baseswago/src/main/res/layout/layout_off_line.xml" value="0.3619791666666667" />
         <entry key="baseswago/src/main/res/layout/layout_off_line.xml" value="0.3619791666666667" />
         <entry key="baseswago/src/main/res/layout/layout_refresh.xml" value="0.303125" />
         <entry key="baseswago/src/main/res/layout/layout_refresh.xml" value="0.303125" />
         <entry key="baseswago/src/main/res/layout/layout_toolbar.xml" value="0.36302083333333335" />
         <entry key="baseswago/src/main/res/layout/layout_toolbar.xml" value="0.36302083333333335" />
+        <entry key="baseswago/src/main/res/layout/layout_xing_zuo.xml" value="0.3020833333333333" />
         <entry key="baseswago/src/main/res/layout/view_swago_level.xml" value="0.75" />
         <entry key="baseswago/src/main/res/layout/view_swago_level.xml" value="0.75" />
         <entry key="home/src/main/res/drawable/selector_home.xml" value="0.3932291666666667" />
         <entry key="home/src/main/res/drawable/selector_home.xml" value="0.3932291666666667" />
         <entry key="home/src/main/res/drawable/selector_message.xml" value="0.4078125" />
         <entry key="home/src/main/res/drawable/selector_message.xml" value="0.4078125" />
@@ -114,6 +115,7 @@
         <entry key="room/src/main/res/layout/item_room_user.xml" value="0.3446557971014493" />
         <entry key="room/src/main/res/layout/item_room_user.xml" value="0.3446557971014493" />
         <entry key="room/src/main/res/layout/layout_anchor_footer_view.xml" value="0.35688405797101447" />
         <entry key="room/src/main/res/layout/layout_anchor_footer_view.xml" value="0.35688405797101447" />
         <entry key="room/src/main/res/layout/layout_anchor_header_view.xml" value="0.33" />
         <entry key="room/src/main/res/layout/layout_anchor_header_view.xml" value="0.33" />
+        <entry key="room/src/main/res/layout/layout_svg_dan_dao_view.xml" value="0.36302083333333335" />
         <entry key="room/src/main/res/layout/layout_user_footer_view.xml" value="0.35688405797101447" />
         <entry key="room/src/main/res/layout/layout_user_footer_view.xml" value="0.35688405797101447" />
         <entry key="room/src/main/res/layout/layout_user_header_view.xml" value="0.3776041666666667" />
         <entry key="room/src/main/res/layout/layout_user_header_view.xml" value="0.3776041666666667" />
         <entry key="room/src/main/res/layout/layout_user_room.xml" value="0.3776041666666667" />
         <entry key="room/src/main/res/layout/layout_user_room.xml" value="0.3776041666666667" />
@@ -161,6 +163,7 @@
         <entry key="user/src/main/res/layout/item_recharge.xml" value="0.39166666666666666" />
         <entry key="user/src/main/res/layout/item_recharge.xml" value="0.39166666666666666" />
         <entry key="user/src/main/res/layout/item_room_black.xml" value="0.36302083333333335" />
         <entry key="user/src/main/res/layout/item_room_black.xml" value="0.36302083333333335" />
         <entry key="user/src/main/res/layout/item_task.xml" value="0.25" />
         <entry key="user/src/main/res/layout/item_task.xml" value="0.25" />
+        <entry key="user/src/main/res/layout/item_xing_zuo.xml" value="0.3020833333333333" />
         <entry key="user/src/main/res/layout/layout_list.xml" value="0.39166666666666666" />
         <entry key="user/src/main/res/layout/layout_list.xml" value="0.39166666666666666" />
       </map>
       </map>
     </option>
     </option>

+ 1 - 1
app/build.gradle

@@ -15,7 +15,7 @@ android {
         applicationId "com.swago.app"
         applicationId "com.swago.app"
         minSdkVersion 21
         minSdkVersion 21
         targetSdkVersion 30
         targetSdkVersion 30
-        versionCode 6
+        versionCode 105
         versionName "1.0.5"
         versionName "1.0.5"
         multiDexEnabled true
         multiDexEnabled true
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

+ 22 - 11
baseswago/src/main/java/com/swago/baseswago/constant/UrlConstant.kt

@@ -1,5 +1,6 @@
 package com.swago.baseswago.constant
 package com.swago.baseswago.constant
 
 
+import com.swago.baseswago.BuildConfig
 import com.swago.baseswago.util.AppContext
 import com.swago.baseswago.util.AppContext
 import java.io.File
 import java.io.File
 
 
@@ -9,17 +10,27 @@ import java.io.File
  */
  */
 object UrlConstant {
 object UrlConstant {
 
 
-    const val BASE_URL = "http:test-api.swago.cn"
-//    const val  BASE_URL = "http://www.swago.cn"
-
-
-    const val USER_AGREEMENT = "http://www.swago.cn/userAgreement.html"
-
-
-    const val USER_PRIVACY = "http://www.swago.cn/privacyAgreement.html"
-
-    const val TOP_UP = "http://swago-h5.codedreamit.com/recharge/detail"
-    const val WITHDRAW = "http://swago-h5.codedreamit.com/withdrawal"
+    val BASE_URL by lazy {
+        if (BuildConfig.DEBUG) {
+            "http:test-api.swago.cn"
+        } else {
+            "https://pro-api.swago.cn"
+        }
+    }
+
+    val BASE_WEB_URL by lazy {
+        if (BuildConfig.DEBUG) {
+            "http://swago-h5.codedreamit.com"
+        } else {
+            "http://h5.swago.cn"
+        }
+    }
+
+    const val USER_AGREEMENT = "https://pro-api.swago.cn/userAgreement.html"
+    const val USER_PRIVACY = "https://pro-api.swago.cn/privacyAgreement.html"
+
+    val TOP_UP = "${BASE_WEB_URL}/recharge/detail"
+    val WITHDRAW = "${BASE_WEB_URL}/withdrawal"
 
 
 
 
     var appGameRootPath =
     var appGameRootPath =

+ 22 - 0
baseswago/src/main/res/layout/layout_xing_zuo.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:background="@drawable/shape_white_top_20"
+        app:layout_constraintTop_toTopOf="parent"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/recyclerView"
+            app:layout_constraintTop_toTopOf="parent"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"/>
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 0
baseswago/src/main/res/values-in/strings.xml

@@ -94,6 +94,7 @@
     <string name="facebook_google_login">Metode masuk lainnya</string>
     <string name="facebook_google_login">Metode masuk lainnya</string>
     <string name="google_service_error">Ada masalah dengan layanan Google Anda</string>
     <string name="google_service_error">Ada masalah dengan layanan Google Anda</string>
     <string name="big_gift_msg">%s memberikan %s kepada %s, yang sangat membanggakan!</string>
     <string name="big_gift_msg">%s memberikan %s kepada %s, yang sangat membanggakan!</string>
+    <string name="big_gift">%s memberikan %s kepada %s</string>
     <string name="balance">Saldo: </string>
     <string name="balance">Saldo: </string>
     <string name="login_anthor_device">Akun Anda sudah masuk di perangkat lain</string>
     <string name="login_anthor_device">Akun Anda sudah masuk di perangkat lain</string>
     <string name="lucky">Lucky</string>
     <string name="lucky">Lucky</string>

+ 1 - 0
baseswago/src/main/res/values-zh/strings.xml

@@ -94,6 +94,7 @@
     <string name="facebook_google_login">其他登录方式</string>
     <string name="facebook_google_login">其他登录方式</string>
     <string name="google_service_error">您的谷歌服务存在问题</string>
     <string name="google_service_error">您的谷歌服务存在问题</string>
     <string name="big_gift_msg">%s赠送了一个%s给%s,真是豪气冲天!</string>
     <string name="big_gift_msg">%s赠送了一个%s给%s,真是豪气冲天!</string>
+    <string name="big_gift">%s赠送了一个%s给%s</string>
     <string name="balance">余额:</string>
     <string name="balance">余额:</string>
     <string name="login_anthor_device">您的账号已在另一台设备上登录</string>
     <string name="login_anthor_device">您的账号已在另一台设备上登录</string>
     <string name="lucky">幸运</string>
     <string name="lucky">幸运</string>

+ 1 - 0
baseswago/src/main/res/values/strings.xml

@@ -99,6 +99,7 @@
     <string name="facebook_google_login">Other login methods</string>
     <string name="facebook_google_login">Other login methods</string>
     <string name="google_service_error">There is a problem with your Google service</string>
     <string name="google_service_error">There is a problem with your Google service</string>
     <string name="big_gift_msg">%s gave a %s to %s, which is so proud!</string>
     <string name="big_gift_msg">%s gave a %s to %s, which is so proud!</string>
+    <string name="big_gift">%s gave a %s to %s</string>
     <string name="balance">Balance: </string>
     <string name="balance">Balance: </string>
     <string name="login_anthor_device">Your account is already logged in on another device</string>
     <string name="login_anthor_device">Your account is already logged in on another device</string>
     <string name="lucky">Lucky</string>
     <string name="lucky">Lucky</string>

+ 2 - 1
room/src/main/java/com/swago/room/base/BaseComFragment.kt

@@ -125,7 +125,7 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
         binding.rv.adapter = chatAdapter
         binding.rv.adapter = chatAdapter
         chatAdapter.setNewData(dataChatList)
         chatAdapter.setNewData(dataChatList)
         context?.let {
         context?.let {
-            svgPlayerManager.init(it, binding.xSvgaPlayer)
+            svgPlayerManager.init(it, binding.xSvgaPlayer,binding.svgDanDaoView)
         }
         }
 
 
         activity?.let {
         activity?.let {
@@ -180,6 +180,7 @@ abstract class BaseComFragment<T : FragmentBaseComBinding> : BaseXFragment<T>(),
         msgVm.playSvgUrl = {
         msgVm.playSvgUrl = {
             //svg播放
             //svg播放
             svgPlayerManager.addSvgUrl(it)
             svgPlayerManager.addSvgUrl(it)
+            svgPlayerManager.addSvgDanDaoView(it)
         }
         }
         //飘条
         //飘条
         msgVm.waftFun = {
         msgVm.waftFun = {

+ 1 - 1
room/src/main/java/com/swago/room/game/GamePlayDialog.kt

@@ -49,7 +49,7 @@ class GamePlayDialog : BaseXDFragment<DialogGamePlayBinding>(),IRoomActiveListen
     }
     }
 
 
     init {
     init {
-        setCanCancel(true)
+        setCanCancel(false)
         setGravity(Gravity.BOTTOM)
         setGravity(Gravity.BOTTOM)
         setDimAmount(0f)
         setDimAmount(0f)
     }
     }

+ 110 - 0
room/src/main/java/com/swago/room/gift/control/SvgDanDaoView.kt

@@ -0,0 +1,110 @@
+package com.swago.room.gift.control
+
+import android.animation.Animator
+import android.animation.AnimatorSet
+import android.animation.ObjectAnimator
+import android.animation.ValueAnimator
+import android.content.Context
+import android.text.Html
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.view.View
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.bumptech.glide.Glide
+import com.swago.baseswago.model.live.gift.IMGiftModel
+import com.swago.baseswago.util.AppContext
+import com.swago.room.R
+import com.swago.room.databinding.LayoutSvgDanDaoViewBinding
+import java.util.*
+
+/**
+ *@date 2022/2/24 10:33
+ *description:
+ */
+class SvgDanDaoView : ConstraintLayout {
+
+    private var binding: LayoutSvgDanDaoViewBinding? = null
+    private val imGiftModelList = LinkedList<IMGiftModel>()
+    var isBusy = false
+    private var animatorSet: AnimatorSet? = null
+
+
+    constructor(context: Context) : super(context)
+    constructor(context: Context, mAttributeSet: AttributeSet?) : super(context, mAttributeSet) {
+        initView(context)
+    }
+
+    private fun initView(context: Context) {
+        binding = LayoutSvgDanDaoViewBinding.inflate(LayoutInflater.from(context), this, true)
+    }
+
+
+    fun addData(imGiftModel: IMGiftModel) {
+        isBusy = true
+        imGiftModelList.add(imGiftModel)
+        if (animatorSet?.isRunning != true) {
+            loopNextWaft()
+        }
+    }
+
+    private fun loopNextWaft() {
+        binding?.apply {
+            if (imGiftModelList.isEmpty()) {
+                isBusy = false
+                return
+            }
+            val next = imGiftModelList.pop()
+            Glide.with(context).load(next.senderAvatar)
+                .into(ivAvatar)
+            val sendName = "<font color='#FFDB43'>${next.senderName}</font>"
+            val giftName = "<font color='#FFDB43'>${next.giftName}</font>"
+            val receiverName = "<font color='#FFDB43'>${next.receiverName}</font>"
+            marqueeTextView.text = Html.fromHtml(
+                AppContext.getContext().resources.getString(R.string.big_gift)
+                    .format(sendName, giftName, receiverName)
+            )
+            marqueeTextView.post {
+                marqueeTextView.startScroll()
+            }
+            animatorSet = createAnim(cl)
+            animatorSet?.start()
+        }
+    }
+
+    private fun createAnim(cl: ConstraintLayout): AnimatorSet {
+        cl.visibility = View.VISIBLE
+        val stayAnimal = ValueAnimator.ofFloat(1f, 0f)
+        stayAnimal.duration = 4500
+        val innerAnimatorSet = AnimatorSet()
+        innerAnimatorSet.play(stayAnimal)
+
+        innerAnimatorSet.addListener(object : Animator.AnimatorListener {
+            override fun onAnimationRepeat(animation: Animator?) {
+            }
+
+            override fun onAnimationEnd(animation: Animator?) {
+                binding?.marqueeTextView?.stopScroll()
+                cl.visibility = View.GONE
+                animatorSet = null
+                loopNextWaft()
+            }
+
+            override fun onAnimationCancel(animation: Animator?) {
+            }
+
+            override fun onAnimationStart(animation: Animator?) {
+            }
+        })
+
+        return innerAnimatorSet
+    }
+
+
+    fun clear() {
+        binding?.cl?.visibility = View.GONE
+        imGiftModelList.clear()
+        animatorSet = null
+
+    }
+
+}

+ 10 - 1
room/src/main/java/com/swago/room/gift/control/SvgPlayerManager.kt

@@ -17,10 +17,12 @@ class SvgPlayerManager : IRoomActiveListener {
 
 
     private val svgListQueue = LinkedList<IMGiftModel>()
     private val svgListQueue = LinkedList<IMGiftModel>()
     private var xSvgPlayer: XSvgPlayer? = null
     private var xSvgPlayer: XSvgPlayer? = null
+    private var svgDanDaoView: SvgDanDaoView? = null
 
 
-    fun init(context: Context, xSvgPlayer: XSvgPlayer) {
+    fun init(context: Context, xSvgPlayer: XSvgPlayer,svgDanDaoView: SvgDanDaoView) {
         SVGAParser.shareParser().init(context)
         SVGAParser.shareParser().init(context)
         this.xSvgPlayer = xSvgPlayer
         this.xSvgPlayer = xSvgPlayer
+        this.svgDanDaoView = svgDanDaoView
         SwagoRoomManager.addListener(this)
         SwagoRoomManager.addListener(this)
 
 
         this.xSvgPlayer?.nextSvgPlay = {
         this.xSvgPlayer?.nextSvgPlay = {
@@ -45,11 +47,13 @@ class SvgPlayerManager : IRoomActiveListener {
     override fun changeRoom(iRoomInfo: IRoomInfo) {
     override fun changeRoom(iRoomInfo: IRoomInfo) {
         svgListQueue.clear()
         svgListQueue.clear()
         xSvgPlayer?.clear()
         xSvgPlayer?.clear()
+        svgDanDaoView?.clear()
     }
     }
 
 
     override fun leaveRoom(iRoomInfo: IRoomInfo) {
     override fun leaveRoom(iRoomInfo: IRoomInfo) {
         svgListQueue.clear()
         svgListQueue.clear()
         xSvgPlayer?.clear()
         xSvgPlayer?.clear()
+        svgDanDaoView?.clear()
     }
     }
 
 
     override fun joinedRoom(iRoomInfo: IRoomInfo) {
     override fun joinedRoom(iRoomInfo: IRoomInfo) {
@@ -63,10 +67,15 @@ class SvgPlayerManager : IRoomActiveListener {
     override fun closeRoomed() {
     override fun closeRoomed() {
         svgListQueue.clear()
         svgListQueue.clear()
         xSvgPlayer?.clear()
         xSvgPlayer?.clear()
+        svgDanDaoView?.clear()
         SwagoRoomManager.removeListener(this)
         SwagoRoomManager.removeListener(this)
     }
     }
 
 
 
 
+    fun addSvgDanDaoView(imGiftModel: IMGiftModel){
+        svgDanDaoView?.addData(imGiftModel)
+    }
+
     fun addSvgUrl(imGiftModel: IMGiftModel?) {
     fun addSvgUrl(imGiftModel: IMGiftModel?) {
         LogUtil.d("SvgPlayerManager","数据")
         LogUtil.d("SvgPlayerManager","数据")
         imGiftModel?.let {
         imGiftModel?.let {

+ 10 - 0
room/src/main/res/layout/fragment_base_com.xml

@@ -86,6 +86,16 @@
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="match_parent"/>
         android:layout_height="match_parent"/>
 
 
+
+    <com.swago.room.gift.control.SvgDanDaoView
+        android:id="@+id/svgDanDaoView"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        android:layout_marginTop="140dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
     <com.swago.room.piaotiao.WaftView
     <com.swago.room.piaotiao.WaftView
         android:id="@+id/waftView"
         android:id="@+id/waftView"
         android:layout_marginTop="60dp"
         android:layout_marginTop="60dp"

+ 44 - 0
room/src/main/res/layout/layout_svg_dan_dao_view.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:id="@+id/cl"
+    android:visibility="gone"
+    tools:visibility="visible"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <ImageView
+        android:id="@+id/iv"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        android:src="@mipmap/bg_svg_dan_dao"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
+    <de.hdodenhof.circleimageview.CircleImageView
+        android:id="@+id/ivAvatar"
+        android:layout_marginStart="27dp"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/iv"
+        app:layout_constraintBottom_toBottomOf="@+id/iv"
+        android:layout_width="20dp"
+        android:layout_height="20dp"/>
+
+    <com.swago.room.widget.MarqueeTextView
+        android:id="@+id/marqueeTextView"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toEndOf="@+id/ivAvatar"
+        android:layout_marginStart="5dp"
+        android:layout_width="200dp"
+        android:layout_height="wrap_content"
+        android:textSize="14dp"
+        tools:text="ddddd"
+        android:layout_gravity="center"
+        android:textColor="@color/white"
+        app:scroll_first_delay="1000"
+        app:scroll_interval="6000"
+        app:scroll_mode="mode_forever"/>
+
+</androidx.constraintlayout.widget.ConstraintLayout>

BIN
room/src/main/res/mipmap-xxhdpi/bg_svg_dan_dao.webp


+ 21 - 19
user/src/main/java/com/swago/user/EditInfoActivity.kt

@@ -20,6 +20,7 @@ import com.swago.baseswago.util.NoDoubleClickListener
 import com.swago.baseswago.util.UserInfo
 import com.swago.baseswago.util.UserInfo
 import com.swago.lib_country_picker.Country
 import com.swago.lib_country_picker.Country
 import com.swago.user.databinding.ActivityUserEditBinding
 import com.swago.user.databinding.ActivityUserEditBinding
+import com.swago.user.dialog.XingZuoDialog
 import top.zibin.luban.Luban
 import top.zibin.luban.Luban
 import top.zibin.luban.OnCompressListener
 import top.zibin.luban.OnCompressListener
 import java.io.File
 import java.io.File
@@ -47,6 +48,8 @@ class EditInfoActivity : BaseXActivity<ActivityUserEditBinding>() {
 
 
     }
     }
 
 
+    private var dialog : XingZuoDialog? =null
+
     override fun initOther() {
     override fun initOther() {
         setBackView(binding.toolbar.ivBack)
         setBackView(binding.toolbar.ivBack)
         binding.toolbar.tvTitle.text = AppContext.getContext().resources.getString(R.string.edit_profile)
         binding.toolbar.tvTitle.text = AppContext.getContext().resources.getString(R.string.edit_profile)
@@ -64,7 +67,7 @@ class EditInfoActivity : BaseXActivity<ActivityUserEditBinding>() {
             binding.etName.setText(it.user_name)
             binding.etName.setText(it.user_name)
             binding.etAge.setText(it.user_age)
             binding.etAge.setText(it.user_age)
             binding.etSign.setText(it.user_signature)
             binding.etSign.setText(it.user_signature)
-            binding.etConstellation.setText(it.user_constellation)
+            binding.tvConstellation.text = it.user_constellation
             binding.tvCountry.text = it.user_country
             binding.tvCountry.text = it.user_country
             if (it.user_sex == 0){
             if (it.user_sex == 0){
                 binding.tvSex.text = AppContext.getContext().resources.getString(R.string.male)
                 binding.tvSex.text = AppContext.getContext().resources.getString(R.string.male)
@@ -104,20 +107,6 @@ class EditInfoActivity : BaseXActivity<ActivityUserEditBinding>() {
         })
         })
 
 
 
 
-        binding.etConstellation.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?) {
-                constellation =binding.etConstellation.text.toString()
-            }
-
-        })
-
-
         binding.etSign.addTextChangedListener(object:TextWatcher{
         binding.etSign.addTextChangedListener(object:TextWatcher{
             override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
             override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
             }
             }
@@ -150,6 +139,18 @@ class EditInfoActivity : BaseXActivity<ActivityUserEditBinding>() {
                 startActivityForResult(Intent(this@EditInfoActivity,CountryActivity::class.java),111)
                 startActivityForResult(Intent(this@EditInfoActivity,CountryActivity::class.java),111)
             }
             }
         })
         })
+        binding.clConstellation.setOnClickListener(object:NoDoubleClickListener(){
+            override fun onClick() {
+                if (dialog == null){
+                    dialog = XingZuoDialog.newInstance()
+                    dialog?.callback = {
+                        constellation = it
+                        binding.tvConstellation.text = it
+                    }
+                }
+                dialog?.show(supportFragmentManager,"XingZuoDialog")
+            }
+        })
 
 
 
 
         binding.tvSave.setOnClickListener(object : NoDoubleClickListener() {
         binding.tvSave.setOnClickListener(object : NoDoubleClickListener() {
@@ -211,14 +212,15 @@ class EditInfoActivity : BaseXActivity<ActivityUserEditBinding>() {
     }
     }
 
 
     override fun initLiveData() {
     override fun initLiveData() {
-        userVm.modifyInfoLiveData.observe(this,{
+        userVm.modifyInfoLiveData.observe(this) {
             Toast.makeText(AppContext.getContext(), "Modify Success", Toast.LENGTH_SHORT).show()
             Toast.makeText(AppContext.getContext(), "Modify Success", Toast.LENGTH_SHORT).show()
-        })
+            finish()
+        }
 
 
-        userVm.uploadPicUrlLiveData.observe(this,{
+        userVm.uploadPicUrlLiveData.observe(this) {
             imageUrl = it.path
             imageUrl = it.path
             Toast.makeText(AppContext.getContext(), "Upload Success", Toast.LENGTH_SHORT).show()
             Toast.makeText(AppContext.getContext(), "Upload Success", Toast.LENGTH_SHORT).show()
-        })
+        }
     }
     }
 
 
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

+ 17 - 0
user/src/main/java/com/swago/user/adapter/XingZuoAdapter.kt

@@ -0,0 +1,17 @@
+package com.swago.user.adapter
+
+import com.chad.library.adapter.base.BaseQuickAdapter
+import com.chad.library.adapter.base.BaseViewHolder
+import com.swago.user.R
+
+/**
+ *@date 2022/2/24 20:30
+ *description:
+ */
+class XingZuoAdapter: BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_xing_zuo, arrayListOf()) {
+    override fun convert(helper: BaseViewHolder?, item: String) {
+        helper?.apply {
+            setText(R.id.tv,item)
+        }
+    }
+}

+ 54 - 0
user/src/main/java/com/swago/user/dialog/XingZuoDialog.kt

@@ -0,0 +1,54 @@
+package com.swago.user.dialog
+
+import android.os.Bundle
+import android.view.Gravity
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.swago.baseswago.databinding.LayoutXingZuoBinding
+import com.swago.baseswago.dialog.BaseXDFragment
+import com.swago.user.adapter.XingZuoAdapter
+
+/**
+ *@date 2022/2/24 20:24
+ *description:
+ */
+class XingZuoDialog : BaseXDFragment<LayoutXingZuoBinding>() {
+
+    init {
+        setGravity(Gravity.BOTTOM)
+        setCanCancel(true)
+        setDimAmount(0f)
+    }
+
+    var callback:((str:String)->Unit)? = null
+
+    private val list = arrayListOf("Aquarius","Pisces","Aries","Taurus",
+        "Gemini","Cancer","Leo","Virgo",
+        "Libra","Scorpio","Sagittarius","Capricorn")
+
+    override fun initOther() {
+        binding.recyclerView.layoutManager = LinearLayoutManager(context)
+        val adapter = XingZuoAdapter()
+        binding.recyclerView.adapter = adapter
+        adapter.setNewData(list)
+
+        adapter.setOnItemClickListener { _, _, position ->
+            callback?.invoke(list[position])
+            dismissAllowingStateLoss()
+        }
+
+    }
+
+    companion object{
+        fun newInstance(): XingZuoDialog {
+            val dialog = XingZuoDialog()
+            val bundle = Bundle()
+            dialog.arguments = bundle
+            return dialog
+        }
+    }
+
+    override fun initLiveData() {
+
+    }
+}

+ 3 - 4
user/src/main/res/layout/activity_user_edit.xml

@@ -183,17 +183,16 @@
                 android:layout_height="wrap_content"/>
                 android:layout_height="wrap_content"/>
 
 
 
 
-            <EditText
-                android:id="@+id/etConstellation"
+            <TextView
+                android:id="@+id/tvConstellation"
                 android:layout_marginBottom="10dp"
                 android:layout_marginBottom="10dp"
                 android:layout_marginStart="10dp"
                 android:layout_marginStart="10dp"
                 android:textSize="14dp"
                 android:textSize="14dp"
                 android:textColor="#aaa"
                 android:textColor="#aaa"
                 android:text="Aries"
                 android:text="Aries"
-                android:background="@drawable/shape_white_5"
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintStart_toStartOf="parent"
-                android:layout_width="200dp"
+                android:layout_width="wrap_content"
                 android:layout_height="wrap_content"/>
                 android:layout_height="wrap_content"/>
 
 
         </androidx.constraintlayout.widget.ConstraintLayout>
         </androidx.constraintlayout.widget.ConstraintLayout>

+ 26 - 0
user/src/main/res/layout/item_xing_zuo.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <TextView
+        android:id="@+id/tv"
+        tools:text = "fdfs"
+        android:textSize="14dp"
+        android:textColor="#000"
+        android:gravity="center"
+        app:layout_constraintTop_toTopOf="parent"
+        android:layout_width="match_parent"
+        android:layout_height="40dp"/>
+
+    <View
+        android:layout_marginStart="10dp"
+        android:layout_marginEnd="10dp"
+        app:layout_constraintTop_toBottomOf="@+id/tv"
+        android:background="@color/_868686"
+        android:layout_width="match_parent"
+        android:layout_height="1px"/>
+
+</androidx.constraintlayout.widget.ConstraintLayout>