Browse Source

Merge branch 'google' into qiye

honghengqiang 3 years ago
parent
commit
fbf9c1e0e4

+ 1 - 0
.idea/misc.xml

@@ -69,6 +69,7 @@
         <entry key="baseswago/src/main/res/layout/dialog_person_data.xml" value="0.36302083333333335" />
         <entry key="baseswago/src/main/res/layout/dialog_report.xml" value="0.3015625" />
         <entry key="baseswago/src/main/res/layout/dialog_report_block.xml" value="0.3776041666666667" />
+        <entry key="baseswago/src/main/res/layout/dialog_update.xml" value="0.5" />
         <entry key="baseswago/src/main/res/layout/item_recharge.xml" value="0.2796875" />
         <entry key="baseswago/src/main/res/layout/item_room.xml" value="0.3776041666666667" />
         <entry key="baseswago/src/main/res/layout/layout_list.xml" value="0.17654508611955422" />

+ 10 - 0
app/src/main/java/com/swago/app/SplashVm.kt

@@ -8,6 +8,7 @@ import androidx.lifecycle.MutableLiveData
 import com.alibaba.android.arouter.launcher.ARouter
 import com.google.gson.Gson
 import com.swago.baseswago.constant.ARouteConstant
+import com.swago.baseswago.constant.UrlConstant
 import com.swago.baseswago.inter.ApiManager
 import com.swago.baseswago.model.ConfigModel
 import com.swago.baseswago.util.*
@@ -20,8 +21,17 @@ import com.tencent.qcloud.tim.uikit.base.IUIKitCallBack
  */
 class SplashVm (application: Application) : BaseViewModel(application) {
 
+    private val gson by lazy {
+        Gson()
+    }
+
     fun loginByAuto() {
         requestData {
+            val configModel = ApiManager.configApi.getAppConfig()
+            SpUtil.putString("configModel", gson.toJson(configModel))
+            UrlConstant.setAgoraId(configModel.agoral_app_id)
+            UrlConstant.setImId(configModel.im_app_id)
+
             val data = ApiManager.loginApi.loginByAuto()
             UserInfo.setLoginInfo(data)
             SpUtil.putString("login_info", Gson().toJson(data))

+ 0 - 1
baseswago/src/main/java/com/swago/baseswago/agora/AgoraManager.kt

@@ -143,7 +143,6 @@ object AgoraManager {
 
     fun joinChannel(channelName: String, userId: Int, token: String = "", option: String = "") {
         val result = mRtcEngine?.joinChannel(token, channelName, option, userId)
-        Log.d("result", "$result")
     }
 
 

+ 8 - 1
baseswago/src/main/java/com/swago/baseswago/model/ConfigModel.kt

@@ -9,5 +9,12 @@ data class ConfigModel(
     val app_phone:String="",
     val app_gmail:String="",
     val agoral_app_id:String="",
-    val im_app_id:Int
+    val im_app_id:Int,
+
+    //版本更新
+    val app_version:Int,
+    val store_url:String="",//应用时长地址
+    val link_url:String="",//渠道包下载地址
+    val upgrade:String="",//版本描述
+    val force:Int,//是否强制更新(0否1是)
 )

+ 93 - 0
baseswago/src/main/res/layout/dialog_update.xml

@@ -0,0 +1,93 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/clRoot"
+        app:layout_constraintTop_toTopOf="parent"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <ImageView
+            android:id="@+id/iv"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            android:background="@mipmap/bg_update"
+            app:layout_constraintBottom_toBottomOf="parent"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"/>
+
+        <com.swago.baseswago.cusview.BoldTextView
+            android:id="@+id/tv"
+            android:textSize="16dp"
+            android:textColor="#131B23"
+            android:text="Version update"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            android:layout_marginTop="138dp"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"/>
+
+
+        <androidx.core.widget.NestedScrollView
+            app:layout_constraintStart_toStartOf="@+id/iv"
+            app:layout_constraintEnd_toEndOf="@+id/iv"
+            app:layout_constraintTop_toBottomOf="@+id/tv"
+            app:layout_constraintBottom_toTopOf="@+id/tvUpdate"
+            android:layout_marginTop="10dp"
+            android:layout_marginBottom="10dp"
+            android:layout_marginStart="20dp"
+            android:layout_marginEnd="20dp"
+            android:layout_width="0dp"
+            android:layout_height="0dp">
+
+            <com.swago.baseswago.cusview.RegularTextView
+                android:id="@+id/tvDescribe"
+                android:textSize="14dp"
+                android:textColor="#435568"
+                tools:text="dddd"
+                android:gravity="center"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"/>
+
+        </androidx.core.widget.NestedScrollView>
+
+
+
+        <com.swago.baseswago.cusview.BoldTextView
+            android:id="@+id/tvUpdate"
+            android:layout_marginBottom="16dp"
+            app:layout_constraintBottom_toBottomOf="@+id/iv"
+            android:layout_marginStart="36dp"
+            android:layout_marginEnd="36dp"
+            app:layout_constraintStart_toStartOf="@+id/iv"
+            app:layout_constraintEnd_toEndOf="@+id/iv"
+            android:textSize="16dp"
+            android:text="@string/update_now"
+            android:textColor="#fff"
+            android:gravity="center"
+            android:background="@drawable/shape_ff56b7_37"
+            android:layout_width="0dp"
+            android:layout_height="44dp"/>
+
+        <ImageView
+            android:id="@+id/ivClose"
+            android:layout_width="30dp"
+            android:layout_height="30dp"
+            android:layout_gravity="center"
+            android:layout_marginTop="20dp"
+            android:visibility="gone"
+            tools:visibility="visible"
+            app:layout_constraintEnd_toEndOf="@+id/iv"
+            app:layout_constraintTop_toTopOf="@+id/iv"
+            android:src="@mipmap/close" />
+
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 0
home/src/main/res/mipmap-xxhdpi/bg_update.webp → baseswago/src/main/res/mipmap-xxhdpi/bg_update.webp


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

@@ -141,5 +141,6 @@
     <string name="app_not_install">Apk tidak terpasang</string>
     <string name="follow_anchor">sudah ikuti hostnya, jangan khawatir ketinggalan live lagi~</string>
     <string name="big_prize">Betapa beruntung! %s mengirim %s untuk memenangkan %s kali hadiahnya, selamat untuk dia!</string>
+    <string name="update_now">立即更新</string>
 
 </resources>

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

@@ -141,5 +141,6 @@
     <string name="app_not_install">应用未安装</string>
     <string name="follow_anchor">刚刚关注了主播,再也不用担心错过直播啦~</string>
     <string name="big_prize">真是幸运!%s送出%s赢得了%s倍奖励,恭喜他!</string>
+    <string name="update_now">立即更新</string>
 
 </resources>

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

@@ -156,6 +156,7 @@
     <string name="app_not_install">App not installed</string>
     <string name="follow_anchor">already follow the host, don\'t worry about missing the live again~</string>
     <string name="big_prize">How lucky! %s sent %s to win %s times the reward, congratulations to him!</string>
+    <string name="update_now">立即更新</string>
 
 
 </resources>

+ 16 - 4
home/src/main/java/com/swago/home/HomeActivity.kt

@@ -23,13 +23,11 @@ import com.swago.baseswago.im.IMMessageManager
 import com.swago.baseswago.libpay.IPayCallback
 import com.swago.baseswago.libpay.PayManager
 import com.swago.baseswago.model.pay.PayModel
-import com.swago.baseswago.util.AppContext
-import com.swago.baseswago.util.IMUtil
-import com.swago.baseswago.util.LogUtil
-import com.swago.baseswago.util.UserInfo
+import com.swago.baseswago.util.*
 import com.swago.home.databinding.ActivityHomeBinding
 import com.swago.home.innerhome.HomeVm
 import com.swago.home.official.OfficialVm
+import com.swago.home.update.UpdateDialog
 import com.tencent.qcloud.tim.uikit.TUIKit
 import com.tencent.qcloud.tim.uikit.base.IUIKitCallBack
 import com.tencent.qcloud.tim.uikit.config.TUIKitConfigs
@@ -57,6 +55,9 @@ class HomeActivity : BaseXActivity<ActivityHomeBinding>(), IPayCallback {
         PayManager.init()
         IMMessageManager.groupMessageParser.add(GroupMsgParser())
 
+        //检查版本更新
+        checkVersionForUpdate()
+
         binding.viewPager.offscreenPageLimit = 3
         binding.rg.setOnCheckedChangeListener { _, checkedId ->
             when (checkedId) {
@@ -113,6 +114,17 @@ class HomeActivity : BaseXActivity<ActivityHomeBinding>(), IPayCallback {
         binding.viewPager.adapter = SwagoAdapter(listFragment, supportFragmentManager)
     }
 
+    /**
+     * 检查版本更新
+     */
+    private fun checkVersionForUpdate() {
+        UrlConstant.getConfigModel()?.let {
+            if (it.app_version>SwagoInfo.getVersionCode().toInt()){
+                UpdateDialog.newInstance().show(supportFragmentManager,"UpdateDialog")
+            }
+        }
+    }
+
     override fun initLiveData() {}
 
     override fun onResume() {

+ 62 - 1
home/src/main/java/com/swago/home/update/UpdateDialog.kt

@@ -1,7 +1,16 @@
 package com.swago.home.update
 
+import android.content.Intent
+import android.net.Uri
+import android.os.Bundle
+import android.view.KeyEvent
+import android.view.View
+import com.swago.baseswago.constant.UrlConstant
+import com.swago.baseswago.databinding.DialogUpdateBinding
 import com.swago.baseswago.dialog.BaseXDFragment
-import com.swago.home.databinding.DialogUpdateBinding
+import com.swago.baseswago.util.AppContext
+import com.swago.baseswago.util.NoDoubleClickListener
+import com.swago.baseswago.util.SwagoInfo
 
 /**
  *@date 2022/3/31 13:35
@@ -9,7 +18,59 @@ import com.swago.home.databinding.DialogUpdateBinding
  */
 class UpdateDialog : BaseXDFragment<DialogUpdateBinding>() {
 
+    init {
+        setCanCancel(false)
+    }
+
+    companion object {
+        fun newInstance(): UpdateDialog {
+            val args = Bundle()
+            val fragment = UpdateDialog()
+            fragment.arguments = args
+            return fragment
+        }
+    }
+
     override fun initOther() {
+        UrlConstant.getConfigModel()?.let {
+            dialog?.setOnKeyListener { _, keyCode, _ ->
+                return@setOnKeyListener !(keyCode == KeyEvent.KEYCODE_BACK && it.force == 1)
+            }
+
+            if (it.force == 1) {
+                binding.ivClose.visibility = View.GONE
+            } else {
+                binding.ivClose.visibility = View.VISIBLE
+            }
+
+            binding.tvDescribe.text = it.upgrade
+
+            binding.ivClose.setOnClickListener(object : NoDoubleClickListener() {
+                override fun onClick() {
+                    dismissAllowingStateLoss()
+                }
+            })
+
+            binding.tvUpdate.setOnClickListener(object : NoDoubleClickListener() {
+                override fun onClick() {
+                    if (SwagoInfo.isGooglePackage()) {
+                        val intent = Intent(Intent.ACTION_VIEW)
+                        intent.data =
+                            Uri.parse("market://details?id=${AppContext.getContext().packageName}")
+                        startActivity(intent)
+                    } else {
+                        val intent = Intent()
+                        intent.action = Intent.ACTION_VIEW
+                        intent.data = Uri.parse(it.link_url)
+                        AppContext.getContext().startActivity(Intent.createChooser(intent, ""))
+                    }
+
+                    if (it.force != 1) {
+                        dismissAllowingStateLoss()
+                    }
+                }
+            })
+        }
     }
 
     override fun initLiveData() {

+ 0 - 47
home/src/main/res/layout/dialog_update.xml

@@ -1,47 +0,0 @@
-<?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:id="@+id/clRoot"
-        app:layout_constraintTop_toTopOf="parent"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-
-        <ImageView
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            android:background="@mipmap/bg_update"
-            app:layout_constraintBottom_toBottomOf="parent"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"/>
-
-        <com.swago.baseswago.cusview.BoldTextView
-            android:id="@+id/tv"
-            android:textSize="16dp"
-            android:textColor="#131B23"
-            android:text="Version update"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            android:layout_marginTop="138dp"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"/>
-
-        <com.swago.baseswago.cusview.RegularTextView
-            android:id="@+id/tvDescribe"
-            app:layout_constraintStart_toStartOf="@+id/tv"
-            android:layout_marginStart="20dp"
-            android:layout_marginEnd="20dp"
-            android:textSize="14dp"
-            app:layout_constraintTop_toBottomOf="@+id/tv"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"/>
-
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 12
login/src/main/java/com/swago/login/LoginActivity.kt

@@ -36,12 +36,6 @@ class LoginActivity : BaseXActivity<ActivityLoginBinding>() {
     private val loginVm by viewModels<LoginVm>()
     private var isAccountLogin = false
 
-
-    private val gson by lazy {
-        Gson()
-    }
-
-
     override fun loadData() {
 
     }
@@ -166,12 +160,6 @@ class LoginActivity : BaseXActivity<ActivityLoginBinding>() {
     }
 
     override fun initLiveData() {
-        loginVm.appConfigLiveData.observe(this){
-            SpUtil.putString("configModel", gson.toJson(it))
-            UrlConstant.setAgoraId(it.agoral_app_id)
-            UrlConstant.setImId(it.im_app_id)
-
-        }
     }
 
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

+ 10 - 4
login/src/main/java/com/swago/login/LoginVm.kt

@@ -8,6 +8,7 @@ import androidx.lifecycle.MutableLiveData
 import com.alibaba.android.arouter.launcher.ARouter
 import com.google.gson.Gson
 import com.swago.baseswago.constant.ARouteConstant
+import com.swago.baseswago.constant.UrlConstant
 import com.swago.baseswago.http.SwagoException
 import com.swago.baseswago.inter.ApiManager
 import com.swago.baseswago.model.ConfigModel
@@ -22,6 +23,11 @@ import com.tencent.qcloud.tim.uikit.base.IUIKitCallBack
  */
 class LoginVm(application: Application) : BaseViewModel(application) {
 
+    private val gson by lazy {
+        Gson()
+    }
+
+
     fun login(source:String,token:String){
         requestData2 {
             requestData {
@@ -57,16 +63,16 @@ class LoginVm(application: Application) : BaseViewModel(application) {
     }
 
 
-    val appConfigLiveData by lazy {
-        MutableLiveData<ConfigModel>()
-    }
     /**
      * 获取配置
      */
     fun getAppConfig(){
         requestData {
             val data = ApiManager.configApi.getAppConfig()
-            appConfigLiveData.value = data
+            SpUtil.putString("configModel", gson.toJson(data))
+            UrlConstant.setAgoraId(data.agoral_app_id)
+            UrlConstant.setImId(data.im_app_id)
+
         }
     }
 }

+ 3 - 0
room/src/main/java/com/swago/room/gift/GiftVm.kt

@@ -1,6 +1,7 @@
 package com.swago.room.gift
 
 import android.app.Application
+import android.util.Log
 import android.widget.Toast
 import androidx.lifecycle.MutableLiveData
 import com.swago.baseswago.http.SwagoException
@@ -9,6 +10,7 @@ import com.swago.baseswago.model.live.gift.GiftAllModel
 import com.swago.baseswago.model.live.gift.GiftSendModel
 import com.swago.baseswago.util.AppContext
 import com.swago.baseswago.util.BaseViewModel
+import com.swago.baseswago.util.LogUtil
 import com.swago.baseswago.util.UserInfo
 
 /**
@@ -50,6 +52,7 @@ class GiftVm(application: Application) : BaseViewModel(application) {
         requestData2 {
             requestData {
                 val data = ApiManager.roomApi.sendGift(room_id, gift_id, gift_batch, gift_receive_id, isCombo,gift_num)
+                LogUtil.d("送礼","接口调用成功--${System.currentTimeMillis()}")
                 sendResultLiveData.value = data
                 UserInfo.getUserInfo()?.let {
                     if (data.user_coins.toLong() < it.user_coins.toLong()){

+ 3 - 0
room/src/main/java/com/swago/room/giftdandao/GiftDanDaoView.kt

@@ -7,6 +7,7 @@ import android.app.Service
 import android.content.Context
 import android.os.Vibrator
 import android.util.AttributeSet
+import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.animation.BounceInterpolator
@@ -15,6 +16,7 @@ import android.widget.FrameLayout
 import com.bumptech.glide.Glide
 import com.swago.baseswago.model.live.gift.IMGiftModel
 import com.swago.baseswago.util.AppContext
+import com.swago.baseswago.util.LogUtil
 import com.swago.room.R
 import com.swago.room.databinding.ViewItemGiftBinding
 
@@ -69,6 +71,7 @@ class GiftDanDaoView : FrameLayout {
             if (!tvSenderTo.isSelected) {
                 tvSenderTo.isSelected = true
             }
+            LogUtil.d("礼物个数", "x${imGiftModel.giftNum}")
             tvNum.text = "x${imGiftModel.giftNum}"
             clItemGift.visibility = View.VISIBLE
             if (imCurrentGiftModel != null && imGiftModel.isCombo == 1) {

+ 2 - 2
room/src/main/res/layout/layout_user_header_view.xml

@@ -140,7 +140,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"/>
 
-        <com.swago.baseswago.cusview.RegularTextView
+        <TextView
             android:id="@+id/tvIncome"
             android:layout_marginStart="2dp"
             android:textSize="12dp"
@@ -175,7 +175,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"/>
 
-        <com.swago.baseswago.cusview.RegularTextView
+        <TextView
             android:id="@+id/tvHot"
             android:layout_marginStart="2dp"
             android:textSize="12dp"

+ 4 - 2
tuikit/src/main/java/com/tencent/qcloud/tim/uikit/TUIKitImpl.java

@@ -10,6 +10,7 @@ import android.util.Log;
 import androidx.localbroadcastmanager.content.LocalBroadcastManager;
 
 import com.google.gson.Gson;
+import com.swago.baseswago.util.LogUtil;
 import com.tencent.imsdk.v2.V2TIMAdvancedMsgListener;
 import com.tencent.imsdk.v2.V2TIMCallback;
 import com.tencent.imsdk.v2.V2TIMConversation;
@@ -57,12 +58,13 @@ public class TUIKitImpl {
     private static V2TIMAdvancedMsgListener listener = new V2TIMAdvancedMsgListener() {
         @Override
         public void onRecvNewMessage(V2TIMMessage msg) {
-            Log.d("消息","dddd");
+            Log.d("送礼","收到IM成功--"+System.currentTimeMillis());
+            LogUtil.INSTANCE.d("消息","dddd");
             if(TextUtils.isEmpty(msg.getGroupID())) {
                 return;
             }
             for (IMEventListener l : sIMEventListeners) {
-                Log.d("监听","dddd");
+                LogUtil.INSTANCE.d("监听","dddd");
                 l.onNewMessage(msg);
             }
         }