From 921bfbf9e8c07dcae2d3e58d47e9b05eef60e483 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Wed, 2 Sep 2020 15:33:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B5=84=E6=BA=90=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E5=92=8C=E5=8E=BB=E6=8E=89=E6=97=A0=E7=94=A8=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/AndroidManifest.xml | 10 -- .../push/activity/PushMessageActivity.kt | 123 ------------------ .../push/fragment/MessageHistoryFragment.java | 21 +-- .../mogo/module/push/utils/AnimatorUtils.kt | 15 ++- ..._clear_bg.xml => module_push_clear_bg.xml} | 0 ...xml => module_push_message_background.xml} | 0 .../layout/module_push_message_activity.xml | 57 -------- .../module_push_message_hisotry_fragment.xml | 18 +-- .../src/main/res/values/strings.xml | 2 + .../src/main/res/values/styles.xml | 2 +- ...ght.xml => module_push_clear_bg_light.xml} | 0 ... module_push_message_background_light.xml} | 0 12 files changed, 36 insertions(+), 212 deletions(-) delete mode 100644 modules/mogo-module-push/src/main/java/com/mogo/module/push/activity/PushMessageActivity.kt rename modules/mogo-module-push/src/main/res/drawable/{module_push_activity_clear_bg.xml => module_push_clear_bg.xml} (100%) rename modules/mogo-module-push/src/main/res/drawable/{module_push_message_activity_background.xml => module_push_message_background.xml} (100%) delete mode 100644 modules/mogo-module-push/src/main/res/layout/module_push_message_activity.xml rename skin/mogo-skin-light/src/main/module-push-res/drawable/{module_push_activity_clear_bg_light.xml => module_push_clear_bg_light.xml} (100%) rename skin/mogo-skin-light/src/main/module-push-res/drawable/{module_push_message_activity_background_light.xml => module_push_message_background_light.xml} (100%) diff --git a/modules/mogo-module-push/src/main/AndroidManifest.xml b/modules/mogo-module-push/src/main/AndroidManifest.xml index 3334a218b2..6a39ac26a4 100644 --- a/modules/mogo-module-push/src/main/AndroidManifest.xml +++ b/modules/mogo-module-push/src/main/AndroidManifest.xml @@ -4,14 +4,4 @@ - - - - - - - - \ No newline at end of file diff --git a/modules/mogo-module-push/src/main/java/com/mogo/module/push/activity/PushMessageActivity.kt b/modules/mogo-module-push/src/main/java/com/mogo/module/push/activity/PushMessageActivity.kt deleted file mode 100644 index 0f1a486053..0000000000 --- a/modules/mogo-module-push/src/main/java/com/mogo/module/push/activity/PushMessageActivity.kt +++ /dev/null @@ -1,123 +0,0 @@ -package com.mogo.module.push.activity - -import android.content.Intent -import android.os.Bundle -import android.view.View -import androidx.appcompat.app.AppCompatActivity -import androidx.recyclerview.widget.LinearLayoutManager -import com.mogo.module.push.Config -import com.mogo.module.push.R -import com.mogo.module.push.adapter.PushMessageAdapter -import com.mogo.module.push.model.PushBean -import com.mogo.module.push.repository.PushRepository -import com.mogo.module.push.utils.AnalyticsUtils -import com.mogo.module.push.utils.HandlerUtils -import com.mogo.module.push.utils.startClearAnimator -import com.mogo.module.push.view.PushItemAnimator -import com.mogo.module.push.view.SwipeItemLayout -import com.mogo.module.push.view.getApis -import com.mogo.module.push.viewmodel.MessageViewModel -import com.mogo.service.intent.IMogoIntentListener -import com.mogo.utils.UiThreadHandler -import com.mogo.utils.logger.Logger -import kotlinx.android.synthetic.main.module_push_message_activity.* - -class PushMessageActivity : AppCompatActivity(), IMogoIntentListener { - private lateinit var viewModel: MessageViewModel - private var adapter = PushMessageAdapter() - private var clearing = false - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) -// window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) - setContentView(R.layout.module_push_message_activity) - AnalyticsUtils.track(Config.NEWS_HISTORY_OPEN) - module_push_activity_close.setOnClickListener { - AnalyticsUtils.track(Config.NEWS_HISTORY_CLOSE) - finish() - } - module_push_activity_clear.setOnClickListener { - AnalyticsUtils.track(Config.NEWS_HISTORY_ALL_CLEAR) - if (!clearing) { - clearing = true - startClearAnimator(module_push_activity_recycler_view) { - viewModel.deleteAll() - clearing = false - } - } - } - adapter.deletePushBean = object : PushMessageAdapter.PushAdapterListener { - override fun lastItemShow(show: Boolean) { - if (!show && !clearing) { - val size = viewModel.list?.size ?: 0 - if (size > 0 && size < module_push_activity_recycler_view.childCount) { - return - } - } - module_push_activity_clear.visibility = - if (show) View.VISIBLE else View.GONE - } - - override fun deleteBean(bean: PushBean, action: Boolean) { - if (clearing) return - viewModel.delete(bean) - if (action) { - AnalyticsUtils.track(Config.NEWS_HISTORY_ONE_CLICK, "title", bean.title) - finish() - } else { - AnalyticsUtils.track(Config.NEWS_HISTORY_ONE_CLEAR, "title", bean.title) - adapter.removeItem(bean) - if (adapter.datas?.size ?: 0 == 0) { - module_push_activity_not_data.visibility = View.VISIBLE - } - updateHistoryMessageCount() - } - } - } - module_push_activity_recycler_view.layoutManager = LinearLayoutManager(this) - module_push_activity_recycler_view.adapter = adapter - module_push_activity_recycler_view.itemAnimator = PushItemAnimator() - module_push_activity_recycler_view.addOnItemTouchListener( - SwipeItemLayout.OnSwipeItemTouchListener(this) - ) - viewModel = MessageViewModel(object : - MessageViewModel.MessageListChange { - override fun messageListChange(list: MutableList?) { - runOnUiThread { - var size = list?.size ?: 0 - adapter.datas = list - module_push_activity_not_data.visibility = if (size > 0) View.GONE else View.VISIBLE - updateHistoryMessageCount() - } - } - }) - - getApis(this).intentManagerApi.registerIntentListener(Intent.ACTION_CLOSE_SYSTEM_DIALOGS, this) - } - - private fun updateHistoryMessageCount(){ - HandlerUtils.mBgHandler.post{ - var count = PushRepository.pushRepository.pushBeanDao.getAllCount() - UiThreadHandler.post { - module_push_activity_title.text = if (count > 0) "历史消息(${count})" else "历史消息" - } - } - } - - override fun onResume() { - super.onResume() - adapter.notifyDataSetChanged() - } - - override fun onIntentReceived(intentStr: String?, intent: Intent?) { - if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(intentStr)) { - Logger.d("PushMessageActivity", "close by home key.") - finish() - } - } - - override fun onDestroy() { - super.onDestroy() - getApis(this).intentManagerApi.unregisterIntentListener(Intent.ACTION_CLOSE_SYSTEM_DIALOGS, this) - } -} \ No newline at end of file diff --git a/modules/mogo-module-push/src/main/java/com/mogo/module/push/fragment/MessageHistoryFragment.java b/modules/mogo-module-push/src/main/java/com/mogo/module/push/fragment/MessageHistoryFragment.java index 21a37325bf..17f97556a5 100644 --- a/modules/mogo-module-push/src/main/java/com/mogo/module/push/fragment/MessageHistoryFragment.java +++ b/modules/mogo-module-push/src/main/java/com/mogo/module/push/fragment/MessageHistoryFragment.java @@ -38,6 +38,8 @@ public */ class MessageHistoryFragment extends MvpFragment< MessageHistoryView, MessageHistoryPresenter > implements MessageHistoryView, IMogoMsgCenterListener { + private static final String TAG = "MessageHistoryFragment"; + private View mClear; private RecyclerView mHistoryList; private TextView mTitle; @@ -55,11 +57,11 @@ class MessageHistoryFragment extends MvpFragment< MessageHistoryView, MessageHis @Override protected void initViews() { - mClear = findViewById( R.id.module_push_activity_clear ); - mHistoryList = findViewById( R.id.module_push_activity_recycler_view ); - mTitle = findViewById( R.id.module_push_activity_title ); - mEmptyPlaceHolder = findViewById( R.id.module_push_activity_not_data ); - mClose = findViewById( R.id.module_push_activity_close ); + mClear = findViewById( R.id.module_push_id_clear ); + mHistoryList = findViewById( R.id.module_push_id_recycler_view ); + mTitle = findViewById( R.id.module_push_id_title ); + mEmptyPlaceHolder = findViewById( R.id.module_push_id_not_data ); + mClose = findViewById( R.id.module_push_id_close ); AnalyticsUtils.track( Config.NEWS_HISTORY_OPEN, null ); mClose.setOnClickListener( view -> { @@ -74,7 +76,6 @@ class MessageHistoryFragment extends MvpFragment< MessageHistoryView, MessageHis () -> { mViewModel.deleteAll(); mClearing = false; - return null; } ); } @@ -104,9 +105,11 @@ class MessageHistoryFragment extends MvpFragment< MessageHistoryView, MessageHis @Override public void lastItemShow( boolean show ) { if ( !show && !mClearing ) { - int size = mViewModel.getList().size(); - if ( size > 0 && size < mHistoryList.getChildCount() ) { - return; + if ( mViewModel.getList() != null ) { + int size = mViewModel.getList().size(); + if ( size > 0 && size < mHistoryList.getChildCount() ) { + return; + } } } mClear.setVisibility( show ? View.VISIBLE : View.GONE ); diff --git a/modules/mogo-module-push/src/main/java/com/mogo/module/push/utils/AnimatorUtils.kt b/modules/mogo-module-push/src/main/java/com/mogo/module/push/utils/AnimatorUtils.kt index 44f9b5b7fe..e121e2e957 100644 --- a/modules/mogo-module-push/src/main/java/com/mogo/module/push/utils/AnimatorUtils.kt +++ b/modules/mogo-module-push/src/main/java/com/mogo/module/push/utils/AnimatorUtils.kt @@ -4,8 +4,11 @@ import android.view.View import android.view.ViewGroup import androidx.core.view.get import androidx.core.view.isNotEmpty +import com.mogo.utils.logger.Logger -fun startClearAnimator(root: ViewGroup, method: () -> Unit) { +val TAG: String = "AnimatorUtils.kt" + +fun startClearAnimator(root: ViewGroup, runnable: Runnable) { if (root.isNotEmpty()) { var view: View var size = root.childCount - 1 @@ -13,13 +16,19 @@ fun startClearAnimator(root: ViewGroup, method: () -> Unit) { view = root[i] view.animate().translationX(-view.width.toFloat()).apply { if (i == 0) { - withEndAction(method) + try { + withEndAction(runnable) + } catch (e: Exception) { + Logger.e(TAG, e, "startClearAnimator->withEndAction") + } } duration = 200 startDelay = 100 * (size - i).toLong() } } } else { - method() + runnable?.apply { + run() + } } } \ No newline at end of file diff --git a/modules/mogo-module-push/src/main/res/drawable/module_push_activity_clear_bg.xml b/modules/mogo-module-push/src/main/res/drawable/module_push_clear_bg.xml similarity index 100% rename from modules/mogo-module-push/src/main/res/drawable/module_push_activity_clear_bg.xml rename to modules/mogo-module-push/src/main/res/drawable/module_push_clear_bg.xml diff --git a/modules/mogo-module-push/src/main/res/drawable/module_push_message_activity_background.xml b/modules/mogo-module-push/src/main/res/drawable/module_push_message_background.xml similarity index 100% rename from modules/mogo-module-push/src/main/res/drawable/module_push_message_activity_background.xml rename to modules/mogo-module-push/src/main/res/drawable/module_push_message_background.xml diff --git a/modules/mogo-module-push/src/main/res/layout/module_push_message_activity.xml b/modules/mogo-module-push/src/main/res/layout/module_push_message_activity.xml deleted file mode 100644 index c6231299a0..0000000000 --- a/modules/mogo-module-push/src/main/res/layout/module_push_message_activity.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/mogo-module-push/src/main/res/layout/module_push_message_hisotry_fragment.xml b/modules/mogo-module-push/src/main/res/layout/module_push_message_hisotry_fragment.xml index 06a0aff54d..15f8e2974e 100644 --- a/modules/mogo-module-push/src/main/res/layout/module_push_message_hisotry_fragment.xml +++ b/modules/mogo-module-push/src/main/res/layout/module_push_message_hisotry_fragment.xml @@ -9,11 +9,11 @@ android:layout_marginLeft="@dimen/module_push_panel_marginRight" android:paddingLeft="@dimen/module_push_panel_paddingLeft" android:paddingRight="@dimen/module_push_panel_paddingLeft" - android:background="@drawable/module_push_message_activity_background" + android:background="@drawable/module_push_message_background" android:layout_gravity="center_vertical"> mogo-module-push 清除 + 清空历史消息 + 暂无消息 diff --git a/modules/mogo-module-push/src/main/res/values/styles.xml b/modules/mogo-module-push/src/main/res/values/styles.xml index 4c65dec536..bb44cc75bc 100644 --- a/modules/mogo-module-push/src/main/res/values/styles.xml +++ b/modules/mogo-module-push/src/main/res/values/styles.xml @@ -4,6 +4,6 @@ true @android:style/Animation.Translucent - @drawable/module_push_message_activity_background + @drawable/module_push_message_background diff --git a/skin/mogo-skin-light/src/main/module-push-res/drawable/module_push_activity_clear_bg_light.xml b/skin/mogo-skin-light/src/main/module-push-res/drawable/module_push_clear_bg_light.xml similarity index 100% rename from skin/mogo-skin-light/src/main/module-push-res/drawable/module_push_activity_clear_bg_light.xml rename to skin/mogo-skin-light/src/main/module-push-res/drawable/module_push_clear_bg_light.xml diff --git a/skin/mogo-skin-light/src/main/module-push-res/drawable/module_push_message_activity_background_light.xml b/skin/mogo-skin-light/src/main/module-push-res/drawable/module_push_message_background_light.xml similarity index 100% rename from skin/mogo-skin-light/src/main/module-push-res/drawable/module_push_message_activity_background_light.xml rename to skin/mogo-skin-light/src/main/module-push-res/drawable/module_push_message_background_light.xml