Skip to content

Commit 5bf1232

Browse files
author
hegj
committed
添加kotlin拓展函数,优化了一点点代码
1 parent feee0bb commit 5bf1232

24 files changed

+175
-151
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ android {
4949
buildTypes {
5050
debug {
5151
buildConfigField "boolean", "LOG_DEBUG", "true"
52-
buildConfigField "boolean", "USE_CANARY", "false"
52+
buildConfigField "boolean", "USE_CANARY", "true"
5353
buildConfigField "String", "BUGLY_KEY", '"xxxxxx"'
5454
minifyEnabled false
5555
shrinkResources false

app/priguardMapping.txt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# compiler: R8
22
# compiler_version: 1.5.68
33
# min_api: 21
4-
# pg_map_id: 8e2e2a2
4+
# pg_map_id: d727905
55
butterknife.-$$Lambda$Unbinder$aAZZEjRDCcxQlrGZAdKWmLXqruY -> butterknife.a:
66
butterknife.-$$Lambda$Unbinder$aAZZEjRDCcxQlrGZAdKWmLXqruY INSTANCE -> a
77
butterknife.Unbinder$-CC -> butterknife.b:
@@ -5491,13 +5491,19 @@ me.hegj.wandroid.app.utils.HttpUtils -> me.hegj.wandroid.app.utils.e:
54915491
java.lang.String encodeCookie(java.util.List) -> a
54925492
java.lang.String getErrorText(java.lang.Throwable) -> a
54935493
java.lang.String getProcessName(int) -> a
5494-
me.hegj.wandroid.app.utils.RecyclerViewUtils -> me.hegj.wandroid.app.utils.f:
5494+
me.hegj.wandroid.app.utils.KotlinUtilKt -> me.hegj.wandroid.app.utils.f:
5495+
void setUiTheme(android.content.Context,java.util.List) -> a
5496+
void startActivityKx(android.app.Activity,java.lang.Class,boolean,android.os.Bundle) -> a
5497+
void startActivityKx(androidx.fragment.app.Fragment,java.lang.Class,boolean,android.os.Bundle) -> a
5498+
void startActivityKx$default(android.app.Activity,java.lang.Class,boolean,android.os.Bundle,int,java.lang.Object) -> a
5499+
void startActivityKx$default(androidx.fragment.app.Fragment,java.lang.Class,boolean,android.os.Bundle,int,java.lang.Object) -> a
5500+
me.hegj.wandroid.app.utils.RecyclerViewUtils -> me.hegj.wandroid.app.utils.g:
54955501
me.hegj.wandroid.app.weight.DefineLoadMoreView initRecyclerView(android.content.Context,com.yanzhenjie.recyclerview.SwipeRecyclerView,com.yanzhenjie.recyclerview.SwipeRecyclerView$LoadMoreListener) -> a
5496-
me.hegj.wandroid.app.utils.RecyclerViewUtils$initRecyclerView$1 -> me.hegj.wandroid.app.utils.f$a:
5502+
me.hegj.wandroid.app.utils.RecyclerViewUtils$initRecyclerView$1 -> me.hegj.wandroid.app.utils.g$a:
54975503
me.hegj.wandroid.app.weight.DefineLoadMoreView $footerView -> a
54985504
com.yanzhenjie.recyclerview.SwipeRecyclerView$LoadMoreListener $loadmoreListener -> b
54995505
void onLoadMore() -> a
5500-
me.hegj.wandroid.app.utils.SettingUtil -> me.hegj.wandroid.app.utils.g:
5506+
me.hegj.wandroid.app.utils.SettingUtil -> me.hegj.wandroid.app.utils.h:
55015507
me.hegj.wandroid.app.utils.SettingUtil INSTANCE -> a
55025508
int getColor(android.content.Context) -> a
55035509
android.content.res.ColorStateList getOneColorStateList(int) -> a
@@ -5510,9 +5516,9 @@ me.hegj.wandroid.app.utils.SettingUtil -> me.hegj.wandroid.app.utils.g:
55105516
android.content.res.ColorStateList getOneColorStateList(android.content.Context) -> d
55115517
boolean getRequestTop(android.content.Context) -> e
55125518
boolean getSlidable(android.content.Context) -> f
5513-
me.hegj.wandroid.app.utils.SettingUtil$setLoadingColor$1 -> me.hegj.wandroid.app.utils.g$a:
5519+
me.hegj.wandroid.app.utils.SettingUtil$setLoadingColor$1 -> me.hegj.wandroid.app.utils.h$a:
55145520
android.content.Context $context -> a
5515-
me.hegj.wandroid.app.utils.ShowUtils -> me.hegj.wandroid.app.utils.h:
5521+
me.hegj.wandroid.app.utils.ShowUtils -> me.hegj.wandroid.app.utils.i:
55165522
android.widget.Toast toast -> b
55175523
android.app.ProgressDialog dialog -> a
55185524
me.hegj.wandroid.app.utils.ShowUtils INSTANCE -> c
@@ -5525,7 +5531,7 @@ me.hegj.wandroid.app.utils.ShowUtils -> me.hegj.wandroid.app.utils.h:
55255531
me.hegj.wandroid.app.utils.SpaceItemDecoration -> me.hegj.wandroid.app.utils.SpaceItemDecoration:
55265532
int topBottom -> b
55275533
int leftRight -> a
5528-
me.hegj.wandroid.app.utils.StatusBarUtil -> me.hegj.wandroid.app.utils.i:
5534+
me.hegj.wandroid.app.utils.StatusBarUtil -> me.hegj.wandroid.app.utils.j:
55295535
me.hegj.wandroid.app.utils.StatusBarUtil INSTANCE -> a
55305536
int calculateStatusColor(int,int) -> a
55315537
int getStatusBarHeight(android.content.Context) -> a

app/release/output.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":9,"versionName":"1.0.8","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
1+
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":10,"versionName":"1.0.9","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@
116116
<activity
117117
android:name="com.tencent.bugly.beta.ui.BetaActivity"
118118
android:configChanges="keyboardHidden|orientation|screenSize|locale"
119-
android:theme="@android:style/Theme.Translucent" /> <!-- Arms 配置 -->
119+
android:theme="@android:style/Theme.Translucent" />
120+
<!-- Arms 配置 -->
120121
<meta-data
121122
android:name="design_width_in_dp"
122123
android:value="375" />

app/src/main/java/me/hegj/wandroid/app/AppLifecyclesImpl.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ class AppLifecyclesImpl : AppLifecycles {
5656
override fun onCreate(application: Application) {
5757
//初始化MMKV
5858
MMKV.initialize(application.filesDir.absolutePath + "/mmkv")
59-
6059
if (LeakCanary.isInAnalyzerProcess(application)) {
6160
return
6261
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package me.hegj.wandroid.app.utils
2+
3+
import android.app.Activity
4+
import android.content.Context
5+
import android.content.Intent
6+
import android.os.Bundle
7+
import android.widget.FrameLayout
8+
import android.widget.LinearLayout
9+
import android.widget.TextView
10+
import androidx.appcompat.widget.Toolbar
11+
import androidx.constraintlayout.widget.ConstraintLayout
12+
import androidx.fragment.app.Fragment
13+
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
14+
import com.chad.library.adapter.base.BaseQuickAdapter
15+
import com.google.android.material.floatingactionbutton.FloatingActionButton
16+
import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx
17+
import com.kingja.loadsir.core.LoadService
18+
import me.hegj.wandroid.app.weight.DefineLoadMoreView
19+
import me.hegj.wandroid.mvp.ui.activity.main.me.MeFragment
20+
import me.hegj.wandroid.mvp.ui.activity.setting.SettingActivity
21+
import me.hegj.wandroid.mvp.ui.activity.start.LoginActivity
22+
import me.yokeyword.fragmentation.SupportFragment
23+
24+
/**
25+
* 根据控件的类型设置主题,注意,控件具有优先级, 基本类型的控件建议放到最后,像 Textview,FragmentLayout,不然会出现问题,
26+
* 列如下面的BottomNavigationViewEx他的顶级父控件为FragmentLayout,如果先 is Fragmentlayout判断在 is BottomNavigationViewEx上面
27+
* 那么就会直接去执行 is FragmentLayout的代码块 跳过 is BottomNavigationViewEx的代码块了
28+
*/
29+
fun setUiTheme(context: Context, anylist: List<Any>) {
30+
anylist.forEach {
31+
when (it) {
32+
is LoadService<*> -> SettingUtil.setLoadingColor(context, it as LoadService<Any>)
33+
is FloatingActionButton -> it.backgroundTintList = SettingUtil.getOneColorStateList(context)
34+
is SwipeRefreshLayout -> it.setColorSchemeColors(SettingUtil.getColor(context))
35+
is DefineLoadMoreView -> it.setLoadViewColor(SettingUtil.getOneColorStateList(context))
36+
is BaseQuickAdapter<*, *> -> {
37+
if (SettingUtil.getListMode(context) != 0) {
38+
it.openLoadAnimation(SettingUtil.getListMode(context))
39+
} else {
40+
it.closeLoadAnimation()
41+
}
42+
}
43+
is BottomNavigationViewEx ->{
44+
it.itemIconTintList = SettingUtil.getColorStateList(context)
45+
it.itemTextColor = SettingUtil.getColorStateList(context)
46+
}
47+
is Toolbar -> it.setBackgroundColor(SettingUtil.getColor(context))
48+
is TextView -> it.setTextColor(SettingUtil.getColor(context))
49+
is LinearLayout -> it.setBackgroundColor(SettingUtil.getColor(context))
50+
is ConstraintLayout -> it.setBackgroundColor(SettingUtil.getColor(context))
51+
is FrameLayout -> it.setBackgroundColor(SettingUtil.getColor(context))
52+
}
53+
}
54+
}
55+
fun Fragment.startActivityKx(cls :Class<*>,isNeedLogin:Boolean = false,bundle: Bundle = Bundle()){
56+
if(isNeedLogin){
57+
if (!CacheUtil.isLogin()) {
58+
startActivity(Intent(this.activity,LoginActivity::class.java))
59+
}else{
60+
startActivity(Intent(this.activity,cls).apply {
61+
putExtras(bundle)
62+
})
63+
}
64+
}else{
65+
startActivity(Intent(this.activity,cls).apply {
66+
putExtras(bundle)
67+
})
68+
}
69+
}
70+
fun Activity.startActivityKx(cls :Class<*>, isNeedLogin:Boolean = false,bundle: Bundle = Bundle()){
71+
if(isNeedLogin){
72+
if (!CacheUtil.isLogin()) {
73+
startActivity(Intent(this,LoginActivity::class.java))
74+
}else{
75+
startActivity(Intent(this,cls).apply {
76+
putExtras(bundle)
77+
})
78+
}
79+
}else{
80+
startActivity(Intent(this,cls).apply {
81+
putExtras(bundle)
82+
})
83+
}
84+
85+
}

app/src/main/java/me/hegj/wandroid/mvp/model/api/Api.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import io.reactivex.Observable
1919
import me.hegj.wandroid.mvp.model.entity.*
2020
import retrofit2.http.*
2121

22-
2322
/**
2423
* 存放一些与 API 有关的东西,如请求地址,请求码等
2524
* @Author: hegaojian

app/src/main/java/me/hegj/wandroid/mvp/presenter/main/project/ProjectChildPresenter.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ constructor(model: ProjectChildContract.Model, rootView: ProjectChildContract.Vi
4848
@Inject
4949
lateinit var mAppManager: AppManager
5050

51-
5251
fun getProjectDataByType(pageNo: Int, cid: Int) {
5352
mModel.getProjects(pageNo, cid)
5453
.subscribeOn(Schedulers.io())
@@ -64,7 +63,6 @@ constructor(model: ProjectChildContract.Model, rootView: ProjectChildContract.Vi
6463
mRootView.requestDataFaild(response.errorMsg)
6564
}
6665
}
67-
6866
override fun onError(t: Throwable) {
6967
super.onError(t)
7068
mRootView.requestDataFaild(HttpUtils.getErrorText(t))

app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/MainFragment.kt

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import kotlinx.android.synthetic.main.fragment_main.*
99
import me.hegj.wandroid.R
1010
import me.hegj.wandroid.app.event.SettingChangeEvent
1111
import me.hegj.wandroid.app.utils.SettingUtil
12+
import me.hegj.wandroid.app.utils.setUiTheme
1213
import me.hegj.wandroid.di.component.DaggerMainComponent
1314
import me.hegj.wandroid.di.module.MainModule
1415
import me.hegj.wandroid.mvp.contract.MainContract
@@ -27,11 +28,11 @@ import org.greenrobot.eventbus.Subscribe
2728
*主页
2829
*/
2930
class MainFragment : BaseFragment<MainPresenter>(), MainContract.View {
30-
private val first = 0
31-
private val two = 1
32-
private val three = 2
33-
private val four = 3
34-
private val five = 4
31+
private val first = 0
32+
private val two = 1
33+
private val three = 2
34+
private val four = 3
35+
private val five = 4
3536
private val mFragments = arrayOfNulls<SupportFragment>(5)
3637

3738
companion object {
@@ -57,18 +58,18 @@ class MainFragment : BaseFragment<MainPresenter>(), MainContract.View {
5758
val homeFragment = findChildFragment(HomeFragment::class.java)
5859
if (homeFragment == null) {
5960
mFragments[first] = HomeFragment.newInstance()//主页
60-
mFragments[two] = ProjectFragment.newInstance()//项目
61+
mFragments[two] = ProjectFragment.newInstance()//项目
6162
mFragments[three] = TreeFragment.newInstance()//体系
62-
mFragments[four] = PublicFragment.newInstance()//公众号
63-
mFragments[five] = MeFragment.newInstance()//我的
63+
mFragments[four] = PublicFragment.newInstance()//公众号
64+
mFragments[five] = MeFragment.newInstance()//我的
6465
loadMultipleRootFragment(R.id.main_frame, first, mFragments[first]
6566
, mFragments[two], mFragments[three], mFragments[four], mFragments[five])
6667
} else {
6768
mFragments[first] = homeFragment
68-
mFragments[two] = findChildFragment(ProjectFragment::class.java)
69+
mFragments[two] = findChildFragment(ProjectFragment::class.java)
6970
mFragments[three] = findChildFragment(TreeFragment::class.java)
70-
mFragments[four] = findChildFragment(PublicFragment::class.java)
71-
mFragments[five] = findChildFragment(MeFragment::class.java)
71+
mFragments[four] = findChildFragment(PublicFragment::class.java)
72+
mFragments[five] = findChildFragment(MeFragment::class.java)
7273
}
7374
main_bnve.run {
7475
enableAnimation(false)
@@ -96,9 +97,6 @@ class MainFragment : BaseFragment<MainPresenter>(), MainContract.View {
9697
*/
9798
@Subscribe
9899
fun settingEvent(event: SettingChangeEvent) {
99-
main_bnve?.run {
100-
itemIconTintList = SettingUtil.getColorStateList(_mActivity)
101-
itemTextColor = SettingUtil.getColorStateList(_mActivity)
102-
}
100+
setUiTheme(_mActivity, listOf(main_bnve))
103101
}
104102
}

app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/home/HomeFragment.kt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import me.hegj.wandroid.app.event.LoginFreshEvent
3131
import me.hegj.wandroid.app.event.SettingChangeEvent
3232
import me.hegj.wandroid.app.utils.RecyclerViewUtils
3333
import me.hegj.wandroid.app.utils.SettingUtil
34+
import me.hegj.wandroid.app.utils.setUiTheme
3435
import me.hegj.wandroid.app.weight.CollectView
3536
import me.hegj.wandroid.app.weight.DefineLoadMoreView
3637
import me.hegj.wandroid.app.weight.loadCallBack.EmptyCallback
@@ -62,7 +63,7 @@ class HomeFragment : BaseFragment<HomePresenter>(), HomeContract.View {
6263
lateinit var adapter: AriticleAdapter
6364

6465
lateinit var loadsir: LoadService<Any>
65-
private var footView: DefineLoadMoreView? = null
66+
lateinit var footView: DefineLoadMoreView
6667

6768
companion object {
6869
fun newInstance(): HomeFragment {
@@ -345,16 +346,7 @@ class HomeFragment : BaseFragment<HomePresenter>(), HomeContract.View {
345346
*/
346347
@Subscribe
347348
fun settingEvent(event: SettingChangeEvent) {
348-
toolbar.setBackgroundColor(SettingUtil.getColor(_mActivity))
349-
floatbtn.backgroundTintList = SettingUtil.getOneColorStateList(_mActivity)
350-
swipeRefreshLayout.setColorSchemeColors(SettingUtil.getColor(_mActivity))
351-
SettingUtil.setLoadingColor(_mActivity, loadsir)
352-
footView?.setLoadViewColor(SettingUtil.getOneColorStateList(_mActivity))
353-
if (SettingUtil.getListMode(_mActivity) != 0) {
354-
adapter.openLoadAnimation(SettingUtil.getListMode(_mActivity))
355-
} else {
356-
adapter.closeLoadAnimation()
357-
}
349+
setUiTheme(_mActivity, listOf(toolbar,floatbtn,swipeRefreshLayout,loadsir,footView,adapter))
358350
}
359351

360352
}

app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/me/MeFragment.kt

Lines changed: 15 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@ import kotlinx.android.synthetic.main.include_toolbar.*
1313
import me.hegj.wandroid.R
1414
import me.hegj.wandroid.app.event.LoginFreshEvent
1515
import me.hegj.wandroid.app.event.SettingChangeEvent
16-
import me.hegj.wandroid.app.utils.CacheUtil
17-
import me.hegj.wandroid.app.utils.SettingUtil
18-
import me.hegj.wandroid.app.utils.ShowUtils
1916
import me.hegj.wandroid.di.component.main.me.DaggerMeComponent
2017
import me.hegj.wandroid.di.module.main.me.MeModule
2118
import me.hegj.wandroid.mvp.contract.main.me.MeContract
@@ -35,6 +32,9 @@ import org.greenrobot.eventbus.Subscribe
3532
import android.net.Uri
3633
import com.jess.arms.http.imageloader.glide.ImageConfigImpl
3734
import com.jess.arms.utils.ArmsUtils
35+
import kotlinx.android.synthetic.main.fragment_list.*
36+
import kotlinx.android.synthetic.main.include_recyclerview.*
37+
import me.hegj.wandroid.app.utils.*
3838

3939

4040
/**
@@ -133,10 +133,7 @@ class MeFragment : BaseFragment<MePresenter>(), MeContract.View {
133133
*/
134134
@Subscribe
135135
fun settingEvent(event: SettingChangeEvent) {
136-
me_swipe.setColorSchemeColors(SettingUtil.getColor(_mActivity))
137-
toolbar.setBackgroundColor(SettingUtil.getColor(_mActivity))
138-
me_linear.setBackgroundColor(SettingUtil.getColor(_mActivity))
139-
me_integral.setTextColor(SettingUtil.getColor(_mActivity))
136+
setUiTheme(_mActivity, listOf(me_swipe,toolbar,me_linear,me_integral))
140137
}
141138

142139
@OnClick(R.id.me_setting, R.id.me_collect, R.id.me_linear, R.id.me_todo, R.id.me_integralLinear
@@ -145,56 +142,36 @@ class MeFragment : BaseFragment<MePresenter>(), MeContract.View {
145142
when (view.id) {
146143
R.id.me_linear -> {
147144
if (!CacheUtil.isLogin()) {
148-
launchActivity(Intent(_mActivity, LoginActivity::class.java))
145+
startActivityKx(LoginActivity::class.java)
149146
}
150147
}
151148
R.id.me_collect -> {
152-
if (!CacheUtil.isLogin()) {
153-
launchActivity(Intent(_mActivity, LoginActivity::class.java))
154-
} else {
155-
launchActivity(Intent(_mActivity, CollectActivity::class.java))
156-
}
149+
startActivityKx(CollectActivity::class.java,true)
157150
}
158151
R.id.me_todo -> {
159-
if (!CacheUtil.isLogin()) {
160-
launchActivity(Intent(_mActivity, LoginActivity::class.java))
161-
} else {
162-
launchActivity(Intent(_mActivity, TodoActivity::class.java))
163-
}
152+
startActivityKx(TodoActivity::class.java,true)
164153
}
165154
R.id.me_integralLinear -> {
166-
if (!CacheUtil.isLogin()) {
167-
launchActivity(Intent(_mActivity, LoginActivity::class.java))
168-
} else {
169-
launchActivity(Intent(_mActivity, IntegralActivity::class.java).apply {
170-
integral?.let {
171-
putExtras(Bundle().apply {
172-
putSerializable("integral", it)
173-
})
174-
}
175-
})
176-
}
155+
startActivityKx(IntegralActivity::class.java,true,Bundle().apply {
156+
integral?.let {
157+
putSerializable("integral", it)
158+
}
159+
})
177160
}
178161
R.id.me_article -> {
179-
if (!CacheUtil.isLogin()) {
180-
launchActivity(Intent(_mActivity, LoginActivity::class.java))
181-
} else {
182-
launchActivity(Intent(_mActivity,ShareListActivity::class.java))
183-
}
162+
startActivityKx(ShareListActivity::class.java,true)
184163
}
185164
R.id.me_about ->{
186165
val data = BannerResponse("", 0, "", 0, 0, "玩Android网站", 0, "https://www.wanandroid.com/")
187-
launchActivity(Intent(_mActivity, WebviewActivity::class.java).apply {
188-
putExtras(Bundle().apply {
166+
startActivityKx(WebviewActivity::class.java,false,Bundle().apply {
189167
putSerializable("bannerdata", data)
190-
})
191168
})
192169
}
193170
R.id.me_join -> {
194171
joinQQGroup("9n4i5sHt4189d4DvbotKiCHy-5jZtD4D")
195172
}
196173
R.id.me_setting -> {
197-
launchActivity(Intent(_mActivity, SettingActivity::class.java))
174+
startActivityKx(SettingActivity::class.java)
198175
}
199176
}
200177
}

0 commit comments

Comments
 (0)