Skip to content

Commit 7755787

Browse files
committed
fix data updater
1 parent 7a9babc commit 7755787

File tree

9 files changed

+159
-72
lines changed

9 files changed

+159
-72
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ android {
1616
applicationId "com.brian.csdnblog"
1717
minSdkVersion 15
1818
targetSdkVersion 24
19-
versionCode 75
20-
versionName "1.3.75"
19+
versionCode 76
20+
versionName "1.3.76"
2121
multiDexEnabled true
2222
vectorDrawables.useSupportLibrary = true
2323

app/src/main/java/com/brian/csdnblog/activity/BlogContentActivity.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import com.brian.csdnblog.manager.DataFetcher.OnFetchDataListener;
3030
import com.brian.csdnblog.manager.DataFetcher.Result;
3131
import com.brian.csdnblog.manager.DataManager;
32-
import com.brian.csdnblog.manager.HistoryBlogManager;
32+
import com.brian.csdnblog.manager.BlogManager;
3333
import com.brian.csdnblog.manager.ShareManager;
3434
import com.brian.csdnblog.manager.ThreadManager;
3535
import com.brian.csdnblog.manager.TypeManager;
@@ -123,14 +123,14 @@ protected void onCreate(Bundle savedInstanceState) {
123123

124124
// 开始请求数据
125125
if (TypeManager.getWebType(mBlogInfo.type) == TypeManager.TYPE_WEB_JCC) {
126-
HistoryBlogManager.getInstance().fetchBlogContent(mCurrentUrl, "GB2312", this);
126+
BlogManager.getInstance().fetchBlogContent(mCurrentUrl, "GB2312", this);
127127
} else {
128-
HistoryBlogManager.getInstance().fetchBlogContent(mCurrentUrl, this);
128+
BlogManager.getInstance().fetchBlogContent(mCurrentUrl, this);
129129
}
130130

131131
mProgressBar.setVisibility(View.VISIBLE);
132132

133-
HistoryBlogManager.getInstance().saveBlog(mBlogInfo);
133+
BlogManager.getInstance().saveBlog(mBlogInfo);
134134
}
135135

136136
private void initBlogInfo() {
@@ -244,7 +244,7 @@ public void onClick(View v) {
244244
@Override
245245
public void onClick(View v) {
246246
boolean hasFavoed = mBtnFavo.isSelected();
247-
HistoryBlogManager.getInstance().doFavo(mBlogInfo, !hasFavoed);
247+
BlogManager.getInstance().doFavo(mBlogInfo, !hasFavoed);
248248
mBtnFavo.setSelected(!hasFavoed);
249249
}
250250
});
@@ -296,7 +296,7 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) {
296296
toggleAdShow(true);
297297

298298
mCurrentUrl = blogUrl;
299-
HistoryBlogManager.getInstance().fetchBlogContent(blogUrl, BlogContentActivity.this);
299+
BlogManager.getInstance().fetchBlogContent(blogUrl, BlogContentActivity.this);
300300
return true;
301301
}
302302
return false;
@@ -371,7 +371,7 @@ public boolean handleMessage(Message msg) {
371371
mProgressBar.setVisibility(View.GONE);
372372

373373
mBtnFavo.setVisibility(View.VISIBLE);
374-
mBtnFavo.setSelected(HistoryBlogManager.getInstance().isFavo(mBlogInfo));
374+
mBtnFavo.setSelected(BlogManager.getInstance().isFavo(mBlogInfo));
375375
mWebView.setVisibility(View.VISIBLE);
376376
String content = (String) msg.obj;
377377
mWebView.loadDataWithBaseURL(mBlogParser.getBlogBaseUrl(), content,
@@ -409,7 +409,7 @@ public void run() {
409409
String cachePath = DataManager.getBlogCachePath(mBlogInfo.blogId);
410410
mBlogInfo.localPath = cachePath;
411411
FileUtil.writeFile(cachePath, contentHtml);
412-
HistoryBlogManager.getInstance().saveBlog(mBlogInfo);
412+
BlogManager.getInstance().saveBlog(mBlogInfo);
413413
}
414414

415415
mBlogStack.push(contentHtml);

app/src/main/java/com/brian/csdnblog/activity/BlogListActivity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import com.brian.common.view.TitleBar;
1111
import com.brian.csdnblog.R;
12-
import com.brian.csdnblog.manager.HistoryBlogManager;
12+
import com.brian.csdnblog.manager.BlogManager;
1313
import com.brian.csdnblog.manager.TypeManager;
1414

1515
import butterknife.BindView;
@@ -60,9 +60,9 @@ public void onClick(View view) {
6060
@Override
6161
public void onClick(View v) {
6262
if (mType == TYPE_FAVO) {
63-
HistoryBlogManager.getInstance().clearByType(TYPE_FAVO);
63+
BlogManager.getInstance().clearByType(TYPE_FAVO);
6464
} else if (mType == TYPE_HISTORY) {
65-
HistoryBlogManager.getInstance().clear();
65+
BlogManager.getInstance().clear();
6666
}
6767
mListFrag.clearList();
6868
}

app/src/main/java/com/brian/csdnblog/activity/BlogListFrag.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import com.brian.csdnblog.manager.DataFetcher;
2424
import com.brian.csdnblog.manager.DataFetcher.OnFetchDataListener;
2525
import com.brian.csdnblog.manager.DataFetcher.Result;
26-
import com.brian.csdnblog.manager.HistoryBlogManager;
26+
import com.brian.csdnblog.manager.BlogManager;
2727
import com.brian.csdnblog.manager.ThreadManager;
2828
import com.brian.csdnblog.manager.TypeManager;
2929
import com.brian.csdnblog.manager.UsageStatsManager;
@@ -69,6 +69,8 @@ public class BlogListFrag extends Fragment {
6969

7070
private int mCurrentPage = 1;
7171

72+
private boolean mIsEnd = false;// 标记是否已经加载完所有数据
73+
7274
private int mType = -1;
7375

7476
private boolean hasInitedData = false;
@@ -165,10 +167,10 @@ public void onClick(View v) {
165167
});
166168

167169
if (TypeManager.getWebType(mType) == TypeManager.TYPE_WEB_FAVO) {
168-
mAdapter.initListWithDatas(HistoryBlogManager.getInstance().getFavoBlogList());
170+
mAdapter.initListWithDatas(BlogManager.getInstance().getFavoBlogList(0));
169171
mRefreshable = false;
170172
} else if (TypeManager.getWebType(mType) == TypeManager.TYPE_WEB_HISTORY) {
171-
mAdapter.initListWithDatas(HistoryBlogManager.getInstance().getHistoryBlogList());
173+
mAdapter.initListWithDatas(BlogManager.getInstance().getHistoryBlogList(0));
172174
mRefreshable = false;
173175
} else {
174176
mRefreshable = true;
@@ -190,6 +192,20 @@ public void onLoad() {
190192
if (mRefreshable) {
191193
loadData(false);
192194
} else {
195+
if (!mIsEnd) {
196+
List<BlogInfo> list = null;
197+
if (TypeManager.getWebType(mType) == TypeManager.TYPE_WEB_FAVO) {
198+
list = BlogManager.getInstance().getFavoBlogList(mCurrentPage);
199+
} else if (TypeManager.getWebType(mType) == TypeManager.TYPE_WEB_HISTORY) {
200+
list = BlogManager.getInstance().getHistoryBlogList(mCurrentPage);
201+
}
202+
if (list == null || list.isEmpty()) {
203+
mIsEnd = true;
204+
} else {
205+
mCurrentPage++;
206+
mAdapter.addDatas(list);
207+
}
208+
}
193209
mRefreshLayout.setLoading(false);
194210
}
195211
}

app/src/main/java/com/brian/csdnblog/activity/SplashActivity.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.brian.csdnblog.Config;
1111
import com.brian.csdnblog.R;
1212
import com.brian.csdnblog.datacenter.preference.CommonPreference;
13+
import com.brian.csdnblog.manager.DataManager;
1314
import com.brian.csdnblog.util.LogUtil;
1415
import com.brian.csdnblog.util.PermissionUtil;
1516
import com.brian.csdnblog.util.UIUtil;
@@ -27,6 +28,8 @@ protected void onCreate(Bundle savedInstanceState) {
2728
if (isFirstLaunch()) {
2829
createShortCut();// 创建桌面快捷方式
2930

31+
DataManager.getInstance().onVersionCodeUpgrade();
32+
3033
updateVersionCode();// 更新版本号
3134
}
3235

@@ -104,7 +107,6 @@ private void updateVersionCode() {
104107
int versionCode = UIUtil.getVersionCode(SplashActivity.this);
105108

106109
LogUtil.i(TAG, "versionCode=" + versionCode);
107-
108110
CommonPreference.getInstance().setVersionCode(versionCode);
109111
}
110112

app/src/main/java/com/brian/csdnblog/datacenter/database/BlogInfoTable.java

Lines changed: 13 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,6 @@ public void run() {
9393
* 插入新的消息
9494
*/
9595
public boolean saveBlog(BlogInfo info) {
96-
if (info == null) {
97-
return false;
98-
}
99-
10096
String selection = BLOG_ID + " = ? ";
10197
String[] selectionArgs = new String[]{info.blogId};
10298

@@ -105,10 +101,6 @@ public boolean saveBlog(BlogInfo info) {
105101
}
106102

107103
public boolean saveOrUpdateBlog(BlogInfo info) {
108-
if (info == null) {
109-
return false;
110-
}
111-
112104
String selection = BLOG_ID + " = ? ";
113105
String[] selectionArgs = new String[]{info.blogId};
114106

@@ -120,33 +112,31 @@ public boolean saveOrUpdateBlog(BlogInfo info) {
120112
* 收藏或取消收藏博文,更新数据库中的info.isFavo字段
121113
*/
122114
public boolean doFavo(BlogInfo info) {
123-
if (info == null) {
124-
return false;
125-
}
126-
127115
ContentValues values = new ContentValues();
128116
values.put(FAVO, info.isFavo?1:0);
129117
return update(info.blogId, values);
130118
}
131119

120+
/**
121+
* 收藏或取消收藏博文,更新数据库中的info.isFavo字段
122+
*/
123+
public boolean updateBlogCachePath(BlogInfo info) {
124+
ContentValues values = new ContentValues();
125+
values.put(LOACAL_PATH, info.localPath);
126+
return update(info.blogId, values);
127+
}
128+
132129
/**
133130
* 更新blog信息,使用封装好的ContentValues
134131
*/
135132
private boolean update(String blogID, ContentValues values) {
136-
if (values == null || TextUtils.isEmpty(blogID)) {
137-
return false;
138-
}
139-
140133
String selection = BLOG_ID + " = ? ";
141134
String[] selectionArgs = new String[]{blogID};
142135
return update(TABLE_NAME, selection, selectionArgs, values);
143136
}
144137

145138

146139
public boolean delete(BlogInfo info) {
147-
if (info == null) {
148-
return false;
149-
}
150140
return delete(info.blogId);
151141
}
152142

@@ -184,10 +174,6 @@ public boolean clearTable() {
184174
* 查询指定id的信息
185175
*/
186176
public BlogInfo query(String blogId) {
187-
if (TextUtils.isEmpty(blogId)) {
188-
return null;
189-
}
190-
191177
String selection = BLOG_ID + " = ? ";
192178
String[] selectionArgs = new String[]{blogId};
193179

@@ -198,32 +184,28 @@ public BlogInfo query(String blogId) {
198184
* 查询指定id博主的信息
199185
*/
200186
public BlogInfo queryByBlogerId(String blogerId) {
201-
if (TextUtils.isEmpty(blogerId)) {
202-
return null;
203-
}
204-
205187
String selection = BLOGER_ID + " = ? ";
206188
String[] selectionArgs = new String[]{blogerId};
207189

208190
return query(TABLE_NAME, selection, selectionArgs);
209191
}
210192

211-
public List<BlogInfo> getFavoList() {
193+
public List<BlogInfo> getFavoList(int start, int num) {
212194
String orderBy = VISITTIME + " desc ";
213195
String selection = FAVO + " = ? ";
214196
String[] selectionArgs = new String[]{String.valueOf(1)};
215197

216-
String limit = null;
198+
String limit = String.format(Locale.ENGLISH, " %d, %d ", start, num);
217199

218200
return queryList(TABLE_NAME, selection, selectionArgs, orderBy, limit);
219201
}
220202

221-
public List<BlogInfo> getHistoryList() {
203+
public List<BlogInfo> getHistoryList(int start, int num) {
222204
String orderBy = VISITTIME + " desc ";
223205
String selection = FAVO + " != ? ";
224206
String[] selectionArgs = new String[]{String.valueOf(1)};
225207

226-
String limit = null;
208+
String limit = String.format(Locale.ENGLISH, " %d, %d ", start, num);
227209

228210
return queryList(TABLE_NAME, selection, selectionArgs, orderBy, limit);
229211
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package com.brian.csdnblog.datacenter.dataupdate;
2+
3+
import android.text.TextUtils;
4+
5+
import com.brian.csdnblog.Env;
6+
import com.brian.csdnblog.manager.BlogManager;
7+
import com.brian.csdnblog.model.BlogInfo;
8+
import com.brian.csdnblog.util.FileUtil;
9+
import com.brian.csdnblog.util.Md5;
10+
import com.google.gson.Gson;
11+
import com.google.gson.reflect.TypeToken;
12+
13+
import java.util.List;
14+
15+
/**
16+
* Created by huamm on 2016/9/18 0018.
17+
* 在v75将不再使用文件进行数据存储,而改用数据库,并且数据实体也有更改
18+
*/
19+
public class V76 {
20+
21+
public static final String FILE_NAME_CACHE_HISTORY = Env.getContext().getFilesDir() + "/history_list";
22+
public static final String FILE_NAME_CACHE_FAVO = Env.getContext().getFilesDir() + "/favo_list";
23+
24+
public static void updateData() {
25+
convertData(FILE_NAME_CACHE_HISTORY, false);
26+
convertData(FILE_NAME_CACHE_FAVO, true);
27+
28+
FileUtil.deleteFile(FILE_NAME_CACHE_HISTORY);
29+
FileUtil.deleteFile(FILE_NAME_CACHE_FAVO);
30+
}
31+
32+
private static void convertData(String dataPath, boolean isFavo) {
33+
StringBuilder json = FileUtil.readFile(dataPath);
34+
if (!TextUtils.isEmpty(json)) {
35+
List<BlogInfoOld> blogs = new Gson().fromJson(json.toString(),
36+
new TypeToken<List<BlogInfoOld>>() {} .getType());
37+
if (blogs != null && !blogs.isEmpty()) {
38+
for (BlogInfoOld info : blogs) {
39+
BlogManager.getInstance().saveBlog(convertBlogInfo(info, isFavo));
40+
}
41+
}
42+
}
43+
}
44+
45+
private static BlogInfo convertBlogInfo(BlogInfoOld info, boolean isFavo) {
46+
BlogInfo blogInfo = new BlogInfo();
47+
blogInfo.link = info.link;
48+
blogInfo.dateStamp = info.dateStamp;
49+
blogInfo.title = info.title;
50+
blogInfo.type = info.type;
51+
blogInfo.summary = info.description;
52+
blogInfo.extraMsg = info.msg;
53+
blogInfo.blogId = Md5.getMD5ofStr(blogInfo.link);
54+
blogInfo.visitTime = System.currentTimeMillis();
55+
blogInfo.isFavo = isFavo;
56+
return blogInfo;
57+
}
58+
59+
/**
60+
* 博客实体类
61+
*/
62+
static class BlogInfoOld {
63+
public int id; // id
64+
public String title; // 标题
65+
public String link; // 文章链接
66+
public String dateStamp; // 博客发布时间
67+
public String description;// 文章摘要
68+
public String content; // 文章内容
69+
public String msg; // 消息
70+
public int articleType; // 博客类型,原创,翻译,转载
71+
public int type; // 博客类型,在TypeManager中定义
72+
}
73+
}

0 commit comments

Comments
 (0)