Skip to content

Commit

Permalink
1. 调整调用param传递无法序列化的参数时向外抛异常报错
Browse files Browse the repository at this point in the history
2. 简化activityOptions调用
  • Loading branch information
changhai.qiu committed Apr 7, 2021
1 parent dc3d3f7 commit 2b12445
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 13 deletions.
17 changes: 7 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,19 +76,16 @@ Router.addRouteGenerator { path ->

#### 4.3 ActivityOptions
```kotlin
findNavigator().path("/route/second").activityOptions(...).push()
findNavigator().path("/route/second").cast<ActivityTargetNavigator>().activityOptions(...).push()
```

#### 4.4 单Activity的Fragment之间导航暂未支持, 可自行继承FragmentTargetNavigator后通过NavigatorEngine实现

```
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.qstumn:Router:$release'
}

### 5. 依赖
```groovy
maven { url 'https://jitpack.io' }
implementation 'com.github.qstumn:Router:$release'
```
2 changes: 1 addition & 1 deletion router/src/main/java/q/rorbin/router/common.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ data class RouteTransition(val enterAnim: Int, val exitAnim: Int)

class RouteErrorException(message: String? = null) : Exception(message)

internal const val UNIQUE_DATA_KEY = "navigator_transmit_data_auto_key"
const val UNIQUE_DATA_KEY = "navigator_transmit_data_auto_key"

data class NavigatorResult<T>(val requestCode: Int, val intent: Intent) {

Expand Down
7 changes: 5 additions & 2 deletions router/src/main/java/q/rorbin/router/ktx.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ internal fun Any.putToBundle(bundleKey: String = UNIQUE_DATA_KEY, bundle: Bundle
}
value.putToBundle(key, newBundle)
}
} else {
throw RouteErrorException("cannot pass param with key $bundleKey, unsupport this data type")
}
return newBundle
}
Expand Down Expand Up @@ -109,8 +111,9 @@ fun <R> Fragment.registerForNavigatorResult(resultCallback: ResultCallback<R>):
return register
}

private fun <R> registerForNavigatorResult(register: NavigatorResultRegister<R>, fragmentManager: () -> FragmentManager,
lifecycle: Lifecycle
private fun <R> registerForNavigatorResult(
register: NavigatorResultRegister<R>, fragmentManager: () -> FragmentManager,
lifecycle: Lifecycle
) {
val bindRequest = {
val fragment = ResultBlankFragment.obtainSelfByFragmentManager(fragmentManager())
Expand Down
12 changes: 12 additions & 0 deletions router/src/main/java/q/rorbin/router/navigator/base.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package q.rorbin.router.navigator

import android.content.Intent
import android.os.Bundle
import androidx.core.app.ActivityOptionsCompat
import q.rorbin.router.NavigatorResultRegister
import q.rorbin.router.ResultCallback
import q.rorbin.router.putToBundle
Expand Down Expand Up @@ -62,4 +64,14 @@ abstract class Navigator internal constructor() {
*/
abstract fun pop(resultData: Any?)

}

fun Navigator.activityOptions(options: ActivityOptionsCompat): Navigator {
(this as? ActivityTargetNavigator)?.activityOptions(options)
return this
}

fun Navigator.intent(intent: Intent): Navigator {
(this as? ActivityTargetNavigator)?.intent(intent)
return this
}

0 comments on commit 2b12445

Please sign in to comment.