Skip to content

Commit c081ce7

Browse files
author
ChenRui
committed
适配夜间模式,首页TAB图标优化。
1 parent a3835fc commit c081ce7

Some content is hidden

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

46 files changed

+203
-62
lines changed

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ android {
3737
applicationId "com.rae.cnblogs"
3838
minSdkVersion rootProject.ext.minSdkVersion
3939
targetSdkVersion rootProject.ext.targetSdkVersion
40-
versionCode 1
41-
versionName "1.0.0"
40+
versionCode 2
41+
versionName "1.0.1"
4242
multiDexEnabled true
4343
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
4444
buildConfigField 'String', 'BUGLY_APP_ID', '"' + buglyAppId + '"'
@@ -57,7 +57,7 @@ android {
5757
debug {
5858
minifyEnabled false
5959
debuggable true
60-
applicationIdSuffix '.debug'
60+
// applicationIdSuffix '.debug'
6161
manifestPlaceholders = [
6262
UMENG_CHANNEL: 'DEV'
6363
]

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ public void clearCache() {
3232
//清理WebView缓存数据库
3333
public void clearWebViewCache() {
3434
try {
35+
36+
// 兼容高版本:/data/data/com.rae.cnblogs/app_webview
37+
deleteDir(new File(mContext.getCacheDir().getParent(), "app_webview"));
38+
3539
mContext.deleteDatabase("webview.db");
3640
mContext.deleteDatabase("webviewCache.db");
3741
// 清除文件缓存

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ private static void onAdEvent(Context context, Map<String, String> map) {
4545
/**
4646
* 启动页广告曝光次数
4747
*
48-
* @param id 广告ID
48+
* @param id 广告ID
4949
*/
5050
public static void onLaunchAdExposureEvent(Context context, String id, String name) {
5151
Map<String, String> map = new HashMap<>();
@@ -58,7 +58,7 @@ public static void onLaunchAdExposureEvent(Context context, String id, String na
5858
/**
5959
* 启动页广告点击次数
6060
*
61-
* @param id 广告ID
61+
* @param id 广告ID
6262
*/
6363
public static void onLaunchAdClickEvent(Context context, String id, String name) {
6464
Map<String, String> map = new HashMap<>();
@@ -88,4 +88,14 @@ public static void onLoginEvent(Context context, String blogApp, boolean isSucce
8888
MobclickAgent.onEvent(context, "APP_LOGIN_EVENT", map);
8989
}
9090

91+
92+
/**
93+
* 点击事件
94+
*
95+
* @param name 事件名称
96+
*/
97+
public static void onClickEvent(Context context, String name) {
98+
MobclickAgent.onEvent(context, "APP_CLICK_EVENT", name);
99+
}
100+
91101
}

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.rae.swift.session.SessionManager;
1313
import com.tencent.tinker.loader.app.TinkerApplication;
1414
import com.tencent.tinker.loader.shareutil.ShareConstants;
15+
import com.umeng.analytics.MobclickAgent;
1516
import com.umeng.socialize.PlatformConfig;
1617
import com.umeng.socialize.UMShareAPI;
1718

@@ -40,16 +41,17 @@ public void onCreate() {
4041
// LeakCanary.install(this);
4142
// }
4243

44+
MobclickAgent.setDebugMode(true);
45+
4346
// LeanCloud用户反馈初始化,要在主线程总
4447
AVOSCloud.initialize(getApplication(), BuildConfig.LEAN_CLOUD_APP_ID, BuildConfig.LEAN_CLOUD_APP_KEY);
4548
FeedbackThread.getInstance();
4649

4750
// 加载皮肤
4851
SkinCompatManager.withoutActivity(getApplication()).loadSkin();
4952
SkinCompatManager.getInstance()
50-
.setSkinStatusBarColorEnable(false)
51-
.addInflater(new SkinMaterialViewInflater())
52-
.addInflater(new CnblogsLayoutInflater());
53+
.addInflater(new CnblogsLayoutInflater())
54+
.addInflater(new SkinMaterialViewInflater());
5355

5456
// 一些要求不高的初始化操作放到线程中去操作
5557
new Thread(new Runnable() {

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import android.util.Log;
77
import android.view.View;
88

9+
import com.rae.cnblogs.widget.SkinRoundedImageView;
10+
911
import skin.support.app.SkinLayoutInflater;
1012

1113
/**
@@ -19,12 +21,10 @@ public View createView(@NonNull Context context, String name, @NonNull Attribute
1921

2022
Log.i("rae-skin", "创建类型:" + name);
2123

22-
// switch (name) {
23-
// case "com.rae.cnblogs.widget.RaeTabLayout":
24-
// break;
25-
// case "com.rae.cnblogs.widget.RaeTextView":
26-
// break;
27-
// }
24+
switch (name) {
25+
case "com.makeramen.roundedimageview.RoundedImageView":
26+
return new SkinRoundedImageView(context, attrs);
27+
}
2828

2929
return null;
3030
}

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.content.res.Resources;
66
import android.graphics.drawable.Drawable;
77
import android.os.Build;
8+
import android.text.TextUtils;
89
import android.view.Window;
910

1011
import com.rae.cnblogs.message.ThemeChangedEvent;
@@ -22,6 +23,9 @@
2223
*/
2324
public final class ThemeCompat {
2425

26+
public static String currentSkinName;
27+
28+
2529
private static int getResourceId(Context context, String name, String type) {
2630
Resources resources = context.getResources();
2731
String themeName = name;
@@ -43,6 +47,13 @@ public static boolean isNight() {
4347
return "night".equalsIgnoreCase(SkinCompatManager.getInstance().getCurSkinName());
4448
}
4549

50+
/**
51+
* 在{@link #isNight()} 调用之前,用于判断资源文件
52+
*/
53+
public static boolean isNightInResource() {
54+
return !TextUtils.isEmpty(currentSkinName);
55+
}
56+
4657

4758
/**
4859
* 获取颜色,根据不通的模式返回不通的资源

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import android.support.v4.view.ViewPager;
1515
import android.util.Log;
1616
import android.view.View;
17+
import android.widget.ImageView;
1718
import android.widget.TextView;
1819

1920
import com.avos.avoscloud.AVException;
@@ -218,8 +219,10 @@ private void addTab(int resId, int iconId, Fragment fragment) {
218219
TabLayout.Tab tab = mTabLayout.newTab();
219220
View tabView = getLayoutInflater().inflate(R.layout.tab_view, null);
220221
TextView v = (TextView) tabView.findViewById(R.id.tv_tab_view);
222+
ImageView iconView = (ImageView) tabView.findViewById(R.id.img_tab_icon);
221223
v.setText(resId);
222-
v.setCompoundDrawablesWithIntrinsicBounds(0, iconId, 0, 0);
224+
iconView.setImageResource(iconId);
225+
// v.setCompoundDrawablesWithIntrinsicBounds(0, iconId, 0, 0);
223226
tab.setCustomView(tabView);
224227
mTabLayout.addTab(tab);
225228
if (fragment != null)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import android.support.v4.content.ContextCompat;
88
import android.view.View;
99

10+
import com.rae.cnblogs.AppMobclickAgent;
1011
import com.rae.cnblogs.R;
1112
import com.rae.cnblogs.ThemeCompat;
1213
import com.rae.cnblogs.fragment.SearchFragment;
@@ -23,6 +24,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
2324
super.onCreate(savedInstanceState);
2425
mToolBar.setVisibility(View.GONE);
2526
findViewById(android.R.id.content).setFitsSystemWindows(true);
27+
AppMobclickAgent.onClickEvent(getContext(),"Search");
2628
}
2729

2830
@Override

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

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.rae.cnblogs.activity;
22

33
import android.content.Intent;
4+
import android.content.pm.PackageInfo;
5+
import android.content.pm.PackageManager;
46
import android.net.Uri;
57
import android.os.Bundle;
68
import android.support.annotation.Nullable;
@@ -9,6 +11,7 @@
911
import android.widget.ProgressBar;
1012
import android.widget.TextView;
1113

14+
import com.rae.cnblogs.AppMobclickAgent;
1215
import com.rae.cnblogs.AppRoute;
1316
import com.rae.cnblogs.AppUI;
1417
import com.rae.cnblogs.CnblogsApplication;
@@ -64,6 +67,10 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
6467
mLogoutLayout.setVisibility(View.GONE);
6568
}
6669

70+
// 获取版本号
71+
72+
mCheckUpdateMsgView.setText(getAppVersion());
73+
6774
}
6875

6976
/**
@@ -103,7 +110,7 @@ public void run() {
103110
*/
104111
@OnClick(R.id.btn_logout)
105112
public void onLogoutClick() {
106-
113+
AppMobclickAgent.onClickEvent(getContext(), "Logout");
107114
HintCardDialog dialog = new HintCardDialog(getContext());
108115
dialog.setMessage(getString(R.string.tips_logout));
109116
dialog.setOnEnSureListener(new IAppDialogClickListener() {
@@ -126,6 +133,7 @@ public void onClick(IAppDialog dialog, int buttonType) {
126133
*/
127134
@OnClick(R.id.ll_share)
128135
public void onShareClick() {
136+
AppMobclickAgent.onClickEvent(getContext(), "ShareApp");
129137
if (mShareDialog == null) {
130138
mShareDialog = new ShareDialog(getContext());
131139
mShareDialog.setShareWeb(getString(R.string.share_app_url), getString(R.string.share_app_title), getString(R.string.share_app_desc), R.drawable.ic_share_app);
@@ -139,6 +147,7 @@ public void onShareClick() {
139147
*/
140148
@OnClick(R.id.ll_github)
141149
public void onOpenSourceClick() {
150+
AppMobclickAgent.onClickEvent(getContext(), "OpenSource");
142151
AppRoute.jumpToWeb(this.getContext(), getString(R.string.github_url));
143152
}
144153

@@ -147,6 +156,7 @@ public void onOpenSourceClick() {
147156
*/
148157
@OnClick(R.id.ll_open_source)
149158
public void onOpenSourceLicenseClick() {
159+
AppMobclickAgent.onClickEvent(getContext(), "OpenSourceLicense");
150160
AppRoute.jumpToWeb(this.getContext(), getString(R.string.url_license));
151161
}
152162

@@ -155,6 +165,7 @@ public void onOpenSourceLicenseClick() {
155165
*/
156166
@OnClick(R.id.ll_help_center)
157167
public void onHelpCenterClick() {
168+
AppMobclickAgent.onClickEvent(getContext(), "HelpCenter");
158169
AppRoute.jumpToWeb(this.getContext(), getString(R.string.url_help_center));
159170
}
160171

@@ -163,6 +174,7 @@ public void onHelpCenterClick() {
163174
*/
164175
@OnClick(R.id.ll_check_update)
165176
public void onCheckUpdateClick() {
177+
AppMobclickAgent.onClickEvent(getContext(), "CheckUpdate");
166178
mCheckUpdateProgress.setVisibility(View.VISIBLE);
167179
mCheckUpdateMsgView.setVisibility(View.GONE);
168180
RxObservable.create(CnblogsApiFactory.getInstance(this)
@@ -193,6 +205,7 @@ protected void accept(VersionInfo versionInfo) {
193205
*/
194206
@OnClick(R.id.praises)
195207
public void onPraisesClick() {
208+
AppMobclickAgent.onClickEvent(getContext(), "Praises");
196209
try {
197210
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.market_url))));
198211
} catch (Exception e) {
@@ -205,4 +218,14 @@ protected void onDestroy() {
205218
super.onDestroy();
206219
RxObservable.dispose("checkUpdate");
207220
}
221+
222+
public String getAppVersion() {
223+
try {
224+
PackageInfo packageInfo = getContext().getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_META_DATA);
225+
return "V" + packageInfo.versionName;
226+
} catch (Exception ignored) {
227+
228+
}
229+
return "";
230+
}
208231
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public void onShare(ShareDialog dialog) {
7474
dialog.setShareWeb(url, getTitle().toString(), String.format("%s - 来自博客园APP", getTitle()), null);
7575
}
7676
});
77-
mShareDialog.setExtLayoutVisibility(View.GONE);
77+
mShareDialog.setExtVisibility(View.GONE);
7878
mWebViewFragment = getWebViewFragment(url);
7979
if (ThemeCompat.isNight()) {
8080
mNightView.setVisibility(View.VISIBLE);

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
package com.rae.cnblogs.dialog.impl;
22

3-
import android.content.ClipData;
4-
import android.content.ClipboardManager;
53
import android.content.Context;
64
import android.text.TextUtils;
75

8-
import com.rae.cnblogs.AppUI;
96
import com.rae.cnblogs.R;
107
import com.rae.cnblogs.sdk.bean.BlogBean;
118

@@ -43,7 +40,7 @@ public void show(BlogBean blog) {
4340
mBlog = blog;
4441

4542
if (TextUtils.isEmpty(blog.getAvatar())) {
46-
setShareWeb(blog.getUrl(), blog.getTitle(), blog.getSummary(), R.drawable.ic_share);
43+
setShareWeb(blog.getUrl(), blog.getTitle(), blog.getSummary(), R.drawable.ic_share_app);
4744
} else {
4845
setShareWeb(blog.getUrl(), blog.getTitle(), blog.getSummary(), blog.getAvatar());
4946
}

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public ShareDialog(Context context) {
9595
setContentView(R.layout.dialog_blog_content);
9696
ButterKnife.bind(this, this);
9797
mShareAction = new ShareAction((Activity) context);
98-
setShareIcon(R.drawable.ic_share);
98+
setShareIcon(R.drawable.ic_share_app);
9999
}
100100

101101
public void setShareTitle(String title) {
@@ -115,7 +115,7 @@ public void setShareWeb(@NonNull String url, @NonNull String title, @Nullable St
115115
if (!TextUtils.isEmpty(thumb)) {
116116
web.setThumb(new UMImage(getContext(), thumb));
117117
} else {
118-
web.setThumb(new UMImage(getContext(), R.drawable.ic_share));
118+
web.setThumb(new UMImage(getContext(), R.drawable.ic_share_app));
119119
}
120120
mShareAction.withMedia(web);
121121
}
@@ -149,11 +149,16 @@ public void setOnShareClickListener(OnShareClickListener onShareClickListener) {
149149
*
150150
* @param visibility
151151
*/
152-
public void setExtLayoutVisibility(int visibility) {
152+
public void setExtVisibility(int visibility) {
153153
mViewSourceView.setVisibility(visibility);
154154
mNightView.setVisibility(visibility);
155155

156156
// mExtLayout.setVisibility(visibility);
157+
// mDividerView.setVisibility(visibility);
158+
}
159+
160+
public void setExtLayoutVisibility(int visibility) {
161+
mExtLayout.setVisibility(visibility);
157162
mDividerView.setVisibility(visibility);
158163
}
159164

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,8 @@ public void onNeedLogin() {
235235
mLikeAnimView.stop();
236236
mLikeAnimView.setVisibility(View.GONE);
237237
mLikeView.setVisibility(View.VISIBLE);
238-
AppRoute.jumpToLogin(getContext());
238+
if (getContext() != null)
239+
AppRoute.jumpToLogin(getContext());
239240
}
240241

241242
@Override
@@ -300,8 +301,7 @@ public void scrollToTop() {
300301

301302
@Subscribe
302303
public void onEvent(ThemeChangedEvent event) {
303-
304-
mWebView.loadUrl("javascript:loadTheme(" + !event.isNight() + ")");
304+
mWebView.loadUrl("javascript:loadTheme(" + event.isNight() + ")");
305305
// mWebView.reload();
306306
}
307307
}

0 commit comments

Comments
 (0)