Skip to content
This repository was archived by the owner on Jul 16, 2024. It is now read-only.
Merged
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
- [x] [Chucker](https://github.com/ChuckerTeam/chucker/releases)
- [x] [Coil](https://github.com/coil-kt/coil/releases)
- [x] [Glide](https://github.com/bumptech/glide/releases)
- [x] [ARouter](https://github.com/alibaba/ARouter/releases)
- [ ] [ARouter](https://github.com/alibaba/ARouter/releases)
- [x] [FastJson](https://github.com/alibaba/fastjson)
- [x] [AndroidUtilCode](https://github.com/Blankj/AndroidUtilCode/releases)
- [x] [PermissionX](https://github.com/guolindev/PermissionX)
Expand Down
9 changes: 8 additions & 1 deletion app/src/main/kotlin/io/goooler/demoapp/DemoApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ package io.goooler.demoapp

import dagger.hilt.android.HiltAndroidApp
import io.goooler.demoapp.common.CommonApplication
import io.goooler.demoapp.common.router.RouterManager

@HiltAndroidApp
class DemoApplication : CommonApplication()
class DemoApplication : CommonApplication() {

override fun initImmediately() {
super.initImmediately()
RouterManager.impl = RouterManagerImpl
}
}
45 changes: 45 additions & 0 deletions app/src/main/kotlin/io/goooler/demoapp/RouterManagerImpl.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package io.goooler.demoapp

import android.content.Context
import android.content.Intent
import io.goooler.demoapp.common.router.RouterManager
import io.goooler.demoapp.login.ui.LoginActivity
import io.goooler.demoapp.main.ui.AudioPlayActivity
import io.goooler.demoapp.main.ui.MainActivity
import io.goooler.demoapp.web.WebActivity

object RouterManagerImpl : RouterManager {

private const val LOGIN = "/login/"
private const val MAIN = "/main/"
private const val WEB = "/web/"
private const val AUDIO_PLAY = "/audioPlay/"

override fun go(context: Context, url: String) {
TODO("Not yet implemented")
}

override fun goLogin(context: Context, isReLogin: Boolean) {
Intent(context, LoginActivity::class.java)
.setAction(if (isReLogin) RouterManager.RE_LOGIN else null)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
.let(context::startActivity)
}

override fun goMain(context: Context) {
Intent(context, MainActivity::class.java)
.let(context::startActivity)
}

override fun goAudioPlay(context: Context) {
Intent(context, AudioPlayActivity::class.java)
.let(context::startActivity)
}

override fun goWeb(context: Context, url: String, useChrome: Boolean) {
Intent(context, WebActivity::class.java)
.putExtra(RouterManager.PARAMS, url)
.setAction(if (useChrome) RouterManager.USE_CHROME else null)
.let(context::startActivity)
}
}
7 changes: 0 additions & 7 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ buildscript {
rootProject.extra["androidPlugin"].toString(),
rootProject.extra["kotlinPlugin"].toString(),
Libs.hiltPlugin,
Libs.arouterPlugin,
Libs.ktlintPlugin
)
}
Expand Down Expand Up @@ -42,12 +41,6 @@ allprojects {
}
}
}

tasks.matching {
it.name.contains("transformClassesWithCom.alibaba.arouter")
}.configureEach {
notCompatibleWithConfigurationCache("https://github.com/alibaba/ARouter/issues/984")
}
}

tasks {
Expand Down
7 changes: 3 additions & 4 deletions buildSrc/src/main/kotlin/Extensions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -157,13 +157,12 @@ inline fun <reified T : BaseExtension> Project.setupCommon(
create("online")
}
dependencies {
implementations(Libs.arouter, *Libs.hilt, *Libs.room, *Libs.moshi)
kapts(Libs.arouterCompiler, Libs.moshiCompiler, Libs.roomCompiler, Libs.hiltCompiler)
implementations(*Libs.hilt, *Libs.room, *Libs.moshi)
kapts(Libs.moshiCompiler, Libs.roomCompiler, Libs.hiltCompiler)
}
applyPlugins(Plugins.kotlinParcelize, Plugins.arouter, Plugins.hilt)
applyPlugins(Plugins.kotlinParcelize, Plugins.hilt)
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.name)
arg("room.incremental", "true")
}
}
Expand Down
5 changes: 0 additions & 5 deletions buildSrc/src/main/kotlin/Libs.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
@file:Suppress("SpellCheckingInspection")

private const val retrofitVersion = "2.9.0"
private const val arouterVersion = "1.5.2"
private const val moshiVersion = "1.13.0"
private const val srlVersion = "2.0.3"
private const val glideVersion = "4.13.0"
Expand All @@ -27,7 +26,6 @@ object Plugins {
const val androidLibrary = "com.android.library"
const val androidApplication = "com.android.application"
const val hilt = "dagger.hilt.android.plugin"
const val arouter = "com.alibaba.arouter"
const val ktlint = "org.jlleitschuh.gradle.ktlint"
}

Expand All @@ -45,7 +43,6 @@ object Libs {
const val cardView = "androidx.cardview:cardview:1.0.0"
const val collection = "androidx.collection:collection-ktx:$collectionVersion"
const val fastjson = "com.alibaba:fastjson:1.1.72.android"
const val arouter = "com.alibaba:arouter-api:$arouterVersion"
const val leakCanary = "com.squareup.leakcanary:leakcanary-android:2.8.1"
const val flycoTabLayout = "com.flyco.tablayout:FlycoTabLayout_Lib:2.2.0"
const val utils = "com.blankj:utilcodex:1.31.0"
Expand All @@ -60,12 +57,10 @@ object Libs {
const val chuckerDebug = "com.github.chuckerteam.chucker:library:$chuckerVersion"
const val chuckerRelease = "com.github.chuckerteam.chucker:library-no-op:$chuckerVersion"

const val arouterPlugin = "com.alibaba:arouter-register:1.0.2"
const val hiltPlugin = "com.google.dagger:hilt-android-gradle-plugin:$hiltVersion"
const val ktlintPlugin = "org.jlleitschuh.gradle:ktlint-gradle:10.2.1"

const val roomCompiler = "androidx.room:room-compiler:$roomVersion"
const val arouterCompiler = "com.alibaba:arouter-compiler:$arouterVersion"
const val moshiCompiler = "com.squareup.moshi:moshi-kotlin-codegen:$moshiVersion"
const val hiltCompiler = "com.google.dagger:hilt-android-compiler:$hiltVersion"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,35 +1,24 @@
package io.goooler.demoapp.common

import android.webkit.WebView
import com.alibaba.android.arouter.launcher.ARouter
import com.scwang.smart.refresh.footer.ClassicsFooter
import com.scwang.smart.refresh.header.ClassicsHeader
import com.scwang.smart.refresh.layout.SmartRefreshLayout
import io.goooler.demoapp.base.core.BaseApplication
import io.goooler.demoapp.common.util.CrashHandler
import io.goooler.demoapp.common.util.ImageLoader
import io.goooler.demoapp.common.util.debugRun

abstract class CommonApplication : BaseApplication() {

override fun initImmediately() {
super.initImmediately()
app = this
CrashHandler.init()
initArouter()
initImageLoader()
initWebView()
initSmartRefresh()
}

private fun initArouter() {
debugRun {
ARouter.openLog()
ARouter.openDebug()
}
ARouter.init(this)
}

private fun initImageLoader() {
ImageLoader.init(this)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ object RetrofitHelper : BaseRetrofitHelper() {

override val statusListener: StatusListener = StatusListener {
AppUserInfoManager.logout()
RouterManager.goLogin(true)
RouterManager.goLogin(CommonApplication.app, true)
}

override fun Retrofit.Builder.addCallAdapterFactories(): Retrofit.Builder {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,53 +1,44 @@
package io.goooler.demoapp.common.router

import android.content.Intent
import androidx.core.net.toUri
import com.alibaba.android.arouter.facade.Postcard
import com.alibaba.android.arouter.launcher.ARouter

@Suppress("unused", "MemberVisibilityCanBePrivate")
object RouterManager {
const val TARGET = "target"
const val PARAMS = "params"
const val RE_LOGIN = "reLogin"
const val USE_CHROME = "useChrome"

fun go(url: String) {
url.toUri().path?.let {
buildPostcard(it).navigation()
}
}
import android.content.Context

fun goLogin(isReLogin: Boolean) {
val action = if (isReLogin) RE_LOGIN else null
buildPostcard(RouterPath.LOGIN)
.withAction(action)
.withFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
.navigation()
}
interface RouterManager {

fun goMain() {
buildPostcard(RouterPath.MAIN)
.navigation()
}
fun go(context: Context, url: String)

fun goMap() {
buildPostcard(RouterPath.MAP)
.navigation()
}
fun goLogin(context: Context, isReLogin: Boolean)

fun goAudioPlay() {
buildPostcard(RouterPath.AUDIO_PLAY)
.navigation()
}
fun goMain(context: Context)

fun goWeb(url: String, useChrome: Boolean = false) {
val action = if (useChrome) USE_CHROME else null
buildPostcard(RouterPath.WEB)
.withAction(action)
.withString(PARAMS, url)
.navigation()
}
fun goAudioPlay(context: Context)

fun goWeb(context: Context, url: String, useChrome: Boolean = false)

companion object : RouterManager {
const val PARAMS = "params"
const val RE_LOGIN = "reLogin"
const val USE_CHROME = "useChrome"

lateinit var impl: RouterManager

private fun buildPostcard(path: String): Postcard = ARouter.getInstance().build(path)
override fun go(context: Context, url: String) {
impl.go(context, url)
}

override fun goLogin(context: Context, isReLogin: Boolean) {
impl.goLogin(context, isReLogin)
}

override fun goMain(context: Context) {
impl.goMain(context)
}

override fun goAudioPlay(context: Context) {
impl.goAudioPlay(context)
}

override fun goWeb(context: Context, url: String, useChrome: Boolean) {
impl.goWeb(context, url, useChrome)
}
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
package io.goooler.demoapp.login.ui

import android.os.Bundle
import com.alibaba.android.arouter.facade.annotation.Route
import io.goooler.demoapp.common.base.binding.BaseBindingActivity
import io.goooler.demoapp.common.router.RouterManager
import io.goooler.demoapp.common.router.RouterPath
import io.goooler.demoapp.login.databinding.LoginActivityBinding

@Route(path = RouterPath.LOGIN)
class LoginActivity : BaseBindingActivity<LoginActivityBinding>() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (intent.action != RouterManager.RE_LOGIN) {
RouterManager.goMain()
RouterManager.goMain(this)
finish()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class SplashActivity : BaseActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
RouterManager.goMain()
RouterManager.goMain(this)
overridePendingTransition(0, 0)
finish()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,13 @@ package io.goooler.demoapp.main.ui

import android.os.Bundle
import android.view.View
import com.alibaba.android.arouter.facade.annotation.Route
import io.goooler.demoapp.common.base.binding.BaseBindingActivity
import io.goooler.demoapp.common.router.RouterManager
import io.goooler.demoapp.common.router.RouterPath
import io.goooler.demoapp.common.service.AudioPlayService
import io.goooler.demoapp.common.util.getString
import io.goooler.demoapp.main.R
import io.goooler.demoapp.main.databinding.MainAudioPlayActivityBinding

@Route(path = RouterPath.AUDIO_PLAY)
class AudioPlayActivity : BaseBindingActivity<MainAudioPlayActivityBinding>() {

override fun onCreate(savedInstanceState: Bundle?) {
Expand All @@ -36,7 +33,7 @@ class AudioPlayActivity : BaseBindingActivity<MainAudioPlayActivityBinding>() {
AudioPlayService.stopPlay(this)
}
binding.btGoMain -> {
RouterManager.goMain()
RouterManager.goMain(this)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,18 @@ package io.goooler.demoapp.main.ui
import android.Manifest
import android.content.Intent
import android.os.Bundle
import com.alibaba.android.arouter.facade.annotation.Route
import dagger.hilt.android.AndroidEntryPoint
import io.goooler.demoapp.adapter.vp.CommonFragmentStatePagerAdapter
import io.goooler.demoapp.base.util.PermissionHelper
import io.goooler.demoapp.base.util.unsafeLazy
import io.goooler.demoapp.common.base.binding.BaseBindingActivity
import io.goooler.demoapp.common.router.RouterPath
import io.goooler.demoapp.common.util.log
import io.goooler.demoapp.main.databinding.MainActivityBinding
import io.goooler.demoapp.main.ui.fragment.MainHomeFragment
import io.goooler.demoapp.main.ui.fragment.MainPagingFragment
import io.goooler.demoapp.main.ui.fragment.MainSrlFragment

@AndroidEntryPoint
@Route(path = RouterPath.MAIN)
class MainActivity : BaseBindingActivity<MainActivityBinding>() {

private val pagerAdapter by unsafeLazy {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,10 @@ class MainHomeFragment : BaseBindingLazyFragment<MainHomeFragmentBinding>() {

private val listener = View.OnClickListener {
when (it) {
binding.bt1 -> RouterManager.goWeb("bilibili.com")
binding.bt2 -> RouterManager.goMap()
binding.bt1 -> RouterManager.goWeb(requireContext(), "bilibili.com")
binding.bt4 -> vm.countDown()
binding.bt6 -> FullScreenDialogFragment.show(childFragmentManager)
binding.bt7 -> RouterManager.goAudioPlay()
binding.bt7 -> RouterManager.goAudioPlay(requireContext())
binding.bt8 -> createShortcut(requireContext())
}
}
Expand Down
3 changes: 0 additions & 3 deletions web/src/main/kotlin/io/goooler/demoapp/web/WebActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,12 @@ import android.os.Bundle
import android.view.View
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.net.toUri
import com.alibaba.android.arouter.facade.annotation.Route
import com.blankj.utilcode.util.BarUtils
import io.goooler.demoapp.base.util.addFragment
import io.goooler.demoapp.common.base.binding.BaseBindingActivity
import io.goooler.demoapp.common.router.RouterManager
import io.goooler.demoapp.common.router.RouterPath
import io.goooler.demoapp.web.databinding.WebActivityBinding

@Route(path = RouterPath.WEB)
class WebActivity : BaseBindingActivity<WebActivityBinding>() {

private var webFragment: WebFragment? = null
Expand Down