Skip to content

Commit c12cef3

Browse files
author
ChenRui
committed
添加搜索功能
1 parent 14ff3dd commit c12cef3

34 files changed

+968
-317
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,23 @@
2626
android:name=".activity.LauncherActivity"
2727
android:screenOrientation="portrait"
2828
android:theme="@style/AppTheme.NoActionBar.FullScreen">
29-
<intent-filter>
30-
<action android:name="android.intent.action.MAIN"/>
29+
<!-- <intent-filter>
30+
<action android:name="android.intent.action.MAIN"/>
3131
32-
<category android:name="android.intent.category.LAUNCHER"/>
33-
</intent-filter>
32+
<category android:name="android.intent.category.LAUNCHER"/>
33+
</intent-filter>-->
3434
</activity>
3535

3636
<!--主界面-->
3737
<activity
3838
android:name=".activity.MainActivity"
3939
android:screenOrientation="portrait"
40-
android:theme="@style/AppTheme.Dark"/>
40+
android:theme="@style/AppTheme.Dark">
41+
<intent-filter>
42+
<action android:name="android.intent.action.MAIN"/>
43+
<category android:name="android.intent.category.LAUNCHER"/>
44+
</intent-filter>
45+
</activity>
4146

4247
<!-- <activity
4348
android:name=".activity.TestActivity"
@@ -174,12 +179,9 @@
174179
android:launchMode="singleTop"
175180
android:windowSoftInputMode="stateHidden"/>
176181

177-
<!-- <activity android:name=".fragment.SearchFragment">
178-
<intent-filter>
179-
<action android:name="android.intent.action.MAIN"/>
180-
<category android:name="android.intent.category.LAUNCHER"/>
181-
</intent-filter>
182-
</activity>-->
182+
<!-- <activity
183+
android:name=".fragment.SearchFragment"
184+
android:windowSoftInputMode="adjustPan|stateVisible" />-->
183185

184186

185187
<meta-data

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,6 @@ public static void jumpToBlogContent(Context context, String blogId, BlogType ty
8181
public static void jumpToBlogContent(Context context, BlogBean blog, BlogType type) {
8282
Intent intent = new Intent(context, BlogContentActivity.class);
8383
// 不传递摘要和正文这些过大的数据。进去博文正文之后再从数据库拉取。
84-
blog.setSummary(null);
85-
blog.setContent(null);
86-
8784
intent.putExtra("blog", blog);
8885
intent.putExtra("blogId", blog.getId());
8986
intent.putExtra("type", type.getTypeName());

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import com.rae.cnblogs.sdk.db.DbCnblogs;
1010
import com.rae.cnblogs.sdk.db.DbFactory;
1111
import com.rae.swift.session.SessionManager;
12-
import com.squareup.leakcanary.LeakCanary;
1312
import com.tencent.bugly.Bugly;
1413
import com.tencent.tinker.loader.app.TinkerApplication;
1514
import com.tencent.tinker.loader.shareutil.ShareConstants;
@@ -34,9 +33,9 @@ public void onCreate() {
3433
DbCnblogs.init(getApplication());
3534
// 日志上报
3635
Bugly.init(getApplication(), BuildConfig.BUGLY_APP_ID, BuildConfig.DEBUG);
37-
if (!LeakCanary.isInAnalyzerProcess(this)) {
38-
LeakCanary.install(this);
39-
}
36+
// if (!LeakCanary.isInAnalyzerProcess(this)) {
37+
// LeakCanary.install(this);
38+
// }
4039

4140
// LeanCloud用户反馈初始化,要在主线程总
4241
AVOSCloud.initialize(getApplication(), BuildConfig.LEAN_CLOUD_APP_ID, BuildConfig.LEAN_CLOUD_APP_KEY);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ private void onLoadData(BlogBean blog) {
205205
}
206206

207207
// 知识库没有评论处理
208-
if (mBlogType == BlogType.KB) {
208+
if (mBlogType == BlogType.KB || (mBlogType == BlogType.NEWS && TextUtils.isEmpty(mBlog.getAuthor()))) {
209209
mPostCommentView.setVisibility(View.GONE);
210210
mViewCommentView.setVisibility(View.GONE);
211211
mAuthorView.setVisibility(View.GONE);
Lines changed: 6 additions & 166 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,28 @@
11
package com.rae.cnblogs.activity;
22

3-
import android.content.Intent;
43
import android.os.Bundle;
54
import android.support.annotation.Nullable;
6-
import android.support.v7.widget.Toolbar;
75
import android.text.TextUtils;
8-
import android.view.View;
9-
import android.widget.TextView;
106

11-
import com.jcodecraeer.xrecyclerview.XRecyclerView;
127
import com.rae.cnblogs.AppRoute;
138
import com.rae.cnblogs.AppUI;
149
import com.rae.cnblogs.R;
15-
import com.rae.cnblogs.RxObservable;
16-
import com.rae.cnblogs.adapter.BaseItemAdapter;
17-
import com.rae.cnblogs.adapter.FriendsAdapter;
18-
import com.rae.cnblogs.sdk.ApiDefaultObserver;
19-
import com.rae.cnblogs.sdk.CnblogsApiFactory;
20-
import com.rae.cnblogs.sdk.api.IFriendsApi;
21-
import com.rae.cnblogs.sdk.bean.UserInfoBean;
22-
import com.rae.cnblogs.widget.AppLayout;
23-
import com.rae.cnblogs.widget.PlaceholderView;
24-
import com.rae.cnblogs.widget.RaeRecyclerView;
25-
import com.rae.swift.Rx;
26-
27-
import java.util.ArrayList;
28-
import java.util.List;
29-
30-
import butterknife.BindView;
31-
import in.srain.cube.views.ptr.PtrDefaultHandler;
32-
import in.srain.cube.views.ptr.PtrFrameLayout;
33-
import io.reactivex.Observable;
34-
import io.reactivex.functions.Action;
10+
import com.rae.cnblogs.fragment.BloggerFragment;
3511

3612
/**
3713
* 粉丝和关注
3814
* Created by ChenRui on 2017/2/23 00:41.
3915
*/
4016
public class FriendsActivity extends SwipeBackBaseActivity {
4117

42-
@BindView(R.id.title_tool_bar)
43-
Toolbar mToolbar;
44-
45-
@BindView(R.id.tv_title)
46-
TextView mTitleView;
47-
48-
@BindView(R.id.rec_friends_list)
49-
RaeRecyclerView mRecyclerView;
50-
51-
@BindView(R.id.placeholder)
52-
PlaceholderView mPlaceholderView;
53-
54-
55-
@BindView(R.id.ptr_content)
56-
AppLayout mAppLayout;
57-
58-
private IFriendsApi mFriendApi;
59-
60-
private int mPage = 1;
61-
private FriendsAdapter mAdapter;
62-
private final List<UserInfoBean> mDataList = new ArrayList<>();
6318
private String mUserId;
6419
private int mFromType;
6520

6621
@Override
6722
protected void onCreate(@Nullable Bundle savedInstanceState) {
6823
super.onCreate(savedInstanceState);
6924
setContentView(R.layout.activity_friends);
70-
showHomeAsUp(mToolbar);
25+
showHomeAsUp();
7126
mUserId = getIntent().getStringExtra("userId");
7227
String bloggerName = getIntent().getStringExtra("bloggerName");
7328
mFromType = getIntent().getIntExtra("fromType", AppRoute.ACTIVITY_FRIENDS_TYPE_FANS);
@@ -86,132 +41,17 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
8641
setTitle(getString(R.string.title_follow, bloggerName));
8742
}
8843

89-
mFriendApi = CnblogsApiFactory.getInstance(this).getFriendApi();
90-
mAdapter = new FriendsAdapter();
91-
mRecyclerView.setAdapter(mAdapter);
92-
mAdapter.setOnItemClickListener(new BaseItemAdapter.onItemClickListener<UserInfoBean>() {
93-
@Override
94-
public void onItemClick(UserInfoBean item) {
95-
AppRoute.jumpToBlogger(FriendsActivity.this, item.getBlogApp());
96-
}
97-
});
98-
mRecyclerView.setLoadingMoreEnabled(true);
99-
mRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
100-
@Override
101-
public void onRefresh() {
102-
103-
}
104-
105-
@Override
106-
public void onLoadMore() {
107-
loadData();
108-
}
109-
});
110-
111-
112-
mAppLayout.setPtrHandler(new PtrDefaultHandler() {
113-
@Override
114-
public void onRefreshBegin(PtrFrameLayout ptrFrameLayout) {
115-
start();
116-
}
117-
118-
@Override
119-
public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
120-
return mRecyclerView.isOnTop();
121-
}
122-
});
123-
124-
start();
125-
}
126-
127-
private void start() {
128-
mPage = 1;
129-
loadData();
130-
}
131-
132-
@Override
133-
public void setTitle(CharSequence title) {
134-
mTitleView.setText(title);
44+
getSupportFragmentManager()
45+
.beginTransaction()
46+
.add(R.id.content, BloggerFragment.newInstance(mUserId, isFansType()))
47+
.commitNowAllowingStateLoss();
13548
}
13649

137-
// 获取数据
138-
private void loadData() {
139-
Observable<List<UserInfoBean>> observable = mFriendApi.getFollowAndFansList(mUserId, mPage, !isFansType());
140-
RxObservable.create(observable, "FriendsActivity")
141-
.doFinally(new Action() {
142-
@Override
143-
public void run() throws Exception {
144-
mAppLayout.refreshComplete();
145-
}
146-
})
147-
.subscribe(new ApiDefaultObserver<List<UserInfoBean>>() {
148-
@Override
149-
protected void onError(String message) {
150-
if (mPage > 1) {
151-
mRecyclerView.setNoMore(true);
152-
} else {
153-
mPlaceholderView.empty(message);
154-
}
155-
}
156-
157-
@Override
158-
protected void accept(List<UserInfoBean> data) {
159-
onLoadFriends(data);
160-
}
161-
});
162-
}
163-
164-
@Override
165-
protected void onDestroy() {
166-
super.onDestroy();
167-
RxObservable.dispose("FriendsActivity");
168-
}
169-
170-
public void onLoadFriends(List<UserInfoBean> data) {
171-
mPlaceholderView.dismiss();
172-
173-
if (Rx.isEmpty(data)) {
174-
if (mPage <= 1) {
175-
mPlaceholderView.empty();
176-
} else {
177-
mRecyclerView.loadMoreComplete();
178-
mRecyclerView.setNoMore(true);
179-
}
180-
return;
181-
}
182-
if (mPage <= 1) {
183-
mDataList.clear();
184-
}
185-
mDataList.addAll(data);
186-
187-
mAdapter.invalidate(mDataList);
188-
mAdapter.notifyDataSetChanged();
189-
mRecyclerView.loadMoreComplete();
190-
mPage++;
191-
192-
if (mPage <= 1) {
193-
mRecyclerView.postDelayed(new Runnable() {
194-
@Override
195-
public void run() {
196-
mRecyclerView.scrollToPosition(0);
197-
}
198-
}, 1000);
199-
}
200-
}
201-
202-
@Override
203-
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
204-
super.onActivityResult(requestCode, resultCode, data);
205-
if (resultCode == RESULT_OK && requestCode == AppRoute.REQ_CODE_BLOGGER) {
206-
start();
207-
}
208-
}
20950

21051
/**
21152
* 是否为粉丝类型
21253
*/
21354
public boolean isFansType() {
21455
return mFromType == AppRoute.ACTIVITY_FRIENDS_TYPE_FANS;
21556
}
216-
21757
}

app/src/main/java/com/rae/cnblogs/adapter/BaseItemAdapter.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,14 @@ public abstract class BaseItemAdapter<T, VH extends RecyclerView.ViewHolder> ext
1818

1919
/* 正常类型 */
2020
static final int VIEW_TYPE_NORMAL = 0;
21+
/*新闻类型*/
22+
static final int VIEW_TYPE_NEWS = 1;
2123
/* 正在加载中 */
2224
static final int VIEW_TYPE_LOADING = 2;
2325
/* 内容为空的时候显示 */
2426
static final int VIEW_TYPE_EMPTY = 3;
2527

28+
2629
public interface onItemClickListener<T> {
2730
void onItemClick(T item);
2831
}
@@ -115,6 +118,11 @@ public void remove(T item) {
115118
mDataList.remove(item);
116119
}
117120

121+
public void clear() {
122+
if (mDataList != null)
123+
mDataList.clear();
124+
}
125+
118126
/**
119127
* 获取数据实体所在的索引
120128
*

0 commit comments

Comments
 (0)