Skip to content
This repository was archived by the owner on Jun 5, 2024. It is now read-only.

Commit 7de0016

Browse files
committed
解决头像上传手机权限问题、修复评论框、收藏状态没同步更新问题。
1 parent 71b523d commit 7de0016

File tree

18 files changed

+109
-34
lines changed

18 files changed

+109
-34
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import android.support.design.widget.RaeTabLayout;
1111
import android.support.v4.app.ActivityCompat;
1212
import android.support.v4.app.Fragment;
13+
import android.support.v4.content.ContextCompat;
1314
import android.support.v4.view.ViewPager;
1415
import android.util.Log;
1516
import android.view.View;
@@ -58,6 +59,9 @@ public class MainActivity extends BasicActivity implements MainContract.View, Ra
5859

5960
@Override
6061
protected void onCreate(Bundle savedInstanceState) {
62+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
63+
getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.statusBarColor));
64+
}
6165
super.onCreate(savedInstanceState);
6266
setContentView(R.layout.activity_main);
6367
mPresenter = new MainPresenterImpl(this);
@@ -73,7 +77,7 @@ protected void onCreate(Bundle savedInstanceState) {
7377
// 启动服务
7478
startService(new Intent(this, CnblogsService.class));
7579
// if (BuildConfig.DEBUG) {
76-
// debugLogin();
80+
debugLogin();
7781
// }
7882
}
7983

module-blog/src/main/java/com/rae/cnblogs/blog/FavoritesActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import butterknife.BindView;
2323

2424
/**
25-
* 首页博客
25+
* 我的收藏
2626
* Created by rae on 2018/5/26.
2727
* Copyright (c) https://github.com/raedev All rights reserved.
2828
*/

module-blog/src/main/java/com/rae/cnblogs/blog/content/BookmarkListPresenterImpl.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,14 @@
1111
import com.rae.cnblogs.sdk.api.IBookmarksApi;
1212
import com.rae.cnblogs.sdk.bean.BookmarksBean;
1313
import com.rae.cnblogs.sdk.bean.CategoryBean;
14+
import com.rae.cnblogs.sdk.db.DbBlog;
15+
import com.rae.cnblogs.sdk.db.DbFactory;
1416

1517
import java.util.ArrayList;
1618
import java.util.List;
1719

1820
import io.reactivex.Observable;
21+
import io.reactivex.schedulers.Schedulers;
1922

2023
/**
2124
* Created by rae on 2018/6/1.
@@ -101,7 +104,22 @@ protected void onError(String message) {
101104

102105
@Override
103106
protected void accept(Empty empty) {
107+
// 删除本地收藏
108+
Observable.just(item).observeOn(Schedulers.newThread())
109+
.subscribe(new ApiDefaultObserver<ContentEntity>() {
110+
@Override
111+
protected void onError(String message) {
112+
}
113+
114+
@Override
115+
protected void accept(ContentEntity contentEntity) {
116+
DbBlog db = DbFactory.getInstance().getBlog();
117+
db.deleteBlogBookmark(item.getTitle().trim());
118+
}
119+
});
120+
104121
getView().onDeleteBookmarksSuccess(item);
122+
105123
}
106124
});
107125
}

module-blog/src/main/java/com/rae/cnblogs/blog/detail/ContentDetailContract.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616
public interface ContentDetailContract {
1717
interface Presenter extends IPresenter {
1818

19+
/**
20+
* 加载博客本地状态
21+
* 已读、收藏状态
22+
*/
23+
void loadBlogLocalStatus();
24+
1925
/**
2026
* 点赞
2127
*

module-blog/src/main/java/com/rae/cnblogs/blog/detail/ContentDetailPresenterImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,17 @@ public void onNext(ContentEntity contentEntity) {
123123
}
124124
});
125125

126+
this.loadBlogLocalStatus();
127+
}
128+
129+
@Override
130+
public void loadBlogLocalStatus() {
126131
// 用户博客信息:点赞、收藏状态
127132
AndroidObservable.create(Observable
128133
.create(new ObservableOnSubscribe<UserBlogInfo>() {
129134
@Override
130135
public void subscribe(ObservableEmitter<UserBlogInfo> e) {
131-
UserBlogInfo blogInfo = DbFactory.getInstance().getBlog().get(contentEntity.getId());
136+
UserBlogInfo blogInfo = DbFactory.getInstance().getBlog().get(getView().getContentEntity().getId());
132137
if (blogInfo == null) {
133138
e.onError(new NullPointerException("blog is null"));
134139
return;

module-blog/src/main/java/com/rae/cnblogs/blog/fragment/BlogDetailFragment.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.rae.cnblogs.blog.fragment;
22

3+
import android.app.Activity;
34
import android.content.DialogInterface;
5+
import android.content.Intent;
46
import android.os.Bundle;
57
import android.support.annotation.NonNull;
68
import android.support.annotation.Nullable;
@@ -397,6 +399,14 @@ public void onActionMenuMoreClick() {
397399
ShareDialogFragment.newInstance(url, title, desc, imageUrl).show(getChildFragmentManager(), "share");
398400
}
399401

402+
@Override
403+
public void onActivityResult(int requestCode, int resultCode, Intent data) {
404+
super.onActivityResult(requestCode, resultCode, data);
405+
if (requestCode == AppRoute.REQ_CODE_FAVORITES && resultCode == Activity.RESULT_OK) {
406+
mPresenter.loadBlogLocalStatus(); // 重新加载数据
407+
}
408+
}
409+
400410
@Subscribe
401411
public void onEvent(FontChangedEvent event) {
402412
if (mContentWebViewFragment != null) {

module-blog/src/main/java/com/rae/cnblogs/blog/fragment/FavoritesFragment.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.rae.cnblogs.blog.fragment;
22

3+
import android.app.Activity;
34
import android.content.Context;
45
import android.content.DialogInterface;
56
import android.os.Bundle;
@@ -102,5 +103,7 @@ public void onDeleteBookmarksSuccess(ContentEntity item) {
102103
UICompat.success(getContext(), R.string.delete_bookmarks_success);
103104
getAdapter().remove(item);
104105
getAdapter().notifyDataSetChanged();
106+
if (getActivity() != null)
107+
getActivity().setResult(Activity.RESULT_OK);
105108
}
106109
}

module-blog/src/main/res/layout/fm_blog_home.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
android:layout_width="match_parent"
66
android:layout_height="match_parent"
77
android:background="@color/white"
8-
android:paddingTop="@dimen/default_padding_top">
8+
android:paddingTop="32dp">
99

1010
<android.support.design.widget.AppBarLayout
1111
android:layout_width="match_parent"
@@ -43,9 +43,9 @@
4343
android:layout_weight="1"
4444
android:background="@drawable/bg_nav_search"
4545
android:paddingLeft="6dp"
46-
android:paddingTop="5dp"
46+
android:paddingTop="4dp"
4747
android:paddingRight="6dp"
48-
android:paddingBottom="5dp">
48+
android:paddingBottom="4dp">
4949

5050
<TextView
5151
android:id="@+id/tv_search"

module-moment/src/main/java/com/rae/cnblogs/moment/detail/MomentDetailPresenterImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,11 @@ protected void onStart() {
4848
MomentBean momentInfo = getView().getMomentInfo();
4949

5050
// 如果自带有评论就不用再发起请求了
51-
if (Rx.isEmpty(momentInfo.getCommentList()) || mRefresh) {
52-
loaMomentDetail(momentInfo);
53-
} else {
51+
if (!Rx.isEmpty(momentInfo.getCommentList())) {
5452
notifyCommentSuccess(momentInfo.getCommentList());
5553
}
54+
// 加载闪存详情
55+
loaMomentDetail(momentInfo);
5656

5757
boolean isLogin = UserProvider.getInstance().isLogin();
5858
if (!isLogin) {

module-moment/src/main/res/layout/item_moment_comment.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
android:layout_marginRight="12dp"
4747
android:scaleType="centerCrop"
4848
android:src="@drawable/ic_default_user_avatar"
49-
app:riv_corner_radius="4dp" />
49+
app:riv_corner_radius="40dp" />
5050

5151
<com.rae.cnblogs.widget.RaeTextView
5252
android:id="@+id/tv_blog_author"
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android">
3+
<solid android:color="@color/background_divider" />
4+
5+
<corners android:radius="8dp" />
6+
</shape>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android">
3+
<solid android:color="@color/background_divider_night" />
4+
5+
<corners android:radius="@dimen/default_radius" />
6+
</shape>

module-resource/src/main/res/values/styles.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<style name="AppTheme" parent="AppBaseTheme">
77
<item name="colorPrimary">@color/colorPrimary</item>
8-
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
8+
<item name="colorPrimaryDark">@color/statusBarColor</item>
99
<item name="colorAccent">@color/colorPrimaryDark</item>
1010
<item name="actionBarDivider">@color/transparent</item>
1111
<item name="actionBarStyle">@style/AppActionBar</item>

module-sdk/src/main/java/com/rae/cnblogs/sdk/db/DbBlog.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import com.rae.cnblogs.sdk.db.model.UserBlogInfo;
1414
import com.rae.cnblogs.sdk.db.model.UserBlogInfoDao;
1515

16-
import org.greenrobot.greendao.annotation.NotNull;
1716
import org.greenrobot.greendao.query.QueryBuilder;
1817

1918
import java.io.ByteArrayOutputStream;
@@ -113,7 +112,7 @@ public List<BlogBean> findAllWithoutBlogContent() {
113112
@Nullable
114113
public UserBlogInfo get(String blogId) {
115114
if (TextUtils.isEmpty(blogId)) return null;
116-
UserBlogInfo info = mSession.getUserBlogInfoDao()
115+
UserBlogInfo info = mSession.getUserBlogInfoDao()
117116
.queryBuilder()
118117
.where(UserBlogInfoDao.Properties.BlogId.eq(blogId))
119118
.unique();
@@ -229,6 +228,20 @@ public void updateUserBlog(UserBlogInfo m) {
229228
mSession.getUserBlogInfoDao().update(m);
230229
}
231230

231+
/**
232+
* 根据标题删除本地收藏
233+
*/
234+
public void deleteBlogBookmark(String title) {
235+
List<BlogBean> list = mSession.getBlogBeanDao().queryBuilder().where(BlogBeanDao.Properties.Title.eq(title)).list();
236+
if (list.size() <= 0) return;
237+
BlogBean blogBean = list.get(0);
238+
UserBlogInfo userBlogInfo = get(blogBean.getBlogId());
239+
if (userBlogInfo == null) return;
240+
userBlogInfo.setIsBookmarks(false);
241+
userBlogInfo.setBookmarks(false);
242+
updateUserBlog(userBlogInfo);
243+
}
244+
232245
/**
233246
* 更新博客内容
234247
*

module-user/src/main/java/com/rae/cnblogs/user/activity/AvatarActivity.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import java.io.IOException;
3939
import java.io.OutputStream;
4040
import java.util.ArrayList;
41+
import java.util.List;
4142

4243
import butterknife.BindView;
4344
import butterknife.OnClick;
@@ -146,6 +147,10 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
146147
handleUpload();
147148
}
148149

150+
if ((requestCode == REQUEST_CODE_CROP || requestCode == REQUEST_CODE_CROP_FILE_PROVIDER) && resultCode != RESULT_OK) {
151+
UICompat.failed(this, "裁剪图片失败");
152+
}
153+
149154
}
150155

151156
@Nullable
@@ -226,17 +231,17 @@ private void routeToCrop(String url) {
226231
intent.putExtra("return-data", true);
227232
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
228233
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri);
229-
ResolveInfo resolveInfo = getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
230-
if (resolveInfo != null) {
231-
234+
List<ResolveInfo> resolveInfoList = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
235+
if (resolveInfoList == null || resolveInfoList.size() <= 0) {
236+
handleUpload();
237+
return;
238+
}
239+
for (ResolveInfo resolveInfo : resolveInfoList) {
232240
// 授权访问
233-
this.grantUriPermission(resolveInfo.activityInfo.packageName, outputUri, Intent.FLAG_GRANT_READ_URI_PERMISSION
241+
grantUriPermission(resolveInfo.activityInfo.packageName, outputUri, Intent.FLAG_GRANT_READ_URI_PERMISSION
234242
| Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
235-
236-
startActivityForResult(intent, REQUEST_CODE_CROP);
237-
} else {
238-
handleUpload();
239243
}
244+
startActivityForResult(intent, REQUEST_CODE_CROP);
240245
}
241246

242247
/**

module-widget/src/main/java/com/rae/cnblogs/dialog/BasicDialogFragment.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import android.view.View;
1313
import android.view.ViewGroup;
1414
import android.view.Window;
15-
import android.view.WindowManager;
1615

1716
import com.rae.cnblogs.theme.ThemeCompat;
1817
import com.rae.cnblogs.widget.R;
@@ -96,7 +95,6 @@ protected void onLoadWindowAttr(@NonNull Window window) {
9695
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
9796
window.setDimAmount(0.3f);
9897
window.setGravity(Gravity.BOTTOM | Gravity.FILL_HORIZONTAL);
99-
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); // 状态栏透明
10098
int resId = R.drawable.bg_dialog_default;
10199
if (ThemeCompat.isNight()) {
102100
resId = R.drawable.bg_dialog_default_night;

module-widget/src/main/java/com/rae/cnblogs/dialog/EditCommentDialogFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
174174
protected void onLoadWindowAttr(@NonNull Window window) {
175175
super.onLoadWindowAttr(window);
176176
window.setDimAmount(0.5f);
177-
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
177+
// window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
178178
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
179179
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
180180
window.setElevation(0f);

module-widget/src/main/res/layout/dialog_blog_comment_edit.xml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
android:layout_width="match_parent"
44
android:layout_height="match_parent"
55
android:background="@color/white"
6-
android:paddingBottom="@dimen/default_margin"
7-
android:paddingLeft="@dimen/default_margin"
8-
android:paddingRight="@dimen/default_margin"
9-
android:paddingTop="8dp">
6+
android:paddingStart="@dimen/default_margin"
7+
android:paddingTop="@dimen/default_margin"
8+
android:paddingEnd="@dimen/default_margin"
9+
android:paddingBottom="@dimen/default_margin">
1010

1111

1212
<RelativeLayout
@@ -26,7 +26,7 @@
2626
android:gravity="start|center"
2727
android:paddingLeft="6dp"
2828
android:text="@string/cancel"
29-
android:textColor="@color/ph3"
29+
android:textColor="@color/dividerPrimary"
3030
android:textSize="@dimen/h2" />
3131

3232
<Button
@@ -38,10 +38,11 @@
3838
android:layout_alignParentRight="true"
3939
android:layout_centerVertical="true"
4040
android:background="@android:color/transparent"
41-
android:gravity="center|end"
41+
android:gravity="center"
4242
android:text="@string/send"
43-
android:textColor="@color/ph1"
44-
android:textSize="@dimen/h2" />
43+
android:textColor="@color/colorPrimary"
44+
android:textSize="@dimen/h2"
45+
android:textStyle="bold" />
4546

4647
</RelativeLayout>
4748

@@ -57,12 +58,12 @@
5758
android:id="@+id/et_edit_comment_body"
5859
android:layout_width="match_parent"
5960
android:layout_height="wrap_content"
60-
android:background="@color/background_divider"
61+
android:background="@drawable/bg_comment_content"
6162
android:gravity="left|top"
6263
android:hint="@string/edit_comment_hint"
6364
android:maxLength="300"
6465
android:minHeight="80dp"
65-
android:padding="6dp"
66+
android:padding="12dp"
6667
android:textColor="@color/ph2"
6768
android:textColorHint="@color/ph3"
6869
android:textSize="@dimen/h2" />

0 commit comments

Comments
 (0)