

#MiPushSDK的混淆规则
-keep class com.xiaomi.mipush.sdk.MiPushMessage {*;}
-keep class com.xiaomi.mipush.sdk.MiPushCommandMessage {*;}
-keep class com.xiaomi.mipush.sdk.PushMessageReceiver {*;}
-keep class com.xiaomi.mipush.sdk.MessageHandleService {*;}
-keep class com.xiaomi.push.service.XMJobService {*;}
-keep class com.xiaomi.push.service.XMPushService {*;}
-keep class com.xiaomi.mipush.sdk.PushMessageHandler {*;}
-keep class com.xiaomi.push.service.receivers.NetworkStatusReceiver {*;}
-keep class com.xiaomi.push.service.receivers.PingReceiver {*;}
-keep class com.xiaomi.mipush.sdk.NotificationClickedActivity {*;}

-keep public class com.huawei.hms.support.api.entity.push.* { *; }


-keep class com.hihonor.push.framework.aidl.**{*;}
-keep class com.hihonor.push.sdk.common.data.**{*;}

-keep class com.hihonor.push.framework.aidl.**{*;}
-keep class com.hihonor.push.sdk.common.data.**{*;}


# 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


-keep public class com.huawei.hms.support.api.entity.opendevice.* { public *; protected *; }
-keep public class com.huawei.hms.aaid.entity.* { *;}

-dontwarn com.google.auto.value.AutoValue
-dontwarn com.google.auto.value.AutoValue$Builder


-dontwarn com.google.auto.value.AutoValue
-dontwarn com.google.auto.value.AutoValue$Builder


# b/35135904 Ensure that proguard will not strip the mResultGuardian.
-keepclassmembers class com.google.android.gms.common.api.internal.BasePendingResult {
  com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian mResultGuardian;
}




-dontwarn com.google.firebase.platforminfo.KotlinDetector
-dontwarn com.google.auto.value.AutoValue
-dontwarn com.google.auto.value.AutoValue$Builder





# Needed when building against pre-Marshmallow SDK.
-dontwarn android.security.NetworkSecurityPolicy

# Needed when building against Marshmallow SDK.
-dontwarn android.app.Notification

# Protobuf has references not on the Android boot classpath
-dontwarn sun.misc.Unsafe
-dontwarn libcore.io.Memory

# Internal Google annotations for generating Proguard keep rules.
-dontwarn com.google.android.apps.common.proguard.UsedBy*

# Annotations referenced by the SDK but whose definitions are contained in
# non-required dependencies.
-dontwarn javax.annotation.**
-dontwarn org.checkerframework.**
-dontwarn com.google.errorprone.annotations.**
-dontwarn org.jspecify.nullness.NullMarked

# Proguard flags for consumers of the Google Play services SDK
# https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project

# Keep SafeParcelable NULL value, needed for reflection by DowngradeableSafeParcel
-keepclassmembers public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

# Needed for Parcelable/SafeParcelable classes & their creators to not get renamed, as they are
# found via reflection.
-keep class com.google.android.gms.common.internal.ReflectedParcelable
-keepnames class * implements com.google.android.gms.common.internal.ReflectedParcelable
-keepclassmembers class * implements android.os.Parcelable {
  public static final *** CREATOR;
}

# Keep the classes/members we need for client functionality.
-keep @interface android.support.annotation.Keep
-keep @androidx.annotation.Keep class *
-keepclasseswithmembers class * {
  @androidx.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
  @androidx.annotation.Keep <methods>;
}

# Keep androidX equivalent of above android.support to allow Jetification.
-keep @interface androidx.annotation.Keep
-keep @androidx.annotation.Keep class *
-keepclasseswithmembers class * {
  @androidx.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
  @androidx.annotation.Keep <methods>;
}

# Keep the names of classes/members we need for client functionality.
-keep @interface com.google.android.gms.common.annotation.KeepName
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
  @com.google.android.gms.common.annotation.KeepName *;
}

# Keep Dynamite API entry points
-keep @interface com.google.android.gms.common.util.DynamiteApi
-keep @com.google.android.gms.common.util.DynamiteApi public class * {
  public <fields>;
  public <methods>;
}




-dontwarn com.google.firebase.components.Component$Instantiation
-dontwarn com.google.firebase.components.Component$ComponentType

-keep class * implements com.google.firebase.components.ComponentRegistrar
-keep,allowshrinking interface com.google.firebase.components.ComponentRegistrar




-keep interface com.huawei.hms.support.api.transport.DatagramTransport
-keepclasseswithmembers class * implements com.huawei.hms.support.api.transport.DatagramTransport {
  <init>(...);
}
-keep public class com.huawei.hms.support.api.client.* {public *;}
-keep public class com.huawei.hms.support.api.ResolvePendingResult {public *;}
-keep public class com.huawei.hms.support.api.ResolveResult {public *;}
-keep public class com.huawei.hms.support.api.PendingResultImpl {public *;}
-keep public class com.huawei.hms.support.api.ErrorResultImpl {public *;}
-keep public class com.huawei.hms.support.api.entity.core.* {public *;}
-keep public class com.huawei.hms.support.api.entity.auth.AbstractResp {public *;}
-keep public class com.huawei.hms.support.api.entity.auth.AuthCode {public *;}
-keep public class com.huawei.hms.support.api.entity.auth.Scope {public *;}
-keep public class com.huawei.hms.support.api.entity.auth.PermissionInfo {public *;}
-keep class com.huawei.hms.support.api.entity.auth.AuthCode$* {public *;}
-keep public class com.huawei.hms.support.api.core.ConnectService {public *;}
-keep public class com.huawei.hms.support.hianalytics.HiAnalyticsClient {public *;}
-keep public class com.huawei.hms.support.hianalytics.HiAnalyticsUtil {public *;}

-keep class !com.huawei.hms.update.manager.HmsApkReallySizeManager$*,
    !com.huawei.hms.update.manager.ThirdPartyMarketConfigManager$*,
    !com.huawei.hms.update.ui.AppTouchWizard$SizeCallback,
    !com.huawei.hms.update.ui.DownloadProgress$*,
    !com.huawei.hms.update.ui.ConfirmDialogs$*,
    !com.huawei.hms.update.ui.HiappWizard$SizeCallback,
    !com.huawei.hms.update.ui.HwAlertController$CheckedItemAdapter,
    !com.huawei.hms.update.ui.HwAlertController$ListViewScrollListener,
    !com.huawei.hms.update.ui.HwAlertController$BtnHandler,
    !com.huawei.hms.update.ui.SilentUpdateWizard$*,
    !com.huawei.hms.update.ui.PromptDialogs$*,
    !com.huawei.hms.update.ui.ThirdPartyMarketWizard$*,
    !com.huawei.hms.update.ui.UpdateWizard$SizeCallback,
    com.huawei.hms.update.** {public *;}

-keep class !com.huawei.hms.adapter.BaseAdapter$MPendingResultImpl, com.huawei.hms.adapter.** {public *;}
-keep class com.huawei.hms.base.** {public *;}
-keep class com.huawei.hms.availableupdate.** {public *;}

-keep class com.huawei.hms.utils.** {public *;}

-keep class !com.huawei.hms.common.internal.BindResolveClients$*,
    !com.huawei.hms.common.internal.HmsClient$BaseAdapterCallBack,
    !com.huawei.hms.common.HuaweiApi$RequestRunnable,
    com.huawei.hms.common.** {public *;}

-keep class com.huawei.hms.android.** {public *;}
-keep public class com.huawei.hms.support.log.common.Base64 {public *;}
-keep public class com.huawei.hms.support.gentyref.GenericTypeReflector {public *;}
-keep class com.huawei.hms.device.** {public *;}

-keep class org.apache.http.conn.ssl.BrowserCompatHostnameVerifier {public *;}
-keep class org.apache.http.conn.ssl.StrictHostnameVerifier {public *;}
-keep class org.apache.http.conn.ssl.X509HostnameVerifier {public *;}

-keep class org.apache.http.conn.ssl.SSLSocketFactory {public *;}

-keep class com.huawei.hms.utils.** {public *;}
-keep public class com.huawei.hms.support.hianalytics.HiAnalyticsClient {public *;}
-keep public class com.huawei.hms.support.hianalytics.HiAnalyticsConstant {public *;}
-keep public class com.huawei.hms.support.hianalytics.HiAnalyticsUtils {public *;}
-keep class com.huawei.hms.support.hianalytics.HiAnalyticsConstant$KeyAndValue {public *;}
-keep class com.huawei.hms.support.hianalytics.HiAnalyticsConstant$HaKey {public *;}
-keep class com.huawei.hms.support.hianalytics.HiAnalyticsConstant$Direction {public *;}
-keep class com.huawei.hms.stats.** {public *;}

-keep class com.huawei.hms.framework.network.grs.BuildConfig {   *; }
-keep class com.huawei.hms.framework.network.grs.GrsApi {   *; }
-keep class com.huawei.hms.framework.network.grs.GrsBaseInfo {   *; }
-keep class com.huawei.hms.framework.network.grs.GrsBaseInfo$* {*;}
-keep class com.huawei.hms.framework.network.grs.IQueryUrlCallBack {   *; }
-keep class com.huawei.hms.framework.network.grs.IQueryUrlsCallBack {   *; }
-keep class com.huawei.hms.framework.network.grs.GrsClient {   *; }
-keep class com.huawei.hms.framework.network.grs.local.model.CountryCodeBean {   *; }
-keep class com.huawei.hms.framework.network.grs.GrsApp {   *; }


-keep class com.huawei.hianalytics.** {public *;}

-keep class org.apache.http.conn.ssl.BrowserCompatHostnameVerifier {public *;}
-keep class org.apache.http.conn.ssl.StrictHostnameVerifier {public *;}
-keep class org.apache.http.conn.ssl.X509HostnameVerifier {public *;}

-keep class org.apache.http.conn.ssl.SSLSocketFactory {public *;}

-keep public class com.huawei.hms.api.* {*;}
-keep public class com.huawei.hms.common.api.* {*;}
-keep public class com.huawei.hms.common.internal.AutoLifecycleFragment {*;}
-keep public class com.huawei.hms.support.api.client.* {*;}
-keep public class com.huawei.hms.support.api.core.* {*;}
-keep public class com.huawei.hms.support.api.entity.core.* {*;}
-keep public class com.huawei.hms.support.api.ResolvePendingResult {*;}

-keep class com.huawei.hms.ui.** {public *;}
-keep class !com.huawei.hms.activity.ForegroundBusDelegate$*, com.huawei.hms.activity.** {public *;}
-keep class com.huawei.hms.utils.** {public *;}
-keep class com.huawei.hms.base.** {public *;}
-keep public class com.huawei.hms.support.common.ActivityMgr {public *;}

-keep class com.huawei.hms.base.** {public *;}
-keep public class com.huawei.hms.support.log.HMSDebugger {public *;}
-keep public class com.huawei.hms.support.log.LogLevel {public *;}
-keep public class com.huawei.hms.support.log.HMSLog {public *;}
-keep class com.huawei.hms.log.** {public *;}

-keep class * implements com.huawei.agconnect.core.ServiceRegistrar
-keepclassmembers class **{
    public <init>(android.content.Context,com.huawei.agconnect.AGConnectInstance);
}

-keep class com.huawei.hms.framework.common** {!private *; }


# 业务引用打点SDK时，要保留这几个类,用于动态加载打点
-keep class com.huawei.hianalytics.process.HiAnalyticsInstance{
    public <methods>;
}
-keep class com.huawei.hianalytics.process.HiAnalyticsManager{
    public <methods>;
}
-keep class com.huawei.hianalytics.v2.HiAnalytics{
    public <methods>;
}
# 解决HBase打点的能力问题,避免业务混淆后，NetworkKit无法打点的问题
-keep class com.huawei.hms.utils.HMSBIInitializer{
    public static com.huawei.hms.utils.HMSBIInitializer getInstance(android.content.Context);
    public void initBI();
}
-keep class com.huawei.hms.support.hianalytics.HiAnalyticsUtils{
    public static com.huawei.hms.support.hianalytics.HiAnalyticsUtils getInstance();
    public void onNewEvent(android.content.Context,java.lang.String,java.util.Map);
}
-keep public enum com.huawei.hms.network.SceneType {
    *;
}
# 保留所有的public protected的api实现类，httpclient目录下的
-keep class com.huawei.secure.android.common.util.SafeBase64{
 public *;
 protected *;
 }
-keep class com.huawei.secure.android.common.util.SafeString{
 public *;
 protected *;
}


#MiPushSDK的混淆规则
-keep class com.xiaomi.mipush.sdk.MiPushMessage {*;}
-keep class com.xiaomi.mipush.sdk.MiPushCommandMessage {*;}
-keep class com.xiaomi.mipush.sdk.PushMessageReceiver {*;}
-keep class com.xiaomi.mipush.sdk.MessageHandleService {*;}
-keep class com.xiaomi.push.service.XMJobService {*;}
-keep class com.xiaomi.push.service.XMPushService {*;}
-keep class com.xiaomi.mipush.sdk.PushMessageHandler {*;}
-keep class com.xiaomi.push.service.receivers.NetworkStatusReceiver {*;}
-keep class com.xiaomi.push.service.receivers.PingReceiver {*;}
-keep class com.xiaomi.mipush.sdk.NotificationClickedActivity {*;}

-keep public class com.huawei.hms.support.api.entity.push.* { *; }


-keep class com.hihonor.push.framework.aidl.**{*;}
-keep class com.hihonor.push.sdk.common.data.**{*;}

-keep class com.hihonor.push.framework.aidl.**{*;}
-keep class com.hihonor.push.sdk.common.data.**{*;}


# 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


-keep public class com.huawei.hms.support.api.entity.opendevice.* { public *; protected *; }
-keep public class com.huawei.hms.aaid.entity.* { *;}

-dontwarn com.google.auto.value.AutoValue
-dontwarn com.google.auto.value.AutoValue$Builder


-dontwarn com.google.auto.value.AutoValue
-dontwarn com.google.auto.value.AutoValue$Builder


# b/35135904 Ensure that proguard will not strip the mResultGuardian.
-keepclassmembers class com.google.android.gms.common.api.internal.BasePendingResult {
  com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian mResultGuardian;
}




-dontwarn com.google.firebase.platforminfo.KotlinDetector
-dontwarn com.google.auto.value.AutoValue
-dontwarn com.google.auto.value.AutoValue$Builder





# Needed when building against pre-Marshmallow SDK.
-dontwarn android.security.NetworkSecurityPolicy

# Needed when building against Marshmallow SDK.
-dontwarn android.app.Notification

# Protobuf has references not on the Android boot classpath
-dontwarn sun.misc.Unsafe
-dontwarn libcore.io.Memory

# Internal Google annotations for generating Proguard keep rules.
-dontwarn com.google.android.apps.common.proguard.UsedBy*

# Annotations referenced by the SDK but whose definitions are contained in
# non-required dependencies.
-dontwarn javax.annotation.**
-dontwarn org.checkerframework.**
-dontwarn com.google.errorprone.annotations.**
-dontwarn org.jspecify.nullness.NullMarked

# Proguard flags for consumers of the Google Play services SDK
# https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project

# Keep SafeParcelable NULL value, needed for reflection by DowngradeableSafeParcel
-keepclassmembers public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

# Needed for Parcelable/SafeParcelable classes & their creators to not get renamed, as they are
# found via reflection.
-keep class com.google.android.gms.common.internal.ReflectedParcelable
-keepnames class * implements com.google.android.gms.common.internal.ReflectedParcelable
-keepclassmembers class * implements android.os.Parcelable {
  public static final *** CREATOR;
}

# Keep the classes/members we need for client functionality.
-keep @interface android.support.annotation.Keep
-keep @androidx.annotation.Keep class *
-keepclasseswithmembers class * {
  @androidx.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
  @androidx.annotation.Keep <methods>;
}

# Keep androidX equivalent of above android.support to allow Jetification.
-keep @interface androidx.annotation.Keep
-keep @androidx.annotation.Keep class *
-keepclasseswithmembers class * {
  @androidx.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
  @androidx.annotation.Keep <methods>;
}

# Keep the names of classes/members we need for client functionality.
-keep @interface com.google.android.gms.common.annotation.KeepName
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
  @com.google.android.gms.common.annotation.KeepName *;
}

# Keep Dynamite API entry points
-keep @interface com.google.android.gms.common.util.DynamiteApi
-keep @com.google.android.gms.common.util.DynamiteApi public class * {
  public <fields>;
  public <methods>;
}




-dontwarn com.google.firebase.components.Component$Instantiation
-dontwarn com.google.firebase.components.Component$ComponentType

-keep class * implements com.google.firebase.components.ComponentRegistrar
-keep,allowshrinking interface com.google.firebase.components.ComponentRegistrar




-keep interface com.huawei.hms.support.api.transport.DatagramTransport
-keepclasseswithmembers class * implements com.huawei.hms.support.api.transport.DatagramTransport {
  <init>(...);
}
-keep public class com.huawei.hms.support.api.client.* {public *;}
-keep public class com.huawei.hms.support.api.ResolvePendingResult {public *;}
-keep public class com.huawei.hms.support.api.ResolveResult {public *;}
-keep public class com.huawei.hms.support.api.PendingResultImpl {public *;}
-keep public class com.huawei.hms.support.api.ErrorResultImpl {public *;}
-keep public class com.huawei.hms.support.api.entity.core.* {public *;}
-keep public class com.huawei.hms.support.api.entity.auth.AbstractResp {public *;}
-keep public class com.huawei.hms.support.api.entity.auth.AuthCode {public *;}
-keep public class com.huawei.hms.support.api.entity.auth.Scope {public *;}
-keep public class com.huawei.hms.support.api.entity.auth.PermissionInfo {public *;}
-keep class com.huawei.hms.support.api.entity.auth.AuthCode$* {public *;}
-keep public class com.huawei.hms.support.api.core.ConnectService {public *;}
-keep public class com.huawei.hms.support.hianalytics.HiAnalyticsClient {public *;}
-keep public class com.huawei.hms.support.hianalytics.HiAnalyticsUtil {public *;}

-keep class !com.huawei.hms.update.manager.HmsApkReallySizeManager$*,
    !com.huawei.hms.update.manager.ThirdPartyMarketConfigManager$*,
    !com.huawei.hms.update.ui.AppTouchWizard$SizeCallback,
    !com.huawei.hms.update.ui.DownloadProgress$*,
    !com.huawei.hms.update.ui.ConfirmDialogs$*,
    !com.huawei.hms.update.ui.HiappWizard$SizeCallback,
    !com.huawei.hms.update.ui.HwAlertController$CheckedItemAdapter,
    !com.huawei.hms.update.ui.HwAlertController$ListViewScrollListener,
    !com.huawei.hms.update.ui.HwAlertController$BtnHandler,
    !com.huawei.hms.update.ui.SilentUpdateWizard$*,
    !com.huawei.hms.update.ui.PromptDialogs$*,
    !com.huawei.hms.update.ui.ThirdPartyMarketWizard$*,
    !com.huawei.hms.update.ui.UpdateWizard$SizeCallback,
    com.huawei.hms.update.** {public *;}

-keep class !com.huawei.hms.adapter.BaseAdapter$MPendingResultImpl, com.huawei.hms.adapter.** {public *;}
-keep class com.huawei.hms.base.** {public *;}
-keep class com.huawei.hms.availableupdate.** {public *;}

-keep class com.huawei.hms.utils.** {public *;}

-keep class !com.huawei.hms.common.internal.BindResolveClients$*,
    !com.huawei.hms.common.internal.HmsClient$BaseAdapterCallBack,
    !com.huawei.hms.common.HuaweiApi$RequestRunnable,
    com.huawei.hms.common.** {public *;}

-keep class com.huawei.hms.android.** {public *;}
-keep public class com.huawei.hms.support.log.common.Base64 {public *;}
-keep public class com.huawei.hms.support.gentyref.GenericTypeReflector {public *;}
-keep class com.huawei.hms.device.** {public *;}

-keep class org.apache.http.conn.ssl.BrowserCompatHostnameVerifier {public *;}
-keep class org.apache.http.conn.ssl.StrictHostnameVerifier {public *;}
-keep class org.apache.http.conn.ssl.X509HostnameVerifier {public *;}

-keep class org.apache.http.conn.ssl.SSLSocketFactory {public *;}

-keep class com.huawei.hms.utils.** {public *;}
-keep public class com.huawei.hms.support.hianalytics.HiAnalyticsClient {public *;}
-keep public class com.huawei.hms.support.hianalytics.HiAnalyticsConstant {public *;}
-keep public class com.huawei.hms.support.hianalytics.HiAnalyticsUtils {public *;}
-keep class com.huawei.hms.support.hianalytics.HiAnalyticsConstant$KeyAndValue {public *;}
-keep class com.huawei.hms.support.hianalytics.HiAnalyticsConstant$HaKey {public *;}
-keep class com.huawei.hms.support.hianalytics.HiAnalyticsConstant$Direction {public *;}
-keep class com.huawei.hms.stats.** {public *;}

-keep class com.huawei.hms.framework.network.grs.BuildConfig {   *; }
-keep class com.huawei.hms.framework.network.grs.GrsApi {   *; }
-keep class com.huawei.hms.framework.network.grs.GrsBaseInfo {   *; }
-keep class com.huawei.hms.framework.network.grs.GrsBaseInfo$* {*;}
-keep class com.huawei.hms.framework.network.grs.IQueryUrlCallBack {   *; }
-keep class com.huawei.hms.framework.network.grs.IQueryUrlsCallBack {   *; }
-keep class com.huawei.hms.framework.network.grs.GrsClient {   *; }
-keep class com.huawei.hms.framework.network.grs.local.model.CountryCodeBean {   *; }
-keep class com.huawei.hms.framework.network.grs.GrsApp {   *; }


-keep class com.huawei.hianalytics.** {public *;}

-keep class org.apache.http.conn.ssl.BrowserCompatHostnameVerifier {public *;}
-keep class org.apache.http.conn.ssl.StrictHostnameVerifier {public *;}
-keep class org.apache.http.conn.ssl.X509HostnameVerifier {public *;}

-keep class org.apache.http.conn.ssl.SSLSocketFactory {public *;}

-keep public class com.huawei.hms.api.* {*;}
-keep public class com.huawei.hms.common.api.* {*;}
-keep public class com.huawei.hms.common.internal.AutoLifecycleFragment {*;}
-keep public class com.huawei.hms.support.api.client.* {*;}
-keep public class com.huawei.hms.support.api.core.* {*;}
-keep public class com.huawei.hms.support.api.entity.core.* {*;}
-keep public class com.huawei.hms.support.api.ResolvePendingResult {*;}

-keep class com.huawei.hms.ui.** {public *;}
-keep class !com.huawei.hms.activity.ForegroundBusDelegate$*, com.huawei.hms.activity.** {public *;}
-keep class com.huawei.hms.utils.** {public *;}
-keep class com.huawei.hms.base.** {public *;}
-keep public class com.huawei.hms.support.common.ActivityMgr {public *;}

-keep class com.huawei.hms.base.** {public *;}
-keep public class com.huawei.hms.support.log.HMSDebugger {public *;}
-keep public class com.huawei.hms.support.log.LogLevel {public *;}
-keep public class com.huawei.hms.support.log.HMSLog {public *;}
-keep class com.huawei.hms.log.** {public *;}

-keep class * implements com.huawei.agconnect.core.ServiceRegistrar
-keepclassmembers class **{
    public <init>(android.content.Context,com.huawei.agconnect.AGConnectInstance);
}

-keep class com.huawei.hms.framework.common** {!private *; }


# 业务引用打点SDK时，要保留这几个类,用于动态加载打点
-keep class com.huawei.hianalytics.process.HiAnalyticsInstance{
    public <methods>;
}
-keep class com.huawei.hianalytics.process.HiAnalyticsManager{
    public <methods>;
}
-keep class com.huawei.hianalytics.v2.HiAnalytics{
    public <methods>;
}
# 解决HBase打点的能力问题,避免业务混淆后，NetworkKit无法打点的问题
-keep class com.huawei.hms.utils.HMSBIInitializer{
    public static com.huawei.hms.utils.HMSBIInitializer getInstance(android.content.Context);
    public void initBI();
}
-keep class com.huawei.hms.support.hianalytics.HiAnalyticsUtils{
    public static com.huawei.hms.support.hianalytics.HiAnalyticsUtils getInstance();
    public void onNewEvent(android.content.Context,java.lang.String,java.util.Map);
}
-keep public enum com.huawei.hms.network.SceneType {
    *;
}
# 保留所有的public protected的api实现类，httpclient目录下的
-keep class com.huawei.secure.android.common.util.SafeBase64{
 public *;
 protected *;
 }
-keep class com.huawei.secure.android.common.util.SafeString{
 public *;
 protected *;
}
