Skip to content

Commit 0811a63

Browse files
authored
Merge pull request #3 from wada811/feature/performance-improvement
Improve performance of DependencyProperty
2 parents 6b6d8dd + de945b3 commit 0811a63

File tree

2 files changed

+16
-79
lines changed

2 files changed

+16
-79
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@file:Suppress("unused")
1+
@file:Suppress("DEPRECATION", "unused")
22

33
package com.wada811.dependencyproperty
44

@@ -20,42 +20,28 @@ interface DependencyModule
2020

2121
@Deprecated("Use dependencyModule<T>()", ReplaceWith("this.dependencyModule<T>()"), DeprecationLevel.WARNING)
2222
fun <T : DependencyModule> Application.dependencyModule(clazz: Class<T>): T = dependencyModules.findModule(clazz)
23-
24-
@Suppress("DEPRECATION")
2523
inline fun <reified T : DependencyModule> Application.dependencyModule(): T = dependencyModule(T::class.java)
2624

2725
@Deprecated("Use dependencyModule<T>()", ReplaceWith("this.dependencyModule<T>()"), DeprecationLevel.WARNING)
2826
fun <T : DependencyModule> FragmentActivity.dependencyModule(clazz: Class<T>): T = dependencyModules.findModule(clazz)
29-
30-
@Suppress("DEPRECATION")
3127
inline fun <reified T : DependencyModule> FragmentActivity.dependencyModule(): T = dependencyModule(T::class.java)
3228

3329
@Deprecated("Use dependencyModule<T>()", ReplaceWith("this.dependencyModule<T>()"), DeprecationLevel.WARNING)
3430
fun <T : DependencyModule> Fragment.dependencyModule(clazz: Class<T>): T = dependencyModules.findModule(clazz)
35-
36-
@Suppress("DEPRECATION")
3731
inline fun <reified T : DependencyModule> Fragment.dependencyModule(): T = dependencyModule(T::class.java)
3832

3933
@Deprecated("Use dependencyModule<T>()", ReplaceWith("this.dependencyModule<T>()"), DeprecationLevel.WARNING)
4034
fun <T : DependencyModule> AndroidViewModel.dependencyModule(clazz: Class<T>): T = dependencyModules.findModule(clazz)
41-
42-
@Suppress("DEPRECATION")
4335
inline fun <reified T : DependencyModule> AndroidViewModel.dependencyModule(): T = dependencyModule(T::class.java)
4436

4537
@Deprecated("Use dependencyModule<T>()", ReplaceWith("this.dependencyModule<T>()"), DeprecationLevel.WARNING)
4638
fun <T : DependencyModule> Service.dependencyModule(clazz: Class<T>): T = dependencyModules.findModule(clazz)
47-
48-
@Suppress("DEPRECATION")
4939
inline fun <reified T : DependencyModule> Service.dependencyModule(): T = dependencyModule(T::class.java)
5040

5141
@Deprecated("Use dependencyModule<T>()", ReplaceWith("this.dependencyModule<T>()"), DeprecationLevel.WARNING)
5242
fun <T : DependencyModule> Context.dependencyModule(clazz: Class<T>): T = dependencyModules.findModule(clazz)
53-
54-
@Suppress("DEPRECATION")
5543
inline fun <reified T : DependencyModule> Context.dependencyModule(): T = dependencyModule(T::class.java)
5644

5745
@Deprecated("Use dependencyModule<T>()", ReplaceWith("this.dependencyModule<T>()"), DeprecationLevel.WARNING)
5846
fun <T : DependencyModule> ListenableWorker.dependencyModule(clazz: Class<T>): T = dependencyModules.findModule(clazz)
59-
60-
@Suppress("DEPRECATION")
6147
inline fun <reified T : DependencyModule> ListenableWorker.dependencyModule(): T = dependencyModule(T::class.java)
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@file:Suppress("unused")
1+
@file:Suppress("DEPRECATION", "unused")
22

33
package com.wada811.dependencyproperty
44

@@ -10,79 +10,30 @@ import androidx.fragment.app.FragmentActivity
1010
import androidx.lifecycle.AndroidViewModel
1111
import androidx.work.ListenableWorker
1212

13-
@Suppress("DEPRECATION")
1413
@Deprecated("Use dependency<T, R>(resolve)", ReplaceWith("this.dependency<T, R>(resolve)"), DeprecationLevel.WARNING)
15-
fun <T : DependencyModule, R> Application.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> {
16-
return lazy { dependencyModule(clazz).resolve() }
17-
}
14+
fun <T : DependencyModule, R> Application.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> = lazy(LazyThreadSafetyMode.NONE) { dependencyModule(clazz).resolve() }
15+
inline fun <reified T : DependencyModule, R> Application.dependency(noinline resolve: (T) -> R): Lazy<R> = dependency(T::class.java, resolve)
1816

19-
@Suppress("DEPRECATION")
20-
inline fun <reified T : DependencyModule, R> Application.dependency(noinline resolve: (T) -> R): Lazy<R> {
21-
return dependency(T::class.java, resolve)
22-
}
23-
24-
@Suppress("DEPRECATION")
2517
@Deprecated("Use dependency<T, R>(resolve)", ReplaceWith("this.dependency<T, R>(resolve)"), DeprecationLevel.WARNING)
26-
fun <T : DependencyModule, R> FragmentActivity.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> {
27-
return lazy { dependencyModule(clazz).resolve() }
28-
}
29-
30-
@Suppress("DEPRECATION")
31-
inline fun <reified T : DependencyModule, R> FragmentActivity.dependency(noinline resolve: (T) -> R): Lazy<R> {
32-
return dependency(T::class.java, resolve)
33-
}
18+
fun <T : DependencyModule, R> FragmentActivity.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> = lazy(LazyThreadSafetyMode.NONE) { dependencyModule(clazz).resolve() }
19+
inline fun <reified T : DependencyModule, R> FragmentActivity.dependency(noinline resolve: (T) -> R): Lazy<R> = dependency(T::class.java, resolve)
3420

35-
@Suppress("DEPRECATION")
3621
@Deprecated("Use dependency<T, R>(resolve)", ReplaceWith("this.dependency<T, R>(resolve)"), DeprecationLevel.WARNING)
37-
fun <T : DependencyModule, R> Fragment.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> {
38-
return lazy { dependencyModule(clazz).resolve() }
39-
}
22+
fun <T : DependencyModule, R> Fragment.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> = lazy(LazyThreadSafetyMode.NONE) { dependencyModule(clazz).resolve() }
23+
inline fun <reified T : DependencyModule, R> Fragment.dependency(noinline resolve: (T) -> R): Lazy<R> = dependency(T::class.java, resolve)
4024

41-
@Suppress("DEPRECATION")
42-
inline fun <reified T : DependencyModule, R> Fragment.dependency(noinline resolve: (T) -> R): Lazy<R> {
43-
return dependency(T::class.java, resolve)
44-
}
45-
46-
@Suppress("DEPRECATION")
4725
@Deprecated("Use dependency<T, R>(resolve)", ReplaceWith("this.dependency<T, R>(resolve)"), DeprecationLevel.WARNING)
48-
fun <T : DependencyModule, R> AndroidViewModel.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> {
49-
return lazy { dependencyModule(clazz).resolve() }
50-
}
51-
52-
@Suppress("DEPRECATION")
53-
inline fun <reified T : DependencyModule, R> AndroidViewModel.dependency(noinline resolve: (T) -> R): Lazy<R> {
54-
return dependency(T::class.java, resolve)
55-
}
26+
fun <T : DependencyModule, R> AndroidViewModel.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> = lazy(LazyThreadSafetyMode.NONE) { dependencyModule(clazz).resolve() }
27+
inline fun <reified T : DependencyModule, R> AndroidViewModel.dependency(noinline resolve: (T) -> R): Lazy<R> = dependency(T::class.java, resolve)
5628

57-
@Suppress("DEPRECATION")
5829
@Deprecated("Use dependency<T, R>(resolve)", ReplaceWith("this.dependency<T, R>(resolve)"), DeprecationLevel.WARNING)
59-
fun <T : DependencyModule, R> Service.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> {
60-
return lazy { dependencyModule(clazz).resolve() }
61-
}
30+
fun <T : DependencyModule, R> Service.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> = lazy(LazyThreadSafetyMode.NONE) { dependencyModule(clazz).resolve() }
31+
inline fun <reified T : DependencyModule, R> Service.dependency(noinline resolve: (T) -> R): Lazy<R> = dependency(T::class.java, resolve)
6232

63-
@Suppress("DEPRECATION")
64-
inline fun <reified T : DependencyModule, R> Service.dependency(noinline resolve: (T) -> R): Lazy<R> {
65-
return dependency(T::class.java, resolve)
66-
}
67-
68-
@Suppress("DEPRECATION")
6933
@Deprecated("Use dependency<T, R>(resolve)", ReplaceWith("this.dependency<T, R>(resolve)"), DeprecationLevel.WARNING)
70-
fun <T : DependencyModule, R> Context.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> {
71-
return lazy { dependencyModule(clazz).resolve() }
72-
}
73-
74-
@Suppress("DEPRECATION")
75-
inline fun <reified T : DependencyModule, R> Context.dependency(noinline resolve: (T) -> R): Lazy<R> {
76-
return dependency(T::class.java, resolve)
77-
}
34+
fun <T : DependencyModule, R> Context.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> = lazy(LazyThreadSafetyMode.NONE) { dependencyModule(clazz).resolve() }
35+
inline fun <reified T : DependencyModule, R> Context.dependency(noinline resolve: (T) -> R): Lazy<R> = dependency(T::class.java, resolve)
7836

79-
@Suppress("DEPRECATION")
8037
@Deprecated("Use dependency<T, R>(resolve)", ReplaceWith("this.dependency<T, R>(resolve)"), DeprecationLevel.WARNING)
81-
fun <T : DependencyModule, R> ListenableWorker.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> {
82-
return lazy { dependencyModule(clazz).resolve() }
83-
}
84-
85-
@Suppress("DEPRECATION")
86-
inline fun <reified T : DependencyModule, R> ListenableWorker.dependency(noinline resolve: (T) -> R): Lazy<R> {
87-
return dependency(T::class.java, resolve)
88-
}
38+
fun <T : DependencyModule, R> ListenableWorker.dependency(clazz: Class<T>, resolve: T.() -> R): Lazy<R> = lazy(LazyThreadSafetyMode.NONE) { dependencyModule(clazz).resolve() }
39+
inline fun <reified T : DependencyModule, R> ListenableWorker.dependency(noinline resolve: (T) -> R): Lazy<R> = dependency(T::class.java, resolve)

0 commit comments

Comments
 (0)