Skip to content

Commit

Permalink
好奇心日报首页实现
Browse files Browse the repository at this point in the history
  • Loading branch information
wosojadfjgo committed Sep 29, 2019
1 parent 9b1696c commit f137373
Show file tree
Hide file tree
Showing 28 changed files with 2,160 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public class ConfigConstants {
public static final String PATH_KAIYAN_DETAIL = "/module/kaiyanDetail";
public static final String PATH_DOUBAN = "/module/douban";
public static final String PATH_ZHIHU_DAILY_NEWS = "/module/zhiHuDailyNews";
public static final String PATH_Q_DAILY = "/module/qdaily";
public static final String PATH_GARBAGE_CLASSIFY = "/module/garbageClassify";
public static final String PATH_H5 = "/module/h5";
public static final String PATH_MODULE_PROVIDER = "/module/main/service";
Expand Down
3 changes: 3 additions & 0 deletions module/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,8 @@
<activity
android:name=".zhihu.view.ZhiHuDailyNewsActivity"
android:theme="@style/BaseAppTheme" />
<activity
android:name=".qdaily.view.QDailyActivity"
android:theme="@style/BaseAppTheme" />
</application>
</manifest>
3 changes: 3 additions & 0 deletions module/src/main/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@
<activity
android:name=".zhihu.view.ZhiHuDailyNewsActivity"
android:theme="@style/BaseAppTheme" />
<activity
android:name=".qdaily.view.QDailyActivity"
android:theme="@style/BaseAppTheme" />
</application>

</manifest>
4 changes: 4 additions & 0 deletions module/src/main/java/com/heyongrui/module/ModuleFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,9 @@ private void initRecyclerView(RecyclerView recyclerView) {
case 6://知乎日报
ARouter.getInstance().build(ConfigConstants.PATH_ZHIHU_DAILY_NEWS).navigation();
break;
case 7://好奇心日报
ARouter.getInstance().build(ConfigConstants.PATH_Q_DAILY).navigation();
break;
}
});
dataList.add(new ModuleSectionEntity(ModuleSectionEntity.MENU_CARD, new MenuCardDto(getString(R.string.tea), R.drawable.ic_tea, 1)));
Expand All @@ -96,6 +99,7 @@ private void initRecyclerView(RecyclerView recyclerView) {
dataList.add(new ModuleSectionEntity(ModuleSectionEntity.MENU_CARD, new MenuCardDto(getString(R.string.kaiyan), R.drawable.ic_kaiyan, 4)));
dataList.add(new ModuleSectionEntity(ModuleSectionEntity.MENU_CARD, new MenuCardDto(getString(R.string.movie), R.drawable.ic_movie, 5)));
dataList.add(new ModuleSectionEntity(ModuleSectionEntity.MENU_CARD, new MenuCardDto(getString(R.string.zhihu_daily), R.drawable.ic_zhihu, 6)));
dataList.add(new ModuleSectionEntity(ModuleSectionEntity.MENU_CARD, new MenuCardDto(getString(R.string.qdaily), R.drawable.ic_qdaily, 7)));
monoAdapter.replaceData(dataList);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
import com.heyongrui.module.data.dto.PoemGroupDetailDto;
import com.heyongrui.module.data.dto.PoemGroupDto;
import com.heyongrui.module.data.dto.PoemSearchDto;
import com.heyongrui.module.data.dto.Post;
import com.heyongrui.module.data.dto.TodayRecommendPoemDto;
import com.heyongrui.module.data.dto.ZhiHuDailyNewsDto;
import com.heyongrui.module.mono.view.MonoTeaActivity;
Expand Down Expand Up @@ -88,6 +89,8 @@ public ModuleSectionAdapter(int sectionHeadResId, List<ModuleSectionEntity> data
addItemType(ModuleSectionEntity.POEM_GROUP, R.layout.recycle_item_poem_group);
addItemType(ModuleSectionEntity.DOUBAN_MOVIE, R.layout.recycle_item_douban_movie);
addItemType(ModuleSectionEntity.ZHIHU_NEWS, R.layout.recycle_item_zhihu_news);
addItemType(ModuleSectionEntity.Q_DAILY_ONE, R.layout.recycle_item_q_daily_one);
addItemType(ModuleSectionEntity.Q_DAILY_TWO, R.layout.recycle_item_q_daily_two);
}

@Override
Expand Down Expand Up @@ -612,6 +615,36 @@ public void onItemClick(Context context, int position, RatioImageView ratioImage
GlideUtil.loadImage(mContext, cover, ivCover, ContextCompat.getDrawable(mContext, R.drawable.placeholder));
}
break;
case ModuleSectionEntity.Q_DAILY_ONE: {
UiUtil.setOnclickFeedBack(mContext, ContextCompat.getColor(mContext, R.color.background), ContextCompat.getColor(mContext, R.color.gray), helper.itemView);

String cover = "", title = "", desc = "";
Post post = item.getPost();
if (null != post) {
cover = post.getImage();
title = post.getTitle();
desc = post.getDescription();
}
ImageView ivCover = helper.getView(R.id.iv_cover);
GlideUtil.loadImage(mContext, cover, ivCover, null);
helper.setText(R.id.tv_title, title);
helper.setText(R.id.tv_desc, desc);
}
break;
case ModuleSectionEntity.Q_DAILY_TWO: {
UiUtil.setOnclickFeedBack(mContext, ContextCompat.getColor(mContext, R.color.background), ContextCompat.getColor(mContext, R.color.gray), helper.itemView);

String cover = "", title = "";
Post post = item.getPost();
if (null != post) {
cover = post.getImage();
title = post.getTitle();
}
ImageView ivCover = helper.getView(R.id.iv_cover);
GlideUtil.loadImage(mContext, cover, ivCover, null);
helper.setText(R.id.tv_title, title);
}
break;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.heyongrui.module.data.dto.PoemGroupDetailDto;
import com.heyongrui.module.data.dto.PoemGroupDto;
import com.heyongrui.module.data.dto.PoemSearchDto;
import com.heyongrui.module.data.dto.Post;
import com.heyongrui.module.data.dto.TodayRecommendPoemDto;
import com.heyongrui.module.data.dto.ZhiHuDailyNewsDto;

Expand All @@ -36,6 +37,8 @@ public class ModuleSectionEntity extends SectionMultiEntity implements MultiItem
public static final int POEM_GROUP = 111;
public static final int DOUBAN_MOVIE = 112;
public static final int ZHIHU_NEWS = 113;
public static final int Q_DAILY_ONE = 114;
public static final int Q_DAILY_TWO = 115;

private int itemType;
private int spanSize;
Expand All @@ -53,6 +56,7 @@ public class ModuleSectionEntity extends SectionMultiEntity implements MultiItem
private PoemGroupDetailDto.DataBean groupPoemDataBean;
private DouBanDto.SubjectsBean subjectsBean;
private ZhiHuDailyNewsDto.StoryBean storyBean;
private Post post;

public ModuleSectionEntity(boolean isHeader, String header, boolean isShow) {
super(isHeader, header);
Expand Down Expand Up @@ -97,6 +101,8 @@ public ModuleSectionEntity(int itemType, int spanSize, Object object) {
this.subjectsBean = (DouBanDto.SubjectsBean) object;
} else if (object instanceof ZhiHuDailyNewsDto.StoryBean) {
this.storyBean = (ZhiHuDailyNewsDto.StoryBean) object;
} else if (object instanceof Post) {
this.post = (Post) object;
}
}
}
Expand Down Expand Up @@ -221,4 +227,12 @@ public ZhiHuDailyNewsDto.StoryBean getStoryBean() {
public void setStoryBean(ZhiHuDailyNewsDto.StoryBean storyBean) {
this.storyBean = storyBean;
}

public Post getPost() {
return post;
}

public void setPost(Post post) {
this.post = post;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.heyongrui.module.ModuleFragment;
import com.heyongrui.module.douban.presenter.DouBanPresenter;
import com.heyongrui.module.douban.view.DouBanActivity;
import com.heyongrui.module.qdaily.presenter.QDailyPresenter;
import com.heyongrui.module.textword.view.SmartRobotActivity;
import com.heyongrui.module.zhihu.presenter.ZhiHuDailyNewsPresenter;

Expand Down Expand Up @@ -36,4 +37,6 @@ public interface ModuleComponent {
void inject(SmartRobotActivity smartRobotActivity);

void inject(ZhiHuDailyNewsPresenter zhiHuDailyNewsPresenter);

void inject(QDailyPresenter zhiHuDailyNewsPresenter);
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
package com.heyongrui.module.data.api;

import com.heyongrui.module.data.dto.QDailyArticleDto;
import com.heyongrui.module.data.dto.QDailyColumnDto;
import com.heyongrui.module.data.dto.QDailyLabDetailDto;
import com.heyongrui.module.data.dto.QDailyLabsDto;
import com.heyongrui.module.data.dto.QDailyNewsDto;
import com.heyongrui.module.data.dto.QDailyResponse;
import com.heyongrui.module.data.dto.QDilyColumnInfoDto;
import com.heyongrui.module.data.dto.ZhiHuDailyNewsDto;

import io.reactivex.Observable;
Expand Down Expand Up @@ -36,4 +43,64 @@ public interface DailyLifeApi {
*/
@GET("news/{id}")
Observable<Object> getZhiHuNewsHtmlContent(@Path("id") int id);

/**
* 获取好奇心日报首页NEWS
*
* @param pageKey 页面参数,用于分页(0.json,1558824932.json)
*/
@GET("homes/index_v2/{page_key}")
Observable<QDailyResponse<QDailyNewsDto>> getQDailyNews(@Path("page_key") String pageKey);

/**
* 获取好奇心日报首页LABS
*
* @param pageKey 页面参数,用于分页(0.json,1558824932.json)
*/
@GET("papers/index/{page_key}")
Observable<QDailyResponse<QDailyLabsDto>> getQDailyLabs(@Path("page_key") String pageKey);

/**
* 获取好奇心日报LABS详情
*
* @param detailKey 详情键(3027.json)
*/
@GET("papers/detail/{detail_key}")
Observable<QDailyResponse<QDailyLabDetailDto>> getQDailyLabDetail(@Path("detail_key") String detailKey);

/**
* 获取好奇心日报栏目中心
*
* @param pageKey 页面参数,用于分页(0,1558824932)
*/
@GET("columns/all_columns_index/{page_key}")
Observable<QDailyResponse<QDailyColumnDto>> getQDailyColumns(@Path("page_key") String pageKey);

/**
* 获取好奇心日报栏目信息
*
* @param columnId 栏目ID(0.json,56.json)
*/
@GET("columns/info/{column_id}")
Observable<QDailyResponse<QDilyColumnInfoDto>> getQDailyColumnInfo(@Path("column_id") String columnId);

/**
* 获取好奇心日报栏目下的文章列表
*
* @param columnId 栏目ID(46)
* @param pageKey 页面参数,用于分页(0.json,1558824932.json)
*/
@GET("columns/index/{column_id}/{page_key}")
Observable<QDailyResponse<QDailyArticleDto>> getQDailyColumnArticles(@Path("column_id") int columnId,
@Path("page_key") String pageKey);

/**
* 获取好奇心日报不同分类的文章列表
*
* @param category 类别(1-长文章 17-设计 16-Top15 19-时尚 3-娱乐 63-大公司头条 5-文化 18-商业 54-游戏 4-智能)
* @param pageKey 页面参数,用于分页(0.json,1558824932.json)
*/
@GET("categories/index/{category}/{page_key}")
Observable<QDailyResponse<QDailyArticleDto>> getQDailyCategoryArticles(@Path("category") int category,
@Path("page_key") String pageKey);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.heyongrui.module.data.dto

import android.os.Parcel
import android.os.Parcelable
import java.io.Serializable

data class QDailyArticleDto(
val feeds: List<Feed>,
val has_more: Boolean,
val last_key: String
) : Parcelable, Serializable {
constructor(parcel: Parcel) : this(
parcel.createTypedArrayList(Feed),
parcel.readByte() != 0.toByte(),
parcel.readString()) {
}

override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeTypedList(feeds)
parcel.writeByte(if (has_more) 1 else 0)
parcel.writeString(last_key)
}

override fun describeContents(): Int {
return 0
}

companion object CREATOR : Parcelable.Creator<QDailyArticleDto> {
private const val serialVersionUID = 5928979654148925074L

override fun createFromParcel(parcel: Parcel): QDailyArticleDto {
return QDailyArticleDto(parcel)
}

override fun newArray(size: Int): Array<QDailyArticleDto?> {
return arrayOfNulls(size)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.heyongrui.module.data.dto

import android.os.Parcel
import android.os.Parcelable
import java.io.Serializable

data class QDailyColumnDto(
var columns: List<Column>,
// var columns_ad: List<Any>,
var has_more: Boolean,
var last_key: String
) : Parcelable, Serializable {
constructor(parcel: Parcel) : this(
parcel.createTypedArrayList(Column),
parcel.readByte() != 0.toByte(),
parcel.readString()) {
}

override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeTypedList(columns)
parcel.writeByte(if (has_more) 1 else 0)
parcel.writeString(last_key)
}

override fun describeContents(): Int {
return 0
}

companion object CREATOR : Parcelable.Creator<QDailyColumnDto> {
private const val serialVersionUID = 592852979308925424L

override fun createFromParcel(parcel: Parcel): QDailyColumnDto {
return QDailyColumnDto(parcel)
}

override fun newArray(size: Int): Array<QDailyColumnDto?> {
return arrayOfNulls(size)
}
}
}
Loading

0 comments on commit f137373

Please sign in to comment.