Skip to content

Commit b1ae856

Browse files
committed
改进我的页面、登录
改进博主页面加载更多问题 集成bugly崩溃上报
1 parent 3a678b3 commit b1ae856

27 files changed

+313
-90
lines changed

.idea/gradle.xml

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

+9-8
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ android {
66
buildToolsVersion '25.0.2'
77

88
dexOptions{
9-
javaMaxHeapSize '4g'
9+
javaMaxHeapSize '2g'
1010
}
1111

1212
signingConfigs {
@@ -53,23 +53,24 @@ dependencies {
5353
exclude group: 'com.android.support', module: 'support-annotations'
5454
})
5555
compile project(':sdk')
56-
compile 'com.android.support:appcompat-v7:24.2.1'
56+
compile 'com.android.support:appcompat-v7:25.4.0'
5757
testCompile 'junit:junit:4.12'
58-
compile 'com.android.support:design:24.2.1'
59-
compile 'com.jakewharton:butterknife:8.4.0'
60-
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
58+
compile 'com.android.support:design:25.4.0'
59+
compile 'com.jakewharton:butterknife:8.7.0'
60+
annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'
6161
compile 'in.srain.cube:ultra-ptr:1.0.11'
6262
compile 'com.jcodecraeer:xrecyclerview:1.3.2'
6363
compile 'com.makeramen:roundedimageview:2.2.1'
6464
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
65-
compile 'com.umeng.analytics:analytics:latest.integration'
65+
compile 'com.umeng.analytics:analytics:6.1.1'
6666
// 事件通知
6767
compile 'org.greenrobot:eventbus:3.0.0'
6868
// 滑动返回
6969
compile 'me.imid.swipebacklayout.lib:library:1.0.0'
70-
compile 'com.android.support:multidex:1.0.0'
70+
compile 'com.android.support:multidex:1.0.1'
7171
compile 'com.github.chrisbanes.photoview:library:1.2.4'
7272
compile 'com.github.Cutta:GifView:1.1'
7373

74-
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5'
74+
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'
75+
compile 'com.tencent.bugly:crashreport:2.6.5'
7576
}

app/src/main/AndroidManifest.xml

+11-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
1313
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
1414
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
15-
15+
<uses-permission android:name="android.permission.READ_LOGS"/>
1616

1717
<application
1818
android:name=".CnblogsApplication"
@@ -72,9 +72,13 @@
7272
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
7373

7474
<activity
75-
android:name=".activity.LoginActivity"/>
75+
android:name=".activity.LoginActivity"
76+
android:launchMode="singleTop"
77+
android:windowSoftInputMode="stateVisible"/>
78+
7679
<activity
7780
android:name=".activity.WebActivity"/>
81+
7882
<activity android:name=".activity.WebLoginActivity"/>
7983
<activity android:name=".activity.ImagePreviewActivity"/>
8084
<activity android:name=".activity.BloggerActivity"
@@ -87,6 +91,11 @@
8791
</activity>
8892
<activity android:name=".activity.FriendsActivity"/>
8993

94+
<activity
95+
android:name=".activity.FavoritesActivity"
96+
android:label="@string/my_collection"
97+
android:launchMode="singleTop"/>
98+
9099

91100
<meta-data
92101
android:name="UMENG_APPKEY"

app/src/main/java/com/rae/cnblogs/AppRoute.java

+8
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import com.rae.cnblogs.activity.BlogContentActivity;
1010
import com.rae.cnblogs.activity.BloggerActivity;
11+
import com.rae.cnblogs.activity.FavoritesActivity;
1112
import com.rae.cnblogs.activity.FriendsActivity;
1213
import com.rae.cnblogs.activity.ImagePreviewActivity;
1314
import com.rae.cnblogs.activity.LoginActivity;
@@ -138,4 +139,11 @@ public static void jumpToBlogger(Context context, String blogApp) {
138139
intent.putExtra("blogApp", blogApp);
139140
startActivity(context, intent);
140141
}
142+
143+
/**
144+
* 我的收藏
145+
*/
146+
public static void jumpToFavorites(Context context) {
147+
startActivity(context, FavoritesActivity.class);
148+
}
141149
}

app/src/main/java/com/rae/cnblogs/CnblogsApplication.java

+11-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22

33
import android.app.Application;
44
import android.content.Context;
5+
import android.support.multidex.MultiDex;
56

7+
import com.rae.cnblogs.sdk.BuildConfig;
68
import com.rae.cnblogs.sdk.UserProvider;
79
import com.rae.cnblogs.sdk.bean.UserInfoBean;
810
import com.rae.cnblogs.sdk.db.DbCnblogs;
911
import com.rae.swift.session.SessionManager;
12+
import com.squareup.leakcanary.LeakCanary;
13+
import com.tencent.bugly.crashreport.CrashReport;
1014
import com.umeng.socialize.PlatformConfig;
1115
import com.umeng.socialize.UMShareAPI;
1216

@@ -31,7 +35,12 @@ public void onCreate() {
3135
initUmengShareConfig();
3236
UserProvider.init(this);
3337
SessionManager.initWithConfig(new SessionManager.ConfigBuilder().context(getApplicationContext()).userClass(UserInfoBean.class).build());
34-
// LeakCanary.install(this);
38+
if (!BuildConfig.BUILD_TYPE.equals("debug")) {
39+
CrashReport.initCrashReport(getApplicationContext(), "7e5c07e5c9", BuildConfig.DEBUG);
40+
}
41+
if (BuildConfig.DEBUG) {
42+
LeakCanary.install(this);
43+
}
3544
}
3645

3746
/**
@@ -47,6 +56,6 @@ private void initUmengShareConfig() {
4756
@Override
4857
protected void attachBaseContext(Context base) {
4958
super.attachBaseContext(base);
50-
// MultiDex.install(base);
59+
MultiDex.install(base);
5160
}
5261
}

app/src/main/java/com/rae/cnblogs/activity/BaseActivity.java

+8
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,14 @@ public void onClick(View view) {
7171
}
7272
}
7373

74+
protected void showHomeAsUp() {
75+
ActionBar actionBar = getSupportActionBar();
76+
if (actionBar != null) {
77+
actionBar.setDisplayHomeAsUpEnabled(true);
78+
}
79+
}
80+
81+
7482
/**
7583
* 返回按钮的图片
7684
*/

app/src/main/java/com/rae/cnblogs/activity/BloggerActivity.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,11 @@ public void onScrollPercentChange(float percent) {
115115
mTitleView.setAlpha(percent);
116116

117117
if (percent > 0.5) {
118-
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_back);
118+
// getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_back);
119119
mFollowView.setBackgroundResource(R.drawable.bg_btn_follow_drak);
120120
mFollowView.setTextColor(ContextCompat.getColor(getContext(), R.color.ph2));
121121
} else {
122-
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_back_white);
122+
// getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_back_white);
123123
mFollowView.setBackgroundResource(R.drawable.bg_btn_follow);
124124
mFollowView.setTextColor(ContextCompat.getColor(getContext(), R.color.white));
125125
}
@@ -145,10 +145,10 @@ public void run() {
145145
}
146146

147147

148-
@Override
149-
protected int getHomeAsUpIndicator() {
150-
return R.drawable.ic_back_white;
151-
}
148+
// @Override
149+
// protected int getHomeAsUpIndicator() {
150+
// return R.drawable.ic_back_white;
151+
// }
152152

153153
@Override
154154
public void onLoadBloggerInfo(FriendsInfoBean userInfo) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.rae.cnblogs.activity;
2+
3+
import android.os.Bundle;
4+
import android.support.annotation.Nullable;
5+
6+
import com.rae.cnblogs.R;
7+
8+
/**
9+
* 我的收藏
10+
* Created by ChenRui on 2017/7/14 0014 14:58.
11+
*/
12+
public class FavoritesActivity extends SwipeBackBaseActivity {
13+
@Override
14+
protected void onCreate(@Nullable Bundle savedInstanceState) {
15+
super.onCreate(savedInstanceState);
16+
setContentView(R.layout.activity_favorites);
17+
showHomeAsUp();
18+
setTitle(R.string.my_collection);
19+
}
20+
}

app/src/main/java/com/rae/cnblogs/activity/MainActivity.java

+16-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import android.support.v4.view.ViewPager;
77
import android.util.Log;
88
import android.view.View;
9+
import android.webkit.CookieManager;
910
import android.widget.TextView;
1011

1112
import com.rae.cnblogs.AppMobclickAgent;
@@ -18,9 +19,12 @@
1819
import com.rae.cnblogs.fragment.HomeFragment;
1920
import com.rae.cnblogs.fragment.MineFragment;
2021
import com.rae.cnblogs.sdk.ApiDefaultObserver;
22+
import com.rae.cnblogs.sdk.BuildConfig;
2123
import com.rae.cnblogs.sdk.CnblogsApiFactory;
24+
import com.rae.cnblogs.sdk.UserProvider;
2225
import com.rae.cnblogs.sdk.bean.BlogType;
2326
import com.rae.cnblogs.sdk.bean.CategoryBean;
27+
import com.rae.cnblogs.sdk.bean.UserInfoBean;
2428
import com.rae.cnblogs.sdk.bean.VersionInfo;
2529
import com.rae.swift.app.RaeFragmentAdapter;
2630

@@ -43,8 +47,19 @@ protected void onCreate(Bundle savedInstanceState) {
4347
AppStatusBar.setStatusbarToDark(this);
4448
super.onCreate(savedInstanceState);
4549
setContentView(R.layout.activity_main);
46-
mFragmentAdapter = new RaeFragmentAdapter(getSupportFragmentManager());
4750

51+
// 模拟登录
52+
if(BuildConfig.DEBUG) {
53+
UserInfoBean userInfo = new UserInfoBean();
54+
userInfo.setAvatar("http://pic.cnblogs.com/avatar/446312/20170124105915.png");
55+
userInfo.setBlogApp("chenrui7");
56+
userInfo.setDisplayName("RAE");
57+
userInfo.setUserId("fdeed5f3-11fb-e111-aa3f-842b2b196315");
58+
CookieManager.getInstance().setCookie("http://www.cnblogs.com", ".CNBlogsCookie=80FDCAB0EBBE7772388EACB741A3FB57CA6D859BC6EF577A885F4ECF0B23631860BF05414E174E9CE32A6E0DC54E899B5650CD080777D5EC7B20247D094488A04EB45327B679DAD0FA7CC591CCDD39B603D017C0; .Cnblogs.AspNetCore.Cookies=CfDJ8PhlBN8IFxtHhqIV3s0LCDlTnIsf_KkYB04opjBUp_qeRD4_oKqtnDvr1zdsQ07TA8HmfUCuI7TWBwU6U_XPxHECcqUhtHpq9ecBa3wQ3MzTyr7fxF8Y6VKEum-uCZ3y0umuwXEWfxujWtgyHmJpSd7TXAsa6YxQEcT-JtW32yjgEDFbxr3dQg1fuiPA3GIa8sJl1xS9prbQi5NEFDd2YK_3cqmpnhSvsFQqCGzCc12o6XfrgSaOSCnXu3XqF_c7zcp4Xm93gmUZiirCe1EKZqr7ZKcJr_A2a6G89TcXl9jIoaN2JpXOk1WX8oLcI8jBqw; CONTAINERID=b73f4cdef6c2af5e595f530502ac2814eeafc0b0e474fd47e4b5f3fce8a7a65c");
59+
UserProvider.getInstance().setLoginUserInfo(userInfo);
60+
}
61+
62+
mFragmentAdapter = new RaeFragmentAdapter(getSupportFragmentManager());
4863
CategoryBean kb = new CategoryBean();
4964
kb.setType("kb");
5065
kb.setName(getString(R.string.tab_library));

app/src/main/java/com/rae/cnblogs/dialog/impl/EditCommentDialog.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public void show(BlogCommentBean comment) {
7777
mReferenceView.setChecked(true);
7878
if (comment != null) {
7979
mReferenceView.setText("引用@" + comment.getAuthorName() + "的评论");
80-
mBodyView.setHint("回复:“" + comment.getBody() + "”");
80+
mBodyView.setHint("回复:“" + TextUtils.substring(comment.getBody(), 0, 100) + "”");
8181
}
8282
}
8383

app/src/main/java/com/rae/cnblogs/fragment/BlogListFragment.java

+7
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ public void onLoadMore() {
106106

107107
@Override
108108
public void onLoadBlogList(int page, List<BlogBean> data) {
109+
mRecyclerView.setNoMore(false);
109110
if (page <= 1)
110111
mAppLayout.refreshComplete();
111112
else
@@ -129,6 +130,12 @@ public CategoryBean getCategory() {
129130
return mCategory;
130131
}
131132

133+
@Override
134+
public void onLoadMoreEmpty() {
135+
mRecyclerView.loadMoreComplete();
136+
mRecyclerView.setNoMore(true);
137+
}
138+
132139
/**
133140
* 滚动到顶部
134141
*/

app/src/main/java/com/rae/cnblogs/fragment/MineFragment.java

+30
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.rae.cnblogs.fragment;
22

33
import android.view.View;
4+
import android.widget.Button;
45
import android.widget.ImageView;
56
import android.widget.TextView;
67

@@ -17,6 +18,8 @@
1718
import com.rae.cnblogs.sdk.api.IUserApi;
1819
import com.rae.cnblogs.sdk.bean.FriendsInfoBean;
1920
import com.rae.cnblogs.sdk.bean.UserInfoBean;
21+
import com.rae.swift.session.SessionManager;
22+
import com.umeng.analytics.MobclickAgent;
2023

2124
import butterknife.BindView;
2225
import butterknife.OnClick;
@@ -42,6 +45,9 @@ public static MineFragment newInstance() {
4245
@BindView(R.id.tv_fans_count)
4346
TextView mFansCountView;
4447

48+
@BindView(R.id.btn_logout)
49+
Button mLogoutButton;
50+
4551
@Override
4652
protected int getLayoutId() {
4753
return R.layout.fm_mine;
@@ -72,9 +78,12 @@ private void loadUserInfo() {
7278
mDisplayNameView.setText(R.string.please_login);
7379
mFansCountView.setText("0");
7480
mFollowCountView.setText("0");
81+
mLogoutButton.setVisibility(View.GONE);
7582
return;
7683
}
7784

85+
mLogoutButton.setVisibility(View.VISIBLE);
86+
7887
UserInfoBean user = UserProvider.getInstance().getLoginUserInfo();
7988
onLoadUserInfo(user);
8089
Observable<FriendsInfoBean> observable = CnblogsApiFactory.getInstance(this.getContext()).getFriendApi().getFriendsInfo(user.getBlogApp());
@@ -156,4 +165,25 @@ public void onLoginClick() {
156165

157166
AppRoute.jumpToBlogger(getContext(), UserProvider.getInstance().getLoginUserInfo().getBlogApp());
158167
}
168+
169+
/**
170+
* 我的收藏
171+
*/
172+
@OnClick(R.id.ll_favorites)
173+
public void onFavoritesClick() {
174+
// 没有登录跳登录
175+
if (isNotLogin()) {
176+
AppRoute.jumpToLogin(getActivity());
177+
return;
178+
}
179+
AppRoute.jumpToFavorites(this.getContext());
180+
}
181+
182+
@OnClick(R.id.btn_logout)
183+
public void onLogoutClick() {
184+
MobclickAgent.onProfileSignOff();
185+
UserProvider.getInstance().logout();
186+
SessionManager.getDefault().clear();
187+
loadUserInfo();
188+
}
159189
}

app/src/main/java/com/rae/cnblogs/presenter/IBlogListPresenter.java

+1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ interface IBlogListView {
2626

2727
CategoryBean getCategory();
2828

29+
void onLoadMoreEmpty();
2930
}
3031
}

app/src/main/java/com/rae/cnblogs/presenter/impl/blog/BlogListPresenterImpl.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import android.os.Message;
66
import android.support.annotation.NonNull;
77

8-
import com.rae.cnblogs.RxObservable;
98
import com.rae.cnblogs.presenter.IBlogListPresenter;
109
import com.rae.cnblogs.presenter.impl.BasePresenter;
1110
import com.rae.cnblogs.sdk.ApiDefaultObserver;
@@ -69,12 +68,17 @@ protected void onError(String message) {
6968

7069
@Override
7170
protected void accept(List<BlogBean> blogBeans) {
71+
if (Rx.isEmpty(blogBeans) && mPageIndex > 1) {
72+
// 没有更多
73+
mView.onLoadMoreEmpty();
74+
return;
75+
}
7276
onApiSuccess(blogBeans);
7377
}
7478
};
7579
}
7680

77-
public void onApiSuccess(List<BlogBean> data) {
81+
private void onApiSuccess(List<BlogBean> data) {
7882

7983
// 保存到数据库
8084
if (!Rx.isEmpty(data)) {

0 commit comments

Comments
 (0)