Skip to content

Commit

Permalink
update Fragmentation
Browse files Browse the repository at this point in the history
  • Loading branch information
codeestX committed May 10, 2017
1 parent 444b66a commit 3307725
Show file tree
Hide file tree
Showing 20 changed files with 134 additions and 92 deletions.
50 changes: 36 additions & 14 deletions app/src/main/java/com/codeest/geeknews/app/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,31 +73,53 @@ public class Constants {
public static final String SP_MANAGER_POINT = "manager_point";

//================= INTENT ====================
public static final String IT_GANK_TYPE = "type";
public static final String IT_GANK_TYPE = "gank_type";

public static final String IT_GANK_TYPE_CODE = "type_code";
public static final String IT_GANK_TYPE_CODE = "gank_type_code";

public static final String IT_DETAIL_TITLE = "title";
public static final String IT_GANK_DETAIL_TITLE = "gank_detail_title";

public static final String IT_DETAIL_URL = "url";
public static final String IT_GANK_DETAIL_URL = "gank_detail_url";

public static final String IT_DETAIL_IMG_URL = "img_url";
public static final String IT_GANK_DETAIL_IMG_URL = "gank_detail_img_url";

public static final String IT_DETAIL_ID = "id";
public static final String IT_GANK_DETAIL_ID = "gank_detail_id";

public static final String IT_DETAIL_TYPE = "type";
public static final String IT_GANK_DETAIL_TYPE = "gank_detail_type";

public static final String IT_GOLD_TYPE = "type";
public static final String IT_GANK_GRIL_ID = "gank_girl_id";

public static final String IT_GOLD_TYPE_STR = "type_str";
public static final String IT_GANK_GRIL_URL = "gank_girl_url";

public static final String IT_GOLD_MANAGER = "manager";
public static final String IT_GOLD_TYPE = "gold_type";

public static final String IT_VTEX_TYPE = "type";
public static final String IT_GOLD_TYPE_STR = "gold_type_str";

public static final String IT_VTEX_TOPIC_ID = "id";
public static final String IT_GOLD_MANAGER = "gold_manager";

public static final String IT_VTEX_REPLIES_TOP = "top_info";
public static final String IT_VTEX_TYPE = "vtex_type";

public static final String IT_VTEX_NODE_NAME = "node_name";
public static final String IT_VTEX_TOPIC_ID = "vtex_id";

public static final String IT_VTEX_REPLIES_TOP = "vtex_replies_top";

public static final String IT_VTEX_NODE_NAME = "vtex_node_name";

public static final String IT_ZHIHU_DETAIL_ID = "zhihu_detail_id";

public static final String IT_ZHIHU_DETAIL_TRANSITION = "zhihu_detail_transition";

public static final String IT_ZHIHU_THEME_ID = "zhihu_theme_id";

public static final String IT_ZHIHU_SECTION_ID = "zhihu_section_id";

public static final String IT_ZHIHU_SECTION_TITLE = "zhihu_section_title";

public static final String IT_ZHIHU_COMMENT_ID = "zhihu_comment_id";

public static final String IT_ZHIHU_COMMENT_ALL_NUM = "zhihu_comment_all_num";

public static final String IT_ZHIHU_COMMENT_SHORT_NUM = "zhihu_comment_short_num";

public static final String IT_ZHIHU_COMMENT_LONG_NUM = "zhihu_comment_long_num";
}
8 changes: 8 additions & 0 deletions app/src/main/java/com/codeest/geeknews/base/BaseActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,22 @@ public void useNightMode(boolean isNight) {

@Override
public void stateError() {

}

@Override
public void stateEmpty() {

}

@Override
public void stateLoading() {

}

@Override
public void stateMain() {

}

protected abstract void initInject();
Expand Down
5 changes: 5 additions & 0 deletions app/src/main/java/com/codeest/geeknews/base/BaseFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@ public void stateError() {

}

@Override
public void stateEmpty() {

}

@Override
public void stateLoading() {

Expand Down
2 changes: 2 additions & 0 deletions app/src/main/java/com/codeest/geeknews/base/BaseView.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ public interface BaseView {
//======= State =======
void stateError();

void stateEmpty();

void stateLoading();

void stateMain();
Expand Down
23 changes: 15 additions & 8 deletions app/src/main/java/com/codeest/geeknews/base/RootActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ public abstract class RootActivity<T extends BasePresenter> extends BaseActivity
private LinearLayout viewError;
private FrameLayout viewLoading;
private ViewGroup viewMain;
ViewGroup mParent;

private int currentState = STATE_MAIN;
private boolean isErrorViewAdded = false;

@Override
protected void initEventAndData() {
Expand All @@ -35,15 +38,12 @@ protected void initEventAndData() {
}
if (!(viewMain.getParent() instanceof ViewGroup)) {
throw new IllegalStateException(
"view_main's ParentView should be a ViewGroup");
"view_main's ParentView should be a ViewGroup.");
}
ViewGroup parent = (ViewGroup) viewMain.getParent();
View.inflate(mContext, R.layout.view_error, parent);
View.inflate(mContext, R.layout.view_progress, parent);
viewError = (LinearLayout) parent.findViewById(R.id.view_error);
viewLoading = (FrameLayout) parent.findViewById(R.id.view_loading);
mParent = (ViewGroup) viewMain.getParent();
View.inflate(mContext, R.layout.view_progress, mParent);
viewLoading = (FrameLayout) mParent.findViewById(R.id.view_loading);
ivLoading = (ProgressImageView) viewLoading.findViewById(R.id.iv_progress);
viewError.setVisibility(View.GONE);
viewLoading.setVisibility(View.GONE);
viewMain.setVisibility(View.VISIBLE);
}
Expand All @@ -52,6 +52,11 @@ protected void initEventAndData() {
public void stateError() {
if (currentState == STATE_ERROR)
return;
if (!isErrorViewAdded) {
isErrorViewAdded = true;
View.inflate(mContext, R.layout.view_error, mParent);
viewError = (LinearLayout) mParent.findViewById(R.id.view_error);
}
hideCurrentView();
currentState = STATE_ERROR;
viewError.setVisibility(View.VISIBLE);
Expand Down Expand Up @@ -86,7 +91,9 @@ private void hideCurrentView() {
viewLoading.setVisibility(View.GONE);
break;
case STATE_ERROR:
viewError.setVisibility(View.GONE);
if (viewError != null) {
viewError.setVisibility(View.GONE);
}
break;
}
}
Expand Down
21 changes: 4 additions & 17 deletions app/src/main/java/com/codeest/geeknews/base/SimpleFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,26 +43,13 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mUnBinder = ButterKnife.bind(this, view);
if (savedInstanceState == null) {
if (!isHidden()) {
isInited = true;
initEventAndData();
}
} else {
if (!isSupportHidden()) {
isInited = true;
initEventAndData();
}
}
}

@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (!isInited && !hidden) {
isInited = true;
initEventAndData();
}
public void onLazyInitView(@Nullable Bundle savedInstanceState) {
super.onLazyInitView(savedInstanceState);
isInited = true;
initEventAndData();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ protected void initEventAndData() {
setToolBar(toolBar,"");
mRealmHelper = App.getAppComponent().realmHelper();
Intent intent = getIntent();
url = intent.getExtras().getString("url");
id = intent.getExtras().getString("id");
url = intent.getExtras().getString(Constants.IT_GANK_GRIL_URL);
id = intent.getExtras().getString(Constants.IT_GANK_GRIL_ID);
if (url != null) {
Glide.with(mContext).load(url).asBitmap().into(new SimpleTarget<Bitmap>() {
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,11 @@ protected void initEventAndData() {
mRealmHelper = App.getAppComponent().realmHelper();
mImplPreferencesHelper = App.getAppComponent().preferencesHelper();
Intent intent = getIntent();
type = intent.getExtras().getInt(Constants.IT_DETAIL_TYPE);
title = intent.getExtras().getString(Constants.IT_DETAIL_TITLE);
url = intent.getExtras().getString(Constants.IT_DETAIL_URL);
imgUrl = intent.getExtras().getString(Constants.IT_DETAIL_IMG_URL);
id = intent.getExtras().getString(Constants.IT_DETAIL_ID);
type = intent.getExtras().getInt(Constants.IT_GANK_DETAIL_TYPE);
title = intent.getExtras().getString(Constants.IT_GANK_DETAIL_TITLE);
url = intent.getExtras().getString(Constants.IT_GANK_DETAIL_URL);
imgUrl = intent.getExtras().getString(Constants.IT_GANK_DETAIL_IMG_URL);
id = intent.getExtras().getString(Constants.IT_GANK_DETAIL_ID);
setToolBar(toolBar,title);
WebSettings settings = wvTechContent.getSettings();
if (mImplPreferencesHelper.getNoImageState()) {
Expand Down Expand Up @@ -234,21 +234,21 @@ public static void launch(Builder builder) {
if (builder.shareView != null) {
Intent intent = new Intent();
intent.setClass(builder.mContext, TechDetailActivity.class);
intent.putExtra(Constants.IT_DETAIL_URL, builder.url);
intent.putExtra(Constants.IT_DETAIL_IMG_URL, builder.imgUrl);
intent.putExtra(Constants.IT_DETAIL_TITLE, builder.title);
intent.putExtra(Constants.IT_DETAIL_ID, builder.id);
intent.putExtra(Constants.IT_DETAIL_TYPE, builder.type);
intent.putExtra(Constants.IT_GANK_DETAIL_URL, builder.url);
intent.putExtra(Constants.IT_GANK_DETAIL_IMG_URL, builder.imgUrl);
intent.putExtra(Constants.IT_GANK_DETAIL_TITLE, builder.title);
intent.putExtra(Constants.IT_GANK_DETAIL_ID, builder.id);
intent.putExtra(Constants.IT_GANK_DETAIL_TYPE, builder.type);
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(builder.mActivity, builder.shareView, "shareView");
builder.mContext.startActivity(intent,options.toBundle());
} else {
Intent intent = new Intent();
intent.setClass(builder.mContext, TechDetailActivity.class);
intent.putExtra(Constants.IT_DETAIL_URL, builder.url);
intent.putExtra(Constants.IT_DETAIL_IMG_URL, builder.imgUrl);
intent.putExtra(Constants.IT_DETAIL_TITLE, builder.title);
intent.putExtra(Constants.IT_DETAIL_ID, builder.id);
intent.putExtra(Constants.IT_DETAIL_TYPE, builder.type);
intent.putExtra(Constants.IT_GANK_DETAIL_URL, builder.url);
intent.putExtra(Constants.IT_GANK_DETAIL_IMG_URL, builder.imgUrl);
intent.putExtra(Constants.IT_GANK_DETAIL_TITLE, builder.title);
intent.putExtra(Constants.IT_GANK_DETAIL_ID, builder.id);
intent.putExtra(Constants.IT_GANK_DETAIL_TYPE, builder.type);
builder.mContext.startActivity(intent);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import android.view.View;

import com.codeest.geeknews.R;
import com.codeest.geeknews.app.Constants;
import com.codeest.geeknews.base.BaseFragment;
import com.codeest.geeknews.model.bean.GankItemBean;
import com.codeest.geeknews.presenter.gank.GirlPresenter;
Expand Down Expand Up @@ -82,8 +83,8 @@ public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
public void onItemClickListener(int position, View shareView) {
Intent intent = new Intent();
intent.setClass(mContext, GirlDetailActivity.class);
intent.putExtra("url",mList.get(position).getUrl());
intent.putExtra("id",mList.get(position).get_id());
intent.putExtra(Constants.IT_GANK_GRIL_URL, mList.get(position).getUrl());
intent.putExtra(Constants.IT_GANK_GRIL_ID, mList.get(position).get_id());
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(mActivity, shareView, "shareView");
mContext.startActivity(intent,options.toBundle());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,15 +197,15 @@ public GirlViewHolder(View itemView) {
}
}

public void gotoDailyDetail(int id) {
private void gotoDailyDetail(int id) {
Intent intent = new Intent();
intent.setClass(mContext, ZhihuDetailActivity.class);
intent.putExtra("id",id);
intent.putExtra("isNotTransition",true);
intent.putExtra(Constants.IT_ZHIHU_DETAIL_ID, id);
intent.putExtra(Constants.IT_ZHIHU_DETAIL_TRANSITION, true);
mContext.startActivity(intent);
}

public void gotoTechDetail(String url,String imgUrl, String title,String id,int type) {
private void gotoTechDetail(String url, String imgUrl, String title, String id, int type) {
TechDetailActivity.launch(new TechDetailActivity.Builder()
.setContext(mContext)
.setUrl(url)
Expand All @@ -215,15 +215,15 @@ public void gotoTechDetail(String url,String imgUrl, String title,String id,int
.setType(type));
}

public void gotoGirlDetail(String url,String id) {
private void gotoGirlDetail(String url,String id) {
Intent intent = new Intent();
intent.setClass(mContext, GirlDetailActivity.class);
intent.putExtra("url",url);
intent.putExtra("id",id);
intent.putExtra(Constants.IT_GANK_GRIL_URL, url);
intent.putExtra(Constants.IT_GANK_GRIL_ID, id);
mContext.startActivity(intent);
}

public void gotoVtexDetail(String topicId) {
private void gotoVtexDetail(String topicId) {
Intent intent = new Intent();
intent.setClass(mContext, RepliesActivity.class);
intent.putExtra(Constants.IT_VTEX_TOPIC_ID,topicId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import android.support.v7.widget.Toolbar;

import com.codeest.geeknews.R;
import com.codeest.geeknews.app.Constants;
import com.codeest.geeknews.base.SimpleActivity;
import com.codeest.geeknews.ui.zhihu.adapter.CommentMainAdapter;
import com.codeest.geeknews.ui.zhihu.fragment.CommentFragment;
Expand Down Expand Up @@ -40,11 +41,10 @@ protected int getLayout() {
@Override
protected void initEventAndData() {
Intent intent = getIntent();
int allNum = intent.getExtras().getInt("allNum");
int shortNum = intent.getExtras().getInt("shortNum");
int longNum = intent.getExtras().getInt("longNum");
int id = intent.getExtras().getInt("id");
intent.getExtras().getInt("shortNum");
int allNum = intent.getExtras().getInt(Constants.IT_ZHIHU_COMMENT_ALL_NUM);
int shortNum = intent.getExtras().getInt(Constants.IT_ZHIHU_COMMENT_SHORT_NUM);
int longNum = intent.getExtras().getInt(Constants.IT_ZHIHU_COMMENT_LONG_NUM);
int id = intent.getExtras().getInt(Constants.IT_ZHIHU_COMMENT_ID);
setToolBar(toolBar,String.format("%d条评论",allNum));

CommentFragment shortCommentFragment = new CommentFragment();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import android.view.View;

import com.codeest.geeknews.R;
import com.codeest.geeknews.app.Constants;
import com.codeest.geeknews.base.RootActivity;
import com.codeest.geeknews.model.bean.SectionChildListBean;
import com.codeest.geeknews.presenter.zhihu.SectionChildPresenter;
Expand Down Expand Up @@ -74,7 +75,7 @@ public void OnItemClick(int position, View shareView) {
mAdapter.notifyItemChanged(position);
Intent intent = new Intent();
intent.setClass(mContext, ZhihuDetailActivity.class);
intent.putExtra("id", mList.get(position).getId());
intent.putExtra(Constants.IT_ZHIHU_DETAIL_ID, mList.get(position).getId());
if (shareView != null) {
mContext.startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(mContext, shareView, "shareView").toBundle());
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@

import com.bumptech.glide.Glide;
import com.codeest.geeknews.R;
import com.codeest.geeknews.app.Constants;
import com.codeest.geeknews.base.RootActivity;
import com.codeest.geeknews.base.contract.zhihu.ThemeChildContract;
import com.codeest.geeknews.component.ImageLoader;
import com.codeest.geeknews.model.bean.ThemeChildListBean;
import com.codeest.geeknews.presenter.zhihu.ThemeChildPresenter;
import com.codeest.geeknews.base.contract.zhihu.ThemeChildContract;
import com.codeest.geeknews.ui.zhihu.adapter.ThemeChildAdapter;
import com.codeest.geeknews.util.SystemUtil;

Expand Down Expand Up @@ -65,7 +66,7 @@ protected int getLayout() {
protected void initEventAndData() {
super.initEventAndData();
Intent intent = getIntent();
final int id = intent.getExtras().getInt("id");
final int id = intent.getExtras().getInt(Constants.IT_ZHIHU_THEME_ID);
mList = new ArrayList<>();
mAdapter = new ThemeChildAdapter(mContext, mList);
rvThemeChildList.setLayoutManager(new LinearLayoutManager(mContext));
Expand All @@ -80,7 +81,7 @@ public void onItemClick(int position, View shareView) {
mAdapter.notifyItemChanged(position);
Intent intent = new Intent();
intent.setClass(mContext, ZhihuDetailActivity.class);
intent.putExtra("id", mList.get(position).getId());
intent.putExtra(Constants.IT_ZHIHU_DETAIL_ID, mList.get(position).getId());
if (shareView != null) {
mContext.startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(mContext, shareView, "shareView").toBundle());
} else {
Expand Down
Loading

0 comments on commit 3307725

Please sign in to comment.