Skip to content

Commit

Permalink
加入历史上的今天
Browse files Browse the repository at this point in the history
  • Loading branch information
wosojadfjgo committed Sep 6, 2019
1 parent 0598eef commit cae2258
Show file tree
Hide file tree
Showing 14 changed files with 319 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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";
}
4 changes: 3 additions & 1 deletion base/src/main/java/com/heyongrui/base/assist/RxManager.java
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
3 changes: 3 additions & 0 deletions module2/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,8 @@
<activity
android:name=".gank.view.LeisureReadActivity"
android:theme="@style/BaseAppTheme" />
<activity
android:name=".grocery.view.TodayHistoryActivity"
android:theme="@style/BaseAppTheme" />
</application>
</manifest>
3 changes: 3 additions & 0 deletions module2/src/main/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@
<activity
android:name=".gank.view.LeisureReadActivity"
android:theme="@style/BaseAppTheme" />
<activity
android:name=".grocery.view.TodayHistoryActivity"
android:theme="@style/BaseAppTheme" />
</application>

</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -154,7 +157,8 @@ private List<GankMenuDto> 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));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -27,4 +28,6 @@ public interface Module2Component {
void inject(GankPresenter gankPresenter);

void inject(LeisureReadPresenter leisureReadPresenter);

void inject(TodayHistoryActivity todayHistoryActivity);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -59,4 +61,15 @@ Context providesContext() {
GankService provideGankService() {
return new GankService();
}

@Provides
@PerActivity
ModuleService provideModuleService() {
return new ModuleService();
}

@Provides
RxManager provideRxManager() {
return new RxManager();
}
}
21 changes: 21 additions & 0 deletions module2/src/main/java/com/heyongrui/module2/data/api/ModuleApi.kt
Original file line number Diff line number Diff line change
@@ -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<HistoryTodayDto>


}
Original file line number Diff line number Diff line change
@@ -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<HistoryTodayBean>) : 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<HistoryTodayBean> {
override fun createFromParcel(parcel: Parcel): HistoryTodayBean {
return HistoryTodayBean(parcel)
}

override fun newArray(size: Int): Array<HistoryTodayBean?> {
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<HistoryTodayDto> {
override fun createFromParcel(parcel: Parcel): HistoryTodayDto {
return HistoryTodayDto(parcel)
}

override fun newArray(size: Int): Array<HistoryTodayDto?> {
return arrayOfNulls(size)
}
}
}
Original file line number Diff line number Diff line change
@@ -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<HistoryTodayDto> {
return ApiService.createApi(ModuleApi::class.java, "http://apicloud.mob.com/appstore/")
.getTodayHistory("moba6b6c6d6", "43275ff45b034bffaf6b9941a216fe6dbae31dc9", day)
.compose(RxHelper.rxSchedulerHelper())
}
}
Original file line number Diff line number Diff line change
@@ -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<BasePresenter<*>>(),
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<Module2SectionEntity>()
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<HistoryTodayDto>(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
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit cae2258

Please sign in to comment.