diff --git a/base/src/main/java/com/heyongrui/base/assist/ConfigConstants.java b/base/src/main/java/com/heyongrui/base/assist/ConfigConstants.java
index 2ec4cc6..ef98703 100644
--- a/base/src/main/java/com/heyongrui/base/assist/ConfigConstants.java
+++ b/base/src/main/java/com/heyongrui/base/assist/ConfigConstants.java
@@ -50,6 +50,7 @@ public class ConfigConstants {
public static final String PATH_WELFARE = "/module2/welfare";
public static final String PATH_ABOUT = "/module2/about";
public static final String PATH_ENCOURAGE = "/module2/encourage";
+ public static final String PATH_TODAY_HISTORY = "/module2/todayHistory";
//科大讯飞Iflytek模块路径
public static final String PATH_VOICE_DICATION_PROVIDER = "/iflytek/service";
}
diff --git a/base/src/main/java/com/heyongrui/base/assist/RxManager.java b/base/src/main/java/com/heyongrui/base/assist/RxManager.java
index ecfcc5b..b8a5f6c 100644
--- a/base/src/main/java/com/heyongrui/base/assist/RxManager.java
+++ b/base/src/main/java/com/heyongrui/base/assist/RxManager.java
@@ -1,11 +1,13 @@
package com.heyongrui.base.assist;
+import javax.inject.Inject;
+
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
/**
* 用于管理RxBus的事件和Rxjava相关代码的生命周期处理
- * Created by hpw on 16/10/27.
+ * Created by lambert on 18/10/27.
*/
public class RxManager {
diff --git a/module2/src/main/AndroidManifest.xml b/module2/src/main/AndroidManifest.xml
index c92cbf2..466826e 100644
--- a/module2/src/main/AndroidManifest.xml
+++ b/module2/src/main/AndroidManifest.xml
@@ -17,5 +17,8 @@
+
diff --git a/module2/src/main/debug/AndroidManifest.xml b/module2/src/main/debug/AndroidManifest.xml
index 22db8ff..315863a 100644
--- a/module2/src/main/debug/AndroidManifest.xml
+++ b/module2/src/main/debug/AndroidManifest.xml
@@ -33,6 +33,9 @@
+
diff --git a/module2/src/main/java/com/heyongrui/module2/Module2Fragment.java b/module2/src/main/java/com/heyongrui/module2/Module2Fragment.java
index 1fd21d6..82aaa44 100644
--- a/module2/src/main/java/com/heyongrui/module2/Module2Fragment.java
+++ b/module2/src/main/java/com/heyongrui/module2/Module2Fragment.java
@@ -131,6 +131,9 @@ private void initBalls() {
case 3://IOS
ARouter.getInstance().build(ConfigConstants.PATH_GANK).withString("category", "iOS").navigation();
break;
+ case 4://历史上的今天
+ ARouter.getInstance().build(ConfigConstants.PATH_TODAY_HISTORY).navigation();
+ break;
case 5://前端
ARouter.getInstance().build(ConfigConstants.PATH_GANK).withString("category", "前端").navigation();
break;
@@ -154,7 +157,8 @@ private List getMenuList() {
gankMenuDtos.add(new GankMenuDto(getString(R.string.welfare), R.drawable.ic_welfare, 1));
gankMenuDtos.add(new GankMenuDto(getString(R.string.android), R.drawable.ic_android, 2));
gankMenuDtos.add(new GankMenuDto(getString(R.string.ios), R.drawable.ic_ios, 3));
- gankMenuDtos.add(new GankMenuDto(getString(R.string.rest_video), R.drawable.ic_video, 4));
+ gankMenuDtos.add(new GankMenuDto(getString(R.string.today_history), R.drawable.ic_history_today, 4));
+// gankMenuDtos.add(new GankMenuDto(getString(R.string.rest_video), R.drawable.ic_video, 4));
gankMenuDtos.add(new GankMenuDto(getString(R.string.front_end), R.drawable.ic_js, 5));
gankMenuDtos.add(new GankMenuDto(getString(R.string.expand), R.drawable.ic_expand, 6));
gankMenuDtos.add(new GankMenuDto(getString(R.string.app), R.drawable.ic_app, 7));
diff --git a/module2/src/main/java/com/heyongrui/module2/dagger/Module2Component.java b/module2/src/main/java/com/heyongrui/module2/dagger/Module2Component.java
index c6d2eaa..31fb2e0 100644
--- a/module2/src/main/java/com/heyongrui/module2/dagger/Module2Component.java
+++ b/module2/src/main/java/com/heyongrui/module2/dagger/Module2Component.java
@@ -8,6 +8,7 @@
import com.heyongrui.base.dagger.PerActivity;
import com.heyongrui.module2.gank.presenter.GankPresenter;
import com.heyongrui.module2.gank.presenter.LeisureReadPresenter;
+import com.heyongrui.module2.grocery.view.TodayHistoryActivity;
import dagger.Component;
@@ -27,4 +28,6 @@ public interface Module2Component {
void inject(GankPresenter gankPresenter);
void inject(LeisureReadPresenter leisureReadPresenter);
+
+ void inject(TodayHistoryActivity todayHistoryActivity);
}
diff --git a/module2/src/main/java/com/heyongrui/module2/dagger/Module2Module.java b/module2/src/main/java/com/heyongrui/module2/dagger/Module2Module.java
index 5d1024d..4a9b461 100644
--- a/module2/src/main/java/com/heyongrui/module2/dagger/Module2Module.java
+++ b/module2/src/main/java/com/heyongrui/module2/dagger/Module2Module.java
@@ -6,8 +6,10 @@
import androidx.fragment.app.Fragment;
+import com.heyongrui.base.assist.RxManager;
import com.heyongrui.base.dagger.PerActivity;
import com.heyongrui.module2.data.service.GankService;
+import com.heyongrui.module2.data.service.ModuleService;
import dagger.Module;
import dagger.Provides;
@@ -59,4 +61,15 @@ Context providesContext() {
GankService provideGankService() {
return new GankService();
}
+
+ @Provides
+ @PerActivity
+ ModuleService provideModuleService() {
+ return new ModuleService();
+ }
+
+ @Provides
+ RxManager provideRxManager() {
+ return new RxManager();
+ }
}
diff --git a/module2/src/main/java/com/heyongrui/module2/data/api/ModuleApi.kt b/module2/src/main/java/com/heyongrui/module2/data/api/ModuleApi.kt
new file mode 100644
index 0000000..74125a3
--- /dev/null
+++ b/module2/src/main/java/com/heyongrui/module2/data/api/ModuleApi.kt
@@ -0,0 +1,21 @@
+package com.heyongrui.module2.data.api
+
+import com.heyongrui.module2.data.dto.HistoryTodayDto
+import io.reactivex.Observable
+import retrofit2.http.GET
+import retrofit2.http.Query
+
+interface ModuleApi {
+
+ /**
+ * 历史上的今天
+ *
+ * @param day 查询的日期,例:0918(月日)
+ */
+ @GET("history/query?duid=&day=0918")
+ fun getTodayHistory(@Query("key") key: String,
+ @Query("duid") duid: String,
+ @Query("day") day: String): Observable
+
+
+}
\ No newline at end of file
diff --git a/module2/src/main/java/com/heyongrui/module2/data/dto/HistoryTodayDto.kt b/module2/src/main/java/com/heyongrui/module2/data/dto/HistoryTodayDto.kt
new file mode 100644
index 0000000..440f688
--- /dev/null
+++ b/module2/src/main/java/com/heyongrui/module2/data/dto/HistoryTodayDto.kt
@@ -0,0 +1,75 @@
+package com.heyongrui.module2.data.dto
+
+import android.os.Parcel
+import android.os.Parcelable
+
+data class HistoryTodayDto(
+ var msg: String,//success
+ var retCode: String,//200
+ var result: List) : Parcelable {
+ constructor(parcel: Parcel) : this(
+ parcel.readString(),
+ parcel.readString(),
+ parcel.createTypedArrayList(HistoryTodayBean)) {
+ }
+
+ data class HistoryTodayBean(
+ var id: String,//569881b6590146d407332c49
+ var title: String,
+ var date: String,//20190918
+ var month: Int,//9
+ var day: Int,//18
+ var event: String) : Parcelable {
+ constructor(parcel: Parcel) : this(
+ parcel.readString(),
+ parcel.readString(),
+ parcel.readString(),
+ parcel.readInt(),
+ parcel.readInt(),
+ parcel.readString()) {
+ }
+
+ override fun writeToParcel(parcel: Parcel, flags: Int) {
+ parcel.writeString(id)
+ parcel.writeString(title)
+ parcel.writeString(date)
+ parcel.writeInt(month)
+ parcel.writeInt(day)
+ parcel.writeString(event)
+ }
+
+ override fun describeContents(): Int {
+ return 0
+ }
+
+ companion object CREATOR : Parcelable.Creator {
+ override fun createFromParcel(parcel: Parcel): HistoryTodayBean {
+ return HistoryTodayBean(parcel)
+ }
+
+ override fun newArray(size: Int): Array {
+ return arrayOfNulls(size)
+ }
+ }
+ }
+
+ override fun writeToParcel(parcel: Parcel, flags: Int) {
+ parcel.writeString(msg)
+ parcel.writeString(retCode)
+ parcel.writeTypedList(result)
+ }
+
+ override fun describeContents(): Int {
+ return 0
+ }
+
+ companion object CREATOR : Parcelable.Creator {
+ override fun createFromParcel(parcel: Parcel): HistoryTodayDto {
+ return HistoryTodayDto(parcel)
+ }
+
+ override fun newArray(size: Int): Array {
+ return arrayOfNulls(size)
+ }
+ }
+}
\ No newline at end of file
diff --git a/module2/src/main/java/com/heyongrui/module2/data/service/ModuleService.kt b/module2/src/main/java/com/heyongrui/module2/data/service/ModuleService.kt
new file mode 100644
index 0000000..0ac0bbb
--- /dev/null
+++ b/module2/src/main/java/com/heyongrui/module2/data/service/ModuleService.kt
@@ -0,0 +1,21 @@
+package com.heyongrui.module2.data.service
+
+import com.heyongrui.module2.data.api.ModuleApi
+import com.heyongrui.module2.data.dto.HistoryTodayDto
+import com.heyongrui.network.configure.RxHelper
+import com.heyongrui.network.service.ApiService
+import io.reactivex.Observable
+
+class ModuleService {
+
+ /**
+ * 历史上的今天
+ *
+ * @param day 查询的日期,例:0918(月日)
+ */
+ fun getTodayHistory(day: String): Observable {
+ return ApiService.createApi(ModuleApi::class.java, "http://apicloud.mob.com/appstore/")
+ .getTodayHistory("moba6b6c6d6", "43275ff45b034bffaf6b9941a216fe6dbae31dc9", day)
+ .compose(RxHelper.rxSchedulerHelper())
+ }
+}
\ No newline at end of file
diff --git a/module2/src/main/java/com/heyongrui/module2/grocery/view/TodayHistoryActivity.kt b/module2/src/main/java/com/heyongrui/module2/grocery/view/TodayHistoryActivity.kt
new file mode 100644
index 0000000..e97e5b2
--- /dev/null
+++ b/module2/src/main/java/com/heyongrui/module2/grocery/view/TodayHistoryActivity.kt
@@ -0,0 +1,111 @@
+package com.heyongrui.module2.grocery.view
+
+import android.graphics.Color
+import android.os.Bundle
+import android.view.View
+import androidx.core.content.ContextCompat
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.blankj.utilcode.util.ConvertUtils
+import com.blankj.utilcode.util.ToastUtils
+import com.chad.library.adapter.base.BaseQuickAdapter
+import com.heyongrui.base.app.BaseApplication
+import com.heyongrui.base.assist.ConfigConstants
+import com.heyongrui.base.assist.RxManager
+import com.heyongrui.base.base.BaseActivity
+import com.heyongrui.base.base.BasePresenter
+import com.heyongrui.base.utils.DrawableUtil
+import com.heyongrui.base.utils.TimeUtil
+import com.heyongrui.base.widget.itemdecoration.RecycleViewItemDecoration
+import com.heyongrui.module2.R
+import com.heyongrui.module2.adapter.Module2SectionAdapter
+import com.heyongrui.module2.adapter.Module2SectionEntity
+import com.heyongrui.module2.dagger.DaggerModule2Component
+import com.heyongrui.module2.dagger.Module2Module
+import com.heyongrui.module2.data.dto.HistoryTodayDto
+import com.heyongrui.module2.data.service.ModuleService
+import com.heyongrui.network.configure.ResponseDisposable
+import kotlinx.android.synthetic.main.activity_today_history.*
+import java.util.*
+import javax.inject.Inject
+
+@Route(path = ConfigConstants.PATH_TODAY_HISTORY)
+class TodayHistoryActivity : BaseActivity>(),
+ View.OnClickListener,
+ BaseQuickAdapter.OnItemClickListener {
+
+ @Inject
+ lateinit var mModuleService: ModuleService
+ @Inject
+ lateinit var mRxManager: RxManager
+
+ lateinit var mTodayHistoryAdapter: Module2SectionAdapter
+
+ fun adapterIsInit() = ::mTodayHistoryAdapter.isInitialized
+
+ override fun initializeInjector() {
+ DaggerModule2Component.builder().appComponent(BaseApplication.getAppComponent())
+ .module2Module(Module2Module(this@TodayHistoryActivity)).build().inject(this)
+ }
+
+ override fun getLayoutId(): Int {
+ return R.layout.activity_today_history
+ }
+
+ override fun onClick(p0: View?) {
+ if (p0 != null) {
+ if (p0 == iv_back) {
+ finish()
+ }
+ }
+ }
+
+ override fun init(savedInstanceState: Bundle?) {
+ addOnClickListeners(this@TodayHistoryActivity, iv_back)
+
+ val tintDrawable = DrawableUtil.tintDrawable(this@TodayHistoryActivity,
+ R.drawable.ic_back, ContextCompat.getColor(this@TodayHistoryActivity, R.color.background))
+ iv_back.setImageDrawable(tintDrawable)
+
+ mTodayHistoryAdapter = initRecyclerView(rlv_today_history, this)
+
+ val day = TimeUtil.getDateString(Date(), "MMdd")
+ getTodayHistory(day)
+ }
+
+ fun initRecyclerView(recyclerView: RecyclerView, listener: BaseQuickAdapter.OnItemClickListener): Module2SectionAdapter {
+ val data = ArrayList()
+ val moduleSectionAdapter = Module2SectionAdapter(data)
+ recyclerView.layoutManager = LinearLayoutManager(this@TodayHistoryActivity)
+ moduleSectionAdapter.bindToRecyclerView(recyclerView)
+ val dp1 = ConvertUtils.dp2px(1f)
+ recyclerView.addItemDecoration(RecycleViewItemDecoration(this@TodayHistoryActivity, dp1, Color.TRANSPARENT))
+ moduleSectionAdapter.setSpanSizeLookup({ gridLayoutManager, position -> data[position].getSpanSize() })
+ if (null != listener) {
+ moduleSectionAdapter.setOnItemClickListener(listener)
+ }
+ return moduleSectionAdapter
+ }
+
+ override fun onItemClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {
+
+ }
+
+ fun getTodayHistory(day: String) {
+ mRxManager.add(mModuleService.getTodayHistory(day).subscribeWith(
+ object : ResponseDisposable(this@TodayHistoryActivity, true) {
+ override fun onSuccess(historyTodayDto: HistoryTodayDto) {
+ setData(historyTodayDto)
+ }
+
+ override fun onFailure(errorCode: Int, errorMsg: String) {
+ ToastUtils.showShort(errorMsg)
+ }
+ }))
+ }
+
+ fun setData(historyTodayDto: HistoryTodayDto) {
+ if (!adapterIsInit()) return
+ }
+}
\ No newline at end of file
diff --git a/module2/src/main/res/drawable-xhdpi/ic_history_today.png b/module2/src/main/res/drawable-xhdpi/ic_history_today.png
new file mode 100644
index 0000000..0b97e20
Binary files /dev/null and b/module2/src/main/res/drawable-xhdpi/ic_history_today.png differ
diff --git a/module2/src/main/res/layout/activity_today_history.xml b/module2/src/main/res/layout/activity_today_history.xml
new file mode 100644
index 0000000..3fb9927
--- /dev/null
+++ b/module2/src/main/res/layout/activity_today_history.xml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/module2/src/main/res/values/strings.xml b/module2/src/main/res/values/strings.xml
index 37be71a..a98421f 100644
--- a/module2/src/main/res/values/strings.xml
+++ b/module2/src/main/res/values/strings.xml
@@ -6,6 +6,7 @@
Android
iOS
休息视频
+ 历史上的今天
前端
拓展
App