Skip to content

Commit ec4f5dc

Browse files
committed
重构博客模块
1 parent f587a81 commit ec4f5dc

File tree

94 files changed

+5453
-438
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+5453
-438
lines changed

.idea/dbnavigator.xml

Lines changed: 453 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/kotlinc.xml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2+
xmlns:tools="http://schemas.android.com/tools"
3+
package="com.rae.cnblogs.basic">
4+
5+
<application>
6+
7+
<!--移除热更新的多进程模式-->
8+
<service
9+
android:name="com.tencent.tinker.lib.service.TinkerPatchService"
10+
android:exported="false"
11+
tools:remove="process" />
12+
<service
13+
android:name="com.tencent.tinker.lib.service.TinkerPatchService$InnerService"
14+
android:exported="false"
15+
tools:remove="process" />
16+
17+
</application>
18+
</manifest>

module-basic/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
22
package="com.rae.cnblogs.basic">
33

4+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
45
<application
56
android:allowBackup="true"
67
android:label="@string/app_name"

module-basic/src/main/java/com/rae/cnblogs/basic/AppDataManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void clearCache() {
3030
}
3131

3232
//清理WebView缓存数据库
33-
public void clearWebViewCache() {
33+
private void clearWebViewCache() {
3434
try {
3535

3636
// 兼容高版本:/data/data/com.rae.cnblogs/app_webview

module-basic/src/main/java/com/rae/cnblogs/basic/AppImageLoader.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,23 +41,27 @@ private static void checkPlaceHolder(Context context) {
4141
* 加载头像
4242
*/
4343
public static void displayAvatar(@Nullable String url, @Nullable ImageView view) {
44+
displayAvatar(url, view, DEFAULT_AVATAR_PLACE_HOLDER_ID);
45+
}
46+
47+
public static void displayAvatar(@Nullable String url, @Nullable ImageView view, int resId) {
4448
if (view == null)
4549
return;
4650
if (TextUtils.isEmpty(url)) {
47-
view.setImageResource(DEFAULT_AVATAR_PLACE_HOLDER_ID);
51+
view.setImageResource(resId);
4852
return;
4953
}
5054

5155
Context context = view.getContext();
52-
if (DEFAULT_AVATAR_PLACE_HOLDER_ID == -1) {
53-
DEFAULT_AVATAR_PLACE_HOLDER_ID = context.getResources().getIdentifier("default_avatar_placeholder", "drawable", context.getPackageName());
56+
if (resId == -1) {
57+
resId = context.getResources().getIdentifier("default_avatar_placeholder", "drawable", context.getPackageName());
5458
}
5559

5660
GlideApp.with(view)
5761
.load(url)
5862
// .centerCrop()
59-
.placeholder(DEFAULT_AVATAR_PLACE_HOLDER_ID)
60-
.error(DEFAULT_AVATAR_PLACE_HOLDER_ID)
63+
.placeholder(resId)
64+
.error(resId)
6165
// 渐变动画
6266
.transition(DrawableTransitionOptions.withCrossFade(300))
6367
.into(view);

module-basic/src/main/java/com/rae/cnblogs/basic/ApplicationCompat.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import android.content.Context;
44
import android.content.pm.PackageManager;
5+
import android.net.ConnectivityManager;
6+
import android.net.NetworkInfo;
7+
import android.support.v4.app.Fragment;
58
import android.text.TextUtils;
69

710
import com.meituan.android.walle.WalleChannelReader;
@@ -42,4 +45,21 @@ public static String getChannel(Context context) {
4245
String channel = WalleChannelReader.getChannel(context);
4346
return TextUtils.isEmpty(channel) ? "official" : channel;
4447
}
48+
49+
50+
/**
51+
* 检查网络是否可用
52+
*/
53+
public static boolean isNetworkError(Context context) {
54+
if (context == null) return true;
55+
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
56+
if (cm == null) return false;
57+
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
58+
return networkInfo == null || !networkInfo.isConnected() || !networkInfo.isAvailable();
59+
}
60+
61+
62+
public static boolean checkFragmentIsActive(Fragment fragment) {
63+
return fragment.isVisible();
64+
}
4565
}

module-basic/src/main/java/com/rae/cnblogs/basic/BaseItemAdapter.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -104,18 +104,21 @@ public int getItemCount() {
104104

105105
public abstract void onBindViewHolder(VH holder, int position, T m);
106106

107+
public void setDataList(List<T> data) {
108+
if (mDataList != null && mDataList != data) {
109+
mDataList.clear();
110+
mDataList = null;
111+
}
112+
mDataList = data;
113+
}
107114

108115
/**
109116
* 通知数据集合发生改变
110117
*
111118
* @param data 数据
112119
*/
113120
public void invalidate(List<T> data) {
114-
if (mDataList != null && mDataList != data) {
115-
mDataList.clear();
116-
mDataList = null;
117-
}
118-
mDataList = data;
121+
setDataList(data);
119122
notifyDataSetChanged();
120123
}
121124

module-basic/src/main/java/com/rae/cnblogs/basic/BasicActivity.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import butterknife.ButterKnife;
1212

1313
/**
14-
* 基类
14+
* 基类视图
1515
* Created by ChenRui on 2016/12/1 21:35.
1616
*/
1717
public abstract class BasicActivity extends AppCompatActivity implements IPresenterView {
@@ -51,6 +51,9 @@ public void onClick(View v) {
5151
}
5252
}
5353

54+
/**
55+
* 显示返回键
56+
*/
5457
private void displayHomeAsUp(@NonNull Toolbar toolbar) {
5558
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
5659
@Override

module-basic/src/main/java/com/rae/cnblogs/basic/BasicApplication.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package com.rae.cnblogs.basic;
22

3+
import android.app.ActivityManager;
34
import android.app.Application;
45
import android.content.Context;
56
import android.support.multidex.MultiDex;
67

8+
import java.util.List;
9+
710
/**
811
* 应用程序
912
*/
@@ -12,6 +15,18 @@ public class BasicApplication extends Application {
1215
@Override
1316
public void onCreate() {
1417
super.onCreate();
18+
int pid = android.os.Process.myPid();
19+
String processAppName = getAppName(pid);
20+
if (processAppName == null || getPackageName().equalsIgnoreCase(processAppName)) {
21+
onFirstCreate();
22+
}
23+
}
24+
25+
/**
26+
* 进初始化一次
27+
*/
28+
protected void onFirstCreate() {
29+
1530
}
1631

1732
@Override
@@ -20,4 +35,21 @@ protected void attachBaseContext(Context base) {
2035
MultiDex.install(base);
2136
super.attachBaseContext(base);
2237
}
38+
39+
private String getAppName(int pID) {
40+
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
41+
if (am == null) return null;
42+
List l = am.getRunningAppProcesses();
43+
for (Object aL : l) {
44+
ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (aL);
45+
try {
46+
if (info.pid == pID) {
47+
return info.processName;
48+
}
49+
} catch (Exception e) {
50+
e.printStackTrace();
51+
}
52+
}
53+
return null;
54+
}
2355
}

0 commit comments

Comments
 (0)