Przeglądaj źródła

1.添加判断首页任务提醒弹窗是否显示接口

王鹏鹏 2 lat temu
rodzic
commit
d90a808f4a

+ 0 - 4
baselib/src/main/java/com/yingyangfly/baselib/base/BaseActivity.kt

@@ -25,7 +25,6 @@ import com.yingyangfly.baselib.ext.initBar
 import com.yingyangfly.baselib.utils.ActivityManagers
 import com.yingyangfly.baselib.utils.ResUtil
 import com.yingyangfly.baselib.utils.ViewTool
-import com.yingyangfly.baselib.voice.VoiceUtils
 import gorden.rxbus2.RxBus
 
 /**
@@ -60,8 +59,6 @@ abstract class BaseActivity<DB : ViewDataBinding> : AppCompatActivity(),
         LoadingDialog(mContext)
     }
 
-    private var voiceUtils: VoiceUtils? = null
-
     private var logoutDialog: AlertDialog? = null
 
     @SuppressLint("SourceLockedOrientationActivity")
@@ -69,7 +66,6 @@ abstract class BaseActivity<DB : ViewDataBinding> : AppCompatActivity(),
         super.onCreate(savedInstanceState)
         RxBus.get().register(this)
         mContext = this
-        voiceUtils = VoiceUtils.getInstance(mContext)
         initWindow()
 //        ScreenUtils.setStatusBarTransparent(window)
         // 默认不全屏,底部导航栏透明

+ 5 - 1
baselib/src/main/java/com/yingyangfly/baselib/dialog/TaskFragment.kt

@@ -26,9 +26,12 @@ class TaskFragment : DialogFragment(), View.OnTouchListener {
     private var tvContent: AppCompatTextView? = null
     private var confirmBtan: AppCompatButton? = null
     private var animationDrawable: AnimationDrawable? = null
+    private var id = ""
+    var onDialogClickListener: ((bean: String) -> Unit)? = null
 
-    fun setTaskDesn(taskDesn: String) {
+    fun setTaskDesn(taskDesn: String, id: String) {
         this.taskDesn = taskDesn
+        this.id = id
     }
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -73,6 +76,7 @@ class TaskFragment : DialogFragment(), View.OnTouchListener {
             if (animationDrawable != null) {
                 animationDrawable?.stop();
             }
+            onDialogClickListener?.invoke(id)
             dismiss()
         }
     }

+ 6 - 3
home/build.gradle

@@ -4,9 +4,6 @@ apply plugin: 'kotlin-kapt'
 
 android {
 
-    buildFeatures {
-        viewBinding true
-    }
     defaultConfig {
         // 如果是独立模块,则使用当前组件的包名
         if (singleModule.toBoolean()) {
@@ -19,9 +16,15 @@ android {
 
 dependencies {
     implementation project(path: ':baselib')
+    api fileTree(exclude: '*.bak', dir: 'libs')
     implementation(rootProject.ext.androidx.kotlin_lib)
     implementation(rootProject.ext.androidx.kotlin_core)
     implementation(rootProject.ext.androidx.appcompat)
     implementation(rootProject.ext.androidx.material)
     implementation(rootProject.ext.androidx.constraintlayout)
+
+    //RxJava2.0
+    implementation(rootProject.ext.dependencies.rxjava)
+    implementation(rootProject.ext.dependencies.rxandroid)
+    implementation(rootProject.ext.dependencies.rxkotlin)
 }

+ 50 - 31
home/src/main/java/com/yingyangfly/home/activity/HomeActivity.kt

@@ -4,7 +4,6 @@ import android.annotation.SuppressLint
 import android.text.TextUtils
 import androidx.recyclerview.widget.GridLayoutManager
 import com.alibaba.android.arouter.facade.annotation.Route
-import com.bumptech.glide.Glide
 import com.yingyang.home.databinding.ActivityHomeBinding
 import com.yingyangfly.baselib.dialog.TaskFragment
 import com.yingyangfly.baselib.dialog.TipDialogFragment
@@ -13,12 +12,16 @@ import com.yingyangfly.baselib.ext.setOnSingleClickListener
 import com.yingyangfly.baselib.ext.show
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
-import com.yingyangfly.baselib.permissions.EsayPermissions
+import com.yingyangfly.baselib.net.BaseObserver
+import com.yingyangfly.baselib.net.MyRxScheduler
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.JumpUtil
 import com.yingyangfly.baselib.utils.User
 import com.yingyangfly.home.adapter.GameAdapter
+import com.yingyangfly.home.entity.HomePageMsgBean
 import com.yingyangfly.home.entity.Record
+import com.yingyangfly.home.net.XHomeServiceFactory
+import io.reactivex.schedulers.Schedulers
 
 /**
  * 新版首页
@@ -152,10 +155,29 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>() {
         getCountTrain()
         //获取未读消息数量
         getCountMyMsg()
-        //查询是否有进行中的任务
+        //获取任务状态弹窗
+        getSelectHomePageMsg()
+        //获取任务列表
         getFindMyTask()
     }
 
+    /**
+     * 查询
+     */
+    private fun getSelectHomePageMsg() {
+        XHomeServiceFactory.getService()
+            .getSelectHomePageMsg("D")
+            .subscribeOn(Schedulers.io())
+            .compose(MyRxScheduler.ioMain(this, false))
+            .subscribe(object : BaseObserver<HomePageMsgBean>() {
+                override fun onSuccess(t: HomePageMsgBean?) {
+                    if (t != null) {
+                        showTaskDialog(t.msgDesn, t.id)
+                    }
+                }
+            })
+    }
+
     /**
      * 获取脑力值和训练时长接口
      */
@@ -202,9 +224,7 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>() {
                     if (it.currentTaskNum == it.totalTaskNum) {
                         if (TextUtils.equals("0", it.status)) {
                             //任务完成
-                            if (TextUtils.equals(User.getNowDay(), User.getTaskDialogStatus())
-                                    .not()
-                            ) {
+                            if (TextUtils.equals(User.getNowDay(), User.getTaskDialogStatus()).not()) {
                                 User.saveTaskDialogStatus(User.getNowDay())
                                 showTipDialog()
                             } else {
@@ -224,7 +244,6 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>() {
                             ) {
                                 User.saveTaskDialogStatus(User.getNowDay())
 //                                playVoice?.speak(it.taskDesn)
-                                showTaskDialog(it.taskDesn)
                             }
                         }
                     } else {
@@ -236,7 +255,6 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>() {
                         if (TextUtils.equals(User.getNowDay(), User.getTaskDialogStatus()).not()) {
                             User.saveTaskDialogStatus(User.getNowDay())
 //                            playVoice?.speak(it.taskDesn)
-                            showTaskDialog(it.taskDesn)
                         }
                     }
                 }
@@ -265,12 +283,30 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>() {
             .show(supportFragmentManager)
     }
 
-    private fun showTaskDialog(taskDesn: String) {
+    private fun showTaskDialog(taskDesn: String, id: String) {
         val taskFragment = TaskFragment()
-        taskFragment.setTaskDesn(taskDesn)
+        taskFragment.setTaskDesn(taskDesn, id)
+        taskFragment.onDialogClickListener = {
+            updateReadMsg(id)
+        }
         taskFragment.show(supportFragmentManager, "taskFragment")
     }
 
+    /**
+     * 修改未读消息状态
+     */
+    private fun updateReadMsg(id: String) {
+        XHomeServiceFactory.getService()
+            .updateReadMsg(id)
+            .subscribeOn(Schedulers.io())
+            .compose(MyRxScheduler.ioMain(this, false))
+            .subscribe(object : BaseObserver<Unit>() {
+                override fun onSuccess(t: Unit?) {
+                    getFindMyTask()
+                }
+            })
+    }
+
     /**
      * 加载游戏数据
      */
@@ -287,10 +323,14 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>() {
                 gameList.addAll(it)
                 binding.btnNextPage.show(it.size > 4)
                 if (it.size > 4) {
+                    binding.btnNextPage.show(true)
                     pageList.addAll(it.subList(0, 4))
                 } else {
+                    binding.btnNextPage.show(false)
                     pageList.addAll(it)
                 }
+            } else {
+                binding.btnNextPage.show(false)
             }
             gameAdapter.setData(pageList)
         })
@@ -306,10 +346,6 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>() {
         }
     }
 
-    override fun onDestroy() {
-        super.onDestroy()
-    }
-
     /**
      * 跳转游戏列表
      */
@@ -318,21 +354,4 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>() {
                 "&playClass=" + bean.playClass + "&userToken=" + User.getToken()
         JumpUtil.jumpActivityWithUrl(RouterUrlCommon.WEB_VIEW_INTERACTION_JS, str, this)
     }
-
-    /**
-     * 跳转设置页面
-     */
-    private fun showPermissionTipDialog() {
-        TipDialogFragment.TipDialogBuilder()
-            .content("当前应用缺少必要权限,请点击“设置”-“权限”-“权限管理”打开所需权限")
-            .leftBtnText("退出")
-            .rightBtnText("设置")
-            .leftClick({
-            }, dimiss = true)
-            .rightClick({
-                EsayPermissions.gotoPermissionSettings(mContext)
-                null
-            }, dimiss = true)
-            .show(supportFragmentManager)
-    }
 }

+ 14 - 0
home/src/main/java/com/yingyangfly/home/activity/HomeViewModel.kt

@@ -63,4 +63,18 @@ class HomeViewModel : BaseViewModel() {
         success,
         fail
     )
+
+    /**
+     * 更改消息状态
+     */
+    fun updateReadMsg(
+        msgId: String,
+        fail: ((msg: String) -> Unit)? = null,
+        success: ((success: Unit) -> Unit)? = null,
+    ) = launchFlow(true) {
+        HOME_API.updateReadMsg(msgId)
+    }.runUI(
+        success,
+        fail
+    )
 }

+ 18 - 0
home/src/main/java/com/yingyangfly/home/entity/HomePageMsgBean.kt

@@ -0,0 +1,18 @@
+package com.yingyangfly.home.entity
+
+/**
+ * 首页任务提醒弹窗是否显示接口
+ */
+data class HomePageMsgBean(
+    val createTime: String,
+    val id: String,
+    val msgDesn: String,
+    val msgTitle: String,
+    val msgType: String,
+    val msgUrl: Any,
+    val orgCode: String,
+    val orgName: String,
+    val status: String,
+    val updateTime: String,
+    val userId: String
+)

+ 7 - 0
home/src/main/java/com/yingyangfly/home/net/HomeApiService.kt

@@ -5,6 +5,7 @@ import com.yingyangfly.home.entity.CountTrainBean
 import com.yingyangfly.home.entity.MyTaskBean
 import com.yingyangfly.home.entity.Record
 import retrofit2.http.POST
+import retrofit2.http.Query
 
 interface HomeApiService {
     /**
@@ -31,4 +32,10 @@ interface HomeApiService {
     @POST("app/warn/countMyMsg")
     suspend fun getCountMyMsg(): BaseResp<String>
 
+    /**
+     * 更改消息状态
+     */
+    @POST("app/warn/readMsg")
+    suspend fun updateReadMsg(@Query("msgId") msgId: String): BaseResp<Unit>
+
 }

+ 27 - 0
home/src/main/java/com/yingyangfly/home/net/XHomeApiService.kt

@@ -0,0 +1,27 @@
+package com.yingyangfly.home.net
+
+import com.yingyangfly.baselib.net.BaseResp
+import com.yingyangfly.home.entity.HomePageMsgBean
+import io.reactivex.Observable
+import retrofit2.http.POST
+import retrofit2.http.Query
+
+/**
+ * Author: Austin
+ * Date: 19-4-1
+ * Description:
+ */
+interface XHomeApiService {
+
+    /**
+     * 查询
+     */
+    @POST("app/warn/selectHomePageMsg")
+    fun getSelectHomePageMsg(@Query("msgType") msgType: String): Observable<BaseResp<HomePageMsgBean>>
+
+    /**
+     * 更改消息状态
+     */
+    @POST("app/warn/readMsg")
+    fun updateReadMsg(@Query("msgId") msgId: String): Observable<BaseResp<Unit>>
+}

+ 21 - 0
home/src/main/java/com/yingyangfly/home/net/XHomeServiceFactory.kt

@@ -0,0 +1,21 @@
+package com.yingyangfly.home.net
+
+import com.yingyangfly.baselib.config.AccountConfig
+import com.yingyangfly.baselib.net.ServiceFactory
+
+/**
+ * Author: Austin
+ * Date: 19-4-11
+ * Description:
+ */
+object XHomeServiceFactory {
+
+    fun getService(): XHomeApiService {
+        if (apiService != null) {
+            return apiService!!
+        }
+        return ServiceFactory.getService(AccountConfig.API_URL, XHomeApiService::class.java)
+    }
+
+    var apiService: XHomeApiService? = null
+}

+ 18 - 6
push/src/main/java/com/yingyang/push/activity/MessgeListActivity.kt

@@ -7,11 +7,15 @@ import com.yingyang.push.adapter.PushTypeAdapter
 import com.yingyang.push.databinding.ActivityMessgeListBinding
 import com.yingyang.push.entity.PushMessageBean
 import com.yingyang.push.entity.PushMessageTypeBean
+import com.yingyang.push.net.XPushServiceFactory
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
+import com.yingyangfly.baselib.net.BaseObserver
+import com.yingyangfly.baselib.net.MyRxScheduler
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.JumpUtil
+import io.reactivex.schedulers.Schedulers
 
 /**
  * 消息列表
@@ -55,7 +59,11 @@ class MessgeListActivity : BaseMVVMActivity<ActivityMessgeListBinding, PushViewM
                 if (TextUtils.equals("0", bean.status).not()) {
                     updateReadMsg(bean.id)
                 }
-                JumpUtil.jumpActivityWithUrl(RouterUrlCommon.WEB_VIEW_INTERACTION_JS, bean.msgUrl, mContext)
+                JumpUtil.jumpActivityWithUrl(
+                    RouterUrlCommon.WEB_VIEW_INTERACTION_JS,
+                    bean.msgUrl,
+                    mContext
+                )
             }
         }
     }
@@ -117,11 +125,15 @@ class MessgeListActivity : BaseMVVMActivity<ActivityMessgeListBinding, PushViewM
      * 更改消息状态
      */
     private fun updateReadMsg(msgId: String) {
-        viewModel.updateReadMsg(msgId, fail = {
-            it.toast()
-        }, success = {
-
-        })
+        XPushServiceFactory.getService()
+            .updateReadMsg(msgId)
+            .subscribeOn(Schedulers.io())
+            .compose(MyRxScheduler.ioMain(this, false))
+            .subscribe(object : BaseObserver<Unit>() {
+                override fun onSuccess(t: Unit?) {
+                    getMeaageList()
+                }
+            })
     }
 
 }

+ 20 - 0
push/src/main/java/com/yingyang/push/net/XPushApiService.kt

@@ -0,0 +1,20 @@
+package com.yingyang.push.net
+
+import com.yingyangfly.baselib.net.BaseResp
+import io.reactivex.Observable
+import retrofit2.http.POST
+import retrofit2.http.Query
+
+/**
+ * Author: Austin
+ * Date: 19-4-1
+ * Description:
+ */
+interface XPushApiService {
+
+    /**
+     * 更改消息状态
+     */
+    @POST("app/warn/readMsg")
+    fun updateReadMsg(@Query("msgId") msgId: String): Observable<BaseResp<Unit>>
+}

+ 21 - 0
push/src/main/java/com/yingyang/push/net/XPushServiceFactory.kt

@@ -0,0 +1,21 @@
+package com.yingyang.push.net
+
+import com.yingyangfly.baselib.config.AccountConfig
+import com.yingyangfly.baselib.net.ServiceFactory
+
+/**
+ * Author: Austin
+ * Date: 19-4-11
+ * Description:
+ */
+object XPushServiceFactory {
+
+    fun getService(): XPushApiService {
+        if (apiService != null) {
+            return apiService!!
+        }
+        return ServiceFactory.getService(AccountConfig.API_URL, XPushApiService::class.java)
+    }
+
+    var apiService: XPushApiService? = null
+}

+ 1 - 1
workbenches/src/main/java/com/yingyang/workbenches/WorkbenchesActivity.kt

@@ -151,7 +151,7 @@ class WorkbenchesActivity : BaseMVVMActivity<ActivityWorkbenchesBinding, Workben
 
     private fun showTaskDialog(taskDesn: String) {
         val taskFragment = TaskFragment()
-        taskFragment.setTaskDesn(taskDesn)
+        taskFragment.setTaskDesn(taskDesn, "")
         taskFragment.show(supportFragmentManager, "taskFragment")
     }
 

+ 0 - 8
workbenches/src/main/java/com/yingyang/workbenches/net/WorkbenchesServiceFactory.kt

@@ -18,12 +18,4 @@ object WorkbenchesServiceFactory {
     }
 
     var apiService: WorkbencheApiService? = null
-
-    fun setService(apiService: WorkbencheApiService) {
-        WorkbenchesServiceFactory.apiService = apiService
-    }
-
-    fun getService(url: String): WorkbencheApiService {
-        return ServiceFactory.getService(url, WorkbencheApiService::class.java)
-    }
 }