Browse Source

添加kotlin拓展函数,优化了一点点代码

hegj 5 years ago
parent
commit
5bf1232c84
24 changed files with 175 additions and 151 deletions
  1. 1 1
      app/build.gradle
  2. 13 7
      app/priguardMapping.txt
  3. 1 1
      app/release/output.json
  4. 2 1
      app/src/main/AndroidManifest.xml
  5. 0 1
      app/src/main/java/me/hegj/wandroid/app/AppLifecyclesImpl.kt
  6. 85 0
      app/src/main/java/me/hegj/wandroid/app/utils/KotlinUtil.kt
  7. 0 1
      app/src/main/java/me/hegj/wandroid/mvp/model/api/Api.kt
  8. 0 2
      app/src/main/java/me/hegj/wandroid/mvp/presenter/main/project/ProjectChildPresenter.kt
  9. 13 15
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/MainFragment.kt
  10. 3 11
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/home/HomeFragment.kt
  11. 15 38
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/me/MeFragment.kt
  12. 4 10
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/project/ProjectChildFragment.kt
  13. 8 2
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/project/ProjectFragment.kt
  14. 3 11
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/publicNumber/PublicChildFragment.kt
  15. 4 2
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/publicNumber/PublicFragment.kt
  16. 2 10
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/tree/NavigationFragment.kt
  17. 3 10
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/tree/SquareFragment.kt
  18. 3 10
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/tree/SystemFragment.kt
  19. 3 2
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/tree/TreeFragment.kt
  20. 3 10
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/tree/treeinfo/TreeinfoFragment.kt
  21. 2 1
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/setting/SettingActivity.kt
  22. 4 2
      app/src/main/java/me/hegj/wandroid/mvp/ui/activity/web/WebviewActivity.kt
  23. 1 1
      app/src/main/res/values/strings.xml
  24. 2 2
      config.gradle

+ 1 - 1
app/build.gradle

@@ -49,7 +49,7 @@ android {
     buildTypes {
         debug {
             buildConfigField "boolean", "LOG_DEBUG",  "true"
-            buildConfigField "boolean", "USE_CANARY", "false"
+            buildConfigField "boolean", "USE_CANARY", "true"
             buildConfigField "String", "BUGLY_KEY", '"xxxxxx"'
             minifyEnabled false
             shrinkResources false

+ 13 - 7
app/priguardMapping.txt

@@ -1,7 +1,7 @@
 # compiler: R8
 # compiler_version: 1.5.68
 # min_api: 21
-# pg_map_id: 8e2e2a2
+# pg_map_id: d727905
 butterknife.-$$Lambda$Unbinder$aAZZEjRDCcxQlrGZAdKWmLXqruY -> butterknife.a:
     butterknife.-$$Lambda$Unbinder$aAZZEjRDCcxQlrGZAdKWmLXqruY INSTANCE -> a
 butterknife.Unbinder$-CC -> butterknife.b:
@@ -5491,13 +5491,19 @@ me.hegj.wandroid.app.utils.HttpUtils -> me.hegj.wandroid.app.utils.e:
     java.lang.String encodeCookie(java.util.List) -> a
     java.lang.String getErrorText(java.lang.Throwable) -> a
     java.lang.String getProcessName(int) -> a
-me.hegj.wandroid.app.utils.RecyclerViewUtils -> me.hegj.wandroid.app.utils.f:
+me.hegj.wandroid.app.utils.KotlinUtilKt -> me.hegj.wandroid.app.utils.f:
+    void setUiTheme(android.content.Context,java.util.List) -> a
+    void startActivityKx(android.app.Activity,java.lang.Class,boolean,android.os.Bundle) -> a
+    void startActivityKx(androidx.fragment.app.Fragment,java.lang.Class,boolean,android.os.Bundle) -> a
+    void startActivityKx$default(android.app.Activity,java.lang.Class,boolean,android.os.Bundle,int,java.lang.Object) -> a
+    void startActivityKx$default(androidx.fragment.app.Fragment,java.lang.Class,boolean,android.os.Bundle,int,java.lang.Object) -> a
+me.hegj.wandroid.app.utils.RecyclerViewUtils -> me.hegj.wandroid.app.utils.g:
     me.hegj.wandroid.app.weight.DefineLoadMoreView initRecyclerView(android.content.Context,com.yanzhenjie.recyclerview.SwipeRecyclerView,com.yanzhenjie.recyclerview.SwipeRecyclerView$LoadMoreListener) -> a
-me.hegj.wandroid.app.utils.RecyclerViewUtils$initRecyclerView$1 -> me.hegj.wandroid.app.utils.f$a:
+me.hegj.wandroid.app.utils.RecyclerViewUtils$initRecyclerView$1 -> me.hegj.wandroid.app.utils.g$a:
     me.hegj.wandroid.app.weight.DefineLoadMoreView $footerView -> a
     com.yanzhenjie.recyclerview.SwipeRecyclerView$LoadMoreListener $loadmoreListener -> b
     void onLoadMore() -> a
-me.hegj.wandroid.app.utils.SettingUtil -> me.hegj.wandroid.app.utils.g:
+me.hegj.wandroid.app.utils.SettingUtil -> me.hegj.wandroid.app.utils.h:
     me.hegj.wandroid.app.utils.SettingUtil INSTANCE -> a
     int getColor(android.content.Context) -> a
     android.content.res.ColorStateList getOneColorStateList(int) -> a
@@ -5510,9 +5516,9 @@ me.hegj.wandroid.app.utils.SettingUtil -> me.hegj.wandroid.app.utils.g:
     android.content.res.ColorStateList getOneColorStateList(android.content.Context) -> d
     boolean getRequestTop(android.content.Context) -> e
     boolean getSlidable(android.content.Context) -> f
-me.hegj.wandroid.app.utils.SettingUtil$setLoadingColor$1 -> me.hegj.wandroid.app.utils.g$a:
+me.hegj.wandroid.app.utils.SettingUtil$setLoadingColor$1 -> me.hegj.wandroid.app.utils.h$a:
     android.content.Context $context -> a
-me.hegj.wandroid.app.utils.ShowUtils -> me.hegj.wandroid.app.utils.h:
+me.hegj.wandroid.app.utils.ShowUtils -> me.hegj.wandroid.app.utils.i:
     android.widget.Toast toast -> b
     android.app.ProgressDialog dialog -> a
     me.hegj.wandroid.app.utils.ShowUtils INSTANCE -> c
@@ -5525,7 +5531,7 @@ me.hegj.wandroid.app.utils.ShowUtils -> me.hegj.wandroid.app.utils.h:
 me.hegj.wandroid.app.utils.SpaceItemDecoration -> me.hegj.wandroid.app.utils.SpaceItemDecoration:
     int topBottom -> b
     int leftRight -> a
-me.hegj.wandroid.app.utils.StatusBarUtil -> me.hegj.wandroid.app.utils.i:
+me.hegj.wandroid.app.utils.StatusBarUtil -> me.hegj.wandroid.app.utils.j:
     me.hegj.wandroid.app.utils.StatusBarUtil INSTANCE -> a
     int calculateStatusColor(int,int) -> a
     int getStatusBarHeight(android.content.Context) -> a

+ 1 - 1
app/release/output.json

@@ -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":{}}]
+[{"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":{}}]

+ 2 - 1
app/src/main/AndroidManifest.xml

@@ -116,7 +116,8 @@
         <activity
             android:name="com.tencent.bugly.beta.ui.BetaActivity"
             android:configChanges="keyboardHidden|orientation|screenSize|locale"
-            android:theme="@android:style/Theme.Translucent" /> <!-- Arms 配置 -->
+            android:theme="@android:style/Theme.Translucent" />
+        <!-- Arms 配置 -->
         <meta-data
             android:name="design_width_in_dp"
             android:value="375" />

+ 0 - 1
app/src/main/java/me/hegj/wandroid/app/AppLifecyclesImpl.kt

@@ -56,7 +56,6 @@ class AppLifecyclesImpl : AppLifecycles {
     override fun onCreate(application: Application) {
         //初始化MMKV
         MMKV.initialize(application.filesDir.absolutePath + "/mmkv")
-
         if (LeakCanary.isInAnalyzerProcess(application)) {
             return
         }

+ 85 - 0
app/src/main/java/me/hegj/wandroid/app/utils/KotlinUtil.kt

@@ -0,0 +1,85 @@
+package me.hegj.wandroid.app.utils
+
+import android.app.Activity
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import android.widget.FrameLayout
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.appcompat.widget.Toolbar
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.fragment.app.Fragment
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+import com.chad.library.adapter.base.BaseQuickAdapter
+import com.google.android.material.floatingactionbutton.FloatingActionButton
+import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx
+import com.kingja.loadsir.core.LoadService
+import me.hegj.wandroid.app.weight.DefineLoadMoreView
+import me.hegj.wandroid.mvp.ui.activity.main.me.MeFragment
+import me.hegj.wandroid.mvp.ui.activity.setting.SettingActivity
+import me.hegj.wandroid.mvp.ui.activity.start.LoginActivity
+import me.yokeyword.fragmentation.SupportFragment
+
+/**
+ * 根据控件的类型设置主题,注意,控件具有优先级, 基本类型的控件建议放到最后,像 Textview,FragmentLayout,不然会出现问题,
+ * 列如下面的BottomNavigationViewEx他的顶级父控件为FragmentLayout,如果先 is Fragmentlayout判断在 is BottomNavigationViewEx上面
+ * 那么就会直接去执行 is FragmentLayout的代码块 跳过 is BottomNavigationViewEx的代码块了
+ */
+fun setUiTheme(context: Context, anylist: List<Any>) {
+    anylist.forEach {
+        when (it) {
+            is LoadService<*> -> SettingUtil.setLoadingColor(context, it as LoadService<Any>)
+            is FloatingActionButton -> it.backgroundTintList = SettingUtil.getOneColorStateList(context)
+            is SwipeRefreshLayout -> it.setColorSchemeColors(SettingUtil.getColor(context))
+            is DefineLoadMoreView -> it.setLoadViewColor(SettingUtil.getOneColorStateList(context))
+            is BaseQuickAdapter<*, *> -> {
+                if (SettingUtil.getListMode(context) != 0) {
+                    it.openLoadAnimation(SettingUtil.getListMode(context))
+                } else {
+                    it.closeLoadAnimation()
+                }
+            }
+            is BottomNavigationViewEx ->{
+                it.itemIconTintList = SettingUtil.getColorStateList(context)
+                it.itemTextColor = SettingUtil.getColorStateList(context)
+            }
+            is Toolbar -> it.setBackgroundColor(SettingUtil.getColor(context))
+            is TextView -> it.setTextColor(SettingUtil.getColor(context))
+            is LinearLayout -> it.setBackgroundColor(SettingUtil.getColor(context))
+            is ConstraintLayout -> it.setBackgroundColor(SettingUtil.getColor(context))
+            is FrameLayout -> it.setBackgroundColor(SettingUtil.getColor(context))
+        }
+    }
+}
+    fun Fragment.startActivityKx(cls :Class<*>,isNeedLogin:Boolean = false,bundle: Bundle = Bundle()){
+        if(isNeedLogin){
+            if (!CacheUtil.isLogin()) {
+                startActivity(Intent(this.activity,LoginActivity::class.java))
+            }else{
+                startActivity(Intent(this.activity,cls).apply {
+                    putExtras(bundle)
+                })
+            }
+        }else{
+            startActivity(Intent(this.activity,cls).apply {
+                putExtras(bundle)
+            })
+        }
+    }
+    fun Activity.startActivityKx(cls :Class<*>, isNeedLogin:Boolean = false,bundle: Bundle = Bundle()){
+        if(isNeedLogin){
+            if (!CacheUtil.isLogin()) {
+                startActivity(Intent(this,LoginActivity::class.java))
+            }else{
+                startActivity(Intent(this,cls).apply {
+                    putExtras(bundle)
+                })
+            }
+        }else{
+            startActivity(Intent(this,cls).apply {
+                putExtras(bundle)
+            })
+        }
+
+    }

+ 0 - 1
app/src/main/java/me/hegj/wandroid/mvp/model/api/Api.kt

@@ -19,7 +19,6 @@ import io.reactivex.Observable
 import me.hegj.wandroid.mvp.model.entity.*
 import retrofit2.http.*
 
-
 /**
  * 存放一些与 API 有关的东西,如请求地址,请求码等
  * @Author:         hegaojian

+ 0 - 2
app/src/main/java/me/hegj/wandroid/mvp/presenter/main/project/ProjectChildPresenter.kt

@@ -48,7 +48,6 @@ constructor(model: ProjectChildContract.Model, rootView: ProjectChildContract.Vi
     @Inject
     lateinit var mAppManager: AppManager
 
-
     fun getProjectDataByType(pageNo: Int, cid: Int) {
         mModel.getProjects(pageNo, cid)
                 .subscribeOn(Schedulers.io())
@@ -64,7 +63,6 @@ constructor(model: ProjectChildContract.Model, rootView: ProjectChildContract.Vi
                             mRootView.requestDataFaild(response.errorMsg)
                         }
                     }
-
                     override fun onError(t: Throwable) {
                         super.onError(t)
                         mRootView.requestDataFaild(HttpUtils.getErrorText(t))

+ 13 - 15
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/MainFragment.kt

@@ -9,6 +9,7 @@ import kotlinx.android.synthetic.main.fragment_main.*
 import me.hegj.wandroid.R
 import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.SettingUtil
+import me.hegj.wandroid.app.utils.setUiTheme
 import me.hegj.wandroid.di.component.DaggerMainComponent
 import me.hegj.wandroid.di.module.MainModule
 import me.hegj.wandroid.mvp.contract.MainContract
@@ -27,11 +28,11 @@ import org.greenrobot.eventbus.Subscribe
  *主页
  */
 class MainFragment : BaseFragment<MainPresenter>(), MainContract.View {
-    private val first  = 0
-    private val two    = 1
-    private val three  = 2
-    private val four   = 3
-    private val five   = 4
+    private val first = 0
+    private val two = 1
+    private val three = 2
+    private val four = 3
+    private val five = 4
     private val mFragments = arrayOfNulls<SupportFragment>(5)
 
     companion object {
@@ -57,18 +58,18 @@ class MainFragment : BaseFragment<MainPresenter>(), MainContract.View {
         val homeFragment = findChildFragment(HomeFragment::class.java)
         if (homeFragment == null) {
             mFragments[first] = HomeFragment.newInstance()//主页
-            mFragments[two]   = ProjectFragment.newInstance()//项目
+            mFragments[two] = ProjectFragment.newInstance()//项目
             mFragments[three] = TreeFragment.newInstance()//体系
-            mFragments[four]  = PublicFragment.newInstance()//公众号
-            mFragments[five]  = MeFragment.newInstance()//我的
+            mFragments[four] = PublicFragment.newInstance()//公众号
+            mFragments[five] = MeFragment.newInstance()//我的
             loadMultipleRootFragment(R.id.main_frame, first, mFragments[first]
                     , mFragments[two], mFragments[three], mFragments[four], mFragments[five])
         } else {
             mFragments[first] = homeFragment
-            mFragments[two]   = findChildFragment(ProjectFragment::class.java)
+            mFragments[two] = findChildFragment(ProjectFragment::class.java)
             mFragments[three] = findChildFragment(TreeFragment::class.java)
-            mFragments[four]  = findChildFragment(PublicFragment::class.java)
-            mFragments[five]  = findChildFragment(MeFragment::class.java)
+            mFragments[four] = findChildFragment(PublicFragment::class.java)
+            mFragments[five] = findChildFragment(MeFragment::class.java)
         }
         main_bnve.run {
             enableAnimation(false)
@@ -96,9 +97,6 @@ class MainFragment : BaseFragment<MainPresenter>(), MainContract.View {
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        main_bnve?.run {
-            itemIconTintList = SettingUtil.getColorStateList(_mActivity)
-            itemTextColor = SettingUtil.getColorStateList(_mActivity)
-        }
+        setUiTheme(_mActivity, listOf(main_bnve))
     }
 }

+ 3 - 11
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/home/HomeFragment.kt

@@ -31,6 +31,7 @@ import me.hegj.wandroid.app.event.LoginFreshEvent
 import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.RecyclerViewUtils
 import me.hegj.wandroid.app.utils.SettingUtil
+import me.hegj.wandroid.app.utils.setUiTheme
 import me.hegj.wandroid.app.weight.CollectView
 import me.hegj.wandroid.app.weight.DefineLoadMoreView
 import me.hegj.wandroid.app.weight.loadCallBack.EmptyCallback
@@ -62,7 +63,7 @@ class HomeFragment : BaseFragment<HomePresenter>(), HomeContract.View {
     lateinit var adapter: AriticleAdapter
 
     lateinit var loadsir: LoadService<Any>
-    private var footView: DefineLoadMoreView? = null
+    lateinit var footView: DefineLoadMoreView
 
     companion object {
         fun newInstance(): HomeFragment {
@@ -345,16 +346,7 @@ class HomeFragment : BaseFragment<HomePresenter>(), HomeContract.View {
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        toolbar.setBackgroundColor(SettingUtil.getColor(_mActivity))
-        floatbtn.backgroundTintList = SettingUtil.getOneColorStateList(_mActivity)
-        swipeRefreshLayout.setColorSchemeColors(SettingUtil.getColor(_mActivity))
-        SettingUtil.setLoadingColor(_mActivity, loadsir)
-        footView?.setLoadViewColor(SettingUtil.getOneColorStateList(_mActivity))
-        if (SettingUtil.getListMode(_mActivity) != 0) {
-            adapter.openLoadAnimation(SettingUtil.getListMode(_mActivity))
-        } else {
-            adapter.closeLoadAnimation()
-        }
+        setUiTheme(_mActivity, listOf(toolbar,floatbtn,swipeRefreshLayout,loadsir,footView,adapter))
     }
 
 }

+ 15 - 38
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/me/MeFragment.kt

@@ -13,9 +13,6 @@ import kotlinx.android.synthetic.main.include_toolbar.*
 import me.hegj.wandroid.R
 import me.hegj.wandroid.app.event.LoginFreshEvent
 import me.hegj.wandroid.app.event.SettingChangeEvent
-import me.hegj.wandroid.app.utils.CacheUtil
-import me.hegj.wandroid.app.utils.SettingUtil
-import me.hegj.wandroid.app.utils.ShowUtils
 import me.hegj.wandroid.di.component.main.me.DaggerMeComponent
 import me.hegj.wandroid.di.module.main.me.MeModule
 import me.hegj.wandroid.mvp.contract.main.me.MeContract
@@ -35,6 +32,9 @@ import org.greenrobot.eventbus.Subscribe
 import android.net.Uri
 import com.jess.arms.http.imageloader.glide.ImageConfigImpl
 import com.jess.arms.utils.ArmsUtils
+import kotlinx.android.synthetic.main.fragment_list.*
+import kotlinx.android.synthetic.main.include_recyclerview.*
+import me.hegj.wandroid.app.utils.*
 
 
 /**
@@ -133,10 +133,7 @@ class MeFragment : BaseFragment<MePresenter>(), MeContract.View {
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        me_swipe.setColorSchemeColors(SettingUtil.getColor(_mActivity))
-        toolbar.setBackgroundColor(SettingUtil.getColor(_mActivity))
-        me_linear.setBackgroundColor(SettingUtil.getColor(_mActivity))
-        me_integral.setTextColor(SettingUtil.getColor(_mActivity))
+        setUiTheme(_mActivity, listOf(me_swipe,toolbar,me_linear,me_integral))
     }
 
     @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 {
         when (view.id) {
             R.id.me_linear -> {
                 if (!CacheUtil.isLogin()) {
-                    launchActivity(Intent(_mActivity, LoginActivity::class.java))
+                    startActivityKx(LoginActivity::class.java)
                 }
             }
             R.id.me_collect -> {
-                if (!CacheUtil.isLogin()) {
-                    launchActivity(Intent(_mActivity, LoginActivity::class.java))
-                } else {
-                    launchActivity(Intent(_mActivity, CollectActivity::class.java))
-                }
+                startActivityKx(CollectActivity::class.java,true)
             }
             R.id.me_todo -> {
-                if (!CacheUtil.isLogin()) {
-                    launchActivity(Intent(_mActivity, LoginActivity::class.java))
-                } else {
-                    launchActivity(Intent(_mActivity, TodoActivity::class.java))
-                }
+                startActivityKx(TodoActivity::class.java,true)
             }
             R.id.me_integralLinear -> {
-                if (!CacheUtil.isLogin()) {
-                    launchActivity(Intent(_mActivity, LoginActivity::class.java))
-                } else {
-                    launchActivity(Intent(_mActivity, IntegralActivity::class.java).apply {
-                        integral?.let {
-                            putExtras(Bundle().apply {
-                                putSerializable("integral", it)
-                            })
-                        }
-                    })
-                }
+                startActivityKx(IntegralActivity::class.java,true,Bundle().apply {
+                    integral?.let {
+                        putSerializable("integral", it)
+                    }
+                })
             }
             R.id.me_article -> {
-                if (!CacheUtil.isLogin()) {
-                    launchActivity(Intent(_mActivity, LoginActivity::class.java))
-                } else {
-                    launchActivity(Intent(_mActivity,ShareListActivity::class.java))
-                }
+                startActivityKx(ShareListActivity::class.java,true)
             }
             R.id.me_about ->{
                 val data = BannerResponse("", 0, "", 0, 0, "玩Android网站", 0, "https://www.wanandroid.com/")
-                launchActivity(Intent(_mActivity, WebviewActivity::class.java).apply {
-                    putExtras(Bundle().apply {
+                startActivityKx(WebviewActivity::class.java,false,Bundle().apply {
                         putSerializable("bannerdata", data)
-                    })
                 })
             }
             R.id.me_join -> {
                 joinQQGroup("9n4i5sHt4189d4DvbotKiCHy-5jZtD4D")
             }
             R.id.me_setting -> {
-                launchActivity(Intent(_mActivity, SettingActivity::class.java))
+                startActivityKx(SettingActivity::class.java)
             }
         }
     }

+ 4 - 10
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/project/ProjectChildFragment.kt

@@ -16,6 +16,7 @@ import com.kingja.loadsir.core.LoadSir
 import com.yanzhenjie.recyclerview.SwipeRecyclerView
 import kotlinx.android.synthetic.main.fragment_list.*
 import kotlinx.android.synthetic.main.include_recyclerview.*
+import kotlinx.android.synthetic.main.include_viewpager.*
 import kotlinx.coroutines.GlobalScope
 import kotlinx.coroutines.async
 import kotlinx.coroutines.launch
@@ -25,6 +26,7 @@ import me.hegj.wandroid.app.event.LoginFreshEvent
 import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.RecyclerViewUtils
 import me.hegj.wandroid.app.utils.SettingUtil
+import me.hegj.wandroid.app.utils.setUiTheme
 import me.hegj.wandroid.app.weight.CollectView
 import me.hegj.wandroid.app.weight.DefineLoadMoreView
 import me.hegj.wandroid.app.weight.loadCallBack.EmptyCallback
@@ -50,7 +52,7 @@ class ProjectChildFragment : BaseFragment<ProjectChildPresenter>(), ProjectChild
     private var isNew = false//是否是最新项目
     private var initPageNo: Int = 1 //初始化页码,因为最新项目跟其他分类的初始页码不一样 最新 为0 分类项目为1
     private var pageNo: Int = 1 //当前页码
-    private var footView: DefineLoadMoreView? = null
+    lateinit var footView: DefineLoadMoreView
 
     companion object {
         fun newInstance(cid: Int, initPageNo: Int): ProjectChildFragment {
@@ -311,14 +313,6 @@ class ProjectChildFragment : BaseFragment<ProjectChildPresenter>(), ProjectChild
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        floatbtn.backgroundTintList = SettingUtil.getOneColorStateList(_mActivity)
-        swipeRefreshLayout.setColorSchemeColors(SettingUtil.getColor(_mActivity))
-        SettingUtil.setLoadingColor(_mActivity, loadsir)
-        footView?.setLoadViewColor(SettingUtil.getOneColorStateList(_mActivity))
-        if (SettingUtil.getListMode(_mActivity) != 0) {
-            adapter.openLoadAnimation(SettingUtil.getListMode(_mActivity))
-        } else {
-            adapter.closeLoadAnimation()
-        }
+        setUiTheme(_mActivity, listOf(floatbtn,swipeRefreshLayout,loadsir,footView,adapter))
     }
 }

+ 8 - 2
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/project/ProjectFragment.kt

@@ -12,10 +12,14 @@ import android.view.animation.DecelerateInterpolator
 import com.jess.arms.di.component.AppComponent
 import com.kingja.loadsir.core.LoadService
 import com.kingja.loadsir.core.LoadSir
+import kotlinx.android.synthetic.main.fragment_list.*
+import kotlinx.android.synthetic.main.include_recyclerview.*
 import kotlinx.android.synthetic.main.include_viewpager.*
 import me.hegj.wandroid.R
 import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.SettingUtil
+import me.hegj.wandroid.app.utils.setUiTheme
+import me.hegj.wandroid.app.utils.startActivityKx
 import me.hegj.wandroid.app.weight.ScaleTransitionPagerTitleView
 import me.hegj.wandroid.app.weight.loadCallBack.ErrorCallback
 import me.hegj.wandroid.app.weight.loadCallBack.LoadingCallback
@@ -105,11 +109,14 @@ class ProjectFragment : BaseFragment<ProjectPresenter>(), ProjectContract.View {
             override fun getIndicator(context: Context): IPagerIndicator {
                 return LinePagerIndicator(context).apply {
                     mode = LinePagerIndicator.MODE_EXACTLY
+                    //线条的宽高度
                     lineHeight = UIUtil.dip2px(context, 3.0).toFloat()
                     lineWidth = UIUtil.dip2px(context, 30.0).toFloat()
+                    //线条的圆角
                     roundRadius = UIUtil.dip2px(context, 6.0).toFloat()
                     startInterpolator = AccelerateInterpolator()
                     endInterpolator = DecelerateInterpolator(2.0f)
+                    //线条的颜色
                     setColors(Color.WHITE)
                 }
             }
@@ -151,8 +158,7 @@ class ProjectFragment : BaseFragment<ProjectPresenter>(), ProjectContract.View {
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        viewpager_linear.setBackgroundColor(SettingUtil.getColor(_mActivity))
-        SettingUtil.setLoadingColor(_mActivity, loadsir)
+        setUiTheme(_mActivity, listOf(viewpager_linear,loadsir))
     }
 
 }

+ 3 - 11
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/publicNumber/PublicChildFragment.kt

@@ -25,6 +25,7 @@ import me.hegj.wandroid.app.event.LoginFreshEvent
 import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.RecyclerViewUtils
 import me.hegj.wandroid.app.utils.SettingUtil
+import me.hegj.wandroid.app.utils.setUiTheme
 import me.hegj.wandroid.app.weight.CollectView
 import me.hegj.wandroid.app.weight.DefineLoadMoreView
 import me.hegj.wandroid.app.weight.loadCallBack.EmptyCallback
@@ -41,7 +42,6 @@ import me.hegj.wandroid.mvp.ui.activity.web.WebviewActivity
 import me.hegj.wandroid.mvp.ui.adapter.AriticleAdapter
 import org.greenrobot.eventbus.Subscribe
 
-
 class PublicChildFragment : BaseFragment<PublicChildPresenter>(), PublicChildContract.View {
 
     lateinit var loadsir: LoadService<Any>
@@ -49,7 +49,7 @@ class PublicChildFragment : BaseFragment<PublicChildPresenter>(), PublicChildCon
     private var initPageNo = 1 //注意,公众号页码从 1开始的 !!!!
     private var pageNo: Int = initPageNo
     private var cid: Int = 0
-    private var footView: DefineLoadMoreView? = null
+    lateinit var footView: DefineLoadMoreView
 
     companion object {
         fun newInstance(cid: Int): PublicChildFragment {
@@ -279,14 +279,6 @@ class PublicChildFragment : BaseFragment<PublicChildPresenter>(), PublicChildCon
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        floatbtn.backgroundTintList = SettingUtil.getOneColorStateList(_mActivity)
-        swipeRefreshLayout.setColorSchemeColors(SettingUtil.getColor(_mActivity))
-        SettingUtil.setLoadingColor(_mActivity, loadsir)
-        footView?.setLoadViewColor(SettingUtil.getOneColorStateList(_mActivity))
-        if (SettingUtil.getListMode(_mActivity) != 0) {
-            adapter.openLoadAnimation(SettingUtil.getListMode(_mActivity))
-        } else {
-            adapter.closeLoadAnimation()
-        }
+        setUiTheme(_mActivity, listOf(floatbtn,swipeRefreshLayout,loadsir,footView,adapter))
     }
 }

+ 4 - 2
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/publicNumber/PublicFragment.kt

@@ -12,10 +12,13 @@ import android.view.animation.DecelerateInterpolator
 import com.jess.arms.di.component.AppComponent
 import com.kingja.loadsir.core.LoadService
 import com.kingja.loadsir.core.LoadSir
+import kotlinx.android.synthetic.main.fragment_list.*
+import kotlinx.android.synthetic.main.include_recyclerview.*
 import kotlinx.android.synthetic.main.include_viewpager.*
 import me.hegj.wandroid.R
 import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.SettingUtil
+import me.hegj.wandroid.app.utils.setUiTheme
 import me.hegj.wandroid.app.weight.ScaleTransitionPagerTitleView
 import me.hegj.wandroid.app.weight.loadCallBack.ErrorCallback
 import me.hegj.wandroid.app.weight.loadCallBack.LoadingCallback
@@ -142,7 +145,6 @@ class PublicFragment : BaseFragment<PublicPresenter>(), PublicContract.View {
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        viewpager_linear.setBackgroundColor(SettingUtil.getColor(_mActivity))
-        SettingUtil.setLoadingColor(_mActivity, loadsir)
+        setUiTheme(_mActivity, listOf(viewpager_linear,loadsir))
     }
 }

+ 2 - 10
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/tree/NavigationFragment.kt

@@ -23,6 +23,7 @@ import me.hegj.wandroid.app.event.LoginFreshEvent
 import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.SettingUtil
 import me.hegj.wandroid.app.utils.SpaceItemDecoration
+import me.hegj.wandroid.app.utils.setUiTheme
 import me.hegj.wandroid.app.weight.loadCallBack.ErrorCallback
 import me.hegj.wandroid.app.weight.loadCallBack.LoadingCallback
 import me.hegj.wandroid.di.component.main.tree.DaggerNavigationComponent
@@ -213,16 +214,7 @@ class NavigationFragment : BaseFragment<NavigationPresenter>(), NavigationContra
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        floatbtn.backgroundTintList = SettingUtil.getOneColorStateList(_mActivity)
-        SettingUtil.setLoadingColor(_mActivity, loadsir)
-        swipeRefreshLayout.setColorSchemeColors(SettingUtil.getColor(_mActivity))
-        adapter.run {
-            if (SettingUtil.getListMode(_mActivity) != 0) {
-                openLoadAnimation(SettingUtil.getListMode(_mActivity))
-            } else {
-                closeLoadAnimation()
-            }
-        }
+        setUiTheme(_mActivity, listOf(floatbtn,loadsir,swipeRefreshLayout,adapter))
     }
 
 }

+ 3 - 10
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/tree/SquareFragment.kt

@@ -26,6 +26,7 @@ import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.RecyclerViewUtils
 import me.hegj.wandroid.app.utils.SettingUtil
 import me.hegj.wandroid.app.utils.SpaceItemDecoration
+import me.hegj.wandroid.app.utils.setUiTheme
 import me.hegj.wandroid.app.weight.DefineLoadMoreView
 import me.hegj.wandroid.app.weight.loadCallBack.EmptyCallback
 import me.hegj.wandroid.app.weight.loadCallBack.ErrorCallback
@@ -52,7 +53,7 @@ class SquareFragment : BaseFragment<SquarePresenter>(), SquareContract.View {
     var pageNo = initPageNo //当前页码
     lateinit var loadsir: LoadService<Any>
     lateinit var adapter: AriticleAdapter
-    private var footView: DefineLoadMoreView? = null
+    lateinit var footView: DefineLoadMoreView
     companion object {
         fun newInstance(): SquareFragment {
             return SquareFragment()
@@ -267,15 +268,7 @@ class SquareFragment : BaseFragment<SquarePresenter>(), SquareContract.View {
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        floatbtn.backgroundTintList = SettingUtil.getOneColorStateList(_mActivity)
-        swipeRefreshLayout.setColorSchemeColors(SettingUtil.getColor(_mActivity))
-        SettingUtil.setLoadingColor(_mActivity, loadsir)
-        footView?.setLoadViewColor(SettingUtil.getOneColorStateList(_mActivity))
-        if (SettingUtil.getListMode(_mActivity) != 0) {
-            adapter.openLoadAnimation(SettingUtil.getListMode(_mActivity))
-        } else {
-            adapter.closeLoadAnimation()
-        }
+        setUiTheme(_mActivity, listOf(floatbtn,swipeRefreshLayout,loadsir,footView,adapter))
     }
 
     /**

+ 3 - 10
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/tree/SystemFragment.kt

@@ -14,10 +14,12 @@ import com.kingja.loadsir.core.LoadService
 import com.kingja.loadsir.core.LoadSir
 import kotlinx.android.synthetic.main.fragment_list.*
 import kotlinx.android.synthetic.main.include_recyclerview.*
+import kotlinx.android.synthetic.main.include_viewpager.*
 import me.hegj.wandroid.R
 import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.SettingUtil
 import me.hegj.wandroid.app.utils.SpaceItemDecoration
+import me.hegj.wandroid.app.utils.setUiTheme
 import me.hegj.wandroid.app.weight.loadCallBack.ErrorCallback
 import me.hegj.wandroid.app.weight.loadCallBack.LoadingCallback
 import me.hegj.wandroid.di.component.main.tree.DaggerSystemComponent
@@ -163,16 +165,7 @@ class SystemFragment : BaseFragment<SystemPresenter>(), SystemContract.View {
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        floatbtn.backgroundTintList = SettingUtil.getOneColorStateList(_mActivity)
-        SettingUtil.setLoadingColor(_mActivity, loadsir)
-        swipeRefreshLayout.setColorSchemeColors(SettingUtil.getColor(_mActivity))
-        adapter.run {
-            if (SettingUtil.getListMode(_mActivity) != 0) {
-                openLoadAnimation(SettingUtil.getListMode(_mActivity))
-            } else {
-                closeLoadAnimation()
-            }
-        }
+        setUiTheme(_mActivity, listOf(floatbtn,loadsir,swipeRefreshLayout,adapter))
     }
 
 }

+ 3 - 2
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/tree/TreeFragment.kt

@@ -12,11 +12,13 @@ import android.view.animation.DecelerateInterpolator
 import androidx.viewpager.widget.ViewPager
 import com.jess.arms.di.component.AppComponent
 import com.jess.arms.mvp.IPresenter
+import kotlinx.android.synthetic.main.fragment_main.*
 import kotlinx.android.synthetic.main.include_toolbar.*
 import kotlinx.android.synthetic.main.include_viewpager.*
 import me.hegj.wandroid.R
 import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.SettingUtil
+import me.hegj.wandroid.app.utils.setUiTheme
 import me.hegj.wandroid.app.weight.ScaleTransitionPagerTitleView
 import me.hegj.wandroid.mvp.ui.BaseFragment
 import me.hegj.wandroid.mvp.ui.activity.main.home.search.SearchActivity
@@ -143,7 +145,6 @@ class TreeFragment : BaseFragment<IPresenter>() {
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        viewpager_linear.setBackgroundColor(SettingUtil.getColor(_mActivity))
-        include_viewpager_toolbar.setBackgroundColor(SettingUtil.getColor(_mActivity))
+        setUiTheme(_mActivity, listOf(viewpager_linear,include_viewpager_toolbar))
     }
 }

+ 3 - 10
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/main/tree/treeinfo/TreeinfoFragment.kt

@@ -26,6 +26,7 @@ import me.hegj.wandroid.app.event.LoginFreshEvent
 import me.hegj.wandroid.app.event.SettingChangeEvent
 import me.hegj.wandroid.app.utils.RecyclerViewUtils
 import me.hegj.wandroid.app.utils.SettingUtil
+import me.hegj.wandroid.app.utils.setUiTheme
 import me.hegj.wandroid.app.weight.CollectView
 import me.hegj.wandroid.app.weight.DefineLoadMoreView
 import me.hegj.wandroid.app.weight.loadCallBack.EmptyCallback
@@ -52,7 +53,7 @@ class TreeinfoFragment : BaseFragment<TreeinfoPresenter>(), TreeinfoContract.Vie
     private var initPageNo = 0 //注意,体系页码从 0开始的 !!!!
     private var pageNo: Int = initPageNo //注意,体系页码从 0开始的 !!!!
     private var cid: Int = 0
-    private var footView: DefineLoadMoreView? = null
+    lateinit var footView: DefineLoadMoreView
 
     companion object {
         fun newInstance(cid: Int): TreeinfoFragment {
@@ -279,14 +280,6 @@ class TreeinfoFragment : BaseFragment<TreeinfoPresenter>(), TreeinfoContract.Vie
      */
     @Subscribe
     fun settingEvent(event: SettingChangeEvent) {
-        floatbtn.backgroundTintList = SettingUtil.getOneColorStateList(_mActivity)
-        swipeRefreshLayout.setColorSchemeColors(SettingUtil.getColor(_mActivity))
-        SettingUtil.setLoadingColor(_mActivity, loadsir)
-        footView?.setLoadViewColor(SettingUtil.getOneColorStateList(_mActivity))
-        if (SettingUtil.getListMode(_mActivity) != 0) {
-            adapter.openLoadAnimation(SettingUtil.getListMode(_mActivity))
-        } else {
-            adapter.closeLoadAnimation()
-        }
+        setUiTheme(_mActivity, listOf(floatbtn,swipeRefreshLayout,loadsir,footView,adapter))
     }
 }

+ 2 - 1
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/setting/SettingActivity.kt

@@ -1,18 +1,19 @@
 package me.hegj.wandroid.mvp.ui.activity.setting
 
-
 import android.os.Bundle
 import com.jess.arms.di.component.AppComponent
 import com.jess.arms.mvp.IPresenter
 import kotlinx.android.synthetic.main.include_toolbar.*
 import me.hegj.wandroid.R
 import me.hegj.wandroid.app.event.SettingChangeEvent
+import me.hegj.wandroid.app.utils.startActivityKx
 import me.hegj.wandroid.mvp.ui.BaseActivity
 import org.greenrobot.eventbus.Subscribe
 
 class SettingActivity : BaseActivity<IPresenter>() {
 
     override fun setupActivityComponent(appComponent: AppComponent) {
+
     }
 
     override fun initView(savedInstanceState: Bundle?): Int {

+ 4 - 2
app/src/main/java/me/hegj/wandroid/mvp/ui/activity/web/WebviewActivity.kt

@@ -19,6 +19,7 @@ import me.hegj.wandroid.R
 import me.hegj.wandroid.app.event.CollectEvent
 import me.hegj.wandroid.app.event.LoginFreshEvent
 import me.hegj.wandroid.app.utils.CacheUtil
+import me.hegj.wandroid.app.utils.startActivityKx
 import me.hegj.wandroid.app.weight.LollipopFixedWebView
 import me.hegj.wandroid.di.component.web.DaggerWebviewComponent
 import me.hegj.wandroid.di.module.web.WebviewModule
@@ -149,7 +150,8 @@ class WebviewActivity : BaseActivity<WebviewPresenter>(), WebviewContract.View {
                 //刷新网页
                 mAgentWeb.urlLoader.reload()
             }
-            R.id.web_collect -> {//点击收藏
+            R.id.web_collect -> {
+                //点击收藏
                 //是否已经登录了,没登录需要跳转到登录页去
                 if (CacheUtil.isLogin()) {
                     //是否已经收藏了
@@ -173,7 +175,7 @@ class WebviewActivity : BaseActivity<WebviewPresenter>(), WebviewContract.View {
                     }
                 } else {
                     //跳转到登录页
-                    AppManager.getAppManager().startActivity(Intent(this, LoginActivity::class.java))
+                    startActivityKx(LoginActivity::class.java)
                 }
             }
             R.id.web_liulanqi -> {

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -24,7 +24,7 @@
     <string name="setting_mode">列表动画</string>
     <string name="setting_modetip">无</string>
     <string name="copyright">版权声明</string>
-    <string name="copyright_tip">本App使用的Api均为 玩安卓网站 提供,仅供于大家学习交流,禁止用于任何商业用途</string>
+    <string name="copyright_tip">本App使用的Api均为 玩安卓网站 提供,仅供于大家学习交流,请禁止将本项目代码转为马甲包添加广告发布到应用市场!!!对那些发布了的人,我要说一句:WCNMD</string>
     <string name="copyright_summary">仅作个人及非商业用途</string>
     <string name="auther">作者</string>
     <string name="auther_name">一个练习时长两年半的安卓开发者→_→</string>

+ 2 - 2
config.gradle

@@ -4,8 +4,8 @@ ext {
             buildToolsVersion: "29.0.2",
             minSdkVersion    : 21,
             targetSdkVersion : 29,
-            versionCode      : 9,
-            versionName      : "1.0.8"
+            versionCode      : 10,
+            versionName      : "1.0.9"
     ]
 
     version = [