# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in D:\Android\sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# 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 *;
#}

# 防止内部类被混淆，无法访问,务必加上，不然外部引用无法使用内部类

#-renamesourcefileattribute SourceFile
#-keepattributes SourceFile,LineNumberTable

# 防止内部类被混淆，无法访问
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,*Annotation*,EnclosingMethod

# 保留所有重要组件
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver

## 保留所有 Parcelable 实现类的特殊属性.
-keepclassmembers class * implements android.os.Parcelable {
     static android.os.Parcelable$Creator CREATOR;
}

-keepclassmembers enum * {
        public static **[] values();
        public static ** valueOf(java.lang.String);
}

## 用到序列化的实体类
-keepclassmembers class * implements java.io.Serializable {
     static final long serialVersionUID;
         static final java.io.ObjectStreamField[] serialPersistentFields;
     private void writeObject(java.io.ObjectOutputStream);
     private void readObject(java.io.ObjectInputStream);
     java.lang.Object writeReplace();
     java.lang.Object readResolve();
}


## for pushManager
-keep class com.meizu.cloud.pushsdk.PushManager{ *; }
-dontwarn com.meizu.cloud.pushsdk.PushManager

-keep class com.meizu.cloud.pushsdk.notification.MPushMessage{ *; }
-dontwarn com.meizu.cloud.pushsdk.notification.MPushMessage

-keep class com.meizu.cloud.pushsdk.handler.MessageV3 {*;}
-dontwarn com.meizu.cloud.pushsdk.handler.MessageV3

-keep class com.meizu.cloud.pushsdk.handler.MessageV4 {*;}
-dontwarn com.meizu.cloud.pushsdk.handler.MessageV4

-keep class com.meizu.cloud.pushsdk.handler.MzPushMessage {*;}
-dontwarn com.meizu.cloud.pushsdk.handler.MzPushMessage

-keep class com.meizu.cloud.pushsdk.notification.PushNotificationBuilder{ *; }
-dontwarn com.meizu.cloud.pushsdk.notification.PushNotificationBuilder


-keep class com.meizu.cloud.pushsdk.platform.message.BasicPushStatus{*;}
-dontwarn com.meizu.cloud.pushsdk.platform.message.BasicPushStatus

-keep class com.meizu.cloud.pushsdk.platform.message.PushSwitchStatus{*;}
-dontwarn com.meizu.cloud.pushsdk.platform.message.PushSwitchStatus

-keep class com.meizu.cloud.pushsdk.platform.message.RegisterStatus{*;}
-dontwarn com.meizu.cloud.pushsdk.platform.message.RegisterStatus

-keep class com.meizu.cloud.pushsdk.platform.message.SubAliasStatus{*;}
-dontwarn com.meizu.cloud.pushsdk.platform.message.SubAliasStatus

-keep class com.meizu.cloud.pushsdk.platform.message.UnRegisterStatus{*;}
-dontwarn com.meizu.cloud.pushsdk.platform.message.UnRegisterStatus

-keep class com.meizu.cloud.pushsdk.platform.message.SubTagsStatus{*;}
-dontwarn com.meizu.cloud.pushsdk.platform.message.SubTagsStatus

-keep class com.meizu.cloud.pushsdk.platform.message.SubTagsStatus$*{*;}

-keep class com.meizu.cloud.pushsdk.notification.model.styleenum.BaseStyleModel{*;}
-dontwarn com.meizu.cloud.pushsdk.notification.model.styleenum.BaseStyleModel

-keep class com.meizu.cloud.pushsdk.notification.model.styleenum.InnerStyleLayout{*;}
-dontwarn com.meizu.cloud.pushsdk.notification.model.styleenum.InnerStyleLayout

-keep class com.meizu.cloud.pushsdk.notification.model.ActVideoSetting{*;}
-dontwarn com.meizu.cloud.pushsdk.notification.model.ActVideoSetting
-keep class com.meizu.cloud.pushsdk.notification.model.AdvanceSetting{*;}
-dontwarn com.meizu.cloud.pushsdk.notification.model.AdvanceSetting
-keep class com.meizu.cloud.pushsdk.notification.model.AppIconSetting{*;}
-dontwarn com.meizu.cloud.pushsdk.notification.model.AppIconSetting
-keep class com.meizu.cloud.pushsdk.notification.model.NotificationStyle{*;}
-dontwarn com.meizu.cloud.pushsdk.notification.model.NotificationStyle
-keep class com.meizu.cloud.pushsdk.notification.model.NotifyType{*;}
-dontwarn com.meizu.cloud.pushsdk.notification.model.NotifyType
-keep class com.meizu.cloud.pushsdk.notification.model.TimeDisplaySetting{*;}
-dontwarn com.meizu.cloud.pushsdk.notification.model.TimeDisplaySetting
-keep class com.meizu.cloud.pushsdk.notification.model.BrightRemindSetting{*;}
-dontwarn com.meizu.cloud.pushsdk.notification.model.BrightRemindSettin
-keep class com.meizu.cloud.pushsdk.notification.model.AdvanceSettingEx{*;}
-dontwarn com.meizu.cloud.pushsdk.notification.model.AdvanceSettingEx
 -keep class com.meizu.cloud.pushsdk.notification.model.AdvertisementOption{*;}
 -dontwarn com.meizu.cloud.pushsdk.notification.model.AdvertisementOption

-keep class com.meizu.cloud.pushsdk.platform.PlatformMessageSender{
    public void launchStartActivity(android.content.Context, java.lang.String, java.lang.String,java.lang.String);
    public void showQuickNotification(android.content.Context,java.lang.String,java.lang.String);
 }

-keep class com.meizu.cloud.pushsdk.constants.PushConstants{ *; }
-dontwarn com.meizu.cloud.pushsdk.constants.PushConstants

-keep class com.meizu.cloud.pushsdk.util.MzSystemUtils{*;}
-dontwarn com.meizu.cloud.pushsdk.util.MzSystemUtils

-keep class com.meizu.cloud.pushsdk.util.MinSdkChecker{ *;}
-dontwarn com.meizu.cloud.pushsdk.util.MinSdkChecker

-keep class com.meizu.cloud.pushsdk.MzPushMessageReceiver{ *; }
-dontwarn com.meizu.cloud.pushsdk.MzPushMessageReceiver

-keep class com.meizu.cloud.pushinternal.DebugLogger{*;}
-dontwarn com.meizu.cloud.pushinternal.DebugLogger
