kittinunf / fuel

The easiest HTTP networking library for Kotlin/Android
https://fuel.gitbook.io/documentation/
MIT License
4.56k stars 430 forks source link

Proguard rules required #95

Closed ismail-s closed 8 years ago

ismail-s commented 8 years ago

background: my app was running fine in debug mode, but in release mode it wasn't working fine. Some ui things weren't working, unless I rotated the screen. 1 day later, I decided to take a look at the classes proguard was removing, and noticed that various classes for Fuel were being removed. After adding some catch-all keep statements, the app seems to be working again.

The proguard rules I am currently using are:

-keep class com.github.kittinunf.**
-keep public class com.github.kittinunf.** {
  public protected *;
}

These could just be added to the proguard-rules.pro file, but it would be better if the rules were more specific. The classes that were being removed before adding these rules were:

com.github.kittinunf.fuel.Fuel:
    8:8:public Fuel()
    8:8:public static final synthetic void access$setTestConfiguration$cp(com.github.kittinunf.fuel.util.TestConfiguration)
    public static final void testMode(kotlin.jvm.functions.Function1)
    public static void testMode()
    public static final void regularMode()
    public static final com.github.kittinunf.fuel.core.Request get(java.lang.String,java.util.List)
    public static com.github.kittinunf.fuel.core.Request get(java.lang.String)
    public static final com.github.kittinunf.fuel.core.Request get(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    public static com.github.kittinunf.fuel.core.Request get(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    public static final com.github.kittinunf.fuel.core.Request post(java.lang.String,java.util.List)
    public static com.github.kittinunf.fuel.core.Request post(java.lang.String)
    public static final com.github.kittinunf.fuel.core.Request post(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    public static com.github.kittinunf.fuel.core.Request post(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    public static final com.github.kittinunf.fuel.core.Request put(java.lang.String,java.util.List)
    public static com.github.kittinunf.fuel.core.Request put(java.lang.String)
    public static final com.github.kittinunf.fuel.core.Request put(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    public static com.github.kittinunf.fuel.core.Request put(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    public static final com.github.kittinunf.fuel.core.Request delete(java.lang.String,java.util.List)
    public static com.github.kittinunf.fuel.core.Request delete(java.lang.String)
    public static final com.github.kittinunf.fuel.core.Request delete(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    public static com.github.kittinunf.fuel.core.Request delete(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    public static final com.github.kittinunf.fuel.core.Request download(java.lang.String,java.util.List)
    public static com.github.kittinunf.fuel.core.Request download(java.lang.String)
    public static final com.github.kittinunf.fuel.core.Request download(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    public static com.github.kittinunf.fuel.core.Request download(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    public static final com.github.kittinunf.fuel.core.Request upload(java.lang.String,com.github.kittinunf.fuel.core.Method,java.util.List)
    public static com.github.kittinunf.fuel.core.Request upload(java.lang.String,com.github.kittinunf.fuel.core.Method)
    public static com.github.kittinunf.fuel.core.Request upload(java.lang.String)
    public static final com.github.kittinunf.fuel.core.Request upload(com.github.kittinunf.fuel.Fuel$PathStringConvertible,com.github.kittinunf.fuel.core.Method,java.util.List)
    public static com.github.kittinunf.fuel.core.Request upload(com.github.kittinunf.fuel.Fuel$PathStringConvertible,com.github.kittinunf.fuel.core.Method)
    public static com.github.kittinunf.fuel.core.Request upload(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    public static final com.github.kittinunf.fuel.core.Request head(java.lang.String,java.util.List)
    public static com.github.kittinunf.fuel.core.Request head(java.lang.String)
    public static final com.github.kittinunf.fuel.core.Request head(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    public static com.github.kittinunf.fuel.core.Request head(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    public static final com.github.kittinunf.fuel.core.Request request(com.github.kittinunf.fuel.Fuel$RequestConvertible)
com.github.kittinunf.fuel.Fuel$Companion:
    18:18:public final void setTestConfiguration$fuel_compileKotlin(com.github.kittinunf.fuel.util.TestConfiguration)
    22:23:public final void testMode(kotlin.jvm.functions.Function1)
    21:21:public static bridge synthetic void testMode$default(com.github.kittinunf.fuel.Fuel$Companion,kotlin.jvm.functions.Function1,int,java.lang.Object)
    public void testMode()
    26:26:public final void regularMode()
    31:31:public static bridge synthetic com.github.kittinunf.fuel.core.Request get$default(com.github.kittinunf.fuel.Fuel$Companion,java.lang.String,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request get(java.lang.String)
    37:37:public final com.github.kittinunf.fuel.core.Request get(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    36:36:public static bridge synthetic com.github.kittinunf.fuel.core.Request get$default(com.github.kittinunf.fuel.Fuel$Companion,com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request get(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    42:42:public static bridge synthetic com.github.kittinunf.fuel.core.Request post$default(com.github.kittinunf.fuel.Fuel$Companion,java.lang.String,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request post(java.lang.String)
    48:48:public final com.github.kittinunf.fuel.core.Request post(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    47:47:public static bridge synthetic com.github.kittinunf.fuel.core.Request post$default(com.github.kittinunf.fuel.Fuel$Companion,com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request post(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    54:54:public final com.github.kittinunf.fuel.core.Request put(java.lang.String,java.util.List)
    53:53:public static bridge synthetic com.github.kittinunf.fuel.core.Request put$default(com.github.kittinunf.fuel.Fuel$Companion,java.lang.String,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request put(java.lang.String)
    59:59:public final com.github.kittinunf.fuel.core.Request put(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    58:58:public static bridge synthetic com.github.kittinunf.fuel.core.Request put$default(com.github.kittinunf.fuel.Fuel$Companion,com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request put(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    65:65:public final com.github.kittinunf.fuel.core.Request delete(java.lang.String,java.util.List)
    64:64:public static bridge synthetic com.github.kittinunf.fuel.core.Request delete$default(com.github.kittinunf.fuel.Fuel$Companion,java.lang.String,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request delete(java.lang.String)
    70:70:public final com.github.kittinunf.fuel.core.Request delete(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    69:69:public static bridge synthetic com.github.kittinunf.fuel.core.Request delete$default(com.github.kittinunf.fuel.Fuel$Companion,com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request delete(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    76:76:public final com.github.kittinunf.fuel.core.Request download(java.lang.String,java.util.List)
    75:75:public static bridge synthetic com.github.kittinunf.fuel.core.Request download$default(com.github.kittinunf.fuel.Fuel$Companion,java.lang.String,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request download(java.lang.String)
    81:81:public final com.github.kittinunf.fuel.core.Request download(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    80:80:public static bridge synthetic com.github.kittinunf.fuel.core.Request download$default(com.github.kittinunf.fuel.Fuel$Companion,com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request download(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    87:87:public final com.github.kittinunf.fuel.core.Request upload(java.lang.String,com.github.kittinunf.fuel.core.Method,java.util.List)
    86:86:public static bridge synthetic com.github.kittinunf.fuel.core.Request upload$default(com.github.kittinunf.fuel.Fuel$Companion,java.lang.String,com.github.kittinunf.fuel.core.Method,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request upload(java.lang.String,com.github.kittinunf.fuel.core.Method)
    public com.github.kittinunf.fuel.core.Request upload(java.lang.String)
    92:92:public final com.github.kittinunf.fuel.core.Request upload(com.github.kittinunf.fuel.Fuel$PathStringConvertible,com.github.kittinunf.fuel.core.Method,java.util.List)
    91:91:public static bridge synthetic com.github.kittinunf.fuel.core.Request upload$default(com.github.kittinunf.fuel.Fuel$Companion,com.github.kittinunf.fuel.Fuel$PathStringConvertible,com.github.kittinunf.fuel.core.Method,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request upload(com.github.kittinunf.fuel.Fuel$PathStringConvertible,com.github.kittinunf.fuel.core.Method)
    public com.github.kittinunf.fuel.core.Request upload(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    98:98:public final com.github.kittinunf.fuel.core.Request head(java.lang.String,java.util.List)
    97:97:public static bridge synthetic com.github.kittinunf.fuel.core.Request head$default(com.github.kittinunf.fuel.Fuel$Companion,java.lang.String,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request head(java.lang.String)
    103:103:public final com.github.kittinunf.fuel.core.Request head(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    102:102:public static bridge synthetic com.github.kittinunf.fuel.core.Request head$default(com.github.kittinunf.fuel.Fuel$Companion,com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public com.github.kittinunf.fuel.core.Request head(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    107:107:static bridge synthetic com.github.kittinunf.fuel.core.Request request$default(com.github.kittinunf.fuel.Fuel$Companion,com.github.kittinunf.fuel.core.Method,java.lang.String,java.util.List,int,java.lang.Object)
    112:112:private final com.github.kittinunf.fuel.core.Request request(com.github.kittinunf.fuel.core.Method,com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    111:111:static bridge synthetic com.github.kittinunf.fuel.core.Request request$default(com.github.kittinunf.fuel.Fuel$Companion,com.github.kittinunf.fuel.core.Method,com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
com.github.kittinunf.fuel.Fuel$Companion$regularMode$1
com.github.kittinunf.fuel.Fuel$Companion$testMode$1
com.github.kittinunf.fuel.Fuel$PathStringConvertible
com.github.kittinunf.fuel.FuelKt:
    public static com.github.kittinunf.fuel.core.Request httpGet(java.lang.String)
    131:131:public static final com.github.kittinunf.fuel.core.Request httpGet(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    130:130:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpGet$default(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpGet(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    public static com.github.kittinunf.fuel.core.Request httpPost(java.lang.String)
    141:141:public static final com.github.kittinunf.fuel.core.Request httpPost(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    140:140:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpPost$default(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpPost(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    146:146:public static final com.github.kittinunf.fuel.core.Request httpPut(java.lang.String,java.util.List)
    145:145:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpPut$default(java.lang.String,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpPut(java.lang.String)
    151:151:public static final com.github.kittinunf.fuel.core.Request httpPut(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    150:150:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpPut$default(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpPut(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    156:156:public static final com.github.kittinunf.fuel.core.Request httpDelete(java.lang.String,java.util.List)
    155:155:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpDelete$default(java.lang.String,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpDelete(java.lang.String)
    161:161:public static final com.github.kittinunf.fuel.core.Request httpDelete(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    160:160:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpDelete$default(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpDelete(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    166:166:public static final com.github.kittinunf.fuel.core.Request httpDownload(java.lang.String,java.util.List)
    165:165:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpDownload$default(java.lang.String,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpDownload(java.lang.String)
    171:171:public static final com.github.kittinunf.fuel.core.Request httpDownload(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    170:170:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpDownload$default(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpDownload(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    176:176:public static final com.github.kittinunf.fuel.core.Request httpUpload(java.lang.String,com.github.kittinunf.fuel.core.Method,java.util.List)
    175:175:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpUpload$default(java.lang.String,com.github.kittinunf.fuel.core.Method,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpUpload(java.lang.String,com.github.kittinunf.fuel.core.Method)
    public static com.github.kittinunf.fuel.core.Request httpUpload(java.lang.String)
    181:181:public static final com.github.kittinunf.fuel.core.Request httpUpload(com.github.kittinunf.fuel.Fuel$PathStringConvertible,com.github.kittinunf.fuel.core.Method,java.util.List)
    180:180:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpUpload$default(com.github.kittinunf.fuel.Fuel$PathStringConvertible,com.github.kittinunf.fuel.core.Method,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpUpload(com.github.kittinunf.fuel.Fuel$PathStringConvertible,com.github.kittinunf.fuel.core.Method)
    public static com.github.kittinunf.fuel.core.Request httpUpload(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    186:186:public static final com.github.kittinunf.fuel.core.Request httpHead(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    185:185:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpHead$default(com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpHead(com.github.kittinunf.fuel.Fuel$PathStringConvertible)
    191:191:public static final com.github.kittinunf.fuel.core.Request httpHead(java.lang.String,java.util.List)
    190:190:public static bridge synthetic com.github.kittinunf.fuel.core.Request httpHead$default(java.lang.String,java.util.List,int,java.lang.Object)
    public static com.github.kittinunf.fuel.core.Request httpHead(java.lang.String)
com.github.kittinunf.fuel.android.BuildConfig
com.github.kittinunf.fuel.android.core.Json:
    6:6:public final java.lang.String getContent()
com.github.kittinunf.fuel.android.extension.RequestsKt:
    11:11:public static final com.github.kittinunf.fuel.core.Request responseJson(com.github.kittinunf.fuel.core.Request,com.github.kittinunf.fuel.core.Handler)
    13:13:public static final kotlin.Triple responseJson(com.github.kittinunf.fuel.core.Request)
com.github.kittinunf.fuel.android.util.AndroidEnvironment
com.github.kittinunf.fuel.android.util.AndroidEnvironment$callbackExecutor$1
com.github.kittinunf.fuel.core.DefaultEnvironment:
    18:18:public void setCallbackExecutor(java.util.concurrent.Executor)
com.github.kittinunf.fuel.core.DeserializableKt:
    43:48:public static final com.github.kittinunf.fuel.core.Request response(com.github.kittinunf.fuel.core.Request,com.github.kittinunf.fuel.core.Deserializable,com.github.kittinunf.fuel.core.Handler)
com.github.kittinunf.fuel.core.DeserializableKt$response$3
com.github.kittinunf.fuel.core.DeserializableKt$response$4
com.github.kittinunf.fuel.core.Encoding:
    14:14:public final void setRequestType(com.github.kittinunf.fuel.core.Request$Type)
    16:16:public final java.lang.String getBaseUrlString()
    20:20:public final void setEncoder(kotlin.jvm.functions.Function3)
com.github.kittinunf.fuel.core.Environment:
    public abstract void setCallbackExecutor(java.util.concurrent.Executor)
com.github.kittinunf.fuel.core.FuelError:
    7:7:public final byte[] getErrorData()
com.github.kittinunf.fuel.core.FuelManager:
    public final void setClient(com.github.kittinunf.fuel.core.Client)
    18:18:public final java.lang.String getBasePath()
    18:18:public final void setBasePath(java.lang.String)
    21:21:public final java.util.List getBaseParams()
    21:21:public final void setBaseParams(java.util.List)
    23:23:public final void setKeystore(java.security.KeyStore)
    public final void setSocketFactory(javax.net.ssl.SSLSocketFactory)
    public final void setHostnameVerifier(javax.net.ssl.HostnameVerifier)
    public final void setExecutor(java.util.concurrent.ExecutorService)
    public final void setCallbackExecutor(java.util.concurrent.Executor)
    58:58:public static bridge synthetic com.github.kittinunf.fuel.core.Request request$default(com.github.kittinunf.fuel.core.FuelManager,com.github.kittinunf.fuel.core.Method,java.lang.String,java.util.List,int,java.lang.Object)
    77:77:public final com.github.kittinunf.fuel.core.Request request(com.github.kittinunf.fuel.core.Method,com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List)
    76:76:public static bridge synthetic com.github.kittinunf.fuel.core.Request request$default(com.github.kittinunf.fuel.core.FuelManager,com.github.kittinunf.fuel.core.Method,com.github.kittinunf.fuel.Fuel$PathStringConvertible,java.util.List,int,java.lang.Object)
    81:167:public final com.github.kittinunf.fuel.core.Request download(java.lang.String,java.util.List)
    80:80:public static bridge synthetic com.github.kittinunf.fuel.core.Request download$default(com.github.kittinunf.fuel.core.FuelManager,java.lang.String,java.util.List,int,java.lang.Object)
    100:167:public final com.github.kittinunf.fuel.core.Request upload(java.lang.String,com.github.kittinunf.fuel.core.Method,java.util.List)
    99:99:public static bridge synthetic com.github.kittinunf.fuel.core.Request upload$default(com.github.kittinunf.fuel.core.FuelManager,java.lang.String,com.github.kittinunf.fuel.core.Method,java.util.List,int,java.lang.Object)
    131:132:public final void addRequestInterceptor(kotlin.jvm.functions.Function1)
    135:136:public final void addResponseInterceptor(kotlin.jvm.functions.Function1)
    139:140:public final void removeRequestInterceptor(kotlin.jvm.functions.Function1)
    143:144:public final void removeResponseInterceptor(kotlin.jvm.functions.Function1)
    147:148:public final void removeAllRequestInterceptors()
    151:152:public final void removeAllResponseInterceptors()
    15:15:public static final synthetic void access$setInstance$cp(kotlin.properties.ReadWriteProperty)
com.github.kittinunf.fuel.core.FuelManager$Companion:
    public final void setInstance(com.github.kittinunf.fuel.core.FuelManager)
com.github.kittinunf.fuel.core.FuelManager$download$1
com.github.kittinunf.fuel.core.FuelManager$download$3
com.github.kittinunf.fuel.core.FuelManager$upload$1
com.github.kittinunf.fuel.core.FuelManager$upload$3
com.github.kittinunf.fuel.core.Handler
com.github.kittinunf.fuel.core.HttpException:
    3:3:public final int getHttpCode()
    3:3:public final java.lang.String getHttpMessage()
com.github.kittinunf.fuel.core.Request:
    29:29:public final void setTimeoutInMillisecond(int)
    30:30:public final void setTimeoutReadInMillisecond(int)
    34:34:public final java.lang.String getPath()
    49:49:public final java.util.concurrent.Future getTaskFuture()
    49:49:public final void setTaskFuture(java.util.concurrent.Future)
    56:56:public final java.util.concurrent.ExecutorService getExecutor()
    57:57:public final java.util.concurrent.Executor getCallbackExecutor()
    65:66:public final com.github.kittinunf.fuel.core.Request timeout(int)
    70:71:public final com.github.kittinunf.fuel.core.Request timeoutRead(int)
    75:242:public final varargs com.github.kittinunf.fuel.core.Request header(kotlin.Pair[])
    82:82:public final com.github.kittinunf.fuel.core.Request header(java.util.Map)
    103:105:public final com.github.kittinunf.fuel.core.Request authenticate(java.lang.String,java.lang.String)
    109:123:public final com.github.kittinunf.fuel.core.Request progress(kotlin.jvm.functions.Function2)
    127:132:public final com.github.kittinunf.fuel.core.Request source(kotlin.jvm.functions.Function2)
    136:141:public final com.github.kittinunf.fuel.core.Request destination(kotlin.jvm.functions.Function2)
    145:148:public final com.github.kittinunf.fuel.core.Request interrupt(kotlin.jvm.functions.Function1)
    162:163:public final void cancel()
    169:190:public final java.lang.String cUrlString()
    210:210:public final com.github.kittinunf.fuel.core.Request response(kotlin.jvm.functions.Function3)
    212:212:public final com.github.kittinunf.fuel.core.Request response(com.github.kittinunf.fuel.core.Handler)
    220:220:public final com.github.kittinunf.fuel.core.Request responseString(java.nio.charset.Charset,com.github.kittinunf.fuel.core.Handler)
    222:222:public final com.github.kittinunf.fuel.core.Request responseString(com.github.kittinunf.fuel.core.Handler)
    224:224:public final kotlin.Triple responseString(java.nio.charset.Charset)
    224:224:public static bridge synthetic kotlin.Triple responseString$default(com.github.kittinunf.fuel.core.Request,java.nio.charset.Charset,int,java.lang.Object)
    227:227:public final com.github.kittinunf.fuel.core.Request responseObject(com.github.kittinunf.fuel.core.ResponseDeserializable,kotlin.jvm.functions.Function3)
    229:229:public final com.github.kittinunf.fuel.core.Request responseObject(com.github.kittinunf.fuel.core.ResponseDeserializable,com.github.kittinunf.fuel.core.Handler)
    231:231:public final kotlin.Triple responseObject(com.github.kittinunf.fuel.core.ResponseDeserializable)
com.github.kittinunf.fuel.core.Request$Companion:
    236:236:public static bridge synthetic com.github.kittinunf.fuel.core.deserializers.StringDeserializer stringDeserializer$default(com.github.kittinunf.fuel.core.Request$Companion,java.nio.charset.Charset,int,java.lang.Object)
com.github.kittinunf.fuel.core.Response:
    7:7:public final java.net.URL getUrl()
com.github.kittinunf.fuel.core.ResponseDeserializable
com.github.kittinunf.fuel.core.ResponseDeserializable$DefaultImpls
com.github.kittinunf.fuel.core.deserializers.StringDeserializer:
    7:7:public final java.nio.charset.Charset getCharset()
com.github.kittinunf.fuel.core.interceptors.LoggingInterceptorsKt
com.github.kittinunf.fuel.core.interceptors.LoggingInterceptorsKt$cUrlLoggingRequestInterceptor$1
com.github.kittinunf.fuel.core.interceptors.LoggingInterceptorsKt$cUrlLoggingRequestInterceptor$1$1
com.github.kittinunf.fuel.core.interceptors.LoggingInterceptorsKt$loggingInterceptor$1
com.github.kittinunf.fuel.core.interceptors.LoggingInterceptorsKt$loggingInterceptor$1$1
com.github.kittinunf.fuel.core.requests.AsyncTaskRequest:
    8:8:public final kotlin.jvm.functions.Function1 getSuccessCallback()
    9:9:public final kotlin.jvm.functions.Function2 getFailureCallback()
    6:6:public final com.github.kittinunf.fuel.core.requests.TaskRequest getTask()
com.github.kittinunf.fuel.core.requests.DownloadTaskRequest:
    14:14:public final int getBUFFER_SIZE()
    16:16:public final void setProgressCallback(kotlin.jvm.functions.Function2)
    17:17:public final kotlin.jvm.functions.Function2 getDestinationCallback()
    17:17:public final void setDestinationCallback(kotlin.jvm.functions.Function2)
    19:19:public final java.io.InputStream getDataStream()
    19:19:public final void setDataStream(java.io.InputStream)
    20:20:public final java.io.FileOutputStream getFileOutputStream()
    20:20:public final void setFileOutputStream(java.io.FileOutputStream)
com.github.kittinunf.fuel.core.requests.TaskRequest:
    12:12:public final kotlin.jvm.functions.Function1 getInterruptCallback()
    12:12:public final void setInterruptCallback(kotlin.jvm.functions.Function1)
com.github.kittinunf.fuel.core.requests.UploadTaskRequest:
    15:15:public final int getBUFFER_SIZE()
    17:17:public final java.lang.String getCRLF()
    18:18:public final java.lang.String getBoundary()
    20:20:public final void setProgressCallback(kotlin.jvm.functions.Function2)
    21:21:public final kotlin.jvm.functions.Function2 getSourceCallback()
    21:21:public final void setSourceCallback(kotlin.jvm.functions.Function2)
    23:23:public final java.io.ByteArrayOutputStream getDataStream()
    23:23:public final void setDataStream(java.io.ByteArrayOutputStream)
    24:24:public final java.io.FileInputStream getFileInputStream()
    24:24:public final void setFileInputStream(java.io.FileInputStream)
com.github.kittinunf.fuel.util.Base64
com.github.kittinunf.fuel.util.Base64$Coder
com.github.kittinunf.fuel.util.Base64$Decoder
com.github.kittinunf.fuel.util.Base64$Encoder
com.github.kittinunf.fuel.util.InputStreamsKt:
    6:6:public static bridge synthetic long copyTo$default(java.io.InputStream,java.io.OutputStream,int,kotlin.jvm.functions.Function1,int,java.lang.Object)
com.github.kittinunf.fuel.util.TestConfiguration:
    9:9:public final void setTimeout(java.lang.Integer)
    15:15:public final void setTimeoutRead(java.lang.Integer)
    20:20:public final void setBlocking(boolean)
    public final java.lang.Integer component1()
    public final java.lang.Integer component2()
    public final boolean component3()
    public final com.github.kittinunf.fuel.util.TestConfiguration copy(java.lang.Integer,java.lang.Integer,boolean)
    public static bridge synthetic com.github.kittinunf.fuel.util.TestConfiguration copy$default(com.github.kittinunf.fuel.util.TestConfiguration,java.lang.Integer,java.lang.Integer,boolean,int,java.lang.Object)
com.github.kittinunf.result.NoException
com.github.kittinunf.result.Result:
    public abstract java.lang.Object component1()
    public abstract java.lang.Exception component2()
com.github.kittinunf.result.Result$Companion:
    98:109:public final com.github.kittinunf.result.Result of(java.lang.Object,kotlin.jvm.functions.Function0)
    97:97:public static bridge synthetic com.github.kittinunf.result.Result of$default(com.github.kittinunf.result.Result$Companion,java.lang.Object,kotlin.jvm.functions.Function0,int,java.lang.Object)
com.github.kittinunf.result.Result$Companion$of$1
com.github.kittinunf.result.Result$Failure:
    76:76:public java.lang.Object component1()
    77:77:public java.lang.Exception component2()
com.github.kittinunf.result.Result$Success:
    57:57:public java.lang.Object component1()
    58:58:public java.lang.Exception component2()
com.github.kittinunf.result.ResultKt
com.github.kittinunf.result.ResultKt$failure$1
com.github.kittinunf.result.ResultKt$success$1

I'll try and spend some time seeing if some more direct rules fix the problem.

ismail-s commented 8 years ago

Ok, I think I have figured it out. -keep class com.github.kittinunf.fuel.android.util.AndroidEnvironment should be added to proguard-rules.pro, as this is the class that makes the fuel callbacks run on the android ui thread. Thinking about it, it's obvious, as this class is never directly referenced in my code, yet is necessary nontheless.