

-ignorewarnings
-optimizationpasses 5
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*,Signature,EnclosingMethod,InnerClasses,SourceFile,LineNumberTable
-keep class * implements java.io.Serializable {
    public static final long serialVersionUID;
}

# YIM
-keep class com.yim.YIM{*;}
-keep class com.yim.YIM$Companion{*;}
-keep class com.yim._YIMUtilsManager{*;}
-keep class com.yim._YIMUserManager{*;}
-keep class com.yim._YIMListenerManager{*;}
-keep class com.yim._YIMConversationManager{*;}
-keep class com.yim._YIMMessageManager{*;}
-keep class com.yim._YIMTeamManager{*;}
-keep class com.yim._YIMEventManager{*;}
-keep class com.yim.manager.**$*{*;}
-keep class com.yim.core.**{*;}
-keep class com.yim.model.**{*;}
-keep class com.yim.utils.**$*{*;}

# Native methods
-keepclasseswithmembernames class io.objectbox.** {
    native <methods>;
}

# For __boxStore field in entities
-keep class io.objectbox.**{*;}
-keep class io.objectbox.BoxStore

-keep class * extends io.objectbox.Cursor {
    <init>(...);
}

# Native code expects names to match
-keep class io.objectbox.relation.ToOne {
    void setTargetId(long);
}
-keep class io.objectbox.relation.ToMany
-keep class io.objectbox.tree.LeafNode

-keep @interface io.objectbox.annotation.Entity

# Keep entity constructors
-keep @io.objectbox.annotation.Entity class * { <init>(...); }

# For relation ID fields
-keepclassmembers @io.objectbox.annotation.Entity class * {
    <fields>;
}

-keep interface io.objectbox.converter.PropertyConverter {*;}
-keep class * implements io.objectbox.converter.PropertyConverter {*;}

-keep class io.objectbox.exception.DbException {*;}
-keep class * extends io.objectbox.exception.DbException {*;}

-keep class io.objectbox.exception.DbExceptionListener {*;}
-keep class * implements io.objectbox.exception.DbExceptionListener {*;}

# for essentials
-dontwarn sun.misc.Unsafe
# SpotBugs annotations
-dontwarn edu.umd.cs.findbugs.annotations.SuppressFBWarnings

-keep class com.alibaba.sdk.android.oss.** { *; }
-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**

# other
-keep class okhttp3.**{*;}
-keep class okio.**{*;}
-keep class com.google.**{*;}
-keep class com.otaliastudios.**{*;}
-keep class com.fastjson.**{*;}
-keep class javax.**{*;}
-keep class de.huxhorn.**{*;}
-keep class org.greenrobot.**{*;}
-keep class org.json.**{*;}
-keep class com.ypush.**{*;}
-keep class top.zibin.**{*;}

-dontwarn java.awt.Color
-dontwarn java.awt.Font
-dontwarn java.awt.Point
-dontwarn java.awt.Rectangle
-dontwarn javax.money.CurrencyUnit
-dontwarn javax.money.Monetary
-dontwarn org.bouncycastle.crypto.BlockCipher
-dontwarn org.bouncycastle.crypto.engines.AESEngine
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandom
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandomBuilder
-dontwarn org.conscrypt.Conscrypt$ProviderBuilder
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.javamoney.moneta.Money
-dontwarn org.joda.time.DateTime
-dontwarn org.joda.time.DateTimeZone
-dontwarn org.joda.time.Duration
-dontwarn org.joda.time.Instant
-dontwarn org.joda.time.LocalDate
-dontwarn org.joda.time.LocalDateTime
-dontwarn org.joda.time.LocalTime
-dontwarn org.joda.time.Period
-dontwarn org.joda.time.ReadablePartial
-dontwarn org.joda.time.format.DateTimeFormat
-dontwarn org.joda.time.format.DateTimeFormatter
-dontwarn springfox.documentation.spring.web.json.Json

# When editing this file, also look at objectbox-java.pro of objectbox-java.

# Accessed by objectbox-java through reflection.
-keep class io.objectbox.android.internal.AndroidPlatform {*;}

# For provided android.arch.lifecycle:extensions
-dontwarn io.objectbox.android.ObjectBoxLiveData

# For provided android.arch.paging:runtime
-dontwarn io.objectbox.android.ObjectBoxDataSource*




#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.* { *; }


-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}

-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}




#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.* { *; }


-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}

-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}





# When editing this file, also look at objectbox-java.pro of objectbox-java.

# Accessed by objectbox-java through reflection.
-keep class io.objectbox.android.internal.AndroidPlatform {*;}

# For provided android.arch.lifecycle:extensions
-dontwarn io.objectbox.android.ObjectBoxLiveData

# For provided android.arch.paging:runtime
-dontwarn io.objectbox.android.ObjectBoxDataSource*


-ignorewarnings
-dontpreverify
-dontoptimize
-optimizationpasses 5
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*,Signature,EnclosingMethod,InnerClasses,SourceFile,LineNumberTable
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep class * implements java.io.Serializable {
    public static final long serialVersionUID;
}

# YIM
-keep class com.ypush.YPush{public *;}
-keep class com.ypush.YPush$Companion {
    <fields>;
    <methods>;
}
-keep class com.ypush.model.**{public *;}

# push
-keep class com.huawei.**{*;}
-keep class com.heytap.** { *;}
-keep class com.hihonor.**{*;}
-keep class com.meizu.**{*;}
-keep class com.vivo.**{*;}
-keep class com.xiaomi.**{*;}

# other
-keep class okhttp3.**{*;}
-keep class okio.**{*;}
-keep class com.google.**{*;}

-dontwarn com.huawei.android.os.BuildEx$VERSION
-dontwarn com.huawei.hianalytics.process.HiAnalyticsInstance
-dontwarn com.huawei.hianalytics.process.HiAnalyticsManager
-dontwarn java.awt.Color
-dontwarn java.awt.Font
-dontwarn java.awt.Point
-dontwarn java.awt.Rectangle
-dontwarn javax.money.CurrencyUnit
-dontwarn javax.money.Monetary
-dontwarn org.bouncycastle.crypto.BlockCipher
-dontwarn org.bouncycastle.crypto.engines.AESEngine
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandom
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandomBuilder
-dontwarn org.conscrypt.Conscrypt$ProviderBuilder
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.javamoney.moneta.Money
-dontwarn org.joda.time.DateTime
-dontwarn org.joda.time.DateTimeZone
-dontwarn org.joda.time.Duration
-dontwarn org.joda.time.Instant
-dontwarn org.joda.time.LocalDate
-dontwarn org.joda.time.LocalDateTime
-dontwarn org.joda.time.LocalTime
-dontwarn org.joda.time.Period
-dontwarn org.joda.time.ReadablePartial
-dontwarn org.joda.time.format.DateTimeFormat
-dontwarn org.joda.time.format.DateTimeFormatter
-dontwarn springfox.documentation.spring.web.json.Json

#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 class * implements com.huawei.agconnect.core.ServiceRegistrar
-keepclassmembers class **{
    public <init>(android.content.Context,com.huawei.agconnect.AGConnectInstance);
}

-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 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 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.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.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 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 *;}

# 业务引用打点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 *;
}

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


-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 public class com.huawei.hms.support.api.entity.opendevice.* { public *; protected *; }
-keep public class com.huawei.hms.aaid.entity.* { *;}

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

-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.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 *;}


-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}

-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}




#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 class * implements com.huawei.agconnect.core.ServiceRegistrar
-keepclassmembers class **{
    public <init>(android.content.Context,com.huawei.agconnect.AGConnectInstance);
}

-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 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 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.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.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 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 *;}

# 业务引用打点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 *;
}

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


-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 public class com.huawei.hms.support.api.entity.opendevice.* { public *; protected *; }
-keep public class com.huawei.hms.aaid.entity.* { *;}

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

-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.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 *;}


-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}

-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}






-ignorewarnings
-optimizationpasses 5
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*,Signature,EnclosingMethod,InnerClasses,SourceFile,LineNumberTable
-keep class * implements java.io.Serializable {
    public static final long serialVersionUID;
}

# YIM
-keep class com.yim.YIM{*;}
-keep class com.yim.YIM$Companion{*;}
-keep class com.yim._YIMUtilsManager{*;}
-keep class com.yim._YIMUserManager{*;}
-keep class com.yim._YIMListenerManager{*;}
-keep class com.yim._YIMConversationManager{*;}
-keep class com.yim._YIMMessageManager{*;}
-keep class com.yim._YIMTeamManager{*;}
-keep class com.yim._YIMEventManager{*;}
-keep class com.yim.manager.**$*{*;}
-keep class com.yim.core.**{*;}
-keep class com.yim.model.**{*;}
-keep class com.yim.utils.**$*{*;}

# Native methods
-keepclasseswithmembernames class io.objectbox.** {
    native <methods>;
}

# For __boxStore field in entities
-keep class io.objectbox.**{*;}
-keep class io.objectbox.BoxStore

-keep class * extends io.objectbox.Cursor {
    <init>(...);
}

# Native code expects names to match
-keep class io.objectbox.relation.ToOne {
    void setTargetId(long);
}
-keep class io.objectbox.relation.ToMany
-keep class io.objectbox.tree.LeafNode

-keep @interface io.objectbox.annotation.Entity

# Keep entity constructors
-keep @io.objectbox.annotation.Entity class * { <init>(...); }

# For relation ID fields
-keepclassmembers @io.objectbox.annotation.Entity class * {
    <fields>;
}

-keep interface io.objectbox.converter.PropertyConverter {*;}
-keep class * implements io.objectbox.converter.PropertyConverter {*;}

-keep class io.objectbox.exception.DbException {*;}
-keep class * extends io.objectbox.exception.DbException {*;}

-keep class io.objectbox.exception.DbExceptionListener {*;}
-keep class * implements io.objectbox.exception.DbExceptionListener {*;}

# for essentials
-dontwarn sun.misc.Unsafe
# SpotBugs annotations
-dontwarn edu.umd.cs.findbugs.annotations.SuppressFBWarnings

-keep class com.alibaba.sdk.android.oss.** { *; }
-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**

# other
-keep class okhttp3.**{*;}
-keep class okio.**{*;}
-keep class com.google.**{*;}
-keep class com.otaliastudios.**{*;}
-keep class com.fastjson.**{*;}
-keep class javax.**{*;}
-keep class de.huxhorn.**{*;}
-keep class org.greenrobot.**{*;}
-keep class org.json.**{*;}
-keep class com.ypush.**{*;}
-keep class top.zibin.**{*;}

-dontwarn java.awt.Color
-dontwarn java.awt.Font
-dontwarn java.awt.Point
-dontwarn java.awt.Rectangle
-dontwarn javax.money.CurrencyUnit
-dontwarn javax.money.Monetary
-dontwarn org.bouncycastle.crypto.BlockCipher
-dontwarn org.bouncycastle.crypto.engines.AESEngine
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandom
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandomBuilder
-dontwarn org.conscrypt.Conscrypt$ProviderBuilder
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.javamoney.moneta.Money
-dontwarn org.joda.time.DateTime
-dontwarn org.joda.time.DateTimeZone
-dontwarn org.joda.time.Duration
-dontwarn org.joda.time.Instant
-dontwarn org.joda.time.LocalDate
-dontwarn org.joda.time.LocalDateTime
-dontwarn org.joda.time.LocalTime
-dontwarn org.joda.time.Period
-dontwarn org.joda.time.ReadablePartial
-dontwarn org.joda.time.format.DateTimeFormat
-dontwarn org.joda.time.format.DateTimeFormatter
-dontwarn springfox.documentation.spring.web.json.Json

# When editing this file, also look at objectbox-java.pro of objectbox-java.

# Accessed by objectbox-java through reflection.
-keep class io.objectbox.android.internal.AndroidPlatform {*;}

# For provided android.arch.lifecycle:extensions
-dontwarn io.objectbox.android.ObjectBoxLiveData

# For provided android.arch.paging:runtime
-dontwarn io.objectbox.android.ObjectBoxDataSource*




#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.* { *; }


-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}

-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}




#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.* { *; }


-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}

-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}





# When editing this file, also look at objectbox-java.pro of objectbox-java.

# Accessed by objectbox-java through reflection.
-keep class io.objectbox.android.internal.AndroidPlatform {*;}

# For provided android.arch.lifecycle:extensions
-dontwarn io.objectbox.android.ObjectBoxLiveData

# For provided android.arch.paging:runtime
-dontwarn io.objectbox.android.ObjectBoxDataSource*


-ignorewarnings
-dontpreverify
-dontoptimize
-optimizationpasses 5
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*,Signature,EnclosingMethod,InnerClasses,SourceFile,LineNumberTable
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep class * implements java.io.Serializable {
    public static final long serialVersionUID;
}

# YIM
-keep class com.ypush.YPush{public *;}
-keep class com.ypush.YPush$Companion {
    <fields>;
    <methods>;
}
-keep class com.ypush.model.**{public *;}

# push
-keep class com.huawei.**{*;}
-keep class com.heytap.** { *;}
-keep class com.hihonor.**{*;}
-keep class com.meizu.**{*;}
-keep class com.vivo.**{*;}
-keep class com.xiaomi.**{*;}

# other
-keep class okhttp3.**{*;}
-keep class okio.**{*;}
-keep class com.google.**{*;}

-dontwarn com.huawei.android.os.BuildEx$VERSION
-dontwarn com.huawei.hianalytics.process.HiAnalyticsInstance
-dontwarn com.huawei.hianalytics.process.HiAnalyticsManager
-dontwarn java.awt.Color
-dontwarn java.awt.Font
-dontwarn java.awt.Point
-dontwarn java.awt.Rectangle
-dontwarn javax.money.CurrencyUnit
-dontwarn javax.money.Monetary
-dontwarn org.bouncycastle.crypto.BlockCipher
-dontwarn org.bouncycastle.crypto.engines.AESEngine
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandom
-dontwarn org.bouncycastle.crypto.prng.SP800SecureRandomBuilder
-dontwarn org.conscrypt.Conscrypt$ProviderBuilder
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.javamoney.moneta.Money
-dontwarn org.joda.time.DateTime
-dontwarn org.joda.time.DateTimeZone
-dontwarn org.joda.time.Duration
-dontwarn org.joda.time.Instant
-dontwarn org.joda.time.LocalDate
-dontwarn org.joda.time.LocalDateTime
-dontwarn org.joda.time.LocalTime
-dontwarn org.joda.time.Period
-dontwarn org.joda.time.ReadablePartial
-dontwarn org.joda.time.format.DateTimeFormat
-dontwarn org.joda.time.format.DateTimeFormatter
-dontwarn springfox.documentation.spring.web.json.Json

#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 class * implements com.huawei.agconnect.core.ServiceRegistrar
-keepclassmembers class **{
    public <init>(android.content.Context,com.huawei.agconnect.AGConnectInstance);
}

-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 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 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.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.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 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 *;}

# 业务引用打点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 *;
}

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


-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 public class com.huawei.hms.support.api.entity.opendevice.* { public *; protected *; }
-keep public class com.huawei.hms.aaid.entity.* { *;}

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

-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.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 *;}


-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}

-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}




#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 class * implements com.huawei.agconnect.core.ServiceRegistrar
-keepclassmembers class **{
    public <init>(android.content.Context,com.huawei.agconnect.AGConnectInstance);
}

-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 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 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.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.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 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 *;}

# 业务引用打点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 *;
}

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


-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 public class com.huawei.hms.support.api.entity.opendevice.* { public *; protected *; }
-keep public class com.huawei.hms.aaid.entity.* { *;}

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

-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.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 *;}


-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}

-keepclassmembers public class com.hihonor.push.sdk.common.* {*;}





