# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/anawara/Development/Android/adt-bundle-mac-x86_64/sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# 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 *;
#}
-dontwarn rx.internal.util.unsafe.**

-dontwarn sun.misc.**

-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
   long producerIndex;
   long consumerIndex;
}

-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode producerNode;
}

-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode consumerNode;
}

-keepattributes InnerClasses
-keepattributes Exceptions,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*
-keepattributes EnclosingMethod

-keep public class **Instabug {*;}
-keep public class **Instabug$Builder {*;}
-keep public class **InstabugLocale {*;}
-keep public class **.logging.InstabugLog {*;}
-keep public class **.user.UserEventParam {*;}
-keep public class **.logging.InstabugNetworkLog {*;}
-keep public class **.model.NetworkLog {*;}

-keep public class **InstabugSDKLogger {*;}
-keep public class **InstabugTrackingDelegate {*;}

-keep public class **OnSdkDismissedCallback {*;}
-keep public class **OnSdkDismissedCallback$DismissType {*;}
-keep public class **.model.Bug$Type {*;}
-keep public class **OnSdkInvokedCallback {*;}

-keep public class **Feature {*;}
-keep public class **Feature$State {*;}

-keep class **CapturableView {*;}
-keep class **SnapshotPreparationCallback {*;}

-keep public class **.invocation.InstabugInvocationEvent {*;}
-keep public class **.invocation.InstabugInvocationMode {*;}
-keep public class **IBGInvocationMode {*;}
-keep public class **IBGInvocationEvent {*;}

-keep public class **.invocation.util.InstabugFloatingButtonEdge {*;}
-keep public class **IBGFloatingButtonEdge {*;}

-keep public class **InstabugColorTheme {*;}
-keep public class **IBGColorTheme {*;}

-keep public class **AbstractMigration {*;}
-keep public class **LastContactedMigration {*;}
-keep public class **IBGCustomTextPlaceHolder {*;}
-keep public class **IBGCustomTextPlaceHolder$Key {*;}


-keep public class com.instabug.library.R {*;}
-keep public class com.instabug.library.R.menu {*;}

-keep public class **InstabugCustomTextPlaceHolder {*;}
-keep public class **InstabugCustomTextPlaceHolder$Key {*;}

-keep public class **IBGCustomTextPlaceHolder {*;}
-keep public class **IBGCustomTextPlaceHolder$Key {*;}
-keep public class org.jcodec.** {*;}

-keep public class **BugCategory {*;}
-keep public class **ReportCategory {*;}

-keep public class **Plugin {*;}
-keep public class **SDKCoreEvent {*;}
-keep public class **SDKCoreEventSubscriber {*;}

-keep public class **CacheManager {*;}
-keep public class **CacheManager$KeyExtractor {*;}
-keep public class **OnDiskCache {*;}
-keep public class **InstabugSDKLogger {*;}
-keep public class **InstabugDeviceProperties {*;}
-keep public class **InMemoryCache {*;}
-keep public class **InstabugInternalTrackingDelegate {*;}
-keep public class **Request {*;}
-keep public class **Request$FileToUpload {*;}
-keep public class **Request$Callbacks {*;}
-keep public class **Request$Endpoint {*;}
-keep public class **Request$RequestMethod {*;}
-keep public class **Request$RequestParameter {*;}
-keep public class **Cache {*;}
-keep public class **Cacheable {*;}
-keep public class **InstabugNetworkBasedBackgroundService {*;}
-keep public class **NetworkManager {*;}
-keep public class **NetworkManager$RequestType {*;}
-keep public class **RequestResponse {*;}
-keep public class **InstabugState {*;}
-keep public class **InstabugUserEventLogger {*;}
-keep public class **StringUtility {*;}
-keep public class **_InstabugActivity {*;}
-keep public class **InstabugThemeResolver {*;}
-keep public class **OrientationUtils {*;}
-keep public class **AttrResolver {*;}
-keep public class **InstabugLogoProvider {*;}
-keep public class **InstabugDateFormatter {*;}
-keep public class **BaseFragment {*;}
-keep public class **BasePresenter {*;}
-keep public class **BaseContract {*;}
-keep public class **BaseContract*View {*;}
-keep public class **BaseContract*Presenter {*;}
-keep public class **InstabugCore {*;}
-keep public class **.analytics.AnalyticsObserver {*;}
-keep public class **.analytics.model.Api* {*;}
-keep public class **.analytics.util.ViewResourcesUtil {*;}
-keep public class **.view.ViewUtils {*;}

-keep public class **AttachmentManager {*;}
-keep public class **Attachment {*;}
-keep public class **Attachment$Type {*;}
-keep public class **State {*;}
-keep public class **State$Builder {*;}
-keep public class **State$StateItem {*;}
-keep public class **InstabugInternalBuilder {*;}

-keep class .R
-keep class **.R$* {
    <fields>;
}
