-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Activity Code Zero, ViewModel 과 ViewHolder 의존 관계 Zero 도전하기 #13
Changes from all commits
5199199
0f3474f
aa17c2f
fe57d2c
9533beb
d7a5519
5848307
f4302d6
41a3435
656551a
3befa4c
c56f420
0934823
ecdae40
392beea
5a65145
1759823
ed78392
37f3398
1b11ffe
cfb82e9
dd6efd7
e88739e
c22aecb
0f610a7
e012a01
d281921
667c6a2
50e848d
db1dd9f
160af9b
8eea175
96938b4
7a56b9d
c55759c
1cfafbf
5580954
e7f6446
2583907
1f587ba
5089cd6
751a862
707dc27
5188db0
68a0bad
c19e97e
5e04461
2e96e30
639c014
29e799e
7efd7b5
18ccd78
8208b73
63bef4b
3527256
057fee0
653ff4c
905088c
c603e4b
36c7f7b
e0ac55f
29f07d1
97c84bf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,81 @@ | ||
# Add project specific ProGuard rules here. | ||
# You can control the set of applied configuration files using the | ||
# proguardFiles setting in build.gradle.kts.kts. | ||
# | ||
# For more details, see | ||
# http://developer.android.com/guide/developing/tools/proguard.html | ||
|
||
# If your project uses WebView with JS, uncomment the following | ||
# and specify the fully qualified class name to the JavaScript interface | ||
# class: | ||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | ||
# public *; | ||
# 소스 파일, 라인정보 유지 | ||
-keepattributes SourceFile,LineNumberTable | ||
# Remove Log Disable | ||
#-assumenosideeffects class android.util.Log { | ||
# public static int d(...); | ||
# public static int e(...); | ||
#} | ||
|
||
# Uncomment this to preserve the line number information for | ||
# debugging stack traces. | ||
#-keepattributes SourceFile,LineNumberTable | ||
#[s] Kotlinx Serialization ======================================================================== | ||
-keepattributes *Annotation*, InnerClasses | ||
-dontnote kotlinx.serialization.AnnotationsKt # core serialization annotations | ||
|
||
# If you keep the line number information, uncomment this to | ||
# hide the original source file name. | ||
#-renamesourcefileattribute SourceFile | ||
# kotlinx-serialization-json specific. Add this if you have java.lang.NoClassDefFoundError kotlinx.serialization.json.JsonObjectSerializer | ||
-keepclassmembers class kotlinx.serialization.json.** { | ||
*** Companion; | ||
} | ||
-keepclasseswithmembers class kotlinx.serialization.json.** { | ||
kotlinx.serialization.KSerializer serializer(...); | ||
} | ||
|
||
# Change here com.yourcompany.yourpackage | ||
-keep,includedescriptorclasses class com.til.model.**$$serializer { *; } # <-- change package name to your app's | ||
-keepclassmembers class com.til.model.** { # <-- change package name to your app's | ||
*** Companion; | ||
} | ||
-keepclasseswithmembers class com.til.model.** { # <-- change package name to your app's | ||
kotlinx.serialization.KSerializer serializer(...); | ||
} | ||
#[e] Kotlinx Serialization =================================================================== | ||
|
||
# [s] Retrofit Proguard =========================================================================== | ||
# Retrofit does reflection on generic parameters. InnerClasses is required to use Signature and | ||
# EnclosingMethod is required to use InnerClasses. | ||
-keepattributes Signature, InnerClasses, EnclosingMethod | ||
|
||
# Retrofit does reflection on method and parameter annotations. | ||
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations | ||
|
||
# Retain service method parameters when optimizing. | ||
-keepclassmembers,allowshrinking,allowobfuscation interface * { | ||
@retrofit2.http.* <methods>; | ||
} | ||
|
||
# Ignore annotation used for build tooling. | ||
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement | ||
|
||
# Ignore JSR 305 annotations for embedding nullability information. | ||
-dontwarn javax.annotation.** | ||
|
||
# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath. | ||
-dontwarn kotlin.Unit | ||
|
||
# Top-level functions that can only be used by Kotlin. | ||
-dontwarn retrofit2.KotlinExtensions | ||
-dontwarn retrofit2.KotlinExtensions$* | ||
|
||
# With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy | ||
# and replaces all potential values with null. Explicitly keeping the interfaces prevents this. | ||
-if interface * { @retrofit2.http.* <methods>; } | ||
-keep,allowobfuscation interface <1> | ||
# [e] Retrofit Proguard =========================================================================== | ||
|
||
# [s] Glide Proguard ============================================================================== | ||
-keep public class * implements com.bumptech.glide.module.GlideModule | ||
-keep class * extends com.bumptech.glide.module.AppGlideModule { | ||
<init>(...); | ||
} | ||
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { | ||
**[] $VALUES; | ||
public *; | ||
} | ||
-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder.InternalRewinder { | ||
*** rewind(); | ||
} | ||
#-keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder { | ||
# *** rewind(); | ||
#} | ||
|
||
# for DexGuard only Error | ||
#-keepresourcexmlelements manifest/application/meta-data@value=GlideModule | ||
# [e] Glide Proguard ============================================================================== |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,6 +4,7 @@ import androidx.multidex.MultiDexApplication | |
import dagger.hilt.android.HiltAndroidApp | ||
import io.reactivex.rxjava3.exceptions.UndeliverableException | ||
import io.reactivex.rxjava3.plugins.RxJavaPlugins | ||
import timber.log.Timber | ||
import java.io.IOException | ||
import java.net.SocketException | ||
|
||
|
@@ -13,6 +14,8 @@ class MainApplication : MultiDexApplication() { | |
override fun onCreate() { | ||
super.onCreate() | ||
|
||
initTimber() | ||
|
||
// Rx Exception 처리 | ||
initRxJava() | ||
} | ||
|
@@ -26,7 +29,7 @@ class MainApplication : MultiDexApplication() { | |
RxJavaPlugins.setErrorHandler { e -> | ||
var error = e | ||
if (error is UndeliverableException) { | ||
error = e.cause | ||
error = e.cause ?: Throwable("UndeliverableException") | ||
} | ||
if (error is IOException || error is SocketException) { | ||
// fine, irrelevant network problem or API that throws on cancellation | ||
|
@@ -54,4 +57,15 @@ class MainApplication : MultiDexApplication() { | |
} | ||
} | ||
} | ||
} | ||
|
||
private fun initTimber() { | ||
// if (BuildConfig.DEBUG) { | ||
Timber.plant(object : Timber.DebugTree() { | ||
|
||
override fun createStackElementTag(element: StackTraceElement): String { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🚫 [ktlint] reported by reviewdog 🐶 |
||
return "Timber_${element.methodName.substringBeforeLast(".")}" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🚫 [ktlint] reported by reviewdog 🐶 |
||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🚫 [ktlint] reported by reviewdog 🐶 |
||
}) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🚫 [ktlint] reported by reviewdog 🐶 |
||
// } | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
#Mon Jan 10 22:23:03 KST 2022 | ||
#Sat Feb 26 14:42:13 KST 2022 | ||
distributionBase=GRADLE_USER_HOME | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip | ||
distributionPath=wrapper/dists | ||
zipStoreBase=GRADLE_USER_HOME | ||
zipStorePath=wrapper/dists | ||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip | ||
zipStoreBase=GRADLE_USER_HOME |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/build |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚫 [ktlint] reported by reviewdog 🐶
Unexpected indentation (12) (should be 8)