Browse Source

删除安卓+后台的数据

apple 6 năm trước cách đây
mục cha
commit
59e036f168
100 tập tin đã thay đổi với 0 bổ sung7966 xóa
  1. BIN
      android/.DS_Store
  2. 0 4
      android/app/.gitignore
  3. 0 82
      android/app/build.gradle
  4. BIN
      android/app/jyApp.jks
  5. BIN
      android/app/libs/SocialSDK_QQ_Simplify.jar
  6. BIN
      android/app/libs/SocialSDK_WeChat_Simplify.jar
  7. BIN
      android/app/libs/arm64-v8a/libjcore119.so
  8. BIN
      android/app/libs/armeabi-v7a/libjcore119.so
  9. BIN
      android/app/libs/armeabi/libjcore119.so
  10. BIN
      android/app/libs/jcore-android-1.1.9.jar
  11. BIN
      android/app/libs/jpush-android-3.1.1.jar
  12. BIN
      android/app/libs/mips/libjcore119.so
  13. BIN
      android/app/libs/mips64/libjcore119.so
  14. BIN
      android/app/libs/mobileshieldsdk.jar
  15. BIN
      android/app/libs/umeng_shareboard_widget.jar
  16. BIN
      android/app/libs/umeng_social_api.jar
  17. BIN
      android/app/libs/umeng_social_net.jar
  18. BIN
      android/app/libs/umeng_social_shareboard.jar
  19. BIN
      android/app/libs/umeng_social_tool.jar
  20. BIN
      android/app/libs/x86/libjcore119.so
  21. BIN
      android/app/libs/x86_64/libjcore119.so
  22. 0 298
      android/app/proguard-rules.pro
  23. BIN
      android/app/src/main/.DS_Store
  24. 0 320
      android/app/src/main/AndroidManifest.xml
  25. BIN
      android/app/src/main/ic_launcher-web.png
  26. 0 320
      android/app/src/main/java/com/huawei/android/hms/agent/HMSAgent.java
  27. 0 293
      android/app/src/main/java/com/huawei/android/hms/agent/common/ActivityMgr.java
  28. 0 580
      android/app/src/main/java/com/huawei/android/hms/agent/common/ApiClientMgr.java
  29. 0 40
      android/app/src/main/java/com/huawei/android/hms/agent/common/BaseAgentActivity.java
  30. 0 12
      android/app/src/main/java/com/huawei/android/hms/agent/common/BaseApiAgent.java
  31. 0 24
      android/app/src/main/java/com/huawei/android/hms/agent/common/CallbackCodeRunnable.java
  32. 0 26
      android/app/src/main/java/com/huawei/android/hms/agent/common/CallbackResultRunnable.java
  33. 0 76
      android/app/src/main/java/com/huawei/android/hms/agent/common/CheckUpdateApi.java
  34. 0 26
      android/app/src/main/java/com/huawei/android/hms/agent/common/EmptyConnectCallback.java
  35. 0 62
      android/app/src/main/java/com/huawei/android/hms/agent/common/HMSAgentActivity.java
  36. 0 114
      android/app/src/main/java/com/huawei/android/hms/agent/common/HMSAgentLog.java
  37. 0 16
      android/app/src/main/java/com/huawei/android/hms/agent/common/IActivityDestroyedCallback.java
  38. 0 15
      android/app/src/main/java/com/huawei/android/hms/agent/common/IActivityPauseCallback.java
  39. 0 15
      android/app/src/main/java/com/huawei/android/hms/agent/common/IActivityResumeCallback.java
  40. 0 15
      android/app/src/main/java/com/huawei/android/hms/agent/common/IClientConnectCallback.java
  41. 0 7
      android/app/src/main/java/com/huawei/android/hms/agent/common/INoProguard.java
  42. 0 19
      android/app/src/main/java/com/huawei/android/hms/agent/common/IOUtils.java
  43. 0 15
      android/app/src/main/java/com/huawei/android/hms/agent/common/StrUtils.java
  44. 0 58
      android/app/src/main/java/com/huawei/android/hms/agent/common/ThreadUtil.java
  45. 0 27
      android/app/src/main/java/com/huawei/android/hms/agent/common/UIUtils.java
  46. 0 7
      android/app/src/main/java/com/huawei/android/hms/agent/common/handler/CheckUpdateHandler.java
  47. 0 12
      android/app/src/main/java/com/huawei/android/hms/agent/common/handler/ConnectHandler.java
  48. 0 12
      android/app/src/main/java/com/huawei/android/hms/agent/common/handler/ICallbackCode.java
  49. 0 13
      android/app/src/main/java/com/huawei/android/hms/agent/common/handler/ICallbackResult.java
  50. 0 86
      android/app/src/main/java/com/huawei/android/hms/agent/push/DeleteTokenApi.java
  51. 0 74
      android/app/src/main/java/com/huawei/android/hms/agent/push/EnableReceiveNormalMsgApi.java
  52. 0 74
      android/app/src/main/java/com/huawei/android/hms/agent/push/EnableReceiveNotifyMsgApi.java
  53. 0 67
      android/app/src/main/java/com/huawei/android/hms/agent/push/GetPushStateApi.java
  54. 0 112
      android/app/src/main/java/com/huawei/android/hms/agent/push/GetTokenApi.java
  55. 0 66
      android/app/src/main/java/com/huawei/android/hms/agent/push/QueryAgreementApi.java
  56. 0 9
      android/app/src/main/java/com/huawei/android/hms/agent/push/handler/DeleteTokenHandler.java
  57. 0 9
      android/app/src/main/java/com/huawei/android/hms/agent/push/handler/EnableReceiveNormalMsgHandler.java
  58. 0 9
      android/app/src/main/java/com/huawei/android/hms/agent/push/handler/EnableReceiveNotifyMsgHandler.java
  59. 0 9
      android/app/src/main/java/com/huawei/android/hms/agent/push/handler/GetPushStateHandler.java
  60. 0 9
      android/app/src/main/java/com/huawei/android/hms/agent/push/handler/GetTokenHandler.java
  61. 0 9
      android/app/src/main/java/com/huawei/android/hms/agent/push/handler/QueryAgreementHandler.java
  62. 0 50
      android/app/src/main/java/com/topsoft/jianyu/App.java
  63. 0 248
      android/app/src/main/java/com/topsoft/jianyu/ExternalWebPage.java
  64. 0 450
      android/app/src/main/java/com/topsoft/jianyu/JyObj.java
  65. 0 235
      android/app/src/main/java/com/topsoft/jianyu/MainActivity.java
  66. 0 243
      android/app/src/main/java/com/topsoft/jianyu/MainHandler.java
  67. 0 36
      android/app/src/main/java/com/topsoft/jianyu/SQLite/DBHelper.java
  68. 0 468
      android/app/src/main/java/com/topsoft/jianyu/SQLite/DbBase.java
  69. 0 153
      android/app/src/main/java/com/topsoft/jianyu/SQLite/JyMessage.java
  70. 0 168
      android/app/src/main/java/com/topsoft/jianyu/WebFragment/Common.java
  71. 0 63
      android/app/src/main/java/com/topsoft/jianyu/WebFragment/KeysetFragment.java
  72. 0 63
      android/app/src/main/java/com/topsoft/jianyu/WebFragment/LaboratoryFragment.java
  73. 0 63
      android/app/src/main/java/com/topsoft/jianyu/WebFragment/MeFragment.java
  74. 0 83
      android/app/src/main/java/com/topsoft/jianyu/WebFragment/SearchFragment.java
  75. 0 113
      android/app/src/main/java/com/topsoft/jianyu/WelcomePage.java
  76. 0 209
      android/app/src/main/java/com/topsoft/jianyu/appUpdate/UpdateVersionController.java
  77. 0 273
      android/app/src/main/java/com/topsoft/jianyu/bottomBar/BottomBarItem.java
  78. 0 266
      android/app/src/main/java/com/topsoft/jianyu/bottomBar/BottomBarLayout.java
  79. 0 34
      android/app/src/main/java/com/topsoft/jianyu/bottomBar/UIUtils.java
  80. 0 123
      android/app/src/main/java/com/topsoft/jianyu/listener/CustomLoginListerner.java
  81. 0 56
      android/app/src/main/java/com/topsoft/jianyu/listener/CustomRemoveLoginListerner.java
  82. 0 90
      android/app/src/main/java/com/topsoft/jianyu/listener/CustomShareListener.java
  83. 0 99
      android/app/src/main/java/com/topsoft/jianyu/listener/KeyBoardListener.java
  84. 0 47
      android/app/src/main/java/com/topsoft/jianyu/push/HuaweiPushCustomActivity.java
  85. 0 70
      android/app/src/main/java/com/topsoft/jianyu/push/HuaweiRevicer.java
  86. 0 139
      android/app/src/main/java/com/topsoft/jianyu/push/JpushReceiver.java
  87. 0 218
      android/app/src/main/java/com/topsoft/jianyu/push/notifyUtil.java
  88. 0 46
      android/app/src/main/java/com/topsoft/jianyu/util/AppConstant.java
  89. 0 216
      android/app/src/main/java/com/topsoft/jianyu/util/AppUtil.java
  90. 0 71
      android/app/src/main/java/com/topsoft/jianyu/util/Base64Encoder.java
  91. 0 230
      android/app/src/main/java/com/topsoft/jianyu/util/FlymeStatusbarUtils.java
  92. 0 101
      android/app/src/main/java/com/topsoft/jianyu/util/HttpUtil.java
  93. 0 53
      android/app/src/main/java/com/topsoft/jianyu/util/LoadingUtils.java
  94. 0 68
      android/app/src/main/java/com/topsoft/jianyu/util/SecretUtil.java
  95. 0 50
      android/app/src/main/java/com/topsoft/jianyu/util/StringUtil.java
  96. 0 9
      android/app/src/main/java/com/topsoft/jianyu/wxapi/WXEntryActivity.java
  97. BIN
      android/app/src/main/res/drawable-hdpi/border_bg.9.png
  98. BIN
      android/app/src/main/res/drawable-hdpi/bottom_bg.9.png
  99. 0 8
      android/app/src/main/res/drawable-hdpi/bottombar_backgroud.xml
  100. 0 13
      android/app/src/main/res/drawable-hdpi/btn_normal.xml

BIN
android/.DS_Store


+ 0 - 4
android/app/.gitignore

@@ -1,4 +0,0 @@
-/build
-/topnet
-/yingyongbao
-/app.iml

+ 0 - 82
android/app/build.gradle

@@ -1,82 +0,0 @@
-apply plugin: 'com.android.application'
-
-android {
-    compileSdkVersion 26
-    defaultConfig {
-        applicationId "com.topsoft.jianyu"
-        minSdkVersion 19
-        targetSdkVersion 26
-        versionCode 1
-        versionName "2.5.1.1"
-        flavorDimensions "different"
-        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
-    }
-    buildTypes {
-        release {
-            buildConfigField "boolean", "LOG_DEBUG", "false" //不显示log
-            //zipAlignEnabled true     //Zipalign优化
-            //shrinkResources true    // 移除无用的resource文件
-            minifyEnabled true     //混淆
-            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
-        }
-        debug {
-            buildConfigField "boolean", "LOG_DEBUG", "false" //不显示log
-            //zipAlignEnabled true     //Zipalign优化
-            //shrinkResources true    // 移除无用的resource文件
-            minifyEnabled true     //混淆
-            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
-        }
-    }
-    android.applicationVariants.all { variant ->
-        variant.outputs.all {
-            if (outputFileName.endsWith(".apk")) {
-                def flavorName = variant.flavorName
-                def buildTypeName = variant.buildType.name
-                outputFileName = "jyapp_" + flavorName + "_" + buildTypeName + "_V${versionName}.apk"
-            }
-        }
-    }
-    /*多渠道打包------------------------------------------------------*/
-    productFlavors {
-        yingyongbao {}
-        baidu {}
-        wandoujia {}
-        xiaomi {}
-        huawei {}
-        meizu {}
-        topnet {}
-    }
-    productFlavors.all {
-        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
-    }
-    /*多渠道打包------------------------------------------------------*/
-    signingConfigs {
-        debug {
-            storeFile file('jyApp.jks')
-            storePassword "jytop@123"
-            keyAlias "key0"
-            keyPassword "jytop@123"
-        }
-    }
-    sourceSets {
-        main {
-            jniLibs.srcDirs = ['libs']
-        }
-    }
-}
-
-dependencies {
-    implementation fileTree(dir: 'libs', include: ['*.jar','*.so'])
-    implementation 'com.android.support:appcompat-v7:26.1.0'
-    implementation 'com.android.support:design:26.1.0'
-    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
-    testImplementation 'junit:junit:4.12'
-
-
-    androidTestImplementation 'com.android.support.test:runner:1.0.1'
-    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
-    compile 'com.umeng.sdk:common:latest.integration'
-    compile'com.umeng.analytics:analytics:latest.integration'
-    compile 'com.umeng.sdk:utdid:1.1.5.3'
-    compile 'com.huawei.android.hms:push:2.6.1.301'
-}

BIN
android/app/jyApp.jks


BIN
android/app/libs/SocialSDK_QQ_Simplify.jar


BIN
android/app/libs/SocialSDK_WeChat_Simplify.jar


BIN
android/app/libs/arm64-v8a/libjcore119.so


BIN
android/app/libs/armeabi-v7a/libjcore119.so


BIN
android/app/libs/armeabi/libjcore119.so


BIN
android/app/libs/jcore-android-1.1.9.jar


BIN
android/app/libs/jpush-android-3.1.1.jar


BIN
android/app/libs/mips/libjcore119.so


BIN
android/app/libs/mips64/libjcore119.so


BIN
android/app/libs/mobileshieldsdk.jar


BIN
android/app/libs/umeng_shareboard_widget.jar


BIN
android/app/libs/umeng_social_api.jar


BIN
android/app/libs/umeng_social_net.jar


BIN
android/app/libs/umeng_social_shareboard.jar


BIN
android/app/libs/umeng_social_tool.jar


BIN
android/app/libs/x86/libjcore119.so


BIN
android/app/libs/x86_64/libjcore119.so


+ 0 - 298
android/app/proguard-rules.pro

@@ -1,298 +0,0 @@
-# 指定代码的压缩级别 0 - 7(指定代码进行迭代优化的次数,在Android里面默认是5,这条指令也只有在可以优化时起作用。)
--optimizationpasses 5
-# 混淆时不会产生形形色色的类名(混淆时不使用大小写混合类名)
--dontusemixedcaseclassnames
-# 指定不去忽略非公共的库类(不跳过library中的非public的类)
--dontskipnonpubliclibraryclasses
-# 指定不去忽略包可见的库类的成员
--dontskipnonpubliclibraryclassmembers
-#不进行优化,建议使用此选项,
--dontoptimize
- # 不进行预校验,Android不需要,可加快混淆速度。
--dontpreverify
-# 屏蔽警告
--ignorewarnings
-# 指定混淆是采用的算法,后面的参数是一个过滤器
-# 这个过滤器是谷歌推荐的算法,一般不做更改
--optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-# 保护代码中的Annotation不被混淆
--keepattributes *Annotation*
-# 避免混淆泛型, 这在JSON实体映射时非常重要
--keepattributes Signature
-# 抛出异常时保留代码行号
--keepattributes SourceFile,LineNumberTable
- #优化时允许访问并修改有修饰符的类和类的成员,这可以提高优化步骤的结果。
-# 比如,当内联一个公共的getter方法时,这也可能需要外地公共访问。
-# 虽然java二进制规范不需要这个,要不然有的虚拟机处理这些代码会有问题。当有优化和使用-repackageclasses时才适用。
-#指示语:不能用这个指令处理库中的代码,因为有的类和类成员没有设计成public ,而在api中可能变成public
--allowaccessmodification
-#当有优化和使用-repackageclasses时才适用。
--repackageclasses ''
- # 混淆时记录日志(打印混淆的详细信息)
- # 这句话能够使我们的项目混淆后产生映射文件
- # 包含有类名->混淆后类名的映射关系
--verbose
-
-#
-# ----------------------------- 默认保留 -----------------------------
-#
-#----------------------------------------------------
-# 保持哪些类不被混淆
-#继承activity,application,service,broadcastReceiver,contentprovider....不进行混淆
--keep public class * extends android.app.Activity
--keep public class * extends android.app.Application
--keep public class * extends android.support.multidex.MultiDexApplication
--keep public class * extends android.app.Service
--keep public class * extends android.content.BroadcastReceiver
--keep public class * extends android.content.ContentProvider
--keep public class * extends android.app.backup.BackupAgentHelper
--keep public class * extends android.preference.Preference
--keep public class * extends android.view.View
--keep class android.support.** {*;}## 保留support下的所有类及其内部类
-
--keep public class com.google.vending.licensing.ILicensingService
--keep public class com.android.vending.licensing.ILicensingService
-#表示不混淆上面声明的类,最后这两个类我们基本也用不上,是接入Google原生的一些服务时使用的。
-#----------------------------------------------------
-
-# 保留继承的
--keep public class * extends android.support.v4.**
--keep public class * extends android.support.v7.**
--keep public class * extends android.support.annotation.**
-
-
-#表示不混淆任何包含native方法的类的类名以及native方法名,这个和我们刚才验证的结果是一致
--keepclasseswithmembernames class * {
-    native <methods>;
-}
-
-
-#这个主要是在layout 中写的onclick方法android:onclick="onClick",不进行混淆
-#表示不混淆Activity中参数是View的方法,因为有这样一种用法,在XML中配置android:onClick=”buttonClick”属性,
-#当用户点击该按钮时就会调用Activity中的buttonClick(View view)方法,如果这个方法被混淆的话就找不到了
--keepclassmembers class * extends android.app.Activity{
-    public void *(android.view.View);
-}
-
-#表示不混淆枚举中的values()和valueOf()方法,枚举我用的非常少,这个就不评论了
--keepclassmembers enum * {
-    public static **[] values();
-    public static ** valueOf(java.lang.String);
-}
-
-#表示不混淆任何一个View中的setXxx()和getXxx()方法,
-#因为属性动画需要有相应的setter和getter的方法实现,混淆了就无法工作了。
--keep public class * extends android.view.View{
-    *** get*();
-    void set*(***);
-    public <init>(android.content.Context);
-    public <init>(android.content.Context, android.util.AttributeSet);
-    public <init>(android.content.Context, android.util.AttributeSet, int);
-}
--keepclasseswithmembers class * {
-    public <init>(android.content.Context, android.util.AttributeSet);
-    public <init>(android.content.Context, android.util.AttributeSet, int);
-}
-
-#表示不混淆Parcelable实现类中的CREATOR字段,
-#毫无疑问,CREATOR字段是绝对不能改变的,包括大小写都不能变,不然整个Parcelable工作机制都会失败。
--keep class * implements android.os.Parcelable {
-  public static final android.os.Parcelable$Creator *;
-}
-# 这指定了继承Serizalizable的类的如下成员不被移除混淆
--keepclassmembers class * implements java.io.Serializable {
-    static final long serialVersionUID;
-    private 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();
-}
-# 保留R下面的资源
-#-keep class **.R$* {
-# *;
-#}
-#不混淆资源类下static的
--keepclassmembers class **.R$* {
-    public static <fields>;
-}
-
-# 对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆
--keepclassmembers class * {
-    void *(**On*Event);
-    void *(**On*Listener);
-}
-
-# 保留我们自定义控件(继承自View)不被混淆
--keep public class * extends android.view.View{
-    *** get*();
-    void set*(***);
-    public <init>(android.content.Context);
-    public <init>(android.content.Context, android.util.AttributeSet);
-    public <init>(android.content.Context, android.util.AttributeSet, int);
-}
-
-#
-#----------------------------- WebView(项目中没有可以忽略) -----------------------------
-#
-#webView需要进行特殊处理
--keepclassmembers class fqcn.of.javascript.interface.for.Webview {
-   public *;
-}
--keepclassmembers class * extends android.webkit.WebViewClient {
-    public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
-    public boolean *(android.webkit.WebView, java.lang.String);
-}
--keepclassmembers class * extends android.webkit.WebViewClient {
-    public void *(android.webkit.WebView, jav.lang.String);
-}
-#在app中与HTML5的JavaScript的交互进行特殊处理
-#我们需要确保这些js要调用的原生方法不能够被混淆,于是我们需要做如下处理:
--keepclassmembers class com.ljd.example.JSInterface {
-    <methods>;
-}
-
-#
-#---------------------------------实体类---------------------------------
-#--------(实体Model不能混淆,否则找不到对应的属性获取不到值)-----
-#
--dontwarn com.suchengkeji.android.confusiondemo.md.**
-#对含有反射类的处理
--keep class com.suchengkeji.android.confusiondemo.md.** { *; }
-#
-# ----------------------------- 其他的 -----------------------------
-#
-# 删除代码中Log相关的代码
--assumenosideeffects class android.util.Log {
-    public static boolean isLoggable(java.lang.String, int);
-    public static int v(...);
-    public static int i(...);
-    public static int w(...);
-    public static int d(...);
-    public static int e(...);
-}
-
-# 保持测试相关的代码
--dontnote junit.framework.**
--dontnote junit.runner.**
--dontwarn android.test.**
--dontwarn android.support.test.**
--dontwarn org.junit.**
-
-#===========================================
-#==================三方sdk==================
-#okhttputils
--dontwarn com.zhy.http.**
--keep class com.zhy.http.**{*;}
-#okhttp
--dontwarn okhttp3.**
--keep class okhttp3.**{*;}
-#okio
--dontwarn okio.**
--keep class okio.**{*;}
-
-#jpush
--dontoptimize
--dontpreverify
-
--dontwarn cn.jpush.**
--keep class cn.jpush.** { *; }
--keep class * extends cn.jpush.android.helpers.JPushMessageReceiver { *; }
-
--dontwarn cn.jiguang.**
--keep class cn.jiguang.** { *; }
-#=========================================================================================友盟
--dontshrink
--dontoptimize
--dontwarn com.google.android.maps.**
--dontwarn android.webkit.WebView
--dontwarn com.umeng.**
--dontwarn com.tencent.weibo.sdk.**
--dontwarn com.facebook.**
--keep public class javax.**
--keep public class android.webkit.**
--dontwarn android.support.v4.**
--keep enum com.facebook.**
--keepattributes Exceptions,InnerClasses,Signature
--keepattributes *Annotation*
--keepattributes SourceFile,LineNumberTable
--keep public interface com.facebook.**
--keep public interface com.tencent.**
--keep public interface com.umeng.socialize.**
--keep public interface com.umeng.socialize.sensor.**
--keep public interface com.umeng.scrshot.**
--keep public class com.umeng.socialize.* {*;}
--keep class com.facebook.**
--keep class com.facebook.** { *; }
--keep class com.umeng.scrshot.**
--keep public class com.tencent.** {*;}
--keep class com.umeng.socialize.sensor.**
--keep class com.umeng.socialize.handler.**
--keep class com.umeng.socialize.handler.*
--keep class com.umeng.weixin.handler.**
--keep class com.umeng.weixin.handler.*
--keep class com.umeng.qq.handler.**
--keep class com.umeng.qq.handler.*
--keep class UMMoreHandler{*;}
--keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}
--keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}
--keep class im.yixin.sdk.api.YXMessage {*;}
--keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}
--keep class com.tencent.mm.sdk.** {
-   *;
-}
--keep class com.tencent.mm.opensdk.** {
-   *;
-}
--keep class com.tencent.wxop.** {
-   *;
-}
--keep class com.tencent.mm.sdk.** {
-   *;
-}
--dontwarn twitter4j.**
--keep class twitter4j.** { *; }
--keep class com.tencent.** {*;}
--dontwarn com.tencent.**
--keep class com.kakao.** {*;}
--dontwarn com.kakao.**
--keep public class com.umeng.com.umeng.soexample.R$*{
-    public static final int *;
-}
--keep public class com.linkedin.android.mobilesdk.R$*{
-    public static final int *;
-}
--keepclassmembers enum * {
-    public static **[] values();
-    public static ** valueOf(java.lang.String);
-}
--keep class com.tencent.open.TDialog$*
--keep class com.tencent.open.TDialog$* {*;}
--keep class com.tencent.open.PKDialog
--keep class com.tencent.open.PKDialog {*;}
--keep class com.tencent.open.PKDialog$*
--keep class com.tencent.open.PKDialog$* {*;}
--keep class com.umeng.socialize.impl.ImageImpl {*;}
--keep class com.sina.** {*;}
--dontwarn com.sina.**
--keep class  com.alipay.share.sdk.** {
-   *;
-}
--keepnames class * implements android.os.Parcelable {
-    public static final ** CREATOR;
-}
--keep class com.linkedin.** { *; }
--keep class com.android.dingtalk.share.ddsharemodule.** { *; }
--keepattributes Signature
-#========================================================================================华为推送
--keepattributes *Annotation*
--keepattributes Exceptions
--keepattributes InnerClasses
--keepattributes Signature
--keepattributes SourceFile,LineNumberTable
--keep class com.hianalytics.android.**{*;}
--keep class com.huawei.updatesdk.**{*;}
--keep class com.huawei.hms.**{*;}
-
--keep class com.huawei.android.hms.agent.**{*;}
--keep class com.huawei.gamebox.plugin.gameservice.**{*;}

BIN
android/app/src/main/.DS_Store


+ 0 - 320
android/app/src/main/AndroidManifest.xml

@@ -1,320 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.topsoft.jianyu">
-
-    <!-- To auto-complete the email text field in the login form with the user's emails -->
-    <permission
-        android:name="com.topsoft.jianyu.permission.JPUSH_MESSAGE"
-        android:protectionLevel="signature" />
-    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
-    <uses-permission android:name="com.topsoft.jianyu.permission.JPUSH_MESSAGE" />
-    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.WAKE_LOCK" />
-    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-    <uses-permission android:name="android.permission.VIBRATE" />
-    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
-    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用于开启 debug 版本的应用在6.0 系统上 层叠窗口权限 -->
-    <!-- 添加如下权限,以便使用更多的第三方SDK和更精准的统计数据 -->
-    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
-    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
-    <!--获取用户手机的IMEI,用来唯一的标识设备。 | Gets the IMEI of the user's phone, used to uniquely identify the device.-->
-    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
-
-    <application
-        android:name=".App"
-        android:allowBackup="true"
-        android:icon="@mipmap/ic_launcher"
-        android:label="@string/app_name"
-        android:supportsRtl="true"
-        android:theme="@style/AppTheme">
-        <provider
-            android:name="android.support.v4.content.FileProvider"
-            android:authorities="com.topsoft.jianyu.fileprovider"
-            android:exported="false"
-            android:grantUriPermissions="true">
-            <meta-data
-                android:name="android.support.FILE_PROVIDER_PATHS"
-                android:resource="@xml/file_paths" />
-        </provider>
-        <activity
-            android:name=".WelcomePage"
-            android:screenOrientation="portrait"
-            android:label="@string/app_name">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-            <intent-filter>
-                <action android:name="android.intent.action.VIEW" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.BROWSABLE" />
-                <data
-                    android:host="host"
-                    android:scheme="jyscheme" />
-            </intent-filter>
-        </activity>
-        <activity
-            android:name=".MainActivity"
-            android:label="@string/title_activity_main"
-            android:windowSoftInputMode="adjustResize"
-            android:screenOrientation="portrait"
-            android:launchMode="singleTask"></activity>
-        <activity android:name=".ExternalWebPage"
-            android:screenOrientation="portrait"></activity>
-
-        <!--分享qq的Activity-->
-        <activity
-            android:name="com.umeng.qq.tencent.AuthActivity"
-            android:launchMode="singleTask"
-            android:noHistory="true" >
-
-            <intent-filter>
-                <action android:name="android.intent.action.VIEW" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="android.intent.category.BROWSABLE" />
-                <data android:scheme="tencent1106703118" />
-            </intent-filter>
-        </activity>
-
-        <activity
-            android:name="com.umeng.qq.tencent.AssistActivity"
-            android:screenOrientation="portrait"
-            android:configChanges="orientation|keyboardHidden|screenSize"/>
-        <!--分享微信的Activity-->
-        <activity
-            android:name=".wxapi.WXEntryActivity"
-            android:configChanges="keyboardHidden|orientation|screenSize"
-            android:exported="true"
-            android:screenOrientation="portrait"/>
-
-
-        <!--极光推送-->
-        <activity
-            android:name="cn.jpush.android.ui.PushActivity"
-            android:configChanges="orientation|keyboardHidden"
-            android:exported="false"
-            android:theme="@android:style/Theme.NoTitleBar">
-            <intent-filter>
-                <action android:name="cn.jpush.android.ui.PushActivity" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <category android:name="com.topsoft.jianyu" />
-            </intent-filter>
-        </activity>
-
-        <service
-            android:name="cn.jpush.android.service.PushService"
-            android:exported="false"
-            android:process=":mult">
-            <intent-filter>
-                <action android:name="cn.jpush.android.intent.REGISTER" />
-                <action android:name="cn.jpush.android.intent.REPORT" />
-                <action android:name="cn.jpush.android.intent.PushService" />
-                <action android:name="cn.jpush.android.intent.PUSH_TIME" />
-            </intent-filter>
-        </service>
-        <provider
-            android:name="cn.jpush.android.service.DataProvider"
-            android:authorities="com.topsoft.jianyu.DataProvider"
-            android:exported="false" />
-        <service
-            android:name="cn.jpush.android.service.DaemonService"
-            android:enabled="true"
-            android:exported="true">
-            <intent-filter>
-                <action android:name="cn.jpush.android.intent.DaemonService" />
-                <category android:name="com.topsoft.jianyu" />
-            </intent-filter>
-
-        </service>
-        <provider
-            android:name="cn.jpush.android.service.DownloadProvider"
-            android:authorities="com.topsoft.jianyu.DownloadProvider"
-            android:exported="true" />
-        <receiver
-            android:name="cn.jpush.android.service.PushReceiver"
-            android:enabled="true"
-            android:exported="false">
-            <intent-filter android:priority="1000">
-                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />   <!--Required  显示通知栏 -->
-                <category android:name="com.topsoft.jianyu" />
-            </intent-filter>
-            <intent-filter>
-                <action android:name="android.intent.action.USER_PRESENT" />
-                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
-            </intent-filter>
-            <!-- Optional -->
-            <intent-filter>
-                <action android:name="android.intent.action.PACKAGE_ADDED" />
-                <action android:name="android.intent.action.PACKAGE_REMOVED" />
-
-                <data android:scheme="package" />
-            </intent-filter>
-        </receiver>
-        <receiver
-            android:name="com.topsoft.jianyu.push.JpushReceiver"
-            android:exported="false"
-            android:enabled="true">
-            <intent-filter>
-                <action android:name="cn.jpush.android.intent.REGISTRATION" /> <!--Required  用户注册SDK的intent-->
-                <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <!--Required  用户接收SDK消息的intent-->
-                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <!--Required  用户接收SDK通知栏信息的intent-->
-                <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <!--Required  用户打开自定义通知栏的intent-->
-                <action android:name="cn.jpush.android.intent.CONNECTION" /><!-- 接收网络变化 连接/断开 since 1.6.3 -->
-                <category android:name="com.topsoft.jianyu" />
-            </intent-filter>
-        </receiver>
-        <!-- Required SDK核心功能-->
-        <receiver
-            android:name="cn.jpush.android.service.AlarmReceiver"
-            android:exported="false" />
-        <!-- Required  . Enable it you can get statistics data with channel -->
-        <meta-data
-            android:name="JPUSH_CHANNEL"
-            android:value="developer-default" />
-        <meta-data
-            android:name="JPUSH_APPKEY"
-            android:value="5efa1257867cf5d77d007ce6" />
-        <meta-data
-            android:name="UMENG_APPKEY"
-            android:value="5a685314b27b0a53710001fb" >
-        </meta-data>
-        <meta-data
-            android:name="UMENG_CHANNEL"
-            android:value="${UMENG_CHANNEL_VALUE}" />
-        <!--==========================华为推送===========================================-->
-        <!-- 接入HMSSDK 需要注册的appid参数。value的值中“100212145”用实际申请的appid替换,来源于开发者联盟网站应用的权益详情。
-                    格式 android:value="appid=xxxxxx"
-                    Access HMSSDK need to register AppID parameters. Value "100212145" is replaced with the actual application APPID, derived from the Developer affiliate website application.
-                    Format android:value= "appid=xxxxxx"-->
-        <meta-data
-            android:name="com.huawei.hms.client.appid"
-            android:value="appid=100212145"/>
-
-
-        <!-- 接入HMSSDK 需要注册的provider,authorities 一定不能与其他应用一样,所以这边 com.topsoft.jianyu 要替换上您应用的包名
-            Access HMSSDK need to register provider,authorities must not be the same as other applications, so this side ${package_name} to replace the package name you applied-->
-        <provider
-            android:name="com.huawei.hms.update.provider.UpdateProvider"
-            android:authorities="com.topsoft.jianyu.hms.update.provider"
-            android:exported="false"
-            android:grantUriPermissions="true"/>
-
-        <!-- 接入HMSSDK 需要注册的provider,authorities 一定不能与其他应用一样,所以这边 com.topsoft.jianyu 要替换上您应用的包名
-            Access HMSSDK need to register provider,authorities must not be the same as other applications, so this side ${package_name} to replace the package name you applied-->
-        <provider
-            android:name="com.huawei.updatesdk.fileprovider.UpdateSdkFileProvider"
-            android:authorities="com.topsoft.jianyu.updateSdk.fileProvider"
-            android:exported="false"
-            android:grantUriPermissions="true">
-        </provider>
-
-        <!--<activity android:name=".OpendeviceActivity"/>-->
-
-        <!-- 使用 HMSAgent 代码接入HMSSDK 需要注册的activity | Use hmsagent code to access HMSSDK activity that requires registration-->
-        <activity
-            android:name="com.huawei.android.hms.agent.common.HMSAgentActivity"
-            android:configChanges="orientation|locale|screenSize|layoutDirection|fontScale"
-            android:excludeFromRecents="true"
-            android:exported="false"
-            android:hardwareAccelerated="true"
-            android:theme="@android:style/Theme.Translucent" >
-            <meta-data
-                android:name="hwc-theme"
-                android:value="androidhwext:style/Theme.Emui.Translucent" />
-        </activity>
-
-
-
-
-        <!-- 接入HMSSDK 需要注册的activity | Access HMSSDK activity to be registered-->
-        <activity
-            android:name="com.huawei.hms.activity.BridgeActivity"
-            android:configChanges="orientation|locale|screenSize|layoutDirection|fontScale"
-            android:excludeFromRecents="true"
-            android:exported="false"
-            android:hardwareAccelerated="true"
-            android:theme="@android:style/Theme.Translucent" >
-            <meta-data
-                android:name="hwc-theme"
-                android:value="androidhwext:style/Theme.Emui.Translucent" />
-        </activity>
-
-        <!-- 接入HMSSDK 需要注册的activity | Access HMSSDK activity to be registered-->
-        <activity
-            android:name="com.huawei.updatesdk.service.otaupdate.AppUpdateActivity"
-            android:configChanges="orientation|screenSize"
-            android:exported="false"
-            android:theme="@style/upsdkDlDialog" >
-            <meta-data
-                android:name="hwc-theme"
-                android:value="androidhwext:style/Theme.Emui.Translucent.NoTitleBar" />
-        </activity>
-
-        <!-- 接入HMSSDK 需要注册的activity | Access HMSSDK activity to be registered-->
-        <activity
-            android:name="com.huawei.updatesdk.support.pm.PackageInstallerActivity"
-            android:configChanges="orientation|keyboardHidden|screenSize"
-            android:exported="false"
-            android:theme="@style/upsdkDlDialog" >
-            <meta-data
-                android:name="hwc-theme"
-                android:value="androidhwext:style/Theme.Emui.Translucent" />
-        </activity>
-
-        <!-- 接入HMSSDK PUSH模块需要注册,第三方相关 :接收Push消息(注册、Push消息、Push连接状态)广播,
-                此receiver类需要开发者自己创建并继承com.huawei.hms.support.api.push.PushReceiver类,
-                参考示例代码中的类:com.huawei.hmsagent.HuaweiPushRevicer
-            Access to the HMSSDK push module requires registration:
-	            Receive push message (registration, push message, push connection state) broadcast.
-	            This receiver class requires the developer to create and inherit the com.huawei.hms.support.api.push.PushReceiver class.
-	            Reference to class in sample code: Com.huawei.hmsagent.HuaweiPushRevicer-->
-        <receiver android:name="com.topsoft.jianyu.push.HuaweiRevicer" >
-            <intent-filter>
-                <!-- 必须,用于接收token | Must, for receiving token -->
-                <action android:name="com.huawei.android.push.intent.REGISTRATION" />
-                <!-- 必须,用于接收消息 | Must, used to receive messages-->
-                <action android:name="com.huawei.android.push.intent.RECEIVE" />
-                <!-- 可选,用于点击通知栏或通知栏上的按钮后触发onEvent回调 | Optional, click the button on the notification bar or the notification bar to trigger the onevent callback -->
-                <action android:name="com.huawei.android.push.intent.CLICK" />
-                <!-- 可选,查看push通道是否连接,不查看则不需要 | Optional, query whether the push channel is connected or not -->
-                <action android:name="com.huawei.intent.action.PUSH_STATE" />
-            </intent-filter>
-        </receiver>
-
-        <!-- 接入HMSSDK PUSH模块需要注册 :接收通道发来的通知栏消息 | The access HMSSDK push module needs to be registered: the notification bar message sent from the receiving channel -->
-        <receiver android:name="com.huawei.hms.support.api.push.PushEventReceiver" >
-            <intent-filter>
-                <action android:name="com.huawei.intent.action.PUSH" />
-            </intent-filter>
-        </receiver>
-
-        <!-- 接入HMSSDK 需要注册的应用下载服务 | Access HMSSDK need to register app download service-->
-        <service android:name="com.huawei.updatesdk.service.deamon.download.DownloadService"
-            android:exported="false"/>
-
-        <!--打开通知跳转中转-->
-        <activity android:name=".push.HuaweiPushCustomActivity">
-            <intent-filter>
-                <action android:name="android.intent.action.VIEW"/>
-                <category android:name="android.intent.category.DEFAULT"/>
-                <data android:host="push"
-                    android:path="/huawei"
-                    android:scheme="jyshceme"
-                    />
-               <!-- intent://com.topsoft.jianyu/huawei_push?url=#Intent;scheme=jyshceme;launchFlags=0x10000000;component=com.hua.demo/.activty.HuaweiPushCustomActivity;end-->
-
-            </intent-filter>
-        </activity>
-        <!--==========================华为推送结束===========================================-->
-
-
-    </application>
-
-</manifest>

BIN
android/app/src/main/ic_launcher-web.png


+ 0 - 320
android/app/src/main/java/com/huawei/android/hms/agent/HMSAgent.java

@@ -1,320 +0,0 @@
-package com.huawei.android.hms.agent;
-
-
-import android.app.Activity;
-import android.app.Application;
-import android.content.Context;
-import android.os.Handler;
-import android.os.Looper;
-import android.widget.Toast;
-
-import com.huawei.android.hms.agent.common.ActivityMgr;
-import com.huawei.android.hms.agent.common.ApiClientMgr;
-import com.huawei.android.hms.agent.common.CheckUpdateApi;
-import com.huawei.android.hms.agent.common.HMSAgentLog;
-import com.huawei.android.hms.agent.common.IClientConnectCallback;
-import com.huawei.android.hms.agent.common.INoProguard;
-import com.huawei.android.hms.agent.common.handler.CheckUpdateHandler;
-import com.huawei.android.hms.agent.common.handler.ConnectHandler;
-import com.huawei.android.hms.agent.push.DeleteTokenApi;
-import com.huawei.android.hms.agent.push.EnableReceiveNormalMsgApi;
-import com.huawei.android.hms.agent.push.EnableReceiveNotifyMsgApi;
-import com.huawei.android.hms.agent.push.GetPushStateApi;
-import com.huawei.android.hms.agent.push.GetTokenApi;
-import com.huawei.android.hms.agent.push.QueryAgreementApi;
-import com.huawei.android.hms.agent.push.handler.DeleteTokenHandler;
-import com.huawei.android.hms.agent.push.handler.EnableReceiveNormalMsgHandler;
-import com.huawei.android.hms.agent.push.handler.EnableReceiveNotifyMsgHandler;
-import com.huawei.android.hms.agent.push.handler.GetPushStateHandler;
-import com.huawei.android.hms.agent.push.handler.GetTokenHandler;
-import com.huawei.android.hms.agent.push.handler.QueryAgreementHandler;
-import com.huawei.hms.api.HuaweiApiAvailability;
-import com.huawei.hms.api.HuaweiApiClient;
-
-/**
- * HMSAgent 封装入口类。 提供了HMS SDK 功能的封装,使开发者更聚焦业务的处理。
- * HMSAgent encapsulates the entry class. Provides a encapsulation of the HMS SDK functionality that enables developers to focus more on business processing.
- */
-public final class HMSAgent implements INoProguard {
-
-    /**
-     * 基础版本 | Base version
-     */
-    private static final String VER_020503001 = "020503001";
-
-    /**
-     * 2.6.0 版本1                                            | 2.6.0 version 1
-     * 对外:接口不变                                         | External: interface unchanged
-     * 对内:HMSSDK connect 接口增加activity参数              | Internal: HMSSDK connect interface to increase activity parameters
-     *      HMSSDK sign 接口增加activity参数                      | HMSSDK sign interface to increase activity parameters
-     * 自身优化:                                             | Self optimization:
-     *      1、增加了升级时被其他界面覆盖的处理                  | Increased handling of other interface coverage issues when upgrading
-     *      2、game模块savePlayerInfo接口,去掉activity的判断    | Game Module Saveplayerinfo method to remove activity judgments
-     *      3、解决错误回调成功,增加重试次数3次                 | Resolve error callback succeeded, increase retry count 3 times
-	 *      4、提供了多种HMSAgent初始化方法                      | Provides a variety of hmsagent initialization methods
-     *      5、初始化时增加了版本号校验                          | Increased version number checksum during initialization
-     */
-    private static final String VER_020600001 = "020600001";
-
-    /**
-     * 2.6.0.200                                         | 2.6.0.200
-     * 自身优化:                                        | Self optimization:
-     *      1、增加shell脚本用来抽取代码和编译成jar            | Add shell script to extract code and compile into jar
-     *      2、示例中manifest里面升级配置错误修复              | Example manifest upgrade configuration error Repair
-     *      3、抽取代码中去掉manifest文件,只留纯代码          | Remove manifest files in the extraction code, leaving only pure code
-     */
-    private static final String VER_020600200 = "020600200";
-
-    private static final String VER_020601002 = "020601002";
-
-    private static final String VER_020601302 = "020601302";
-
-    /**
-     * 当前版本号 | Current version number
-     */
-    public static final String CURVER = VER_020601302;
-
-    public static final class AgentResultCode {
-
-        /**
-         * HMSAgent 成功 | success
-         */
-        public static final int HMSAGENT_SUCCESS = 0;
-
-        /**
-         * HMSAgent 没有初始化 | Hmsagent not initialized
-         */
-        public static final int HMSAGENT_NO_INIT = -1000;
-
-        /**
-         * 请求需要activity,但当前没有可用的activity | Request requires activity, but no active activity is currently available
-         */
-        public static final int NO_ACTIVITY_FOR_USE = -1001;
-
-        /**
-         * 结果为空 | Result is empty
-         */
-        public static final int RESULT_IS_NULL = -1002;
-
-        /**
-         * 状态为空 | Status is empty
-         */
-        public static final int STATUS_IS_NULL = -1003;
-
-        /**
-         * 拉起activity异常,需要检查activity有没有在manifest中配置 | Pull up an activity exception and need to check if the activity is configured in manifest
-         */
-        public static final int START_ACTIVITY_ERROR = -1004;
-
-        /**
-         * onActivityResult 回调结果错误 | Onactivityresult Callback Result Error
-         */
-        public static final int ON_ACTIVITY_RESULT_ERROR = -1005;
-
-        /**
-         * 重复请求 | Duplicate Request
-         */
-        public static final int REQUEST_REPEATED = -1006;
-
-        /**
-         * 连接client 超时 | Connect Client Timeout
-         */
-        public static final int APICLIENT_TIMEOUT = -1007;
-
-        /**
-         * 调用接口异常 | Calling an interface exception
-         */
-        public static final int CALL_EXCEPTION = -1008;
-
-        /**
-         * 接口参数为空 | Interface parameter is empty
-         */
-        public static final int EMPTY_PARAM = -1009;
-    }
-
-    private HMSAgent(){}
-
-    private static boolean checkSDKVersion(Context context){
-        long sdkMainVerL = HuaweiApiAvailability.HMS_SDK_VERSION_CODE/1000;
-        long agentMainVerL = Long.parseLong(CURVER)/1000;
-        if (sdkMainVerL != agentMainVerL) {
-            String errMsg = "error: HMSAgent major version code ("+agentMainVerL+") does not match HMSSDK major version code ("+sdkMainVerL+")";
-            HMSAgentLog.e(errMsg);
-            Toast.makeText(context, errMsg, Toast.LENGTH_LONG).show();
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * 初始化方法,传入第一个界面的activity   | Initialization method, passing in the first interface activity
-     * @param activity 当前界面             | Current interface
-     * @return true:成功 false:失败        | True: Success false: Failed
-     */
-    public static boolean init(Activity activity) {
-        return init(null, activity);
-    }
-
-    /**
-     * 初始化方法,建议在Application onCreate里面调用    | Initialization method, it is recommended to call in creator OnCreate
-     * @param app 应用程序                              | Application
-     * @return true:成功 false:失败                   | True: Success false: Failed
-     */
-    public static boolean init(Application app) {
-        return init(app, null);
-    }
-
-    /**
-     * 初始化方法,建议在Application onCreate里面调用 | Initialization method, it is recommended to call in creator OnCreate
-     * @param app 应用程序 | Application
-     * @param activity 当前界面 | Current activity
-     * @return true:成功 false:失败 | True: Success false: Failed
-     */
-    public static boolean init(Application app, Activity activity) {
-
-        Application appTmp = app;
-        Activity activityTmp = activity;
-
-        // 两个参数都为null,直接抛异常 | Two parameters are null, throwing exceptions directly
-        if (appTmp == null && activityTmp == null) {
-            HMSAgentLog.e("the param of method HMSAgent.init can not be null !!!");
-            return false;
-        }
-
-        // 如果application实例为null,则从activity里面取 | If the creator instance is null, it is taken from the activity
-        if (appTmp == null) {
-            appTmp = activityTmp.getApplication();
-        }
-
-        // 如果application实例仍然为null,抛异常 | Throws an exception if the creator instance is still null
-        if (appTmp == null) {
-            HMSAgentLog.e("the param of method HMSAgent.init app can not be null !!!");
-            return false;
-        }
-
-        // activity 已经失效,则赋值null | Assignment NULL if activity has been invalidated
-        if (activityTmp != null && activityTmp.isFinishing()) {
-            activityTmp = null;
-        }
-
-        // 检查HMSAgent 和 HMSSDK 版本匹配关系 | Check hmsagent and HMSSDK version matching relationships
-        if (!checkSDKVersion(appTmp)) {
-            return false;
-        }
-
-        HMSAgentLog.i("init HMSAgent " + CURVER + " with hmssdkver " + HuaweiApiAvailability.HMS_SDK_VERSION_CODE);
-
-        // 初始化activity管理类 | Initializing Activity Management Classes
-        ActivityMgr.INST.init(appTmp, activityTmp);
-
-        // 初始化HuaweiApiClient管理类 | Initialize Huaweiapiclient Management class
-        ApiClientMgr.INST.init(appTmp);
-
-        return true;
-    }
-
-    /**
-     * 释放资源,这里一般不需要调用 | Frees resources, which are generally not required to call
-     */
-    public static void destroy() {
-        HMSAgentLog.i("destroy HMSAgent");
-        ActivityMgr.INST.release();
-        ApiClientMgr.INST.release();
-    }
-
-    /**
-     * 连接HMS SDK, 可能拉起界面(包括升级引导等),建议在第一个界面进行连接。 | Connecting to the HMS SDK may pull up the activity (including upgrade guard, etc.), and it is recommended that you connect in the first activity.
-     * 此方法可以重复调用,没必要为了只调用一次做复杂处理 | This method can be called repeatedly, and there is no need to do complex processing for only one call at a time
-     * 方法为异步调用,调用结果在主线程回调 | Method is called asynchronously, and the result is invoked in the main thread callback
-     * @param activity 当前界面的activity, 不能传空 | Activity of the current activity, cannot be empty
-     * @param callback 连接结果回调 | Connection Result Callback
-     */
-    public static void connect(Activity activity, final ConnectHandler callback) {
-        HMSAgentLog.i("start connect");
-        ApiClientMgr.INST.connect(new IClientConnectCallback() {
-            @Override
-            public void onConnect(final int rst, HuaweiApiClient client) {
-                if (callback != null) {
-                    new Handler(Looper.getMainLooper()).post(new Runnable() {
-                        @Override
-                        public void run() {
-                            callback.onConnect(rst);
-                        }
-                    });
-                }
-            }
-        }, true);
-    }
-
-    /**
-     * 检查本应用的升级 | Check for upgrades to this application
-     * @param activity 上下文 | context
-     * @param callback 升级结果回调 | check update Callback
-     */
-    public static void checkUpdate (Activity activity, CheckUpdateHandler callback) {
-        new CheckUpdateApi().checkUpdate(activity, callback);
-    }
-
-
-
-
-
-    /**
-     * push接口封装 | Push interface Encapsulation
-     */
-    public static final class Push {
-        /**
-         * 获取pushtoken接口 | Get Pushtoken method
-         * pushtoken通过广播下发,要监听的广播,请参见HMS-SDK开发准备中PushReceiver的注册 | Pushtoken Broadcast issued, to listen to the broadcast, see HMS-SDK Development Preparation Pushreceiver Registration
-         * @param handler pushtoken接口调用回调(结果会在主线程回调) | getToken method Call callback (result will be callback in main thread)
-         */
-        public static void getToken(GetTokenHandler handler){
-            new GetTokenApi().getToken(handler);
-        }
-
-        /**
-         * 删除指定的pushtoken | Deletes the specified Pushtoken
-         * 该接口只在EMUI5.1以及更高版本的华为手机上调用该接口后才不会收到PUSH消息。 | The method will not receive a push message until it is invoked on EMUI5.1 and later Huawei handsets.
-         * @param token 要删除的token | Token to delete
-         * @param handler 方法调用结果回调(结果会在主线程回调) | Method call result Callback (result will be callback on main thread)
-         */
-        public static void deleteToken(String token, DeleteTokenHandler handler){
-            new DeleteTokenApi().deleteToken(token, handler);
-        }
-
-        /**
-         * 获取push状态,push状态的回调通过广播发送。 | Gets the push state, and the push state callback is sent by broadcast.
-         * 要监听的广播,请参见HMS-SDK开发准备中PushReceiver的注册 | To listen for broadcasts, see Pushreceiver Registration in HMS-SDK development preparation
-         * @param handler 方法调用结果回调(结果会在主线程回调) | Method call result Callback (result will be callback on main thread)
-         */
-        public static void getPushState(GetPushStateHandler handler){
-            new GetPushStateApi().getPushState(handler);
-        }
-
-        /**
-         * 打开/关闭通知栏消息 | Turn on/off notification bar messages
-         * @param enable 打开/关闭 | Turn ON/off
-         * @param handler 方法调用结果回调(结果会在主线程回调) | Method call result Callback (result will be callback on main thread)
-         */
-        public static void enableReceiveNotifyMsg(boolean enable, EnableReceiveNotifyMsgHandler handler){
-            new EnableReceiveNotifyMsgApi().enableReceiveNotifyMsg(enable, handler);
-        }
-
-        /**
-         * 打开/关闭透传消息 | Turn on/off the pass message
-         * @param enable 打开/关闭 | Turn ON/off
-         * @param handler 方法调用结果回调(结果会在主线程回调) | Method call result Callback (result will be callback on main thread)
-         */
-        public static void enableReceiveNormalMsg(boolean enable, EnableReceiveNormalMsgHandler handler){
-            new EnableReceiveNormalMsgApi().enableReceiveNormalMsg(enable, handler);
-        }
-
-        /**
-         * 请求push协议展示 | Request Push Protocol Display
-         * @param handler 方法调用结果回调(结果会在主线程回调)| Method call result Callback (result will be callback on main thread)
-         */
-        public static void queryAgreement(QueryAgreementHandler handler){
-            new QueryAgreementApi().queryAgreement(handler);
-        }
-    }
-}

+ 0 - 293
android/app/src/main/java/com/huawei/android/hms/agent/common/ActivityMgr.java

@@ -1,293 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.app.Activity;
-import android.app.Application;
-import android.os.Bundle;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Activity Management Class
- * 此类注册了activity的生命周期监听,用来获取最新的activity给后续逻辑处理使用 | This class registers the life cycle monitoring of the activity to obtain the latest activity for subsequent logical processing using
- */
-public final class ActivityMgr implements Application.ActivityLifecycleCallbacks {
-
-    /**
-     * 单实例 | Single Instance
-     */
-    public static final ActivityMgr INST = new ActivityMgr();
-
-    private static final Object LOCK_LASTACTIVITIES = new Object();
-
-    /**
-     * 应用程序 | application
-     */
-    private Application application;
-
-    /**
-     * 最新的activity列表,如果没有则为空列表 | Latest list of activity, if no, empty list
-     */
-    private List<Activity> curActivities = new ArrayList<Activity>();
-
-    /**
-     * activity onResume Event Monitoring
-     */
-    private List<IActivityResumeCallback> resumeCallbacks = new ArrayList<IActivityResumeCallback>();
-
-    /**
-     * activity onPause Event Monitoring
-     */
-    private List<IActivityPauseCallback> pauseCallbacks = new ArrayList<IActivityPauseCallback>();
-
-    /**
-     * activity onDestroyed Event Monitoring
-     */
-    private List<IActivityDestroyedCallback> destroyedCallbacks = new ArrayList<IActivityDestroyedCallback>();
-
-    /**
-     * 私有构造方法 | Private construction methods
-     * 防止外面直接创建实例 | Prevent external instances from being created directly
-     */
-    private ActivityMgr(){}
-
-    /**
-     * 初始化方法 | Initialization method
-     * @param app 应用程序 | application
-     */
-    public void init(Application app, Activity initActivity) {
-        HMSAgentLog.d("init");
-
-        if (application != null) {
-            application.unregisterActivityLifecycleCallbacks(this);
-        }
-
-        application = app;
-        setCurActivity(initActivity);
-        app.registerActivityLifecycleCallbacks(this);
-    }
-
-    /**
-     * 释放资源,一般不需要调用 | Frees resources, and generally does not need to call
-     */
-    public void release() {
-        HMSAgentLog.d("release");
-        if (application != null) {
-            application.unregisterActivityLifecycleCallbacks(this);
-        }
-
-        clearCurActivities();
-        clearActivitResumeCallbacks();
-        clearActivitPauseCallbacks();
-        application = null;
-    }
-
-    /**
-     * 注册activity onResume事件回调 | Registering an Activity Onresume event Callback
-     * @param callback activity onResume事件回调 | Activity Onresume Event Callback
-     */
-    public void registerActivitResumeEvent(IActivityResumeCallback callback) {
-        HMSAgentLog.d("registerOnResume:" + StrUtils.objDesc(callback));
-        resumeCallbacks.add(callback);
-    }
-
-    /**
-     * 反注册activity onResume事件回调 | unregistration Activity Onresume Event Callback
-     * @param callback 已经注册的 activity onResume事件回调 | Registered Activity Onresume Event callback
-     */
-    public void unRegisterActivitResumeEvent(IActivityResumeCallback callback) {
-        HMSAgentLog.d("unRegisterOnResume:" + StrUtils.objDesc(callback));
-        resumeCallbacks.remove(callback);
-    }
-
-    /**
-     * 注册activity onPause 事件回调 | Registering an Activity OnPause event Callback
-     * @param callback activity onPause 事件回调 | Activity OnPause Event Callback
-     */
-    public void registerActivitPauseEvent(IActivityPauseCallback callback) {
-        HMSAgentLog.d("registerOnPause:" + StrUtils.objDesc(callback));
-        pauseCallbacks.add(callback);
-    }
-
-    /**
-     * 反注册activity onPause事件回调 | unregistration activity OnPause Event Callback
-     * @param callback 已经注册的 activity onPause事件回调 | Registered Activity OnPause Event callback
-     */
-    public void unRegisterActivitPauseEvent(IActivityPauseCallback callback) {
-        HMSAgentLog.d("unRegisterOnPause:" + StrUtils.objDesc(callback));
-        pauseCallbacks.remove(callback);
-    }
-
-    /**
-     * 注册activity onDestroyed 事件回调 | Registering an Activity ondestroyed event Callback
-     * @param callback activity onDestroyed 事件回调 | Activity Ondestroyed Event Callback
-     */
-    public void registerActivitDestroyedEvent(IActivityDestroyedCallback callback) {
-        HMSAgentLog.d("registerOnDestroyed:" + StrUtils.objDesc(callback));
-        destroyedCallbacks.add(callback);
-    }
-
-    /**
-     * 反注册activity onDestroyed 事件回调 | unregistration Activity ondestroyed Event Callback
-     * @param callback 已经注册的 activity onDestroyed事件回调 | Registered Activity ondestroyed Event callback
-     */
-    public void unRegisterActivitDestroyedEvent(IActivityDestroyedCallback callback) {
-        HMSAgentLog.d("unRegisterOnDestroyed:" + StrUtils.objDesc(callback));
-        destroyedCallbacks.remove(callback);
-    }
-
-    /**
-     * 清空 activity onResume事件回调 | Clear Activity Onresume Event callback
-     */
-    public void clearActivitResumeCallbacks() {
-        HMSAgentLog.d("clearOnResumeCallback");
-        resumeCallbacks.clear();
-    }
-
-    /**
-     * 清空 activity onPause 事件回调 | Clear Activity OnPause Event callback
-     */
-    public void clearActivitPauseCallbacks() {
-        HMSAgentLog.d("clearOnPauseCallback");
-        pauseCallbacks.clear();
-    }
-
-    /**
-     * 获取最新的activity | Get the latest activity
-     * @return 最新的activity | Latest activity
-     */
-    public Activity getLastActivity() {
-        return getLastActivityInner();
-    }
-
-    /**
-     * activity onCreate 监听回调 | Activity OnCreate Listener Callback
-     * @param activity 发生onCreate事件的activity | Activity that occurs OnCreate events
-     * @param savedInstanceState 缓存状态数据 | Cached state data
-     */
-    @Override
-    public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
-        HMSAgentLog.d("onCreated:" + StrUtils.objDesc(activity));
-        setCurActivity(activity);
-    }
-
-    /**
-     * activity onStart 监听回调 | Activity OnStart Listener Callback
-     * @param activity 发生onStart事件的activity | Activity that occurs OnStart events
-     */
-    @Override
-    public void onActivityStarted(Activity activity) {
-        HMSAgentLog.d("onStarted:" + StrUtils.objDesc(activity));
-        setCurActivity(activity);
-    }
-
-    /**
-     * activity onResume 监听回调 | Activity Onresume Listener Callback
-     * @param activity 发生onResume事件的activity | Activity that occurs Onresume events
-     */
-    @Override
-    public void onActivityResumed(Activity activity) {
-        HMSAgentLog.d("onResumed:" + StrUtils.objDesc(activity));
-        setCurActivity(activity);
-
-        List<IActivityResumeCallback> tmdCallbacks = new ArrayList<IActivityResumeCallback>(resumeCallbacks);
-        for (IActivityResumeCallback callback : tmdCallbacks) {
-            callback.onActivityResume(activity);
-        }
-    }
-
-    /**
-     * activity onPause 监听回调 | Activity OnPause Listener Callback
-     * @param activity 发生onPause事件的activity | Activity that occurs OnPause events
-     */
-    @Override
-    public void onActivityPaused(Activity activity) {
-        HMSAgentLog.d("onPaused:" + StrUtils.objDesc(activity));
-        List<IActivityPauseCallback> tmdCallbacks = new ArrayList<IActivityPauseCallback>(pauseCallbacks);
-        for (IActivityPauseCallback callback : tmdCallbacks) {
-            callback.onActivityPause(activity);
-        }
-    }
-
-    /**
-     * activity onStop 监听回调 | Activity OnStop Listener Callback
-     * @param activity 发生onStop事件的activity | Activity that occurs OnStop events
-     */
-    @Override
-    public void onActivityStopped(Activity activity) {
-        HMSAgentLog.d("onStopped:" + StrUtils.objDesc(activity));
-    }
-
-    /**
-     * activity onSaveInstanceState 监听回调 | Activity Onsaveinstancestate Listener Callback
-     * @param activity 发生 onSaveInstanceState 事件的activity | Activity that occurs onsaveinstancestate events
-     */
-    @Override
-    public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
-    }
-
-    /**
-     * activity onDestroyed 监听回调 | Activity Ondestroyed Listener Callback
-     * @param activity 发生 onDestroyed 事件的activity | Activity that occurs ondestroyed events
-     */
-    @Override
-    public void onActivityDestroyed(Activity activity) {
-        HMSAgentLog.d("onDestroyed:" + StrUtils.objDesc(activity));
-        removeActivity(activity);
-
-        // activity onDestroyed 事件回调 | Activity Ondestroyed Event Callback
-        List<IActivityDestroyedCallback> tmdCallbacks = new ArrayList<IActivityDestroyedCallback>(destroyedCallbacks);
-        for (IActivityDestroyedCallback callback : tmdCallbacks) {
-            callback.onActivityDestroyed(activity, getLastActivityInner());
-        }
-    }
-
-    /**
-     * 移除当前activity | Remove Current Activity
-     * @param curActivity 要移除的activity | Activity to remove
-     */
-    private void removeActivity(Activity curActivity) {
-        synchronized (LOCK_LASTACTIVITIES) {
-            curActivities.remove(curActivity);
-        }
-    }
-
-    /**
-     * 设置最新的activity | Set up the latest activity
-     * @param curActivity 最新的activity | Latest activity
-     */
-    private void setCurActivity(Activity curActivity) {
-        synchronized (LOCK_LASTACTIVITIES) {
-            int idxCurActivity = curActivities.indexOf(curActivity);
-            if (idxCurActivity == -1) {
-                curActivities.add(curActivity);
-            } else if (idxCurActivity < curActivities.size()-1){
-                curActivities.remove(curActivity);
-                curActivities.add(curActivity);
-            }
-        }
-    }
-
-    /**
-     * 获取最新的activity,如果没有则返回null | Gets the latest activity and returns null if not
-     * @return 最新的activity | Latest activity
-     */
-    private Activity getLastActivityInner(){
-        synchronized (LOCK_LASTACTIVITIES) {
-            if (curActivities.size() > 0) {
-                return curActivities.get(curActivities.size()-1);
-            } else {
-                return null;
-            }
-        }
-    }
-
-    /**
-     * 清理activities | Clean activities
-     */
-    private void clearCurActivities(){
-        synchronized (LOCK_LASTACTIVITIES) {
-            curActivities.clear();
-        }
-    }
-}

+ 0 - 580
android/app/src/main/java/com/huawei/android/hms/agent/common/ApiClientMgr.java

@@ -1,580 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.app.Activity;
-import android.app.Application;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Handler;
-import android.os.Message;
-
-import com.huawei.android.hms.agent.HMSAgent;
-import com.huawei.hms.activity.BridgeActivity;
-import com.huawei.hms.api.ConnectionResult;
-import com.huawei.hms.api.HuaweiApiAvailability;
-import com.huawei.hms.api.HuaweiApiClient;
-import com.huawei.hms.support.api.push.HuaweiPush;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * Huawei Api Client 管理类 | Huawei API Client Management class
- * 负责HuaweiApiClient的连接,异常处理等 | Responsible for huaweiapiclient connection, exception handling, etc.
- */
-public final class ApiClientMgr implements HuaweiApiClient.ConnectionCallbacks, HuaweiApiClient.OnConnectionFailedListener, IActivityResumeCallback, IActivityPauseCallback, IActivityDestroyedCallback {
-
-    /**
-     * 单实例 | Single Instance
-     */
-    public static final ApiClientMgr INST = new ApiClientMgr();
-
-    /**
-     * 应用市场包名 | HiApp's package name
-     */
-    private static final String PACKAGE_NAME_HIAPP = "com.huawei.appmarket";
-
-    /**
-     * 回调锁,避免连接回调紊乱 | Callback lock to avoid connection callback disorder
-     */
-    private static final Object CALLBACK_LOCK = new Object();
-
-    /**
-     * 静态注册回调锁,避免注册和回调紊乱 | Static registration callback lock to avoid registration and callback disturbances
-     */
-    private static final Object STATIC_CALLBACK_LOCK = new Object();
-
-    /**
-     * client操作锁,避免连接使用紊乱 | Client operation lock, avoid connection use disorder
-     */
-    private static final Object APICLIENT_LOCK = new Object();
-
-    /**
-     * api client 连接超时 | API Client Connection Timeout
-     */
-    private static final int APICLIENT_CONNECT_TIMEOUT = 30000;
-
-    /**
-     * 解决升级错误时activity onResume 稳定在3秒时间判断BridgeActivity上面有没有其他activity
-     * To resolve an upgrade error, activity Onresume stable at 3 seconds to determine if there are any other activity on bridgeactivity.
-     */
-    private static final int UPDATE_OVER_ACTIVITY_CHECK_TIMEOUT = 3000;
-
-    /**
-     * api client 解决错误拉起界面超时 | API client Resolution error Pull interface timeout
-     */
-    private static final int APICLIENT_STARTACTIVITY_TIMEOUT = 3000;
-
-    /**
-     * client 连接超时消息 | Client Connection Timeout Message
-     */
-    private static final int APICLIENT_TIMEOUT_HANDLE_MSG = 3;
-
-    /**
-     * client 拉起activity超时消息 | Client starts Activity Timeout message
-     */
-    private static final int APICLIENT_STARTACTIVITY_TIMEOUT_HANDLE_MSG = 4;
-
-    /**
-     * 解决升级错误时activity onResume 稳定在3秒时间判断BridgeActivity上面有没有其他activity
-     * To resolve an upgrade error, activity Onresume stable at 3 seconds to determine if there are any other activity on bridgeactivity.
-     */
-    private static final int UPDATE_OVER_ACTIVITY_CHECK_TIMEOUT_HANDLE_MSG = 5;
-
-    /**
-     * 最大尝试连接次数 | Maximum number of attempts to connect
-     */
-    private static final int MAX_RESOLVE_TIMES = 3;
-
-    /**
-     * 上下文,用来处理连接失败 | Context to handle connection failures
-     */
-    private Context context;
-
-    /**
-     * 当前应用包名 | Current Application Package Name
-     */
-    private String curAppPackageName;
-
-    /**
-     * HuaweiApiClient 实例 | Huaweiapiclient instance
-     */
-    private HuaweiApiClient apiClient;
-
-    /**
-     * 是否允许解决connect错误(解决connect错误需要拉起activity)
-     * Whether to allow the connect error to be resolved (resolve connect error need to pull activity)
-     */
-    private boolean allowResolveConnectError = false;
-
-    /**
-     * 是否正在解决连接错误 | Whether a connection error is being resolved
-     */
-    private boolean isResolving;
-
-    /**
-     * HMSSDK 解决错误的activity | HMSSDK to solve the wrong activity
-     */
-    private BridgeActivity resolveActivity;
-
-    /**
-     * 是否存在其他activity覆盖在升级activity之上
-     * Is there any other activity covering the escalation activity
-     */
-    private boolean hasOverActivity = false;
-
-    /**
-     * 当前剩余尝试次数 | Current number of remaining attempts
-     */
-    private int curLeftResolveTimes = MAX_RESOLVE_TIMES;
-
-    /**
-     * 连接回调 | Connection callback
-     */
-    private List<IClientConnectCallback> connCallbacks = new ArrayList<IClientConnectCallback>();
-
-    /**
-     * 注册的静态回调 | Registered Static callback
-     */
-    private List<IClientConnectCallback> staticCallbacks = new ArrayList<IClientConnectCallback>();
-
-    /**
-     * 超时handler用来处理client connect 超时
-     * Timeout handler to handle client connect timeout
-     */
-    private Handler timeoutHandler = new Handler(new Handler.Callback() {
-        @Override
-        public boolean handleMessage(Message msg) {
-
-            boolean hasConnCallbacks;
-            synchronized (CALLBACK_LOCK) {
-                hasConnCallbacks = !connCallbacks.isEmpty();
-            }
-
-            if (msg != null && msg.what == APICLIENT_TIMEOUT_HANDLE_MSG && hasConnCallbacks) {
-                HMSAgentLog.d("connect time out");
-                resetApiClient();
-                onConnectEnd(HMSAgent.AgentResultCode.APICLIENT_TIMEOUT);
-                return true;
-            } else if (msg != null && msg.what == APICLIENT_STARTACTIVITY_TIMEOUT_HANDLE_MSG && hasConnCallbacks) {
-                HMSAgentLog.d("start activity time out");
-                onConnectEnd(HMSAgent.AgentResultCode.APICLIENT_TIMEOUT);
-                return true;
-            } else if (msg != null && msg.what == UPDATE_OVER_ACTIVITY_CHECK_TIMEOUT_HANDLE_MSG && hasConnCallbacks) {
-                HMSAgentLog.d("Discarded update dispose:hasOverActivity=" +hasOverActivity + " resolveActivity=" + StrUtils.objDesc(resolveActivity));
-                if (hasOverActivity && resolveActivity != null && !resolveActivity.isFinishing()) {
-                    onResolveErrorRst(ConnectionResult.CANCELED);
-                }
-                return true;
-            }
-            return false;
-        }
-    });
-
-    /**
-     * 私有构造方法 | Private construction methods
-     */
-    private ApiClientMgr () {
-    }
-
-    /**
-     * 初始化
-     * @param app 应用程序
-     */
-    public void init(Application app) {
-
-        HMSAgentLog.d("init");
-
-        // 保存应用程序context
-        context = app.getApplicationContext();
-
-        // 取得应用程序包名
-        curAppPackageName = app.getPackageName();
-
-        // 注册activity onResume回调
-        ActivityMgr.INST.unRegisterActivitResumeEvent(this);
-        ActivityMgr.INST.registerActivitResumeEvent(this);
-
-        // 注册activity onPause回调
-        ActivityMgr.INST.unRegisterActivitPauseEvent(this);
-        ActivityMgr.INST.registerActivitPauseEvent(this);
-
-        // 注册activity onDestroyed 回调
-        ActivityMgr.INST.unRegisterActivitDestroyedEvent(this);
-        ActivityMgr.INST.registerActivitDestroyedEvent(this);
-    }
-
-    /**
-     * 断开apiclient,一般不需要调用
-     */
-    public void release() {
-        HMSAgentLog.d("release");
-
-        isResolving = false;
-        resolveActivity = null;
-        hasOverActivity = false;
-
-        HuaweiApiClient client =  getApiClient();
-        if (client != null) {
-            client.disconnect();
-        }
-
-        synchronized (APICLIENT_LOCK) {
-            apiClient = null;
-        }
-
-        synchronized (STATIC_CALLBACK_LOCK) {
-            staticCallbacks.clear();
-        }
-
-        synchronized (CALLBACK_LOCK) {
-            connCallbacks.clear();
-        }
-    }
-
-    /**
-     * 获取当前的 HuaweiApiClient
-     * @return HuaweiApiClient 实例
-     */
-    public HuaweiApiClient getApiClient() {
-        synchronized (APICLIENT_LOCK) {
-            return apiClient != null ? apiClient : resetApiClient();
-        }
-    }
-
-    /**
-     * 判断client是否已经连接
-     * @param client 要检测的client
-     * @return 是否已经连接
-     */
-    public boolean isConnect(HuaweiApiClient client) {
-        return client != null && client.isConnected();
-    }
-
-    /**
-     * 注册apiclient连接事件
-     * @param staticCallback 连接回调
-     */
-    public void registerClientConnect(IClientConnectCallback staticCallback){
-        synchronized (STATIC_CALLBACK_LOCK) {
-            staticCallbacks.add(staticCallback);
-        }
-    }
-
-    /**
-     * 反注册apiclient连接事件
-     * @param staticCallback 连接回调
-     */
-    public void removeClientConnectCallback(IClientConnectCallback staticCallback) {
-        synchronized (STATIC_CALLBACK_LOCK) {
-            staticCallbacks.remove(staticCallback);
-        }
-    }
-
-    /**
-     * 重新创建apiclient
-     * 2种情况需要重新创建:1、首次 2、client的状态已经紊乱
-     * @return 新创建的client
-     */
-    private HuaweiApiClient resetApiClient(){
-        if (context == null) {
-            HMSAgentLog.e("HMSAgent not init");
-            return null;
-        }
-
-        synchronized (APICLIENT_LOCK) {
-            if (apiClient != null) {
-                // 对于老的apiClient,1分钟后才丢弃,防止外面正在使用过程中这边disConnect了
-                disConnectClientDelay(apiClient, 60000);
-            }
-
-            HMSAgentLog.d("reset client");
-
-            // 这种重置client,极端情况可能会出现2个client都回调结果的情况。此时可能出现rstCode=0,但是client无效。
-            // 因为业务调用封装中都进行了一次重试。所以不会有问题
-            apiClient = new HuaweiApiClient.Builder(context)
-                    .addApi(HuaweiPush.PUSH_API)
-                    .addConnectionCallbacks(INST)
-                    .addOnConnectionFailedListener(INST)
-                    .build();
-            return apiClient;
-        }
-    }
-
-    /**
-     * 连接 HuaweiApiClient,
-     * @param callback 连接结果回调,一定不能为null,在子线程进行回调
-     * @param allowResolve 是否允许解决错误,解决错误时可能会拉起界面
-     */
-    public void connect(IClientConnectCallback callback, boolean allowResolve) {
-
-        if (context == null) {
-            aSysnCallback(HMSAgent.AgentResultCode.HMSAGENT_NO_INIT, callback);
-            return;
-        }
-
-        HuaweiApiClient client =  getApiClient();
-        // client 有效,则直接回调
-        if (client != null && client.isConnected()) {
-            HMSAgentLog.d("client is valid");
-            aSysnCallback(HMSAgent.AgentResultCode.HMSAGENT_SUCCESS, callback);
-            return;
-        } else {
-            // client无效,将callback加入队列,并启动连接
-            synchronized (CALLBACK_LOCK) {
-                HMSAgentLog.d("client is invalid:size=" + connCallbacks.size());
-                allowResolveConnectError = allowResolveConnectError || allowResolve;
-                if (connCallbacks.isEmpty()) {
-                    connCallbacks.add(callback);
-
-                    // 连接尝试最大次数
-                    curLeftResolveTimes = MAX_RESOLVE_TIMES;
-
-                    startConnect();
-                } else {
-                    connCallbacks.add(callback);
-                }
-            }
-        }
-    }
-
-    /**
-     * 线程中进行Huawei Api Client 的连接
-     */
-    private void startConnect() {
-
-        // 触发一次连接将重试次数减1
-        curLeftResolveTimes--;
-
-        HMSAgentLog.d("start thread to connect");
-        ThreadUtil.INST.excute(new Runnable() {
-            @Override
-            public void run() {
-                HuaweiApiClient client =  getApiClient();
-
-                if (client != null) {
-                    HMSAgentLog.d("connect");
-                    Activity curActivity = ActivityMgr.INST.getLastActivity();
-
-                    // 考虑到有cp后台需要调用接口,HMSSDK去掉了activity不能为空的判断。这里只是取当前activity,可能为空
-                    timeoutHandler.sendEmptyMessageDelayed(APICLIENT_TIMEOUT_HANDLE_MSG, APICLIENT_CONNECT_TIMEOUT);
-                    client.connect(curActivity);
-                } else {
-                    HMSAgentLog.d("client is generate error");
-                    onConnectEnd(HMSAgent.AgentResultCode.RESULT_IS_NULL);
-                }
-            }
-        });
-    }
-
-    /**
-     * Huawei Api Client 连接结束方法
-     * @param rstCode client 连接结果码
-     */
-    private void onConnectEnd(final int rstCode) {
-        HMSAgentLog.d("connect end:" + rstCode);
-
-        synchronized (CALLBACK_LOCK) {
-            // 回调各个回调接口连接结束
-            for (IClientConnectCallback callback : connCallbacks) {
-                aSysnCallback(rstCode, callback);
-            }
-            connCallbacks.clear();
-
-            // 恢复默认不显示
-            allowResolveConnectError = false;
-        }
-
-        synchronized (STATIC_CALLBACK_LOCK) {
-            // 回调各个回调接口连接结束
-            for (IClientConnectCallback callback : staticCallbacks) {
-                aSysnCallback(rstCode, callback);
-            }
-            staticCallbacks.clear();
-        }
-    }
-
-    /**
-     * 起线程回调各个接口,避免其中一个回调者耗时长影响其他调用者
-     * @param rstCode 结果码
-     * @param callback 回调
-     */
-    private void aSysnCallback(final int rstCode, final IClientConnectCallback callback) {
-        ThreadUtil.INST.excute(new Runnable() {
-            @Override
-            public void run() {
-                HuaweiApiClient client =  getApiClient();
-                HMSAgentLog.d("callback connect: rst=" + rstCode + " apiClient=" + client);
-                callback.onConnect(rstCode, client);
-            }
-        });
-    }
-
-    /**
-     * Activity onResume回调
-     *
-     * @param activity 发生 onResume 事件的activity
-     */
-    @Override
-    public void onActivityResume(Activity activity) {
-        // 通知hmssdk activity onResume了
-        HuaweiApiClient client = getApiClient();
-        if (client != null) {
-            HMSAgentLog.d("tell hmssdk: onResume");
-            client.onResume(activity);
-        }
-
-        // 如果正在解决错误,则处理被覆盖的场景
-        HMSAgentLog.d("is resolving:" + isResolving);
-        if (isResolving && !PACKAGE_NAME_HIAPP.equals(curAppPackageName)) {
-            if (activity instanceof BridgeActivity) {
-                resolveActivity = (BridgeActivity)activity;
-                hasOverActivity = false;
-                HMSAgentLog.d("received bridgeActivity:" + StrUtils.objDesc(resolveActivity));
-            } else if (resolveActivity != null && !resolveActivity.isFinishing()){
-                hasOverActivity = true;
-                HMSAgentLog.d("received other Activity:" + StrUtils.objDesc(resolveActivity));
-            }
-            timeoutHandler.removeMessages(UPDATE_OVER_ACTIVITY_CHECK_TIMEOUT_HANDLE_MSG);
-            timeoutHandler.sendEmptyMessageDelayed(UPDATE_OVER_ACTIVITY_CHECK_TIMEOUT_HANDLE_MSG, UPDATE_OVER_ACTIVITY_CHECK_TIMEOUT);
-        }
-    }
-
-    /**
-     * Activity onPause回调
-     *
-     * @param activity 发生 onPause 事件的activity
-     */
-    @Override
-    public void onActivityPause(Activity activity) {
-        // 通知hmssdk,activity onPause了
-        HuaweiApiClient client = getApiClient();
-        if (client != null) {
-            client.onPause(activity);
-        }
-    }
-
-    /**
-     * Activity onPause回调
-     *
-     * @param activityDestroyed 发生 onDestroyed 事件的activity
-     * @param activityNxt       下个要显示的activity
-     */
-    @Override
-    public void onActivityDestroyed(Activity activityDestroyed, Activity activityNxt) {
-        if (activityNxt == null) {
-            // 所有activity销毁后,重置client,否则公告的标志位还在,下次弹不出来
-            resetApiClient();
-        }
-    }
-
-    /**
-     * connect fail 解决结果回调, 由 HMSAgentActivity 在 onActivityResult 中调用
-     * @param result 解决结果
-     */
-    void onResolveErrorRst(int result) {
-        HMSAgentLog.d("result="+result);
-        isResolving = false;
-        resolveActivity = null;
-        hasOverActivity = false;
-
-        if(result == ConnectionResult.SUCCESS) {
-            HuaweiApiClient client =  getApiClient();
-            if (client != null && !client.isConnecting() && !client.isConnected() && curLeftResolveTimes > 0) {
-                startConnect();
-                return;
-            }
-        }
-
-        onConnectEnd(result);
-    }
-
-    /**
-     * HMSAgentActivity 拉起拉了(走了onCreate)
-     */
-    void onActivityLunched(){
-        HMSAgentLog.d("resolve onActivityLunched");
-        // 拉起界面回调,移除拉起界面超时
-        timeoutHandler.removeMessages(APICLIENT_STARTACTIVITY_TIMEOUT_HANDLE_MSG);
-        isResolving = true;
-    }
-
-    /**
-     * Huawe Api Client 连接成功回到
-     */
-    @Override
-    public void onConnected() {
-        HMSAgentLog.d("connect success");
-        timeoutHandler.removeMessages(APICLIENT_TIMEOUT_HANDLE_MSG);
-        onConnectEnd(ConnectionResult.SUCCESS);
-    }
-
-    /**
-     * 当client变成断开状态时会被调用。这有可能发生在远程服务出现问题时(例如:出现crash或资源问题导致服务被系统杀掉)。
-     * 当被调用时,所有的请求都会被取消,任何listeners都不会被执行。需要 CP 开发代码尝试恢复连接(connect)。
-     * 应用程序应该禁用需要服务的相关UI组件,等待{@link #onConnected()} 回调后重新启用他们。<br>
-     *
-     * @param cause 断开的原因. 常量定义: CAUSE_*.
-     */
-    @Override
-    public void onConnectionSuspended(int cause) {
-        HMSAgentLog.d("connect suspended");
-        connect(new EmptyConnectCallback("onConnectionSuspended try end:"), true);
-    }
-
-    /**
-     * 建立client到service的连接失败时调用
-     *
-     * @param result 连接结果,用于解决错误和知道什么类型的错误
-     */
-    @Override
-    public void onConnectionFailed(ConnectionResult result) {
-        timeoutHandler.removeMessages(APICLIENT_TIMEOUT_HANDLE_MSG);
-
-        if (result == null) {
-            HMSAgentLog.e("result is null");
-            onConnectEnd(HMSAgent.AgentResultCode.RESULT_IS_NULL);
-            return;
-        }
-
-        int errCode = result.getErrorCode();
-        HMSAgentLog.d("errCode=" + errCode + " allowResolve=" + allowResolveConnectError);
-
-        if(HuaweiApiAvailability.getInstance().isUserResolvableError(errCode) && allowResolveConnectError) {
-            Activity activity = ActivityMgr.INST.getLastActivity();
-            if (activity != null) {
-                try {
-                    timeoutHandler.sendEmptyMessageDelayed(APICLIENT_STARTACTIVITY_TIMEOUT_HANDLE_MSG, APICLIENT_STARTACTIVITY_TIMEOUT);
-                    Intent intent = new Intent(activity, HMSAgentActivity.class);
-                    intent.putExtra(HMSAgentActivity.CONN_ERR_CODE_TAG, errCode);
-                    intent.putExtra(BaseAgentActivity.EXTRA_IS_FULLSCREEN, UIUtils.isActivityFullscreen(activity));
-                    activity.startActivity(intent);
-                    return;
-                } catch (Exception e) {
-                    HMSAgentLog.e("start HMSAgentActivity exception:" + e.getMessage());
-                    timeoutHandler.removeMessages(APICLIENT_STARTACTIVITY_TIMEOUT_HANDLE_MSG);
-                    onConnectEnd(HMSAgent.AgentResultCode.START_ACTIVITY_ERROR);
-                    return;
-                }
-            } else {
-                // 当前没有界面处理不了错误
-                HMSAgentLog.d("no activity");
-                onConnectEnd(HMSAgent.AgentResultCode.NO_ACTIVITY_FOR_USE);
-                return;
-            }
-        } else {
-            //其他错误码直接透传
-        }
-
-        onConnectEnd(errCode);
-    }
-
-    private static void disConnectClientDelay(final HuaweiApiClient clientTmp, int delay) {
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                clientTmp.disconnect();
-            }
-        }, delay);
-    }
-}

+ 0 - 40
android/app/src/main/java/com/huawei/android/hms/agent/common/BaseAgentActivity.java

@@ -1,40 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.Window;
-import android.view.WindowManager;
-
-/**
- * 基础activity,用来处理公共的透明参数
- */
-public class BaseAgentActivity extends Activity {
-
-    public static final String EXTRA_IS_FULLSCREEN = "should_be_fullscreen";
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        requestActivityTransparent();
-    }
-
-    /**
-     * 启用透明的跳板Activity
-     */
-    private void requestActivityTransparent() {
-        try {
-            Intent intent = getIntent();
-            if (intent != null && intent.getBooleanExtra(EXTRA_IS_FULLSCREEN, false)) {
-                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
-            }
-            requestWindowFeature(Window.FEATURE_NO_TITLE);
-            Window window = getWindow();
-            if (window != null) {
-                window.addFlags(0x04000000);
-            }
-        } catch (Exception e) {
-            HMSAgentLog.w("requestActivityTransparent exception:" + e.getMessage());
-        }
-    }
-}

+ 0 - 12
android/app/src/main/java/com/huawei/android/hms/agent/common/BaseApiAgent.java

@@ -1,12 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-/**
- * API 实现类基类,用于处理公共操作
- * 目前实现的是client的连接及回调
- */
-public abstract class BaseApiAgent implements IClientConnectCallback {
-    protected void connect() {
-        HMSAgentLog.d("connect");
-        ApiClientMgr.INST.connect(this, true);
-    }
-}

+ 0 - 24
android/app/src/main/java/com/huawei/android/hms/agent/common/CallbackCodeRunnable.java

@@ -1,24 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import com.huawei.android.hms.agent.common.handler.ICallbackCode;
-
-/**
- * 回调线程
- */
-public class CallbackCodeRunnable implements Runnable {
-
-    private ICallbackCode handlerInner;
-    private int rtnCodeInner;
-
-    public CallbackCodeRunnable(ICallbackCode handler, int rtnCode) {
-        handlerInner = handler;
-        rtnCodeInner = rtnCode;
-    }
-
-    @Override
-    public void run() {
-        if (handlerInner != null) {
-            handlerInner.onResult(rtnCodeInner);
-        }
-    }
-}

+ 0 - 26
android/app/src/main/java/com/huawei/android/hms/agent/common/CallbackResultRunnable.java

@@ -1,26 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import com.huawei.android.hms.agent.common.handler.ICallbackResult;
-
-/**
- * 回调线程
- */
-public class CallbackResultRunnable<R> implements Runnable {
-
-    private ICallbackResult<R> handlerInner;
-    private int rtnCodeInner;
-    private R resultInner;
-
-    public CallbackResultRunnable(ICallbackResult<R> handler, int rtnCode, R payInfo) {
-        handlerInner = handler;
-        rtnCodeInner = rtnCode;
-        resultInner = payInfo;
-    }
-
-    @Override
-    public void run() {
-        if (handlerInner != null) {
-            handlerInner.onResult(rtnCodeInner, resultInner);
-        }
-    }
-}

+ 0 - 76
android/app/src/main/java/com/huawei/android/hms/agent/common/CheckUpdateApi.java

@@ -1,76 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.app.Activity;
-import android.os.Handler;
-import android.os.Looper;
-
-import com.huawei.android.hms.agent.HMSAgent;
-import com.huawei.android.hms.agent.common.handler.CheckUpdateHandler;
-import com.huawei.hms.api.CheckUpdatelistener;
-import com.huawei.hms.api.HuaweiApiClient;
-
-/**
- * 应用自升级
- */
-public class CheckUpdateApi extends BaseApiAgent implements CheckUpdatelistener {
-
-    /**
-     * 应用自升级回调接口
-     */
-    private CheckUpdateHandler handler;
-
-    /**
-     * 升级传入的activity
-     */
-    private Activity activity;
-
-    /**
-     * Huawei Api Client 连接回调
-     * @param rst 结果码
-     * @param client HuaweiApiClient 实例
-     */
-    @Override
-    public void onConnect(int rst, HuaweiApiClient client) {
-
-        HMSAgentLog.d("onConnect:" + rst);
-
-        Activity activityCur = ActivityMgr.INST.getLastActivity();
-
-        if (activityCur != null && client != null) {
-            client.checkUpdate(activityCur, this);
-        } else if (activity != null && client != null){
-            client.checkUpdate(activity, this);
-        } else {
-            // 跟SE确认:activity 为 null , 不处理 | Activity is null and does not need to be processed
-            HMSAgentLog.e("no activity to checkUpdate");
-            onCheckUpdateResult(HMSAgent.AgentResultCode.NO_ACTIVITY_FOR_USE);
-            return;
-        }
-    }
-
-    @Override
-    public void onResult(int resultCode) {
-        onCheckUpdateResult(resultCode);
-    }
-
-    private void onCheckUpdateResult(int retCode){
-        HMSAgentLog.i("checkUpdate:callback=" + StrUtils.objDesc(handler) +" retCode=" + retCode);
-        if (handler != null) {
-            new Handler(Looper.getMainLooper()).post(new CallbackCodeRunnable(handler, retCode));
-            handler = null;
-        }
-
-        activity = null;
-    }
-
-    /**
-     * 应用自升级接口
-     * @param handler 应用自升级结果回调
-     */
-    public void checkUpdate(Activity activity, CheckUpdateHandler handler) {
-        HMSAgentLog.i("checkUpdate:handler=" + StrUtils.objDesc(handler));
-        this.handler = handler;
-        this.activity = activity;
-        connect();
-    }
-}

+ 0 - 26
android/app/src/main/java/com/huawei/android/hms/agent/common/EmptyConnectCallback.java

@@ -1,26 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import com.huawei.hms.api.HuaweiApiClient;
-
-/**
- * 连接client空回调
- */
-public class EmptyConnectCallback implements IClientConnectCallback {
-
-    private String msgPre;
-
-    public EmptyConnectCallback(String msgPre){
-        this.msgPre = msgPre;
-    }
-
-    /**
-     * HuaweiApiClient 连接结果回调
-     *
-     * @param rst    结果码
-     * @param client HuaweiApiClient 实例
-     */
-    @Override
-    public void onConnect(int rst, HuaweiApiClient client) {
-        HMSAgentLog.d(msgPre + rst);
-    }
-}

+ 0 - 62
android/app/src/main/java/com/huawei/android/hms/agent/common/HMSAgentActivity.java

@@ -1,62 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-
-import com.huawei.android.hms.agent.HMSAgent;
-import com.huawei.hms.api.HuaweiApiAvailability;
-
-/**
- * 代理Activity,用于弹出解决问题的引导
- */
-public class HMSAgentActivity extends BaseAgentActivity {
-
-    /**
-     * 参数标签,用于取得要解决的错误码
-     */
-    public static final String CONN_ERR_CODE_TAG = "HMSConnectionErrorCode";
-
-    /**
-     * 解决错误后结果的标签,用来取得解决的结果
-     */
-    public static final String EXTRA_RESULT = "intent.extra.RESULT";
-
-    /**
-     * 解决错误的requestCode
-     */
-    private static final int REQUEST_HMS_RESOLVE_ERROR = 1000;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        ApiClientMgr.INST.onActivityLunched();
-
-        Intent intent = getIntent();
-        if (intent != null) {
-            int rstCode =  intent.getIntExtra(CONN_ERR_CODE_TAG, 0);
-            HMSAgentLog.d("dispose code:" + rstCode);
-            HuaweiApiAvailability.getInstance().resolveError(this, rstCode, REQUEST_HMS_RESOLVE_ERROR);
-        } else {
-            HMSAgentLog.e("intent is null");
-            finish();
-        }
-    }
-
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-
-        if(requestCode == REQUEST_HMS_RESOLVE_ERROR) {
-            if(resultCode == Activity.RESULT_OK) {
-                int result = data.getIntExtra(EXTRA_RESULT, -1);
-                HMSAgentLog.d("dispose result:" + result);
-                ApiClientMgr.INST.onResolveErrorRst(result);
-            } else {
-                HMSAgentLog.e("dispose error:" + resultCode);
-                ApiClientMgr.INST.onResolveErrorRst(HMSAgent.AgentResultCode.ON_ACTIVITY_RESULT_ERROR);
-            }
-            finish();
-        }
-    }
-}

+ 0 - 114
android/app/src/main/java/com/huawei/android/hms/agent/common/HMSAgentLog.java

@@ -1,114 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.util.Log;
-
-/**
- * 日志打印类,对打印日志进行封装,方便根据日志定位问题
- */
-public final class HMSAgentLog {
-
-    /**
-     * 日志回调,将要打印的日志回调给开发者,由开发者将日志输出
-     */
-    public interface IHMSAgentLogCallback {
-        void logD(String tag, String log);
-        void logV(String tag, String log);
-        void logI(String tag, String log);
-        void logW(String tag, String log);
-        void logE(String tag, String log);
-    }
-
-    private static final int START_STACK_INDEX = 4;
-    private static final int PRINT_STACK_COUTN = 2;
-
-    private static IHMSAgentLogCallback logCallback = null;
-
-    public static void setHMSAgentLogCallback(IHMSAgentLogCallback callback){
-        logCallback = callback;
-    }
-
-    public static void d(String log) {
-        StringBuilder sb = new StringBuilder();
-        appendStack(sb);
-        sb.append(log);
-
-        if (logCallback != null) {
-            logCallback.logD("HMSAgent", sb.toString());
-        } else {
-            Log.d("HMSAgent", sb.toString());
-        }
-    }
-
-    public static void v(String log) {
-        StringBuilder sb = new StringBuilder();
-        appendStack(sb);
-        sb.append(log);
-        if (logCallback != null) {
-            logCallback.logV("HMSAgent", sb.toString());
-        } else {
-            Log.v("HMSAgent", sb.toString());
-        }
-    }
-
-    public static void i(String log) {
-        StringBuilder sb = new StringBuilder();
-        appendStack(sb);
-        sb.append(log);
-        if (logCallback != null) {
-            logCallback.logI("HMSAgent", sb.toString());
-        } else {
-            Log.i("HMSAgent", sb.toString());
-        }
-    }
-
-    public static void w(String log) {
-        StringBuilder sb = new StringBuilder();
-        appendStack(sb);
-        sb.append(log);
-        if (logCallback != null) {
-            logCallback.logW("HMSAgent", sb.toString());
-        } else {
-            Log.w("HMSAgent", sb.toString());
-        }
-    }
-
-    public static void e(String log) {
-        StringBuilder sb = new StringBuilder();
-        appendStack(sb);
-        sb.append(log);
-
-        if (logCallback != null) {
-            logCallback.logE("HMSAgent", sb.toString());
-        } else {
-            Log.e("HMSAgent", sb.toString());
-        }
-    }
-
-    private static void appendStack(StringBuilder sb) {
-        StackTraceElement[] stacks = Thread.currentThread().getStackTrace();
-        if (stacks != null && stacks.length > START_STACK_INDEX) {
-            int lastIndex = Math.min(stacks.length-1,START_STACK_INDEX+PRINT_STACK_COUTN);
-            for (int i=lastIndex; i >= START_STACK_INDEX; i--) {
-                if (stacks[i] == null) {
-                    continue;
-                }
-
-                String fileName = stacks[i].getFileName();
-                if (fileName != null) {
-                    int dotIndx = fileName.indexOf('.');
-                    if (dotIndx > 0) {
-                        fileName = fileName.substring(0, dotIndx);
-                    }
-                }
-
-                sb.append(fileName);
-                sb.append('(');
-                sb.append(stacks[i].getLineNumber());
-                sb.append(")");
-                sb.append("->");
-            }
-            sb.append(stacks[START_STACK_INDEX].getMethodName());
-        }
-        sb.append('\n');
-    }
-}

+ 0 - 16
android/app/src/main/java/com/huawei/android/hms/agent/common/IActivityDestroyedCallback.java

@@ -1,16 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.app.Activity;
-
-/**
- * Activity onDestroyed 事件回调接口
- */
-public interface IActivityDestroyedCallback {
-
-    /**
-     * Activity onPause回调
-     * @param activityDestroyed 发生 onDestroyed 事件的activity
-     * @param activityNxt 下个要显示的activity
-     */
-    void onActivityDestroyed(Activity activityDestroyed, Activity activityNxt);
-}

+ 0 - 15
android/app/src/main/java/com/huawei/android/hms/agent/common/IActivityPauseCallback.java

@@ -1,15 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.app.Activity;
-
-/**
- * Activity onPause 事件回调接口
- */
-public interface IActivityPauseCallback {
-
-    /**
-     * Activity onPause回调
-     * @param activity 发生 onPause 事件的activity
-     */
-    void onActivityPause(Activity activity);
-}

+ 0 - 15
android/app/src/main/java/com/huawei/android/hms/agent/common/IActivityResumeCallback.java

@@ -1,15 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.app.Activity;
-
-/**
- * Activity onResume 事件回调接口
- */
-public interface IActivityResumeCallback {
-
-    /**
-     * Activity onResume回调
-     * @param activity 发生 onResume 事件的activity
-     */
-    void onActivityResume(Activity activity);
-}

+ 0 - 15
android/app/src/main/java/com/huawei/android/hms/agent/common/IClientConnectCallback.java

@@ -1,15 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import com.huawei.hms.api.HuaweiApiClient;
-
-/**
- * HuaweiApiClient 连接结果回调
- */
-public interface IClientConnectCallback {
-    /**
-     * HuaweiApiClient 连接结果回调
-     * @param rst 结果码
-     * @param client HuaweiApiClient 实例
-     */
-    void onConnect(int rst, HuaweiApiClient client);
-}

+ 0 - 7
android/app/src/main/java/com/huawei/android/hms/agent/common/INoProguard.java

@@ -1,7 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-/**
- * 不混淆类
- */
-public interface INoProguard {
-}

+ 0 - 19
android/app/src/main/java/com/huawei/android/hms/agent/common/IOUtils.java

@@ -1,19 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import java.io.Closeable;
-import java.io.IOException;
-
-/**
- * 工具类
- */
-public final class IOUtils {
-    public static void close(Closeable object) {
-        if (object != null) {
-            try {
-                object.close();
-            } catch (IOException e) {
-                HMSAgentLog.d("close fail");
-            }
-        }
-    }
-}

+ 0 - 15
android/app/src/main/java/com/huawei/android/hms/agent/common/StrUtils.java

@@ -1,15 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-/**
- * 工具类
- */
-public final class StrUtils {
-    /**
-     * 返回对象的描述,这里为了避免用户数据隐私的泄露,只是返回对象本身的描述 类名@hashcode
-     * @param object 对象
-     * @return 对象的描述
-     */
-    public static String objDesc(Object object) {
-        return object == null ? "null" : (object.getClass().getName()+'@'+Integer.toHexString(object.hashCode()));
-    }
-}

+ 0 - 58
android/app/src/main/java/com/huawei/android/hms/agent/common/ThreadUtil.java

@@ -1,58 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.os.Handler;
-import android.os.Looper;
-
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-/**
- * 线程工具,用于执行线程等
- */
-public final class ThreadUtil {
-    public static final ThreadUtil INST = new ThreadUtil();
-
-    private ExecutorService executors;
-
-    private ThreadUtil(){
-    }
-
-    /**
-     * 在线程中执行
-     * @param runnable 要执行的runnable
-     */
-    public void excute(Runnable runnable) {
-        ExecutorService executorService = getExecutorService();
-        if (executorService != null) {
-            // 优先使用线程池,提高效率
-            executorService.execute(runnable);
-        } else {
-            // 线程池获取失败,则直接使用线程
-            new Thread(runnable).start();
-        }
-    }
-
-    /**
-     * 在主线程中执行
-     * @param runnable 要执行的runnable
-     */
-    public void excuteInMainThread(Runnable runnable){
-        new Handler(Looper.getMainLooper()).post(runnable);
-    }
-
-    /**
-     * 获取缓存线程池
-     * @return 缓存线程池服务
-     */
-    private ExecutorService getExecutorService(){
-        if (executors == null) {
-            try {
-                executors = Executors.newCachedThreadPool();
-            } catch (Exception e) {
-                HMSAgentLog.e("create thread service error:" + e.getMessage());
-            }
-        }
-
-        return executors;
-    }
-}

+ 0 - 27
android/app/src/main/java/com/huawei/android/hms/agent/common/UIUtils.java

@@ -1,27 +0,0 @@
-package com.huawei.android.hms.agent.common;
-
-import android.app.Activity;
-import android.view.WindowManager;
-
-/**
- * 工具类
- */
-public final class UIUtils {
-    /**
-     * 判断当前activity是否为全屏
-     * @param activity 当前activity
-     * @return 是否全屏
-     */
-    public static boolean isActivityFullscreen(Activity activity)
-    {
-        WindowManager.LayoutParams attrs = activity.getWindow().getAttributes();
-        if ((attrs.flags & WindowManager.LayoutParams.FLAG_FULLSCREEN) == WindowManager.LayoutParams.FLAG_FULLSCREEN)
-        {
-            return true;
-        }
-        else
-        {
-            return false;
-        }
-    }
-}

+ 0 - 7
android/app/src/main/java/com/huawei/android/hms/agent/common/handler/CheckUpdateHandler.java

@@ -1,7 +0,0 @@
-package com.huawei.android.hms.agent.common.handler;
-
-/**
- * 应用自升级回调
- */
-public interface CheckUpdateHandler extends ICallbackCode {
-}

+ 0 - 12
android/app/src/main/java/com/huawei/android/hms/agent/common/handler/ConnectHandler.java

@@ -1,12 +0,0 @@
-package com.huawei.android.hms.agent.common.handler;
-
-/**
- * HuaweiApiClient 连接结果回调
- */
-public interface ConnectHandler {
-    /**
-     * HuaweiApiClient 连接结果回调
-     * @param rst 结果码
-     */
-    void onConnect(int rst);
-}

+ 0 - 12
android/app/src/main/java/com/huawei/android/hms/agent/common/handler/ICallbackCode.java

@@ -1,12 +0,0 @@
-package com.huawei.android.hms.agent.common.handler;
-
-/**
- * 回调接口
- */
-public interface ICallbackCode {
-    /**
-     * 回调接口
-     * @param rst 结果码
-     */
-    void onResult(int rst);
-}

+ 0 - 13
android/app/src/main/java/com/huawei/android/hms/agent/common/handler/ICallbackResult.java

@@ -1,13 +0,0 @@
-package com.huawei.android.hms.agent.common.handler;
-
-/**
- * 回调接口
- */
-public interface ICallbackResult<R> {
-    /**
-     * 回调接口
-     * @param rst 结果码
-     * @param result 结果信息
-     */
-    void onResult(int rst, R result);
-}

+ 0 - 86
android/app/src/main/java/com/huawei/android/hms/agent/push/DeleteTokenApi.java

@@ -1,86 +0,0 @@
-package com.huawei.android.hms.agent.push;
-
-import android.os.Handler;
-import android.os.Looper;
-import android.text.TextUtils;
-
-import com.huawei.android.hms.agent.HMSAgent;
-import com.huawei.android.hms.agent.common.ApiClientMgr;
-import com.huawei.android.hms.agent.common.BaseApiAgent;
-import com.huawei.android.hms.agent.common.CallbackCodeRunnable;
-import com.huawei.android.hms.agent.common.HMSAgentLog;
-import com.huawei.android.hms.agent.common.StrUtils;
-import com.huawei.android.hms.agent.common.ThreadUtil;
-import com.huawei.android.hms.agent.push.handler.DeleteTokenHandler;
-import com.huawei.hms.api.HuaweiApiClient;
-import com.huawei.hms.support.api.push.HuaweiPush;
-
-/**
- * 删除pushtoken的接口。
- */
-public class DeleteTokenApi extends BaseApiAgent {
-
-    /**
-     * 待删除的push token
-     */
-    private String token;
-
-    /**
-     * 调用接口回调
-     */
-    private DeleteTokenHandler handler;
-
-    /**
-     * HuaweiApiClient 连接结果回调
-     *
-     * @param rst    结果码
-     * @param client HuaweiApiClient 实例
-     */
-    @Override
-    public void onConnect(final int rst, final HuaweiApiClient client) {
-        //需要在子线程中执行删除TOKEN操作
-        ThreadUtil.INST.excute(new Runnable() {
-            @Override
-            public void run() {
-                //调用删除TOKEN需要传入通过getToken接口获取到TOKEN,并且需要对TOKEN进行非空判断
-                if (!TextUtils.isEmpty(token)){
-                    if (client == null || !ApiClientMgr.INST.isConnect(client)) {
-                        HMSAgentLog.e("client not connted");
-                        onDeleteTokenResult(rst);
-                    } else {
-                        try {
-                            HuaweiPush.HuaweiPushApi.deleteToken(client, token);
-                            onDeleteTokenResult(HMSAgent.AgentResultCode.HMSAGENT_SUCCESS);
-                        } catch (Exception e) {
-                            HMSAgentLog.e("删除TOKEN失败:" + e.getMessage());
-                            onDeleteTokenResult(HMSAgent.AgentResultCode.CALL_EXCEPTION);
-                        }
-                    }
-                } else {
-                    HMSAgentLog.e("删除TOKEN失败: 要删除的token为空");
-                    onDeleteTokenResult(HMSAgent.AgentResultCode.EMPTY_PARAM);
-                }
-            }
-        });
-    }
-
-    void onDeleteTokenResult(int rstCode) {
-        HMSAgentLog.i("deleteToken:callback=" + StrUtils.objDesc(handler) +" retCode=" + rstCode);
-        if (handler != null) {
-            new Handler(Looper.getMainLooper()).post(new CallbackCodeRunnable(handler, rstCode));
-            handler = null;
-        }
-    }
-
-    /**
-     * 删除指定的pushtoken
-     * 该接口只在EMUI5.1以及更高版本的华为手机上调用该接口后才不会收到PUSH消息。
-     * @param token 要删除的token
-     */
-    public void deleteToken(String token, DeleteTokenHandler handler) {
-        HMSAgentLog.i("deleteToken:token:" + StrUtils.objDesc(token) + " handler=" + StrUtils.objDesc(handler));
-        this.token = token;
-        this.handler = handler;
-        connect();
-    }
-}

+ 0 - 74
android/app/src/main/java/com/huawei/android/hms/agent/push/EnableReceiveNormalMsgApi.java

@@ -1,74 +0,0 @@
-package com.huawei.android.hms.agent.push;
-
-import android.os.Handler;
-import android.os.Looper;
-
-import com.huawei.android.hms.agent.HMSAgent;
-import com.huawei.android.hms.agent.common.ApiClientMgr;
-import com.huawei.android.hms.agent.common.BaseApiAgent;
-import com.huawei.android.hms.agent.common.CallbackCodeRunnable;
-import com.huawei.android.hms.agent.common.HMSAgentLog;
-import com.huawei.android.hms.agent.common.StrUtils;
-import com.huawei.android.hms.agent.common.ThreadUtil;
-import com.huawei.android.hms.agent.push.handler.EnableReceiveNormalMsgHandler;
-import com.huawei.hms.api.HuaweiApiClient;
-import com.huawei.hms.support.api.push.HuaweiPush;
-
-/**
- * 打开透传消息开关的接口。
- */
-public class EnableReceiveNormalMsgApi extends BaseApiAgent {
-
-    /**
-     * 是否打开开关
-     */
-    boolean enable;
-
-    /**
-     * 调用接口回调
-     */
-    private EnableReceiveNormalMsgHandler handler;
-
-    /**
-     * HuaweiApiClient 连接结果回调
-     *
-     * @param rst    结果码
-     * @param client HuaweiApiClient 实例
-     */
-    @Override
-    public void onConnect(final int rst, final HuaweiApiClient client) {
-        //需要在子线程中执行开关的操作
-        ThreadUtil.INST.excute(new Runnable() {
-            @Override
-            public void run() {
-                if (client == null || !ApiClientMgr.INST.isConnect(client)) {
-                    HMSAgentLog.e("client not connted");
-                    onEnableReceiveNormalMsgResult(rst);
-                } else {
-                    // 开启/关闭透传消息
-                    HuaweiPush.HuaweiPushApi.enableReceiveNormalMsg(client, enable);
-                    onEnableReceiveNormalMsgResult(HMSAgent.AgentResultCode.HMSAGENT_SUCCESS);
-                }
-            }
-        });
-    }
-
-    void onEnableReceiveNormalMsgResult(int rstCode) {
-        HMSAgentLog.i("enableReceiveNormalMsg:callback=" + StrUtils.objDesc(handler) +" retCode=" + rstCode);
-        if (handler != null) {
-            new Handler(Looper.getMainLooper()).post(new CallbackCodeRunnable(handler, rstCode));
-            handler = null;
-        }
-    }
-
-    /**
-     * 打开/关闭透传消息
-     * @param enable 打开/关闭
-     */
-    public void enableReceiveNormalMsg(boolean enable, EnableReceiveNormalMsgHandler handler) {
-        HMSAgentLog.i("enableReceiveNormalMsg:enable=" + enable + "  handler=" + StrUtils.objDesc(handler));
-        this.enable = enable;
-        this.handler = handler;
-        connect();
-    }
-}

+ 0 - 74
android/app/src/main/java/com/huawei/android/hms/agent/push/EnableReceiveNotifyMsgApi.java

@@ -1,74 +0,0 @@
-package com.huawei.android.hms.agent.push;
-
-import android.os.Handler;
-import android.os.Looper;
-
-import com.huawei.android.hms.agent.HMSAgent;
-import com.huawei.android.hms.agent.common.ApiClientMgr;
-import com.huawei.android.hms.agent.common.BaseApiAgent;
-import com.huawei.android.hms.agent.common.CallbackCodeRunnable;
-import com.huawei.android.hms.agent.common.HMSAgentLog;
-import com.huawei.android.hms.agent.common.StrUtils;
-import com.huawei.android.hms.agent.common.ThreadUtil;
-import com.huawei.android.hms.agent.push.handler.EnableReceiveNotifyMsgHandler;
-import com.huawei.hms.api.HuaweiApiClient;
-import com.huawei.hms.support.api.push.HuaweiPush;
-
-/**
- * 打开自呈现消息开关的接口。
- */
-public class EnableReceiveNotifyMsgApi extends BaseApiAgent {
-
-    /**
-     * 是否打开开关
-     */
-    boolean enable;
-
-    /**
-     * 调用接口回调
-     */
-    private EnableReceiveNotifyMsgHandler handler;
-
-    /**
-     * HuaweiApiClient 连接结果回调
-     *
-     * @param rst    结果码
-     * @param client HuaweiApiClient 实例
-     */
-    @Override
-    public void onConnect(final int rst, final HuaweiApiClient client) {
-        //需要在子线程中执行开关的操作
-        ThreadUtil.INST.excute(new Runnable() {
-            @Override
-            public void run() {
-                if (client == null || !ApiClientMgr.INST.isConnect(client)) {
-                    HMSAgentLog.e("client not connted");
-                    onEnableReceiveNotifyMsgResult(rst);
-                } else {
-                    // 开启/关闭自呈现消息
-                    HuaweiPush.HuaweiPushApi.enableReceiveNotifyMsg(client, enable);
-                    onEnableReceiveNotifyMsgResult(HMSAgent.AgentResultCode.HMSAGENT_SUCCESS);
-                }
-            }
-        });
-    }
-
-    void onEnableReceiveNotifyMsgResult(int rstCode) {
-        HMSAgentLog.i("enableReceiveNotifyMsg:callback=" + StrUtils.objDesc(handler) +" retCode=" + rstCode);
-        if (handler != null) {
-            new Handler(Looper.getMainLooper()).post(new CallbackCodeRunnable(handler, rstCode));
-            handler = null;
-        }
-    }
-
-    /**
-     * 打开/关闭自呈现消息
-     * @param enable 打开/关闭
-     */
-    public void enableReceiveNotifyMsg(boolean enable, EnableReceiveNotifyMsgHandler handler) {
-        HMSAgentLog.i("enableReceiveNotifyMsg:enable=" + enable + " handler=" + StrUtils.objDesc(handler));
-        this.enable = enable;
-        this.handler = handler;
-        connect();
-    }
-}

+ 0 - 67
android/app/src/main/java/com/huawei/android/hms/agent/push/GetPushStateApi.java

@@ -1,67 +0,0 @@
-package com.huawei.android.hms.agent.push;
-
-import android.os.Handler;
-import android.os.Looper;
-
-import com.huawei.android.hms.agent.HMSAgent;
-import com.huawei.android.hms.agent.common.ApiClientMgr;
-import com.huawei.android.hms.agent.common.BaseApiAgent;
-import com.huawei.android.hms.agent.common.CallbackCodeRunnable;
-import com.huawei.android.hms.agent.common.HMSAgentLog;
-import com.huawei.android.hms.agent.common.StrUtils;
-import com.huawei.android.hms.agent.common.ThreadUtil;
-import com.huawei.android.hms.agent.push.handler.GetPushStateHandler;
-import com.huawei.hms.api.HuaweiApiClient;
-import com.huawei.hms.support.api.push.HuaweiPush;
-
-/**
- * 获取push状态的接口。
- */
-public class GetPushStateApi extends BaseApiAgent {
-
-    /**
-     * 调用接口回调
-     */
-    private GetPushStateHandler handler;
-
-    /**
-     * HuaweiApiClient 连接结果回调
-     *
-     * @param rst    结果码
-     * @param client HuaweiApiClient 实例
-     */
-    @Override
-    public void onConnect(final int rst, final HuaweiApiClient client) {
-        //需要在子线程中执行获取push状态的操作
-        ThreadUtil.INST.excute(new Runnable() {
-            @Override
-            public void run() {
-                if (client == null || !ApiClientMgr.INST.isConnect(client)) {
-                    HMSAgentLog.e("client not connted");
-                    onGetPushStateResult(rst);
-                } else {
-                    HuaweiPush.HuaweiPushApi.getPushState(client);
-                    onGetPushStateResult(HMSAgent.AgentResultCode.HMSAGENT_SUCCESS);
-                }
-            }
-        });
-    }
-
-    void onGetPushStateResult(int rstCode) {
-        HMSAgentLog.i("getPushState:callback=" + StrUtils.objDesc(handler) +" retCode=" + rstCode);
-        if (handler != null) {
-            new Handler(Looper.getMainLooper()).post(new CallbackCodeRunnable(handler, rstCode));
-            handler = null;
-        }
-    }
-
-    /**
-     * 获取push状态,push状态的回调通过广播发送。
-     * 要监听的广播,请参见HMS-SDK开发准备中PushReceiver的注册
-     */
-    public void getPushState(GetPushStateHandler handler) {
-        HMSAgentLog.i("getPushState:handler=" + StrUtils.objDesc(handler));
-        this.handler = handler;
-        connect();
-    }
-}

+ 0 - 112
android/app/src/main/java/com/huawei/android/hms/agent/push/GetTokenApi.java

@@ -1,112 +0,0 @@
-package com.huawei.android.hms.agent.push;
-
-import android.os.Handler;
-import android.os.Looper;
-
-import com.huawei.android.hms.agent.HMSAgent;
-import com.huawei.android.hms.agent.common.ApiClientMgr;
-import com.huawei.android.hms.agent.common.BaseApiAgent;
-import com.huawei.android.hms.agent.common.CallbackCodeRunnable;
-import com.huawei.android.hms.agent.common.HMSAgentLog;
-import com.huawei.android.hms.agent.common.StrUtils;
-import com.huawei.android.hms.agent.push.handler.GetTokenHandler;
-import com.huawei.hms.api.HuaweiApiClient;
-import com.huawei.hms.support.api.client.PendingResult;
-import com.huawei.hms.support.api.client.ResultCallback;
-import com.huawei.hms.support.api.client.Status;
-import com.huawei.hms.support.api.entity.core.CommonCode;
-import com.huawei.hms.support.api.push.HuaweiPush;
-import com.huawei.hms.support.api.push.TokenResult;
-
-/**
- * 获取token的push接口,token的结果通过广播进行接收。
- */
-public class GetTokenApi extends BaseApiAgent {
-
-    /**
-     * client 无效最大尝试次数
-     */
-    private static final int MAX_RETRY_TIMES = 1;
-
-    /**
-     * 结果回调
-     */
-    private GetTokenHandler handler;
-
-    /**
-     * 当前剩余重试次数
-     */
-    private int retryTimes = MAX_RETRY_TIMES;
-
-    /**
-     * HuaweiApiClient 连接结果回调
-     *
-     * @param rst    结果码
-     * @param client HuaweiApiClient 实例
-     */
-    @Override
-    public void onConnect(int rst, HuaweiApiClient client) {
-        if (client == null || !ApiClientMgr.INST.isConnect(client)) {
-            HMSAgentLog.e("client not connted");
-            onPushTokenResult(rst, null);
-            return;
-        }
-
-        PendingResult<TokenResult> tokenResult = HuaweiPush.HuaweiPushApi.getToken(client);
-        tokenResult.setResultCallback(new ResultCallback<TokenResult>() {
-            @Override
-            public void onResult(TokenResult result) {
-                if (result == null) {
-                    HMSAgentLog.e("result is null");
-                    onPushTokenResult(HMSAgent.AgentResultCode.RESULT_IS_NULL, null);
-                    return;
-                }
-
-                Status status = result.getStatus();
-                if (status == null) {
-                    HMSAgentLog.e("status is null");
-                    onPushTokenResult(HMSAgent.AgentResultCode.STATUS_IS_NULL, null);
-                    return;
-                }
-
-                int rstCode = status.getStatusCode();
-                HMSAgentLog.d("status=" + status);
-                // 需要重试的错误码,并且可以重试
-                if ((rstCode == CommonCode.ErrorCode.SESSION_INVALID
-                        || rstCode == CommonCode.ErrorCode.CLIENT_API_INVALID) && retryTimes > 0) {
-                    retryTimes--;
-                    connect();
-                } else {
-                    onPushTokenResult(rstCode, result);
-                }
-            }
-        });
-    }
-
-    /**
-     * 获取pushtoken接口调用回调
-     * pushtoken通过广播下发,要监听的广播,请参见HMS-SDK开发准备中PushReceiver的注册
-     * @param rstCode 结果码
-     * @param result 调用获取pushtoken接口的结果
-     */
-    void onPushTokenResult(int rstCode, TokenResult result) {
-        HMSAgentLog.i("getToken:callback=" + StrUtils.objDesc(handler) +" retCode=" + rstCode);
-        if (handler != null) {
-            new Handler(Looper.getMainLooper()).post(new CallbackCodeRunnable(handler, rstCode));
-            handler = null;
-        }
-        retryTimes = MAX_RETRY_TIMES;
-    }
-
-    /**
-     * 获取pushtoken接口
-     * pushtoken通过广播下发,要监听的广播,请参见HMS-SDK开发准备中PushReceiver的注册
-     * @param handler pushtoken接口调用回调
-     */
-    public void getToken(GetTokenHandler handler) {
-        HMSAgentLog.i("getToken:handler=" + StrUtils.objDesc(handler));
-        this.handler = handler;
-        retryTimes = MAX_RETRY_TIMES;
-        connect();
-    }
-}

+ 0 - 66
android/app/src/main/java/com/huawei/android/hms/agent/push/QueryAgreementApi.java

@@ -1,66 +0,0 @@
-package com.huawei.android.hms.agent.push;
-
-import android.os.Handler;
-import android.os.Looper;
-
-import com.huawei.android.hms.agent.HMSAgent;
-import com.huawei.android.hms.agent.common.ApiClientMgr;
-import com.huawei.android.hms.agent.common.BaseApiAgent;
-import com.huawei.android.hms.agent.common.CallbackCodeRunnable;
-import com.huawei.android.hms.agent.common.HMSAgentLog;
-import com.huawei.android.hms.agent.common.StrUtils;
-import com.huawei.android.hms.agent.common.ThreadUtil;
-import com.huawei.android.hms.agent.push.handler.QueryAgreementHandler;
-import com.huawei.hms.api.HuaweiApiClient;
-import com.huawei.hms.support.api.push.HuaweiPush;
-
-/**
- * 获取push协议展示的接口。
- */
-public class QueryAgreementApi extends BaseApiAgent {
-
-    /**
-     * 调用接口回调
-     */
-    private QueryAgreementHandler handler;
-
-    /**
-     * HuaweiApiClient 连接结果回调
-     *
-     * @param rst    结果码
-     * @param client HuaweiApiClient 实例
-     */
-    @Override
-    public void onConnect(final int rst, final HuaweiApiClient client) {
-        //需要在子线程中执行获取push协议展示的操作
-        ThreadUtil.INST.excute(new Runnable() {
-            @Override
-            public void run() {
-                if (client == null || !ApiClientMgr.INST.isConnect(client)) {
-                    HMSAgentLog.e("client not connted");
-                    onQueryAgreementResult(rst);
-                } else {
-                    HuaweiPush.HuaweiPushApi.queryAgreement(client);
-                    onQueryAgreementResult(HMSAgent.AgentResultCode.HMSAGENT_SUCCESS);
-                }
-            }
-        });
-    }
-
-    void onQueryAgreementResult(int rstCode) {
-        HMSAgentLog.i("queryAgreement:callback=" + StrUtils.objDesc(handler) +" retCode=" + rstCode);
-        if (handler != null) {
-            new Handler(Looper.getMainLooper()).post(new CallbackCodeRunnable(handler, rstCode));
-            handler = null;
-        }
-    }
-
-    /**
-     * 请求push协议展示
-     */
-    public void queryAgreement(QueryAgreementHandler handler) {
-        HMSAgentLog.i("queryAgreement:handler=" + StrUtils.objDesc(handler));
-        this.handler = handler;
-        connect();
-    }
-}

+ 0 - 9
android/app/src/main/java/com/huawei/android/hms/agent/push/handler/DeleteTokenHandler.java

@@ -1,9 +0,0 @@
-package com.huawei.android.hms.agent.push.handler;
-
-import com.huawei.android.hms.agent.common.handler.ICallbackCode;
-
-/**
- * deleteToken 回调
- */
-public interface DeleteTokenHandler extends ICallbackCode {
-}

+ 0 - 9
android/app/src/main/java/com/huawei/android/hms/agent/push/handler/EnableReceiveNormalMsgHandler.java

@@ -1,9 +0,0 @@
-package com.huawei.android.hms.agent.push.handler;
-
-import com.huawei.android.hms.agent.common.handler.ICallbackCode;
-
-/**
- * enableReceiveNormalMsg 回调
- */
-public interface EnableReceiveNormalMsgHandler extends ICallbackCode {
-}

+ 0 - 9
android/app/src/main/java/com/huawei/android/hms/agent/push/handler/EnableReceiveNotifyMsgHandler.java

@@ -1,9 +0,0 @@
-package com.huawei.android.hms.agent.push.handler;
-
-import com.huawei.android.hms.agent.common.handler.ICallbackCode;
-
-/**
- * enableReceiveNotifyMsg 回调
- */
-public interface EnableReceiveNotifyMsgHandler extends ICallbackCode {
-}

+ 0 - 9
android/app/src/main/java/com/huawei/android/hms/agent/push/handler/GetPushStateHandler.java

@@ -1,9 +0,0 @@
-package com.huawei.android.hms.agent.push.handler;
-
-import com.huawei.android.hms.agent.common.handler.ICallbackCode;
-
-/**
- * getPushState 回调
- */
-public interface GetPushStateHandler extends ICallbackCode {
-}

+ 0 - 9
android/app/src/main/java/com/huawei/android/hms/agent/push/handler/GetTokenHandler.java

@@ -1,9 +0,0 @@
-package com.huawei.android.hms.agent.push.handler;
-
-import com.huawei.android.hms.agent.common.handler.ICallbackCode;
-
-/**
- * 获取 pushtoken 回调
- */
-public interface GetTokenHandler extends ICallbackCode {
-}

+ 0 - 9
android/app/src/main/java/com/huawei/android/hms/agent/push/handler/QueryAgreementHandler.java

@@ -1,9 +0,0 @@
-package com.huawei.android.hms.agent.push.handler;
-
-import com.huawei.android.hms.agent.common.handler.ICallbackCode;
-
-/**
- * queryAgreement 回调
- */
-public interface QueryAgreementHandler extends ICallbackCode {
-}

+ 0 - 50
android/app/src/main/java/com/topsoft/jianyu/App.java

@@ -1,50 +0,0 @@
-package com.topsoft.jianyu;
-
-import android.app.Application;
-
-import com.huawei.android.hms.agent.HMSAgent;
-import com.topsoft.jianyu.util.AppConstant;
-import com.topsoft.jianyu.util.AppUtil;
-import com.topsoft.jianyu.util.StringUtil;
-import com.umeng.socialize.Config;
-import com.umeng.socialize.PlatformConfig;
-
-import cn.jpush.android.api.JPushInterface;
-
-/**
- * Created by wangkaiyue on 2018/1/25.
- */
-
-public class App extends Application {
-
-    @Override
-    public void onCreate() {
-        super.onCreate();
-        Boolean isDebug=AppUtil.isApkInDebug(getApplicationContext());
-        //是否开启友盟debug模式
-        Config.DEBUG =isDebug;
-        //是否开启极光debug模式
-        JPushInterface.setDebugMode(isDebug);
-
-        //根据机型注册推送
-        switch (AppConstant.PHONE_BRAND){
-            case StringUtil.HUAWEI:
-                //华为推送
-                HMSAgent.init(this);
-                break;
-            default:
-                //初始化极光推送
-                JPushInterface.init(this);
-                break;
-        }
-
-
-
-    }
-
-    //各个平台的配置,建议放在全局Application或者程序入口
-    {
-        PlatformConfig.setWeixin("wx0e6a5b18f4cfd10d", "bf12200554cb6edeb2be69d49dc11a3e");//正式
-        PlatformConfig.setQQZone("1106703118", "MYFVJZhtygWy5hzh");
-    }
-}

+ 0 - 248
android/app/src/main/java/com/topsoft/jianyu/ExternalWebPage.java

@@ -1,248 +0,0 @@
-package com.topsoft.jianyu;
-
-import android.app.Dialog;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Build;
-import android.os.Bundle;
-
-import android.os.Handler;
-import android.os.Message;
-import android.support.annotation.Nullable;
-import android.support.v7.app.AppCompatActivity;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.webkit.DownloadListener;
-import android.webkit.ValueCallback;
-import android.webkit.WebBackForwardList;
-import android.webkit.WebChromeClient;
-import android.webkit.WebHistoryItem;
-import android.webkit.WebResourceRequest;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import com.topsoft.jianyu.util.AppConstant;
-import com.topsoft.jianyu.util.AppUtil;
-import com.topsoft.jianyu.util.LoadingUtils;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-
-/**
- * Created by wangkaiyue on 2018/2/1.
- */
-
-public class ExternalWebPage extends AppCompatActivity{
-
-    private WebView wv;
-    private ProgressBar mProgressBar;
-    private int type=0;
-    private Context context;
-    private Button back;
-    private Handler uiHandler;
-    private boolean webViewFinish=false;
-    private Dialog loadpage=null;
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.external_web);
-        context=this;
-        mProgressBar = findViewById(R.id.progressBar);
-
-        Intent intent=getIntent();
-        String url=intent.getStringExtra("url");
-        String title=intent.getStringExtra("title");
-
-        //初始化uiHandler线程
-        uiHandler = new Handler() {
-            public void handleMessage(Message msg) {
-                switch (msg.what) {
-                    case AppConstant.NETWORK_OK:
-                        //webview可见
-                        findViewById(R.id.external_network_error_view).setVisibility(View.GONE);
-                        findViewById(R.id.external_webview_layout).setVisibility(View.VISIBLE);
-                        break;
-                    case AppConstant.NETWORK_ERR:
-                        //webview不可见
-                        findViewById(R.id.external_network_error_view).setVisibility(View.VISIBLE);
-                        findViewById(R.id.external_webview_layout).setVisibility(View.GONE);
-                        break;
-                }
-            }
-        };
-
-        //是否展示标题样式
-        if(!"".equals(title)){ //带标题样式
-            AppUtil.setAndroidNativeLightStatusBar(this,true,true);
-            back=findViewById(R.id.titleBack);
-            findViewById(R.id.backCircular).setVisibility(GONE);
-            ((TextView)findViewById(R.id.titleText)).setText(title);
-        }else{//不带标题样式
-            type=1;
-            AppUtil.setAndroidNativeLightStatusBar(this,false,true);
-            back=findViewById(R.id.backCircular);
-            findViewById(R.id.title).setVisibility(View.GONE);
-        }
-        initWebview(url);
-        //返回事件
-        back.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if(wv.canGoBack()){
-                    wv.goBack();
-                }else{
-                    finish();
-                }
-            }
-        });
-        //网络重试
-        findViewById(R.id.try_connect_network).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                webViewFinish=false;
-                if(AppUtil.NetworkState(context)){
-                    wv.reload();
-                    loadpage= LoadingUtils.createLoadingDialog(context, "正在加载页面");
-                    new Timer().schedule(new TimerTask() {
-                        @Override
-                        public void run() {
-                            if(webViewFinish){
-                                uiHandler.obtainMessage(AppConstant.NETWORK_OK).sendToTarget();//viewView可见
-                                loadpage.cancel();
-                                this.cancel();
-                            }
-                        }
-                    }, 0, 500);
-
-                }
-            }
-        });
-    }
-
-    private int lastProgress=0;
-    protected void initWebview(String url) {
-        wv=findViewById(R.id.webView);
-
-        wv.setWebViewClient(new WebViewClient() {
-            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
-                uiHandler.obtainMessage(301).sendToTarget();//webview不可见
-                Log.e("ExternalWebPage", "页面相应出错description: "+description+"   地址:"+failingUrl );
-            }
-            });
-        wv.setWebChromeClient(new WebChromeClient() {
-            @Override
-            public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
-                super.onShowFileChooser(webView, filePathCallback, fileChooserParams);
-                return true;
-            }
-
-            @Override
-            public void onProgressChanged(WebView view,final int newProgress) {
-                super.onProgressChanged(view, newProgress);
-                if (newProgress == 100) {
-                    webViewFinish=true;
-                    if(type!=1) return;
-                    for(;lastProgress<100;lastProgress++){
-                        mProgressBar.setProgress(newProgress);
-                    }
-                    mProgressBar.setVisibility(GONE);
-                    lastProgress=0;
-                } else {
-                    webViewFinish=false;
-                    if(type!=1) return;
-                    mProgressBar.setVisibility(VISIBLE);
-                    for(;lastProgress<newProgress;lastProgress++){
-                        mProgressBar.setProgress(newProgress);
-                    }
-                }
-            }
-            //解决无法新建窗口打开链接 target="_blank"
-            @Override
-            public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
-                WebView newWebView = new WebView(view.getContext());
-                newWebView.setWebViewClient(new WebViewClient() {
-                    @Override
-                    public boolean shouldOverrideUrlLoading(WebView view, String url) {
-                        wv.loadUrl(url);
-                    return true;
-                    }
-
-                });
-                WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
-                transport.setWebView(newWebView);
-                resultMsg.sendToTarget();
-                return true;
-            }
-        });
-        wv.setDownloadListener(new MyWebViewDownLoadListener());
-        WebSettings webSettings = wv.getSettings();
-        //设置支持javascript
-        webSettings.setJavaScriptEnabled(true);
-        webSettings.setDomStorageEnabled(true);
-        //允许JS弹窗
-        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
-        webSettings.setSupportMultipleWindows(true);
-
-        webSettings.setUseWideViewPort(true);//屏幕自适应
-        webSettings.setLoadWithOverviewMode(true);// 缩放至屏幕的大小
-        webSettings.setLoadsImagesAutomatically(true);//是否加载图片
-        //可以访问文件
-        webSettings.setAllowFileAccess(true);
-        //设置放大缩小
-        webSettings.setSupportZoom(true);
-        webSettings.setBuiltInZoomControls(true);
-        webSettings.setDisplayZoomControls(false);//隐藏缩放工具
-
-        //设置当一个安全站点企图加载来自一个不安全站点资源时(https中可以携带http资源)
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
-        }
-        
-        Map<String, String> map = new HashMap<String, String>();
-        map.put("User-Agent", "Android");
-        wv.loadUrl(url, map);
-    }
-
-    @Override
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-        if (keyCode == KeyEvent.KEYCODE_BACK && wv.canGoBack()) {
-            wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
-            wv.goBack();
-            return true;
-        }
-        return super.onKeyDown(keyCode, event);
-    }
-
-    @Override
-    protected void onDestroy() {
-        if (wv != null) {
-            wv.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
-            wv.clearHistory();
-            ((ViewGroup) wv.getParent()).removeView(wv);
-            wv.destroy();
-            wv = null;
-        }
-        super.onDestroy();
-    }
-    //webview 下载事件
-    private  class MyWebViewDownLoadListener implements DownloadListener {
-        @Override
-        public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype,long contentLength) {
-            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
-        }
-    }
-}

+ 0 - 450
android/app/src/main/java/com/topsoft/jianyu/JyObj.java

@@ -1,450 +0,0 @@
-package com.topsoft.jianyu;
-
-
-import android.app.AlertDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.support.v4.app.ActivityCompat;
-import android.util.Log;
-import android.webkit.JavascriptInterface;
-import android.webkit.WebView;
-
-
-import com.topsoft.jianyu.SQLite.DbBase;
-import com.topsoft.jianyu.WebFragment.LaboratoryFragment;
-import com.topsoft.jianyu.WebFragment.MeFragment;
-import com.topsoft.jianyu.WebFragment.KeysetFragment;
-import com.topsoft.jianyu.WebFragment.SearchFragment;
-import com.topsoft.jianyu.listener.CustomLoginListerner;
-import com.topsoft.jianyu.listener.CustomRemoveLoginListerner;
-import com.topsoft.jianyu.listener.CustomShareListener;
-import com.topsoft.jianyu.push.notifyUtil;
-import com.topsoft.jianyu.util.AppConstant;
-import com.topsoft.jianyu.util.AppUtil;
-import com.topsoft.jianyu.util.HttpUtil;
-import com.topsoft.jianyu.util.SecretUtil;
-import com.topsoft.jianyu.util.StringUtil;
-import com.umeng.socialize.ShareAction;
-import com.umeng.socialize.UMShareAPI;
-import com.umeng.socialize.UMShareListener;
-import com.umeng.socialize.bean.SHARE_MEDIA;
-import com.umeng.socialize.media.UMImage;
-import com.umeng.socialize.media.UMWeb;
-
-import org.json.JSONArray;
-
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import cn.jpush.android.api.JPushInterface;
-
-import static android.content.Context.MODE_PRIVATE;
-import static com.topsoft.jianyu.MainActivity.mainHandler;
-
-
-public class JyObj {
-
-    private static final String LOG_TAG = "JyObj";
-
-    Context mContext;
-    WebView webView;
-    MainActivity mainActivity;
-    SharedPreferences share=null;
-
-    public JyObj(Context mContext, WebView webView) {
-        this.mContext = mContext;
-        this.webView = webView;
-        this.mainActivity=(MainActivity)mContext;
-        share=mContext.getSharedPreferences("jy", MODE_PRIVATE);
-    }
-
-    //分享
-    @JavascriptInterface
-    public void share(String type,String title,String content,String link){
-        final UMShareListener umShareListener=new CustomShareListener(mContext);
-        //申请分享所需要的权限
-        if(Build.VERSION.SDK_INT>=23){
-            String[] mPermissionList = new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE,android.Manifest.permission.ACCESS_FINE_LOCATION,android.Manifest.permission.CALL_PHONE,android.Manifest.permission.READ_LOGS,android.Manifest.permission.READ_PHONE_STATE, android.Manifest.permission.WRITE_EXTERNAL_STORAGE,android.Manifest.permission.SET_DEBUG_APP,android.Manifest.permission.SYSTEM_ALERT_WINDOW,android.Manifest.permission.GET_ACCOUNTS,android.Manifest.permission.WRITE_APN_SETTINGS};
-            ActivityCompat.requestPermissions(mainActivity,mPermissionList,123);
-        }
-        //弹出分享面板
-        UMWeb web = new UMWeb(link);
-        web.setTitle(title);//标题
-        UMImage thumb =  new UMImage(mContext, R.drawable.share_thumb_img);
-        web.setThumb(thumb);  //缩略图
-        web.setDescription(content);//描述
-
-        if("2".equals(type)){
-            new ShareAction(mainActivity)
-                    .withMedia(web)
-                    .setPlatform(SHARE_MEDIA.QQ)//传入平台
-                    //.setDisplayList(SHARE_MEDIA.QQ,,)
-                    .setCallback(umShareListener)
-                    .share();
-        }else if("1".equals(type)){
-            new ShareAction(mainActivity)
-                    .withMedia(web)
-                    .setPlatform(SHARE_MEDIA.WEIXIN)//传入平台
-                    .setCallback(umShareListener)
-                    .share();
-        }else if("3".equals(type)){
-            new ShareAction(mainActivity)
-                    .withMedia(web)
-                    .setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE)//传入平台
-                    .setCallback(umShareListener)
-                    .share();
-        }
-
-    }
-
-    //用户登录
-    @JavascriptInterface
-    public void loginByWeixin(){
-        CustomLoginListerner authListener=new CustomLoginListerner(mContext,webView);
-        UMShareAPI.get(mContext).getPlatformInfo(mainActivity, SHARE_MEDIA.WEIXIN, authListener);
-    }
-
-    //保存用户登录标识
-    @JavascriptInterface
-    public void saveUserToken(String token){
-        SharedPreferences.Editor editor = share.edit();
-        editor.putString("token",token);
-        editor.commit();
-        //更新页面token
-        MainActivity.bottomBar.setCanChange(true);
-        MainActivity.token=token;
-
-        //检测更新
-        mainHandler.obtainMessage(AppConstant.INIT_UPDATE).sendToTarget();
-    }
-
-    //获取用户标识
-    @JavascriptInterface
-    public String getUserToken(){
-        return share.getString("token","");
-    }
-
-    //删除用户登录标识
-    @JavascriptInterface
-    public void removeUserToken(){
-        //删除授权
-        CustomRemoveLoginListerner removeLoginListerner=new CustomRemoveLoginListerner(mContext,webView);
-        UMShareAPI.get(mContext).deleteOauth(mainActivity,SHARE_MEDIA.WEIXIN,removeLoginListerner);
-        //清除共享存储区中的token
-        share.edit().clear().commit();
-        MainActivity.token="";
-        MainActivity.bottomBar.setCanChange(false);
-        //清除历史记录
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                MainActivity.mainHandler.sendEmptyMessage(AppConstant.CLEAR_WEBVIEW_HISTORY);
-            }
-        },500);
-        //初始化变量
-        MainActivity.guide=false;
-        MainActivity.befreToLoginPageSign=3;
-    }
-
-    //判断是否开启通知权限 0:没有 1:开启
-    @JavascriptInterface
-    public int checkNoticePermission(){
-        return AppUtil.isNotificationEnabled(mContext)?1:0;
-    }
-
-    //获取极光推送客户端id
-    @JavascriptInterface
-    public String getPushRid(){
-        return AppConstant.PUSH_TOKEN;
-    }
-
-    @JavascriptInterface
-    public String getPhoneBrand(){
-        return StringUtil.PhoneBrand;
-    }
-
-    //更新状态
-    @JavascriptInterface
-    public void updateMessageState(String id,boolean state){
-        DbBase.getInstance(mContext).updateMessageState(Integer.parseInt(id),state);
-    }
-
-    //删除消息
-    @JavascriptInterface
-    public void deleteMessageById(String id){
-        if(DbBase.getInstance(mContext).deleteMessageById(Integer.parseInt(id))){
-            System.out.println("删除数据成功");
-        }else{
-            System.out.println("删除数据失败");
-        }
-    }
-
-    //获取单条消息
-    @JavascriptInterface
-    public String getMessage(String id){
-        return DbBase.getInstance(mContext).findOneMessage(id).toString();
-    }
-
-    //获取未读消息数量
-    @JavascriptInterface
-    public int getUnReadMessageCount(String openid){
-        int unReadNum= DbBase.getInstance(mContext).getUnReadCount(openid);
-        //刷新消息小红点
-        notifyUtil.ChangeRedSpot(openid);
-        return unReadNum;
-    }
-
-    //全部标记为已读
-    @JavascriptInterface
-    public void updateAllUnReadMessage(String openid){
-        //修改信息状态为已读
-        DbBase.getInstance(mContext).updateAllMegReaded(openid);
-        //清空通知栏
-        JPushInterface.clearAllNotifications(mContext);
-        //删除小红点
-        MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_REDSPOT_HIDDEN);
-    }
-
-    //获取通知信息列表 取前100条
-    @JavascriptInterface
-    public String getMessageList(String openid){
-        String result="";
-        JSONArray list= DbBase.getInstance(mContext).getMessageList(openid);
-        if(list!=null){
-            result=list.toString();
-        }
-        return result;
-    }
-
-    //打开外部链接
-    @JavascriptInterface
-    public void openExternalLink(String url,String title){
-        /*url="http://192.168.20.140:8848/www/index.html";
-        title="1111";*/
-        if(!"".equals(url)){
-            Intent i=new Intent(mainActivity,ExternalWebPage.class);
-            i.putExtra("url",url);
-            i.putExtra("title",title);
-            mContext.startActivity(i);
-        }
-    }
-
-    //获取当前版本号
-    @JavascriptInterface
-    public String getVersion(){
-        return AppUtil.getVersionName(mContext);
-    }
-
-    @JavascriptInterface
-    public void prohibitBack(){
-        webView.clearHistory();
-    }
-
-    @JavascriptInterface
-    public void alert(String content){
-        AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
-        builder.setTitle("提示")
-                .setMessage(content)
-                .setCancelable(false)
-                .setPositiveButton("确认",new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-
-                    }
-                });
-        builder.create().show();
-    }
-
-    //用户点击活动页面
-    @JavascriptInterface
-    public void openActivityPage(String url,String rectype,String openid){
-        HttpUtil.SendStatistics(url,openid,rectype);
-    }
-
-    //用户
-    @JavascriptInterface
-    public void changeMessageType(String url){
-        DbBase.getInstance(mContext).changeMessageTypeByUrl(url);
-    }
-
-    //发送验证码请求
-    @JavascriptInterface
-    public String getCipherText(String phoneNumber){
-        String result="";
-        if("".equals(phoneNumber)||phoneNumber==null){
-            return result;
-        }
-        //获取秘钥
-        SimpleDateFormat sf=new SimpleDateFormat("yyyyMMddHHmmss");
-        String data=sf.format(new Date());
-        String sign= SecretUtil.getMD5(phoneNumber+"&"+data);
-        try{
-            result= SecretUtil.AESdecode(phoneNumber+"_"+data+"_"+sign);
-        }catch (Exception e){
-            Log.e("sendIdentCode: ",e.getMessage() );
-        }
-        return result;
-    }
-
-
-    //隐藏显示底部切换
-    @JavascriptInterface
-    public void hiddenBottom(String sign){
-        if("1".equals(sign)){
-            MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_BAR_SHOW);
-        }else if("0".equals(sign)){
-            MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_BAR_HIDDEN);
-        }
-    }
-
-    // 参数S:登录成功后需要跳转到搜索页面
-    @JavascriptInterface
-    public void loginSuccess(String sign){
-        if("S".equals(sign)){
-            //防止向导页面底部多次闪出隐藏
-            if(MainActivity.befreToLoginPageSign==1){
-                MainActivity.noShowBottomBar=3;
-            }
-            if(MainActivity.befreToLoginPageSign==0){
-                LaboratoryFragment.labPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                MeFragment.mePageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                KeysetFragment.KeysetHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                new Handler().postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        MainActivity.webViewFinish=false;
-                        SearchFragment.searchPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                        MainActivity.mainHandler.sendEmptyMessage(AppConstant.FRAGMENT_SWITCH);
-                    }
-                },200);
-            }else if(MainActivity.befreToLoginPageSign==1){
-                SearchFragment.searchPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                LaboratoryFragment.labPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                MeFragment.mePageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                new Handler().postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        MainActivity.webViewFinish=false;
-                        KeysetFragment.KeysetHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                        MainActivity.mainHandler.sendEmptyMessage(AppConstant.FRAGMENT_SWITCH);
-                    }
-                },200);
-            }else if(MainActivity.befreToLoginPageSign==2){
-                SearchFragment.searchPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                MeFragment.mePageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                KeysetFragment.KeysetHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                new Handler().postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        MainActivity.webViewFinish=false;
-                        LaboratoryFragment.labPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                        MainActivity.mainHandler.sendEmptyMessage(AppConstant.FRAGMENT_SWITCH);
-                    }
-                },200);
-            }else if(MainActivity.befreToLoginPageSign==3){
-                SearchFragment.searchPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                LaboratoryFragment.labPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                KeysetFragment.KeysetHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                new Handler().postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        MainActivity.webViewFinish=false;
-                        MeFragment.mePageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                        MainActivity.mainHandler.sendEmptyMessage(AppConstant.FRAGMENT_SWITCH);
-                    }
-                },200);
-
-            }
-           /* //页面刷新
-            for(int i=0;i<4;i++){
-                handler=Common.getPageHandler(i);
-                if(i==MainActivity.befreToLoginPageSign){
-                    new Handler().postDelayed(new Runnable() {
-                        @Override
-                        public void run() {
-                            handler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                            MainActivity.mainHandler.sendEmptyMessage(AppConstant.FRAGMENT_SWITCH);
-                            }
-                    },200);
-                }else{
-                    handler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                }
-            }*/
-            //页面加载完成后,清除历史记录(临时方法,延迟一秒)
-            new Handler().postDelayed(new Runnable() {
-                @Override
-                public void run() {
-                    MainActivity.mainHandler.sendEmptyMessage(AppConstant.CLEAR_WEBVIEW_HISTORY);
-                }
-            },1000);
-        }else{
-            //不显示底部
-            MainActivity.noShowBottomBar=4;
-            //从三级页进入登录
-            MeFragment.mePageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-            LaboratoryFragment.labPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-            KeysetFragment.KeysetHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-        }
-    }
-    //实验室改变状态,需要刷新搜索页面
-    @JavascriptInterface
-    public void checkLab(){
-        if(MainActivity.bottomBar.getCurrentItem()!=0){
-            MainActivity.noShowBottomBar=1;
-            SearchFragment.searchPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-        }
-    }
-
-    //搜索结果列表页 点击直接订阅的跳转到订阅页面
-    @JavascriptInterface
-    public void redirectKeyset(){
-        //刷新订阅页面
-        Message message = Message.obtain();
-        message.what = AppConstant.FRAGMENT_SWITCH_FLUSH;
-        Bundle b= new Bundle();
-        b.putInt("pos",1);
-        message.setData(b);
-        MainActivity.mainHandler.sendMessage(message);
-        //先加载页面,后切换
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                //底部栏显示
-                MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_BAR_SHOW);
-                //搜索页面至初始化状态
-                SearchFragment.searchPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-            }
-        },200);
-
-    }
-    //backUrl  参数H 返回到搜索页
-    @JavascriptInterface
-    public void backUrl(String sign){
-        if("H".equals(sign)){
-            //返回搜索页面
-            //切换底部导航显示
-            MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_BAR_SHOW);
-            //更新页面地址
-            SearchFragment.searchPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-            //切换至搜索页面
-            mainActivity.selectBottomBar(0);
-            //返回至搜索页面,再登录返回登录页面
-            mainActivity.befreToLoginPageSign=0;
-        }else if("".equals(sign)){
-            //页面后退
-            //切换底部导航显示
-            MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_BAR_SHOW);
-        }
-    }
-    @JavascriptInterface
-    public void finishGuide(){
-        MainActivity.guide=false;
-    }
-}

+ 0 - 235
android/app/src/main/java/com/topsoft/jianyu/MainActivity.java

@@ -1,235 +0,0 @@
-package com.topsoft.jianyu;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
-import android.support.v7.app.AppCompatActivity;
-import android.view.KeyEvent;
-import android.view.View;
-import android.webkit.WebView;
-
-import com.topsoft.jianyu.WebFragment.Common;
-import com.topsoft.jianyu.WebFragment.LaboratoryFragment;
-import com.topsoft.jianyu.WebFragment.MeFragment;
-import com.topsoft.jianyu.WebFragment.KeysetFragment;
-import com.topsoft.jianyu.WebFragment.SearchFragment;
-import com.topsoft.jianyu.bottomBar.BottomBarItem;
-import com.topsoft.jianyu.bottomBar.BottomBarLayout;
-import com.topsoft.jianyu.util.AppConstant;
-import com.topsoft.jianyu.util.AppUtil;
-import com.topsoft.jianyu.util.HttpUtil;
-import com.topsoft.jianyu.util.LoadingUtils;
-import com.umeng.socialize.UMShareAPI;
-
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Timer;
-import java.util.TimerTask;
-
-
-public class MainActivity extends AppCompatActivity {
-
-    public static Context ctx;
-    public static String pushurl;
-    public static boolean webViewFinish=false;
-    public static Handler mainHandler;
-    public static BottomBarLayout bottomBar=null;
-    private static List<Fragment> mFragmentList = new ArrayList<>();
-    private static Fragment mFragment;
-    public static Dialog loadpage=null;
-    public static boolean guide=false;
-    public static String token="";
-    public static int noShowBottomBar=0;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_main);
-        ctx = this;
-        mainHandler=new MainHandler(this);
-        //点击推送进入app
-        pushurl=getIntent().getStringExtra("pushUrl");
-        //初始化Fragment
-        Fragment();
-        //判断是否登录
-        SharedPreferences sp = getSharedPreferences("jy", Context.MODE_PRIVATE);
-        token = sp.getString("token", "");
-        bottomBar=findViewById(R.id.bottomBar);
-        if(!token.equals("")){
-            //如果登录向后台发送手机型号和推送id
-            HttpUtil.SendPhoneBrand(ctx,token);
-            MainActivity.bottomBar.setCanChange(true);
-            //检测更新
-            mainHandler.obtainMessage(AppConstant.INIT_UPDATE).sendToTarget();
-        }
-        //初始化配置
-        initconfigure();
-    }
-
-
-    public void Fragment(){
-        //添加搜索页面
-        SearchFragment searchPage = new SearchFragment();
-        mFragmentList.add(searchPage);
-        //订阅页面
-        KeysetFragment orderPage = new KeysetFragment();
-        mFragmentList.add(orderPage);
-        //实验室
-        LaboratoryFragment labPage = new LaboratoryFragment();
-        mFragmentList.add(labPage);
-        //我的
-        MeFragment mePage = new MeFragment();
-        mFragmentList.add(mePage);
-        //初始化Fragment
-        initFragment();
-        //默认选中第一个
-        changeFragment(0);
-    }
-
-    @Override
-    //安卓重写返回键事件
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-        WebView wv=Common.getPageWebview(bottomBar.getCurrentItem());
-        if(keyCode==KeyEvent.KEYCODE_BACK&&wv!=null&&new Date().getTime()-lastGobackTime>500){
-            if(wv.canGoBack()){
-                //webview后退
-                lastGobackTime=new Date().getTime();
-                wv.goBack();
-            }else{
-                //返回桌面
-                Intent home = new Intent(Intent.ACTION_MAIN);
-                home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-                home.addCategory(Intent.CATEGORY_HOME);
-                startActivity(home);
-            }
-        }
-        return true;
-    }
-    private long lastGobackTime=0;
-    public static int befreToLoginPageSign=0;
-    //初始化其他配置设置
-    private void initconfigure(){
-        bottomBar.setOnItemSelectedListener(new BottomBarLayout.OnItemSelectedListener() {
-            @Override
-            public void onItemSelected(final BottomBarItem bottomBarItem, int previousPosition, final int currentPosition) {
-                if("".equals(token)){
-                    //没有登录 不能切换 跳转登录页面
-                    if(currentPosition!=0){
-                        //更新search至登录页面
-                        SearchFragment.webView.loadUrl(AppConstant.AppUrl+"/jyapp/free/login");
-                        changeFragment(0);
-                    }
-                    befreToLoginPageSign=currentPosition;
-                }else{
-                    changeFragment(currentPosition);
-                }
-            }
-        });
-        AppUtil.setAndroidNativeLightStatusBar(this,true,true);//全屏显示
-        mainHandler.obtainMessage(AppConstant.INIT_PUSH).sendToTarget();//初始化推送
-        //mainHandler.obtainMessage(AppConstant.INIT_UPDATE).sendToTarget();//检测更新
-
-        //网络重试
-        findViewById(R.id.try_connect_network).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                webViewFinish=false;
-                if(AppUtil.NetworkState(ctx)){
-                    WebView wv=Common.getPageWebview(bottomBar.getCurrentItem());
-                    wv.reload();
-                    loadpage= LoadingUtils.createLoadingDialog(ctx, "正在加载页面");
-                    new Timer().schedule(new TimerTask() {
-                        @Override
-                        public void run() {
-                            if(webViewFinish){
-                                MainActivity.mainHandler.obtainMessage(AppConstant.NETWORK_OK).sendToTarget();//viewView可见
-                                webViewFinish=false;
-                                loadpage.cancel();
-                                this.cancel();
-                            }
-                        }
-                    }, 0, 500);
-                }
-            }
-        });
-    }
-    /**
-     * 底部导航切换Fragment
-     */
-    public static void changeFragment(int currentPosition) {
-        FragmentTransaction transaction =((MainActivity)ctx).getSupportFragmentManager().beginTransaction();
-        Fragment to =mFragmentList.get(currentPosition);
-        if (mFragment != to) {
-            transaction.hide(mFragment).show(to).commitAllowingStateLoss(); // 隐藏当前的fragment,显示下一个
-            mFragment = to;
-        }
-        //当切换至向导页面时,隐藏底部导航
-        if(currentPosition==1&&guide){
-            MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_BAR_HIDDEN);
-        }
-    }
-
-    //初始化底部导航
-    public void initFragment(){
-        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
-        for(int i=mFragmentList.size()-1;i>=0;i--){
-            Fragment f =mFragmentList.get(i);
-            if(i==0){
-                mFragment=f;
-                transaction.add(R.id.FraContent, f);//第一个不隐藏
-            }else{
-                transaction.add(R.id.FraContent, f).hide(f);
-            }
-        }
-        transaction.commitAllowingStateLoss();
-    }
-    /**
-     * 底部导航切换
-     */
-    public static void selectBottomBar(int position){
-        changeFragment(position);
-        bottomBar.setCurrentItem(position);
-    }
-
-    /**
-     *  qq分享需添加此项
-     */
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
-    }
-    /**
-     * 页面是否显示网络错误页面
-     * @param b
-     */
-    public void NetworkError(boolean b){
-        if(b){
-            findViewById(R.id.webview_layout).setVisibility(View.GONE);
-            findViewById(R.id.network_error_view).setVisibility(View.VISIBLE);
-        }else{
-            findViewById(R.id.webview_layout).setVisibility(View.VISIBLE);
-            findViewById(R.id.network_error_view).setVisibility(View.GONE);
-        }
-    }
-
-    /**
-     * 弹框提示
-     */
-    public void AlertDialog(String content){
-        AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
-        builder.setTitle("提示")
-                .setMessage(content)
-                .setCancelable(false)
-                .setPositiveButton("确认",null);
-        builder.create().show();
-    }
-}

+ 0 - 243
android/app/src/main/java/com/topsoft/jianyu/MainHandler.java

@@ -1,243 +0,0 @@
-package com.topsoft.jianyu;
-
-import android.app.Activity;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.util.Log;
-import android.view.View;
-
-import com.ccit.www.mobileshieldsdk.okutils.okhttp3.Call;
-import com.ccit.www.mobileshieldsdk.okutils.okhttputils.OkHttpUtils;
-import com.ccit.www.mobileshieldsdk.okutils.okhttputils.callback.StringCallback;
-import com.huawei.android.hms.agent.HMSAgent;
-import com.huawei.android.hms.agent.common.handler.ConnectHandler;
-import com.huawei.android.hms.agent.push.handler.GetTokenHandler;
-import com.topsoft.jianyu.WebFragment.Common;
-import com.topsoft.jianyu.WebFragment.LaboratoryFragment;
-import com.topsoft.jianyu.WebFragment.MeFragment;
-import com.topsoft.jianyu.WebFragment.KeysetFragment;
-import com.topsoft.jianyu.WebFragment.SearchFragment;
-import com.topsoft.jianyu.appUpdate.UpdateVersionController;
-import com.topsoft.jianyu.util.AppConstant;
-import com.topsoft.jianyu.util.AppUtil;
-import com.topsoft.jianyu.util.StringUtil;
-
-import java.lang.ref.WeakReference;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import cn.jpush.android.api.JPushInterface;
-
-import static android.content.Context.MODE_PRIVATE;
-import static com.topsoft.jianyu.MainActivity.ctx;
-import static com.topsoft.jianyu.MainActivity.mainHandler;
-
-/**
- * 页面MainHandler
- */
-public  class  MainHandler extends Handler {
-    WeakReference<MainActivity> mainActivityWeakReference;
-    public static String rgsid = "";
-    String LOG_TAG ="MainHandler";
-    public MainHandler(MainActivity activity) {
-        mainActivityWeakReference = new WeakReference<MainActivity>(activity);
-    }
-
-    public void handleMessage(Message msg) {
-        final MainActivity mainActivity = mainActivityWeakReference.get();
-        switch (msg.what) {
-            case AppConstant.INIT_PUSH:
-                //初始化极光推送
-                switch (AppConstant.PHONE_BRAND){
-                    case StringUtil.HUAWEI:
-                        //华为推送建立连接
-                        HMSAgent.connect((Activity)ctx, new ConnectHandler() {
-                            @Override
-                            public void onConnect(int rst) {
-                                Log.d(LOG_TAG,"HUAWEI connect " + rst);
-                            }
-                        });
-                        HMSAgent.Push.getToken(new GetTokenHandler() {
-                            @Override
-                            public void onResult(int rtnCode) {
-                                Log.d(LOG_TAG,"HUAWEI getToken: end" + rtnCode);
-                            }
-                        });
-                        break;
-                    default:
-                        //获取rgsid,第一次安装app,初始化时,不能及时获取到,定时获取
-                        new Timer().schedule(new TimerTask() {
-                            @Override
-                            public void run() {
-                                rgsid=JPushInterface.getRegistrationID(ctx);
-                                if(!"".equals(rgsid)){
-                                    Log.d(LOG_TAG, "最终------rgsid=" + rgsid);
-                                    AppConstant.PUSH_TOKEN=rgsid;
-                                    this.cancel();
-                                }
-                            }
-                        }, 0, 500);
-                        break;
-                }
-                break;
-            case AppConstant.INIT_UPDATE:
-                //监测更新
-                UpdateVersionController.getInstance(ctx).appUpdateCheck();
-                break;
-            case AppConstant.NETWORK_OK:
-                mainActivity.NetworkError(false);
-                break;
-            case AppConstant.NETWORK_ERR:
-                mainActivity.NetworkError(true);
-                break;
-            case AppConstant.BOTTOM_REDSPOT_SHOW:
-                MainActivity.bottomBar.showNotify(3);
-                break;
-            case AppConstant.BOTTOM_REDSPOT_HIDDEN:
-                MainActivity.bottomBar.hideNotify(3);
-                break;
-            case AppConstant.USER_LOGIN_OUT:
-                //退出登录
-                Bundle outBundle = msg.getData();
-                final String content=outBundle.getString("content","");
-
-                SharedPreferences sp=ctx.getSharedPreferences("jy",MODE_PRIVATE);
-                String token=sp.getString("token","");
-                if(!token.equals("")) {
-                    //如果更新框还在 隐藏更新框
-                    if(UpdateVersionController.dialog!=null){
-                        UpdateVersionController.dialog.dismiss();
-                        UpdateVersionController.dialog=null;
-                    }
-                    sp.edit().clear().commit();
-                    OkHttpUtils.post().url(AppConstant.AppUrl+"/jyapp/free/signOut").addHeader("Cookie",Common.Cookies).addParams("sign",token).build().execute(new StringCallback() {
-                        @Override
-                        public void onError(Call call, Exception e, int i) {
-                            Log.e("请求退出出错",e.getMessage());
-                        }
-                        @Override
-                        public void onResponse(String s, int i) {
-                            MainActivity.webViewFinish=false;
-                            if(AppUtil.NetworkState(ctx)){
-                                SearchFragment.webView.loadUrl(AppConstant.AppUrl+"/jyapp/free/kicked");
-                                MainActivity.bottomBar.onPageSelected(0);
-
-                                new Timer().schedule(new TimerTask() {
-                                    @Override
-                                    public void run() {
-                                        if(MainActivity.webViewFinish){
-                                            //清除历史记录
-                                            mainHandler.obtainMessage(AppConstant.CLEAR_WEBVIEW_HISTORY).sendToTarget();
-                                            //还原未登录状态
-                                            MainActivity.token="";
-                                            MainActivity.bottomBar.setCanChange(false);
-
-                                            //弹框
-                                            Message message = Message.obtain();
-                                            message.what = AppConstant.MAIN_ALERT;
-                                            Bundle b= new Bundle();
-                                            b.putString("content", content);
-                                            message.setData(b);
-                                            mainHandler.sendMessage(message);
-                                            //取消定时器
-                                            this.cancel();
-                                        }
-                                    }
-                                }, 0, 500);
-                            }
-                        }
-                    });
-                }
-                break;
-            case AppConstant.CLEAR_WEBVIEW_HISTORY:
-                //清除Webview历史记录
-                if(SearchFragment.webView!=null){
-                    SearchFragment.webView.clearHistory();
-                }
-                if(KeysetFragment.webView!=null){
-                    KeysetFragment.webView.clearHistory();
-                }
-                if(LaboratoryFragment.webView!=null){
-                    LaboratoryFragment.webView.clearHistory();
-                }
-                if(MeFragment.webView!=null){
-                    MeFragment.webView.clearHistory();
-                }
-                break;
-            case AppConstant.MAIN_ALERT:
-                //弹框显示
-                Bundle b = msg.getData();
-                String c=b.getString("content","");
-                mainActivity.AlertDialog(c);
-                break;
-            case AppConstant.SHARE_BACK:
-                //分享回调
-                Bundle shareBundle = msg.getData();
-                final String type=shareBundle.getString("type");
-                final String flag=shareBundle.getString("flag");
-                Message message1 = Message.obtain();
-                message1.what = AppConstant.FRAGMENT_OPEN_URL;
-                Bundle b1= new Bundle();
-                b1.putString("url", "javascript:shareCallBack('"+type+"','"+flag+"');");
-                message1.setData(b1);
-                SearchFragment.searchPageHandler.sendMessage(message1);
-                break;
-            case AppConstant.BOTTOM_BAR_HIDDEN:
-                //隐藏切换导航
-                MainActivity.bottomBar.setVisibility(View.GONE);
-                break;
-            case AppConstant.BOTTOM_BAR_SHOW:
-                //显示切换导航
-                MainActivity.bottomBar.setVisibility(View.VISIBLE);
-                break;
-            case AppConstant.FRAGMENT_SWITCH_FLUSH:
-                //刷新并切换至某个页面
-                Bundle param = msg.getData();
-                final int pos=param.getInt("pos",0);
-                //mainActivity.bottomBar.onPageSelected(pos);
-                switch (pos){
-                    case 0:
-                        SearchFragment.searchPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                        break;
-                    case 1:
-                        KeysetFragment.KeysetHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                        break;
-                    case  2:
-                        LaboratoryFragment.labPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                        break;
-                    case  3:
-                        MeFragment.mePageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                        break;
-                }
-                new Handler().postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        mainActivity.bottomBar.onPageSelected(pos);
-                    }
-                },200);
-
-                break;
-            case AppConstant.FRAGMENT_READLOAD_ALL:
-                //重新加载其他页面
-                int notFlushPos=mainActivity.bottomBar.getCurrentItem();
-                if(notFlushPos!=0){
-                    SearchFragment.webView.reload();
-                }
-                if(notFlushPos!=1){
-                    KeysetFragment.webView.reload();
-                }
-                if(notFlushPos!=2){
-                    LaboratoryFragment.webView.reload();
-                }
-                if(notFlushPos!=3){
-                    MeFragment.webView.reload();
-                }
-                break;
-            case AppConstant.FRAGMENT_SWITCH:
-                mainActivity.selectBottomBar(MainActivity.befreToLoginPageSign);
-                break;
-        }
-    }
-}

+ 0 - 36
android/app/src/main/java/com/topsoft/jianyu/SQLite/DBHelper.java

@@ -1,36 +0,0 @@
-package com.topsoft.jianyu.SQLite;
-
-/**
- * Created by wangkaiyue on 2018/1/26.
- */
-
-
-
-import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteDatabase.CursorFactory;
-import android.database.sqlite.SQLiteOpenHelper;
-import android.util.Log;
-
-public class DBHelper extends SQLiteOpenHelper {
-
-    private static final String TAG = "TestSQLite";
-    public static final int VERSION = 1;
-
-    //必须要有构造函数
-    public DBHelper(Context context, String name, CursorFactory factory,int version) {
-        super(context, name, factory, version);
-    }
-
-    // 当第一次创建数据库的时候,调用该方法
-    public void onCreate(SQLiteDatabase db) {
-        String sql="create table jy_message (id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT,content TEXT,link TEXT,category TEXT,openid TEXT,readed INTEGER,comeintime INTEGER,descript TEXT,extend TEXT,pushTime TEXT)";
-        Log.i(TAG, "首次创建数据库");
-        db.execSQL(sql);
-    }
-
-    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
-        //输出更新数据库的日志信息
-        Log.i(TAG, "update Database------------->");
-    }
-}

+ 0 - 468
android/app/src/main/java/com/topsoft/jianyu/SQLite/DbBase.java

@@ -1,468 +0,0 @@
-package com.topsoft.jianyu.SQLite;
-
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.util.Log;
-
-import org.json.JSONArray;
-import org.json.JSONObject;
-import java.util.List;
-
-
-import static android.content.Context.MODE_PRIVATE;
-
-/**
- * Created by wangkaiyue on 2018/1/26.
- */
-
-public class DbBase {
-
-    private final String DB_NAME="jy_db";
-    private final String MASSAHE_TABLE_NAME="jy_message";
-    static SharedPreferences share=null;
-
-
-    private static DbBase dbBase;
-    private static Context context;
-
-    private final String LOG_TAG = "DbBase";
-
-    public DbBase(Context context){
-        this.context=context;
-    }
-    public static DbBase getInstance(Context ctx){
-        context=ctx;
-        if (dbBase==null){
-            dbBase=new DbBase(ctx);
-        }
-        share=context.getSharedPreferences("jy", MODE_PRIVATE);
-        return dbBase;
-    }
-
-    //插入一条信息
-    public boolean insertMessage(JyMessage message){
-        boolean result = true;
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getWritableDatabase();
-        try{
-
-            db.beginTransaction();
-            ContentValues cv= message.getMsaagesContentValues();
-
-            if(db.insert(MASSAHE_TABLE_NAME, null, cv)<0){
-                result=false;
-            }
-            if (result) {
-                db.setTransactionSuccessful();
-            }
-        }catch (Exception e) {
-            Log.e(LOG_TAG,e.getMessage());
-            return false;
-        } finally {
-            try {
-                if (null != db) {
-                    db.endTransaction();
-                    db.close();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return result;
-    }
-
-    //取单条通知消息
-    public JSONObject findOneMessage(String id){
-        JSONObject msg=new JSONObject();
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getReadableDatabase();
-        try{
-            Cursor cursor = db.query(MASSAHE_TABLE_NAME, new String[]{"id","title","content","link","category","openid","readed","comeintime","descript","extend"}, "id=?", new String[]{id}, null, null, null);
-            while(cursor.moveToNext()){
-                msg.put("id",cursor.getInt(cursor.getColumnIndex("id"))+"");
-                msg.put("title",cursor.getString(cursor.getColumnIndex("title")));
-                msg.put("content",cursor.getString(cursor.getColumnIndex("content")));
-                msg.put("link",cursor.getString(cursor.getColumnIndex("link")));
-                msg.put("category",cursor.getString(cursor.getColumnIndex("category")));
-                msg.put("readed",cursor.getInt(cursor.getColumnIndex("readed"))+"");
-                msg.put("comeintime",cursor.getInt(cursor.getColumnIndex("comeintime"))+"");
-                msg.put("openid",cursor.getString(cursor.getColumnIndex("openid")));
-                msg.put("descript",cursor.getString(cursor.getColumnIndex("descript")));
-                msg.put("extend",cursor.getString(cursor.getColumnIndex("extend")));
-            }
-        }catch (Exception e){
-            Log.e(LOG_TAG,e.getMessage());
-            return null;
-        }finally {
-            if (null != db) {
-                db.close();
-            }
-        }
-        return msg;
-    }
-
-    //更新消息状态
-    public boolean updateMessageState(Integer id,boolean state) {
-        boolean result = true;
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getWritableDatabase();
-        try {
-            db.beginTransaction();
-            ContentValues cv = new ContentValues();
-            if(state){
-                cv.put("readed", 1);
-            }else{
-                cv.put("readed", 0);
-            }
-            String whereClause = "id=?";
-            String[] whereArgs = {id.toString()};
-            //参数1 是要更新的表名
-            //参数2 是一个ContentValeus对象
-            //参数3 是where子句
-            if(db.update(MASSAHE_TABLE_NAME, cv, whereClause, whereArgs)<0){
-                result=false;
-            }
-            if (result) {
-                db.setTransactionSuccessful();
-            }
-        } catch (Exception e) {
-            Log.e(LOG_TAG,e.getMessage());
-            return false;
-        } finally {
-            try {
-                if (null != db) {
-                    db.endTransaction();
-                    db.close();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return result;
-    }
-    //根据消息的推送时间改变为已读信息
-    public boolean updateMessageStateByPushTime(String pushTime) {
-        if("".equals(pushTime)){
-            return false;
-        }
-        boolean result = true;
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getWritableDatabase();
-        try {
-            db.beginTransaction();
-            ContentValues cv = new ContentValues();
-            cv.put("readed", 1);
-
-            String whereClause = "pushTime=?";
-            String[] whereArgs = {pushTime};
-            //参数1 是要更新的表名
-            //参数2 是一个ContentValeus对象
-            //参数3 是where子句
-            if(db.update(MASSAHE_TABLE_NAME, cv, whereClause, whereArgs)<0){
-                result=false;
-            }
-            if (result) {
-                db.setTransactionSuccessful();
-            }
-        } catch (Exception e) {
-            Log.e(LOG_TAG,e.getMessage());
-            return false;
-        } finally {
-            try {
-                if (null != db) {
-                    db.endTransaction();
-                    db.close();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return result;
-    }
-    //根据消息的url改变为已读信息
-    public boolean updateMessageStateByUrl(String url) {
-        if("".equals(url)){
-            return false;
-        }
-        boolean result = true;
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getWritableDatabase();
-        try {
-            db.beginTransaction();
-            ContentValues cv = new ContentValues();
-            cv.put("readed", 1);
-
-            String whereClause = "link=?";
-            String[] whereArgs = {url};
-            //参数1 是要更新的表名
-            //参数2 是一个ContentValeus对象
-            //参数3 是where子句
-            if(db.update(MASSAHE_TABLE_NAME, cv, whereClause, whereArgs)<0){
-                result=false;
-            }
-            if (result) {
-                db.setTransactionSuccessful();
-            }
-        } catch (Exception e) {
-            Log.e(LOG_TAG,e.getMessage());
-            return false;
-        } finally {
-            try {
-                if (null != db) {
-                    db.endTransaction();
-                    db.close();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return result;
-    }
-    //根据推送时间获取信息id
-    public Integer getIDbypushTime(String pushTime){
-        Integer id=-1;
-        if("".equals(pushTime)){
-            return id;
-        }
-
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getReadableDatabase();
-        try{
-            Cursor cursor=db.query(MASSAHE_TABLE_NAME, new String[]{"id"}, "pushTime=?", new String[]{pushTime}, null, null, null);
-            if(cursor.moveToNext()){
-                id=cursor.getInt(cursor.getColumnIndex("id"));
-            }
-            return id;
-        }catch (Exception e){
-            e.printStackTrace();
-        }finally {
-            if (null != db) {
-                db.close();
-            }
-        }
-        return id;
-    }
-
-    //删除一条信息
-    public boolean deleteMessageById(Integer id){
-        boolean result = true;
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getReadableDatabase();
-        try {
-            db.beginTransaction();
-            String whereClauses = "id=?";
-            String [] whereArgs = {id.toString()};
-            if(db.delete(MASSAHE_TABLE_NAME, whereClauses, whereArgs)<0){
-                result = false;
-            }
-            if (result) {
-                db.setTransactionSuccessful();
-            }
-        } catch (Exception e) {
-            Log.e(LOG_TAG,e.getMessage());
-            return false;
-        } finally {
-            try {
-                if (null != db) {
-                    db.endTransaction();
-                    db.close();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return result;
-    }
-
-    //批量插入
-    public boolean insertMessageList(List<JyMessage> list){
-        boolean result = true;
-        if (null == list || list.size() <= 0) {
-            return true;
-        }
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getWritableDatabase();
-        try {
-            String openid = share.getString("openid", "");
-            if("".equals(openid)){
-                return false;   //openid为空
-            }
-            db.beginTransaction();
-            for (JyMessage msg : list) {
-                ContentValues values = msg.getMsaagesContentValues();
-                values.put("openid",openid);
-                if (db.insert(MASSAHE_TABLE_NAME, null, values) < 0) {
-                    result = false;
-                    break;
-                }
-            }
-            if (result) {
-                db.setTransactionSuccessful();
-            }
-        } catch (Exception e) {
-            Log.e(LOG_TAG,e.getMessage());
-            return false;
-        } finally {
-            try {
-                if (null != db) {
-                    db.endTransaction();
-                    db.close();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return result;
-    }
-
-    //按通知接收时间倒排,取前100条(或者做分页处理)。
-    public JSONArray getMessageList(String openid){
-        JSONArray list=new JSONArray();
-        JSONObject msg=null;
-        DBHelper dbHelper = new DBHelper(context,"jy_db",null,1);
-        SQLiteDatabase db =dbHelper.getWritableDatabase();
-        try{
-            Cursor cursor=null;
-            if("".equals(openid)){
-                cursor  = db.query("jy_message", new String[]{"id","title","content","link","category","openid","readed","comeintime","descript","extend"}, "openid=?", new String[]{""}, null, null, "comeintime desc");
-            }else{
-                cursor  = db.query("jy_message", new String[]{"id","title","content","link","category","openid","readed","comeintime","descript","extend"}, "openid=? or openid=?", new String[]{openid,""}, null, null, "comeintime desc");
-            }
-            int count=0;
-            while(cursor.moveToNext()&&count<100){
-                count++;
-                msg=new JSONObject();
-                msg.put("id",cursor.getInt(cursor.getColumnIndex("id"))+"");
-                msg.put("title",cursor.getString(cursor.getColumnIndex("title")));
-                msg.put("content",cursor.getString(cursor.getColumnIndex("content")));
-                msg.put("link",cursor.getString(cursor.getColumnIndex("link")));
-                msg.put("category",cursor.getString(cursor.getColumnIndex("category")));
-                msg.put("openid",cursor.getString(cursor.getColumnIndex("openid")));
-                msg.put("readed",cursor.getInt(cursor.getColumnIndex("readed"))+"");
-                msg.put("comeintime",cursor.getInt(cursor.getColumnIndex("comeintime"))+"");
-                msg.put("descript",cursor.getString(cursor.getColumnIndex("descript")));
-                msg.put("extend",cursor.getString(cursor.getColumnIndex("extend")));
-                list.put(msg);
-            }
-            return  list;
-        }catch (Exception e){
-            Log.e(LOG_TAG,e.getMessage());
-        }finally{
-            try {
-                if (null != db) {
-                    db.close();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return list;
-    }
-
-    //获取未读消息数量
-    public int getUnReadCount(String openid){
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getReadableDatabase();
-        try{
-            //参数1:表名
-            //参数2:要想显示的列
-            //参数3:where子句
-            //参数4:where子句对应的条件值
-            //参数5:分组方式
-            //参数6:having条件
-            //参数7:排序方式
-            Cursor cursor =null;
-             if("".equals(openid)){
-                 cursor=db.query(MASSAHE_TABLE_NAME, new String[]{"id","title","content","link","category","openid","readed","comeintime","descript","extend"}, "openid=? and readed=?", new String[]{"","0"}, null, null, null);
-             }else{
-                 cursor=db.query(MASSAHE_TABLE_NAME, new String[]{"id","title","content","link","category","openid","readed","comeintime","descript","extend"}, "(openid=? or openid=?)and readed=?", new String[]{openid,"","0"}, null, null, null);
-             }
-            return cursor.getCount();
-        }catch (Exception e){
-            e.printStackTrace();
-        }finally {
-            if (null != db) {
-                db.close();
-            }
-        }
-        return 0;
-    }
-
-    //所有信息设置为已读
-    public int updateAllMegReaded(String openid){
-        int num=0;
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getWritableDatabase();
-        try {
-            db.beginTransaction();
-            ContentValues cv = new ContentValues();
-            cv.put("readed", 1);
-
-            if("".equals(openid)){
-                num=db.update(MASSAHE_TABLE_NAME, cv, "openid=?", new String[]{""});
-            }else{
-                num=db.update(MASSAHE_TABLE_NAME, cv, "openid=? or openid=?", new String[]{openid,""});
-            }
-            if (num>0) {
-                db.setTransactionSuccessful();
-            }
-        } catch (Exception e) {
-            Log.e(LOG_TAG,e.getMessage());
-            return num;
-        } finally {
-            try {
-                if (null != db) {
-                    db.endTransaction();
-                    db.close();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return num;
-    }
-
-    //改变信息类型   用于区分message是否点击过  message_r
-    public boolean changeMessageTypeByUrl(String url) {
-        if("".equals(url)){
-            return false;
-        }
-        boolean result = true;
-        DBHelper dbHelper = new DBHelper(context,DB_NAME,null,1);
-        SQLiteDatabase db =dbHelper.getWritableDatabase();
-        try {
-            db.beginTransaction();
-            ContentValues cv = new ContentValues();
-            cv.put("category", "message_r");
-
-            String whereClause = "link=?";
-            String[] whereArgs = {url};
-            //参数1 是要更新的表名
-            //参数2 是一个ContentValeus对象
-            //参数3 是where子句
-            if(db.update(MASSAHE_TABLE_NAME, cv, whereClause, whereArgs)<0){
-                result=false;
-            }
-            if (result) {
-                db.setTransactionSuccessful();
-            }
-        } catch (Exception e) {
-            Log.e(LOG_TAG,e.getMessage());
-            return false;
-        } finally {
-            try {
-                if (null != db) {
-                    db.endTransaction();
-                    db.close();
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return result;
-    }
-}

+ 0 - 153
android/app/src/main/java/com/topsoft/jianyu/SQLite/JyMessage.java

@@ -1,153 +0,0 @@
-package com.topsoft.jianyu.SQLite;
-
-import android.content.ContentValues;
-
-
-/**
- * Created by wangkaiyue on 2018/1/26.
- */
-
-public class JyMessage {
-    public Integer id;     //标识
-    public String title;   //标题
-    public String content; //内容
-    public String link;    //链接
-    public String category;    //分类
-    public Integer readed; //是否已读  0:未读  1:已读
-    public Integer comeintime;  //接受时间
-    public String openid;  //用户标识
-    public String descript; //描述
-    public String extend;  //扩展字段
-    public String pushTime; //推送时间
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public String getTitle() {
-        return title;
-    }
-
-    public void setTitle(String title) {
-        this.title = title;
-    }
-
-    public String getContent() {
-        return content;
-    }
-
-    public void setContent(String content) {
-        this.content = content;
-    }
-
-    public String getLink() {
-        return link;
-    }
-
-    public void setLink(String link) {
-        this.link = link;
-    }
-
-    public String getCategory() {
-        return category;
-    }
-
-    public void setCategory(String category) {
-        this.category = category;
-    }
-
-    public Integer getReaded() {
-        return readed;
-    }
-
-    public void setReaded(Integer readed) {
-        this.readed = readed;
-    }
-
-    public Integer getComeintime() {
-        return comeintime;
-    }
-
-    public void setComeintime(Integer comeintime) {
-        this.comeintime = comeintime;
-    }
-
-    public String getOpenid() {
-        return openid;
-    }
-
-    public void setOpenid(String openid) {
-        this.openid = openid;
-    }
-
-    public String getDescript() {
-        return descript;
-    }
-
-    public void setDescript(String descript) {
-        this.descript = descript;
-    }
-
-    public String getExtend() {
-        return extend;
-    }
-
-    public void setExtend(String extend) {
-        this.extend = extend;
-    }
-
-    public String getPushTime() {
-        return pushTime;
-    }
-
-    public void setPushTime(String pushTime) {
-        this.pushTime = pushTime;
-    }
-
-    public JyMessage(){}
-
-    /**
-     * 推送信息
-     * @param title 标题
-     * @param content   内容
-     * @param link  链接
-     * @param category  分类
-     * @param readed    是否已读
-     * @param comeintime    创建事件
-     * @param openid    用户标识
-     * @param descript    描述
-     * @param extend    扩展字段
-     */
-    public JyMessage(String title, String content, String link, String category, Integer readed, Integer comeintime, String openid,String descript,String extend,String pushTime) {
-        this.title = title;
-        this.content = content;
-        this.link = link;
-        this.category = category;
-        this.readed = readed;
-        this.comeintime = comeintime;
-        this.openid = openid;
-        this.descript=descript;
-        this.extend=extend;
-        this.pushTime=pushTime;
-    }
-
-    public ContentValues getMsaagesContentValues(){
-        ContentValues cv = new ContentValues();
-        cv.put("id", id);
-        cv.put("title", title);
-        cv.put("content",content);
-        cv.put("link", link);
-        cv.put("category",category);
-        cv.put("readed", readed);
-        cv.put("comeintime", comeintime);
-        cv.put("descript",descript);
-        cv.put("openid",openid);
-        cv.put("pushTime",pushTime);
-        cv.put("extend",extend);
-        return cv;
-    }
-}

+ 0 - 168
android/app/src/main/java/com/topsoft/jianyu/WebFragment/Common.java

@@ -1,168 +0,0 @@
-package com.topsoft.jianyu.WebFragment;
-
-import android.net.Uri;
-import android.os.Build;
-import android.os.Handler;
-import android.support.v4.app.FragmentActivity;
-import android.util.Log;
-import android.webkit.CookieManager;
-import android.webkit.ValueCallback;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-
-import com.topsoft.jianyu.JyObj;
-import com.topsoft.jianyu.MainActivity;
-import com.topsoft.jianyu.util.AppConstant;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import static com.topsoft.jianyu.MainActivity.mainHandler;
-
-public class Common {
-
-    public static int time=0;
-    private static boolean NetErr=false;
-    private static boolean loadingFinished = true;
-    private static boolean secondFinished=false;
-    private static String Log_Tag="Common";
-    private static boolean firstInit=true;
-    public static String Cookies="";
-
-    public static  void initWebview(final FragmentActivity fActivity, final WebView webView, String url, final String tag) {
-        webView.setWebViewClient(new WebViewClient() {
-            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
-                NetErr=true;
-                loadingFinished=false;
-                mainHandler.obtainMessage(AppConstant.NETWORK_ERR).sendToTarget();//webview不可见
-                Log.e(Log_Tag, "页面相应出错description: "+description+"   地址:"+failingUrl );
-            }
-            @Override
-            public void onPageFinished(WebView view, String url) {
-                //网络正常(网络出错也会执行此方法)
-                if(loadingFinished){
-                    if(NetErr){
-                        NetErr=false;
-                        //刷新其他页面
-                        MainActivity.mainHandler.sendEmptyMessage(AppConstant.FRAGMENT_READLOAD_ALL);
-                    }
-                    MainActivity.webViewFinish=true;
-                }
-                loadingFinished=true;
-                //搜索页面初始化完毕 加载其他页面 防止sessionid不一致
-                if("SearchFragment".equals(tag)&&firstInit&&!"".equals(MainActivity.token)){
-                    LaboratoryFragment.labPageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                    KeysetFragment.KeysetHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                    MeFragment.mePageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-                    firstInit=false;
-
-                    CookieManager cookieManager = CookieManager.getInstance();
-                    Cookies= cookieManager.getCookie(AppConstant.AppUrl);
-                }
-            }
-        });
-        webView.setWebChromeClient(new WebChromeClient() {
-            @Override
-            public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
-                super.onShowFileChooser(webView, filePathCallback, fileChooserParams);
-                return true;
-            }
-
-            @Override
-            public void onProgressChanged(WebView view, int newProgress) {
-                //根据webview的url判断是否显示底部导航
-                if(newProgress==100){
-                    if(!secondFinished){
-                        secondFinished=true;
-                    }else{
-                        secondFinished=false;
-                        String url=view.getUrl();
-                        if(url.equals(SearchFragment.initUrl)||url.equals(KeysetFragment.initUrl)||url.equals(LaboratoryFragment.initUrl)||url.equals(MeFragment.initUrl)||url.contains("/jyapp/tenderSubscribe/guide")){
-                            if(MainActivity.noShowBottomBar==0){
-                                //向导页面五底部导航
-                                if(url.contains("/jyapp/tenderSubscribe/guide")){
-                                    if (MainActivity.befreToLoginPageSign==1||MainActivity.guide){
-                                        Log.e(Log_Tag, "页面加载"+url+"-----------------------------------------------------"+tag);
-                                        MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_BAR_HIDDEN);
-                                    }
-                                    MainActivity.guide=true;
-                                }else{
-                                    Log.e(Log_Tag, "页面加载"+url+"+++++++++++++++++++++++++++++++++++++++++++++++"+tag);
-                                    MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_BAR_SHOW);
-                                }
-                            }
-                            if(MainActivity.noShowBottomBar>0){
-                                MainActivity.noShowBottomBar--;
-                            }
-                        }else {
-                            Log.e(Log_Tag, "页面加载"+url+"-----------------------------------------------------"+tag);
-                            MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_BAR_HIDDEN);
-                        }
-                    }
-                }
-            }
-        });
-
-        WebSettings webSettings = webView.getSettings();
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            webView.getSettings().setSafeBrowsingEnabled(false);
-        }
-        //设置支持javascript
-        webSettings.setJavaScriptEnabled(true);
-        webSettings.setDomStorageEnabled(true);
-        //允许JS弹窗
-        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
-        webSettings.setSupportMultipleWindows(true);
-        //横向滚动条
-        webView.setHorizontalScrollBarEnabled(false);
-
-        webSettings.setUseWideViewPort(true);//屏幕自适应
-        webSettings.setLoadWithOverviewMode(true);// 缩放至屏幕的大小
-        webSettings.setLoadsImagesAutomatically(true);//是否加载图片
-        //可以访问文件
-        webSettings.setAllowFileAccess(true);
-        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
-        //设置缓存
-        //webSettings.setCacheMode(webSettings.LOAD_DEFAULT);
-        //设置当一个安全站点企图加载来自一个不安全站点资源时(https中可以携带http资源)
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
-        }
-
-        Map<String, String> map = new HashMap<String, String>();
-        map.put("User-Agent", "Android");
-        if(!"".equals(url)){
-            webView.loadUrl(url, map);
-        }
-        webView.addJavascriptInterface(new JyObj(fActivity, webView), "JyObj");
-    }
-
-    public static WebView getPageWebview(int pos){
-        switch (pos){
-            case 0:
-                return  SearchFragment.webView;
-            case 1:
-                return KeysetFragment.webView;
-            case 2:
-                return LaboratoryFragment.webView;
-            case 3:
-                return MeFragment.webView;
-        }
-        return null;
-    }
-    public static Handler getPageHandler(int pos){
-        switch (pos){
-            case 0:
-                return  SearchFragment.searchPageHandler;
-            case 1:
-                return KeysetFragment.KeysetHandler;
-            case 2:
-                return LaboratoryFragment.labPageHandler;
-            case 3:
-                return MeFragment.mePageHandler;
-        }
-        return null;
-    }
-}

+ 0 - 63
android/app/src/main/java/com/topsoft/jianyu/WebFragment/KeysetFragment.java

@@ -1,63 +0,0 @@
-package com.topsoft.jianyu.WebFragment;
-
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.webkit.WebView;
-
-import com.topsoft.jianyu.R;
-import com.topsoft.jianyu.util.AppConstant;
-import com.topsoft.jianyu.util.AppUtil;
-
-import java.lang.ref.WeakReference;
-
-
-public class KeysetFragment extends Fragment {
-
-    private View mView;
-    public static WebView webView;
-    public static KeysetHandler KeysetHandler;
-    public static String initUrl=AppConstant.AppUrl+"/jyapp/wxkeyset/keyset/index";
-
-    @Nullable
-    @Override
-    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle bundle) {
-        mView=inflater.inflate(R.layout.main_webview,container,false);
-        webView=mView.findViewById(R.id.web);
-        //初始化wevview
-        Common.initWebview(this.getActivity(),webView,"","KeysetFragment");
-
-        //初始化handker
-        KeysetHandler=new KeysetHandler(this);
-        return mView;
-    }
-
-   public class KeysetHandler extends Handler {
-        WeakReference<KeysetFragment> orderActivityWeakReference;
-        public KeysetHandler(KeysetFragment activity) {
-            orderActivityWeakReference = new WeakReference<KeysetFragment>(activity);
-        }
-        public void handleMessage(Message msg) {
-            final KeysetFragment orderActivity = orderActivityWeakReference.get();
-            switch (msg.what) {
-                case AppConstant.FRAGMENT_OPEN_URL:
-                    Bundle bundle = msg.getData();
-                    final String url=bundle.getString("url", "");
-                    if(!"".equals(url)){
-                        webView.loadUrl(url);
-                    }
-                    break;
-                case AppConstant.FRAGMENT_WEBVIEW_INIT:
-                    System.out.println("xxxxxxxxxxxxxxxxxxxxxxx订阅");
-                    webView.loadUrl(initUrl);
-            }
-        }
-    }
-
-}

+ 0 - 63
android/app/src/main/java/com/topsoft/jianyu/WebFragment/LaboratoryFragment.java

@@ -1,63 +0,0 @@
-package com.topsoft.jianyu.WebFragment;
-
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.webkit.WebView;
-
-import com.topsoft.jianyu.R;
-import com.topsoft.jianyu.util.AppConstant;
-import com.topsoft.jianyu.util.AppUtil;
-
-import java.lang.ref.WeakReference;
-
-
-public class LaboratoryFragment extends Fragment {
-
-    private View mView;
-    public static WebView webView;
-    public static LibraryPageHandler labPageHandler;
-    public static String initUrl=AppConstant.AppUrl+"/jyapp/jylab/index";
-
-    @Nullable
-    @Override
-    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle bundle) {
-        mView=inflater.inflate(R.layout.main_webview,container,false);
-        webView=mView.findViewById(R.id.web);
-        //初始化wevview
-        Common.initWebview(this.getActivity(),webView,"","LaboratoryFragment");
-
-        //初始化handker
-        labPageHandler=new LibraryPageHandler(this);
-        return mView;
-    }
-   public class LibraryPageHandler extends Handler {
-        WeakReference<LaboratoryFragment> labActivityWeakReference;
-        public LibraryPageHandler(LaboratoryFragment activity) {
-            labActivityWeakReference = new WeakReference<LaboratoryFragment>(activity);
-        }
-        public void handleMessage(Message msg) {
-            final LaboratoryFragment labActivity = labActivityWeakReference.get();
-            switch (msg.what) {
-                case AppConstant.FRAGMENT_OPEN_URL:
-                    Bundle bundle = msg.getData();
-                    final String url=bundle.getString("url", "");
-                    if(!"".equals(url)){
-                        webView.loadUrl(url);
-                    }
-                    break;
-                case AppConstant.FRAGMENT_WEBVIEW_INIT:
-                    System.out.println("xxxxxxxxxxxxxxxxxxxxxxx实验室");
-                    webView.loadUrl(initUrl);
-                    break;
-            }
-        }
-    }
-
-}

+ 0 - 63
android/app/src/main/java/com/topsoft/jianyu/WebFragment/MeFragment.java

@@ -1,63 +0,0 @@
-package com.topsoft.jianyu.WebFragment;
-
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.webkit.WebView;
-
-import com.topsoft.jianyu.R;
-import com.topsoft.jianyu.util.AppConstant;
-import com.topsoft.jianyu.util.AppUtil;
-
-import java.lang.ref.WeakReference;
-
-
-public class MeFragment extends Fragment {
-
-    private View mView;
-    public static WebView webView;
-    public static MePageHandler mePageHandler;
-    public static String initUrl=AppConstant.AppUrl+"/jyapp/free/me";
-    @Nullable
-    @Override
-    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle bundle) {
-        mView=inflater.inflate(R.layout.main_webview,container,false);
-        webView=mView.findViewById(R.id.web);
-        //初始化wevview
-        Common.initWebview(this.getActivity(),webView,"","MeFragment");
-
-        //初始化handker
-        mePageHandler=new MePageHandler(this);
-        return mView;
-    }
-   public class MePageHandler extends Handler {
-        WeakReference<MeFragment> meActivityWeakReference;
-        public MePageHandler(MeFragment activity) {
-            meActivityWeakReference = new WeakReference<MeFragment>(activity);
-        }
-        public void handleMessage(Message msg) {
-            final MeFragment meActivity = meActivityWeakReference.get();
-            switch (msg.what) {
-                case AppConstant.FRAGMENT_OPEN_URL:
-                    Bundle bundle = msg.getData();
-                    final String url=bundle.getString("url", "");
-                    if(!"".equals(url)){
-                        System.out.println("uuuuuuuuuuuuuuuu"+url);
-                        meActivity.webView.loadUrl(url);
-                    }
-                    break;
-                case AppConstant.FRAGMENT_WEBVIEW_INIT:
-                    System.out.println("xxxxxxxxxxxxxxxxxxxxxxx我的");
-                    webView.loadUrl(initUrl);
-                    break;
-            }
-        }
-    }
-
-}

+ 0 - 83
android/app/src/main/java/com/topsoft/jianyu/WebFragment/SearchFragment.java

@@ -1,83 +0,0 @@
-package com.topsoft.jianyu.WebFragment;
-
-
-import android.os.Bundle;
-
-import android.os.Handler;
-import android.os.Message;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.webkit.WebView;
-
-import com.topsoft.jianyu.MainActivity;
-import com.topsoft.jianyu.R;
-import com.topsoft.jianyu.util.AppConstant;
-import java.lang.ref.WeakReference;
-import java.net.URLEncoder;
-import static com.topsoft.jianyu.MainActivity.token;
-
-
-public class SearchFragment extends Fragment {
-
-    private View mView;
-    public static WebView webView;
-    public static SearchPageHandler searchPageHandler;
-    public static String initUrl = AppConstant.AppUrl + "/jyapp/jylab/mainSearch";
-
-    @Nullable
-    @Override
-    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle bundle) {
-        mView = inflater.inflate(R.layout.main_webview, container, false);
-        webView = mView.findViewById(R.id.web);
-        //初始化wevview
-        String aotoLogin=initUrl;
-        if(!"".equals(MainActivity.token)){
-            aotoLogin=AppConstant.AppUrl+"/jyapp/free/login?sign="+token+"&url="+URLEncoder.encode("/jyapp/jylab/mainSearch")+"&from=restart";
-        }
-        Common.initWebview(this.getActivity(), webView, aotoLogin,"SearchFragment");
-
-        //如果有推送消息,跳转至推送消息页面
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                if (MainActivity.pushurl != "" && MainActivity.pushurl != null) {
-                    webView.loadUrl(AppConstant.AppUrl + MainActivity.pushurl);
-                    MainActivity.pushurl = "";
-                }
-            }
-        }, 500);
-
-        //初始化handler
-        searchPageHandler = new SearchPageHandler(this);
-        return mView;
-    }
-
-    public class SearchPageHandler extends Handler {
-        WeakReference<SearchFragment> searchActivityWeakReference;
-
-        public SearchPageHandler(SearchFragment activity) {
-            searchActivityWeakReference = new WeakReference<SearchFragment>(activity);
-        }
-
-        public void handleMessage(Message msg) {
-            final SearchFragment mainActivity = searchActivityWeakReference.get();
-            switch (msg.what) {
-                case AppConstant.FRAGMENT_OPEN_URL:
-                    Bundle bundle = msg.getData();
-                    final String url = bundle.getString("url", "");
-                    if (!"".equals(url)) {
-                        webView.loadUrl(url);
-                    }
-                    break;
-                case AppConstant.FRAGMENT_WEBVIEW_INIT:
-                    System.out.println("xxxxxxxxxxxxxxxxxxxxxxx搜索");
-                    webView.loadUrl(initUrl);
-                    break;
-            }
-        }
-    }
-
-}

+ 0 - 113
android/app/src/main/java/com/topsoft/jianyu/WelcomePage.java

@@ -1,113 +0,0 @@
-package com.topsoft.jianyu;
-
-
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.os.Bundle;
-import android.os.Handler;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.ActivityCompat;
-import android.support.v7.app.AppCompatActivity;
-
-
-import com.topsoft.jianyu.util.AppUtil;
-import com.umeng.analytics.MobclickAgent;
-import com.umeng.commonsdk.UMConfigure;
-import com.umeng.commonsdk.utils.UMUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * Created by wangkaiyue on 2018/1/24.
- */
-
-public class WelcomePage extends AppCompatActivity {
-
-    private String[] permissions = new String[]{
-            android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_EXTERNAL_STORAGE,
-            android.Manifest.permission.ACCESS_COARSE_LOCATION,android.Manifest.permission.ACCESS_FINE_LOCATION
-    };
-    List<String> mPermissionList = new ArrayList<>();
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.welcome_page);
-        AppUtil.setAndroidNativeLightStatusBar(this,true,true);
-        mPermissionList.clear();
-
-        //统计渠道来源
-        UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "");
-        UMUtils.setChannel(this,getChannel());
-        permissionCheck(permissions);
-
-    }
-
-    public void onResume(){
-
-        super.onResume();
-
-        MobclickAgent.onResume(this);}
-
-    public void onPause(){
-
-        super.onPause();
-
-        MobclickAgent.onPause(this);
-
-    }
-    //跳转Mainactivity
-    private void toMainActivity(){
-        new Handler().postDelayed(new Runnable() {
-            public void run() {
-                startActivity(new Intent(WelcomePage.this,MainActivity.class));
-                finish();
-            }
-        }, 2000);
-    }
-
-    private void permissionCheck(String[] permissions) {
-        for (int i = 0; i < permissions.length; i++) {
-            if (ActivityCompat.checkSelfPermission(this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {
-                mPermissionList.add(permissions[i]);
-            }
-        }
-        if (mPermissionList.isEmpty()) {
-            toMainActivity();
-        } else {
-            String[] _permissions = mPermissionList.toArray(new String[mPermissionList.size()]);//将List转为数组
-            ActivityCompat.requestPermissions(this, _permissions, 51);
-        }
-    }
-    @Override
-    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
-        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
-        switch (requestCode) {
-            case 51:
-                if (grantResults.length > 0) {
-                    for (int granted : grantResults) {
-                        if (granted != PackageManager.PERMISSION_GRANTED) {
-                            break;
-                        }
-                    }
-                }
-                toMainActivity();
-                break;
-        }
-    }
-    //多渠道打包获取值
-    private String getChannel(){
-        try{
-            PackageManager pm=getPackageManager();
-            ApplicationInfo applicationInfo=pm.getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
-            return applicationInfo.metaData.getString("UMENG_CHANNEL");
-        }catch (PackageManager.NameNotFoundException e){
-            e.printStackTrace();
-        }
-        return "";
-    }
-}

+ 0 - 209
android/app/src/main/java/com/topsoft/jianyu/appUpdate/UpdateVersionController.java

@@ -1,209 +0,0 @@
-package com.topsoft.jianyu.appUpdate;
-
-import android.app.Dialog;
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Build;
-import android.os.Environment;
-import android.support.v4.content.FileProvider;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.Button;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.ccit.www.mobileshieldsdk.okutils.okhttp3.Call;
-import com.ccit.www.mobileshieldsdk.okutils.okhttputils.OkHttpUtils;
-import com.ccit.www.mobileshieldsdk.okutils.okhttputils.callback.FileCallBack;
-import com.ccit.www.mobileshieldsdk.okutils.okhttputils.callback.StringCallback;
-import com.topsoft.jianyu.MainActivity;
-import com.topsoft.jianyu.R;
-import com.topsoft.jianyu.util.AppConstant;
-import com.topsoft.jianyu.util.AppUtil;
-import com.topsoft.jianyu.util.LoadingUtils;
-import org.json.JSONObject;
-
-import java.io.File;
-
-
-/**
- * Created by wanghuidong on 2017/11/1.
- */
-
-public class UpdateVersionController {
-
-
-    private String AppUpdateUrl=AppConstant.AppUrl+"/jyapp/free/checkUpdate";
-
-    private Context context;
-    private static final String TAG = "UpdateVersionController";
-    private String destFileDir = Environment.getExternalStorageDirectory().getPath() + "/temp";
-
-    //下载进度条
-    private ProgressDialog pd;
-    private Button cancelBtn;
-
-    public static UpdateVersionController getInstance(Context context) {
-        return new UpdateVersionController(context);
-    }
-
-    public UpdateVersionController(Context context) {
-        this.context = context;
-    }
-
-
-    //检测更新
-    public void appUpdateCheck() {
-        final Dialog dialog = LoadingUtils.createLoadingDialog(context, "正在连接服务器检查信息...");
-        OkHttpUtils.post().url(AppUpdateUrl).addParams("token",MainActivity.token).build().execute(new StringCallback() {
-            @Override
-            public void onError(Call call, Exception e, int i) {
-                LoadingUtils.closeDialog(dialog);
-                Log.e(TAG, "检查更新出错:" + AppUpdateUrl);
-            }
-
-            @Override
-            public void onResponse(String s, int j) {
-                LoadingUtils.closeDialog(dialog);
-                String result = new String(s);
-                Log.e(TAG, "获取版本号接口返回值:" + result);
-                JSONObject jsonObject = null;
-                try {
-                    jsonObject = new JSONObject(result);
-                    Log.e(TAG, "获取到服务端更新版本号:" + jsonObject.getString("version"));
-
-                    if (jsonObject.has("version")){
-                        String AppVersion=AppUtil.getVersionName(context);
-                        String curVersion=jsonObject.getString("version");
-                        boolean userFlag=jsonObject.getBoolean("userflag");//是否在更新名单中
-                        if (!AppVersion.equals(curVersion)&&userFlag){
-                            //需要更新,弹出显示更新对话框
-                            String dialgText="检测到新版本"+curVersion+"(当前版本:"+AppVersion+")";
-                            Boolean mustupdate=jsonObject.getBoolean("mustupdate");
-                            String updateUrl=jsonObject.getString("apkurl");
-                            showUpdataDialog(mustupdate,dialgText,updateUrl);
-                        }
-                    }
-
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        });
-    }
-    public static Dialog dialog=null;
-    //弹出更新提示框
-    public void showUpdataDialog(final Boolean mustUpdate, final String dialogText,final String updateUrl) {
-
-        dialog = new Dialog(context);
-        dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
-        dialog.setContentView(R.layout.activity_updater);
-        dialog.setCanceledOnTouchOutside(false);
-        dialog.setCancelable(false);
-        ((TextView) dialog.findViewById(R.id.content)).setText(dialogText);
-        cancelBtn = (Button) dialog.findViewById(R.id.cancel);
-        String cancelText=mustUpdate?"退出":"不更新";
-
-        cancelBtn.setText(cancelText);
-        cancelBtn.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if(mustUpdate){
-                    System.exit(0);
-                }else{
-                    dialog.dismiss();
-                    dialog=null;
-                }
-            }
-        });
-        // 确认更新
-        dialog.findViewById(R.id.ok).setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                dialog.dismiss();
-                Log.e("下载链接",updateUrl);
-                downLoadApk(updateUrl);
-                dialog=null;
-            }
-        });
-        dialog.show();
-    }
-
-    //下载进度条
-    private void downLoadApk(final String updateUrl) {
-        // 进度条对话框
-        pd = new ProgressDialog(context);
-        pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
-        pd.setMessage("下载中...");
-        pd.setCanceledOnTouchOutside(false);
-        pd.setCancelable(false);
-        // 监听返回键--防止下载的时候点击返回
-        pd.setOnKeyListener(new DialogInterface.OnKeyListener() {
-            @Override
-            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
-                if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
-                    Toast.makeText(context, "正在下载请稍后", Toast.LENGTH_SHORT).show();
-                    return true;
-                } else {
-                    return false;
-                }
-            }
-        });
-        // Sdcard不可用
-        if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
-            Toast.makeText(context, "SD卡不可用~", Toast.LENGTH_SHORT).show();
-        } else {
-            pd.show();
-            File sdDir = new File(destFileDir);
-            if (!sdDir.exists()) {
-                sdDir.mkdirs();
-            }
-
-            final String tmpFileName=updateUrl.substring(updateUrl.lastIndexOf("/") + 1);
-            OkHttpUtils.post().url(updateUrl).build().execute(new FileCallBack(destFileDir,tmpFileName) {
-                @Override
-                public void onError(Call call, Exception e, int i) {
-                    Toast.makeText(context, "文件下载失败了~", Toast.LENGTH_SHORT).show();
-                    Log.e(TAG,"下载安装包失败"+e.getMessage());
-                    pd.dismiss();
-                }
-
-                @Override
-                public void onResponse(File file, int i) {
-                    pd.dismiss(); // 结束掉进度条对话框
-                    installApk(file);
-                }
-
-                @Override
-                public void inProgress(float progress, long total, int id) {
-                    super.inProgress(progress, total, id);
-                    int count =(int) (100 * progress);
-                    pd.setProgress(count);
-                }
-            });
-        }
-    }
-
-    protected void installApk(File file) {
-        Log.e("文件是否存在——————-",file.exists()+"x");
-        Intent intent = new Intent();
-        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        intent.setAction(android.content.Intent.ACTION_VIEW);
-        if (Build.VERSION.SDK_INT >= 24) {
-            //provider authorities
-            Uri apkUri = FileProvider.getUriForFile(context, "com.topsoft.jianyu.fileprovider", file);
-            //Granting Temporary Permissions to a URI
-            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
-            intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
-        }else {
-            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-            intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
-        }
-        context.startActivity(intent);
-    }
-
-}

+ 0 - 273
android/app/src/main/java/com/topsoft/jianyu/bottomBar/BottomBarItem.java

@@ -1,273 +0,0 @@
-package com.topsoft.jianyu.bottomBar;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.util.AttributeSet;
-import android.util.TypedValue;
-import android.view.Gravity;
-import android.view.View;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import com.topsoft.jianyu.R;
-
-import java.util.Locale;
-
-
-/**
- * @author ChayChan
- * @description: 底部tab条目
- * @date 2017/6/23  9:14
- */
-
-public class BottomBarItem extends LinearLayout {
-
-    private Context mContext;
-    private int mIconNormalResourceId;//普通状态图标的资源id
-    private int mIconSelectedResourceId;//选中状态图标的资源id
-    private String mText;//文本
-    private int mTextSize = 12;//文字大小 默认为12sp
-    private int mTextColorNormal = 0xFF999999;    //描述文本的默认显示颜色
-    private int mTextColorSelected = 0xFF46C01B;  //述文本的默认选中显示颜色
-    private int mWhiteColor = 0xFFFFFFFF;  //白色
-    private int mMarginTop = 0;//文字和图标的距离,默认0dp
-    private boolean mOpenTouchBg = false;// 是否开启触摸背景,默认关闭
-    private Drawable mTouchDrawable;//触摸时的背景
-    private int mIconWidth;//图标的宽度
-    private int mIconHeight;//图标的高度
-    private int mItemPadding;//BottomBarItem的padding
-
-
-    private ImageView mImageView;
-    private TextView mTvUnread;
-    private TextView mTvNotify;
-    private TextView mTvMsg;
-    private TextView mTextView;
-
-    private int mUnreadTextSize = 10; //未读数默认字体大小10sp
-    private int mMsgTextSize = 6; //消息默认字体大小6sp
-    private int unreadNumThreshold = 99;//未读数阈值
-    private int mUnreadTextColor;//未读数字体颜色
-    private Drawable mUnreadTextBg;
-    private int mMsgTextColor;
-    private Drawable mMsgTextBg;
-    private Drawable mNotifyPointBg;
-
-    public BottomBarItem(Context context) {
-        this(context, null);
-    }
-
-    public BottomBarItem(Context context, @Nullable AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public BottomBarItem(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-
-        mContext = context;
-
-        TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.BottomBarItem);
-
-        initAttrs(ta); //初始化属性
-
-        ta.recycle();
-
-        checkValues();//检查值是否合法
-
-        init();//初始化相关操作
-    }
-
-    private void initAttrs(TypedArray ta) {
-        mIconNormalResourceId = ta.getResourceId(R.styleable.BottomBarItem_iconNormal, -1);
-        mIconSelectedResourceId = ta.getResourceId(R.styleable.BottomBarItem_iconSelected, -1);
-
-        mText = ta.getString(R.styleable.BottomBarItem_itemText);
-        mTextSize = ta.getDimensionPixelSize(R.styleable.BottomBarItem_itemTextSize, UIUtils.sp2px(mContext, mTextSize));
-
-        mTextColorNormal = ta.getColor(R.styleable.BottomBarItem_textColorNormal, mTextColorNormal);
-        mTextColorSelected = ta.getColor(R.styleable.BottomBarItem_textColorSelected, mTextColorSelected);
-
-        mMarginTop = ta.getDimensionPixelSize(R.styleable.BottomBarItem_itemMarginTop, UIUtils.dip2Px(mContext, mMarginTop));
-
-        mOpenTouchBg = ta.getBoolean(R.styleable.BottomBarItem_openTouchBg, mOpenTouchBg);
-        mTouchDrawable = ta.getDrawable(R.styleable.BottomBarItem_touchDrawable);
-
-        mIconWidth = ta.getDimensionPixelSize(R.styleable.BottomBarItem_iconWidth, 0);
-        mIconHeight = ta.getDimensionPixelSize(R.styleable.BottomBarItem_iconHeight, 0);
-        mItemPadding = ta.getDimensionPixelSize(R.styleable.BottomBarItem_itemPadding, 0);
-
-        mUnreadTextSize = ta.getDimensionPixelSize(R.styleable.BottomBarItem_unreadTextSize, UIUtils.sp2px(mContext, mUnreadTextSize));
-        mUnreadTextColor = ta.getColor(R.styleable.BottomBarItem_unreadTextColor, 0xFFFFFFFF);
-        mUnreadTextBg = ta.getDrawable(R.styleable.BottomBarItem_unreadTextBg);
-
-        mMsgTextSize = ta.getDimensionPixelSize(R.styleable.BottomBarItem_msgTextSize, UIUtils.sp2px(mContext, mMsgTextSize));
-        mMsgTextColor = ta.getColor(R.styleable.BottomBarItem_msgTextColor, 0xFFFFFFFF);
-        mMsgTextBg = ta.getDrawable(R.styleable.BottomBarItem_msgTextBg);
-
-        mNotifyPointBg = ta.getDrawable(R.styleable.BottomBarItem_notifyPointBg);
-
-        unreadNumThreshold = ta.getInteger(R.styleable.BottomBarItem_unreadThreshold,99);
-    }
-
-    /**
-     * 检查传入的值是否完善
-     */
-    private void checkValues() {
-        if (mIconNormalResourceId == -1) {
-            throw new IllegalStateException("您还没有设置默认状态下的图标,请指定iconNormal的图标");
-        }
-
-        if (mIconSelectedResourceId == -1) {
-            throw new IllegalStateException("您还没有设置选中状态下的图标,请指定iconSelected的图标");
-        }
-
-        if (mOpenTouchBg && mTouchDrawable == null) {
-            //如果有开启触摸背景效果但是没有传对应的drawable
-            throw new IllegalStateException("开启了触摸效果,但是没有指定touchDrawable");
-        }
-
-        if (mUnreadTextBg == null){
-            mUnreadTextBg = getResources().getDrawable(R.drawable.shape_unread);
-        }
-
-        if (mMsgTextBg == null){
-            mMsgTextBg = getResources().getDrawable(R.drawable.shape_msg);
-        }
-
-        if (mNotifyPointBg == null){
-            mNotifyPointBg = getResources().getDrawable(R.drawable.shape_notify_point);
-        }
-    }
-
-    private void init() {
-        setOrientation(VERTICAL);
-        setGravity(Gravity.CENTER);
-
-        View view = initView();
-
-        mImageView.setImageResource(mIconNormalResourceId);
-
-        if (mIconWidth != 0 && mIconHeight != 0) {
-            //如果有设置图标的宽度和高度,则设置ImageView的宽高
-            FrameLayout.LayoutParams imageLayoutParams = (FrameLayout.LayoutParams) mImageView.getLayoutParams();
-            imageLayoutParams.width = mIconWidth;
-            imageLayoutParams.height = mIconHeight;
-            mImageView.setLayoutParams(imageLayoutParams);
-        }
-
-        mTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSize);//设置底部文字字体大小
-
-        mTvUnread.setTextSize(TypedValue.COMPLEX_UNIT_PX, mUnreadTextSize);//设置未读数的字体大小
-        mTvUnread.setTextColor(mUnreadTextColor);//设置未读数字体颜色
-        mTvUnread.setBackground(mUnreadTextBg);//设置未读数背景
-
-        mTvMsg.setTextSize(TypedValue.COMPLEX_UNIT_PX, mMsgTextSize);//设置提示文字的字体大小
-        mTvMsg.setTextColor(mMsgTextColor);//设置提示文字的字体颜色
-        mTvMsg.setBackground(mMsgTextBg);//设置提示文字的背景颜色
-
-        mTvNotify.setBackground(mNotifyPointBg);//设置提示点的背景颜色
-
-        mTextView.setTextColor(mTextColorNormal);//设置底部文字字体颜色
-        mTextView.setText(mText);//设置标签文字
-
-        LayoutParams textLayoutParams = (LayoutParams) mTextView.getLayoutParams();
-        textLayoutParams.topMargin = mMarginTop;
-        mTextView.setLayoutParams(textLayoutParams);
-
-        if (mOpenTouchBg) {
-            //如果有开启触摸背景
-            setBackground(mTouchDrawable);
-        }
-
-        addView(view);
-    }
-
-    @NonNull
-    private View initView() {
-        View view = View.inflate(mContext, R.layout.item_bottom_bar, null);
-        if (mItemPadding != 0) {
-            //如果有设置item的padding
-            view.setPadding(mItemPadding, mItemPadding, mItemPadding, mItemPadding);
-        }
-        mImageView = (ImageView) view.findViewById(R.id.iv_icon);
-        mTvUnread = (TextView) view.findViewById(R.id.tv_unred_num);
-        mTvMsg = (TextView) view.findViewById(R.id.tv_msg);
-        mTvNotify = (TextView) view.findViewById(R.id.tv_point);
-        mTextView = (TextView) view.findViewById(R.id.tv_text);
-        return view;
-    }
-
-    public ImageView getImageView() {
-        return mImageView;
-    }
-
-    public TextView getTextView() {
-        return mTextView;
-    }
-
-    public void setIconNormalResourceId(int mIconNormalResourceId) {
-        this.mIconNormalResourceId = mIconNormalResourceId;
-    }
-
-    public void setIconSelectedResourceId(int mIconSelectedResourceId) {
-        this.mIconSelectedResourceId = mIconSelectedResourceId;
-    }
-
-    public void setStatus(boolean isSelected) {
-        mImageView.setImageDrawable(getResources().getDrawable(isSelected ? mIconSelectedResourceId : mIconNormalResourceId));
-        mTextView.setTextColor(isSelected ? mTextColorSelected : mTextColorNormal);
-    }
-
-    private void setTvVisiable(TextView tv) {
-        //都设置为不可见
-        mTvUnread.setVisibility(GONE);
-        mTvMsg.setVisibility(GONE);
-        mTvNotify.setVisibility(GONE);
-
-        tv.setVisibility(VISIBLE);//设置为可见
-    }
-
-    public int getUnreadNumThreshold() {
-        return unreadNumThreshold;
-    }
-
-    public void setUnreadNumThreshold(int unreadNumThreshold) {
-        this.unreadNumThreshold = unreadNumThreshold;
-    }
-
-    /**
-     * 设置未读数
-     */
-    public void setUnreadNum(int unreadNum) {
-        setTvVisiable(mTvUnread);
-        if (unreadNum <= 0) {
-            mTvUnread.setVisibility(GONE);
-        } else if (unreadNum <= unreadNumThreshold) {
-            mTvUnread.setText(String.valueOf(unreadNum));
-        } else {
-            mTvUnread.setText(String.format(Locale.CHINA, "%d+", unreadNumThreshold));
-        }
-    }
-
-    public void setMsg(String msg) {
-        setTvVisiable(mTvMsg);
-        mTvMsg.setText(msg);
-    }
-
-    public void hideMsg() {
-        mTvMsg.setVisibility(GONE);
-    }
-
-    public void showNotify() {
-        setTvVisiable(mTvNotify);
-    }
-
-    public void hideNotify() {
-        mTvNotify.setVisibility(GONE);
-    }
-}

+ 0 - 266
android/app/src/main/java/com/topsoft/jianyu/bottomBar/BottomBarLayout.java

@@ -1,266 +0,0 @@
-package com.topsoft.jianyu.bottomBar;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.os.Bundle;
-import android.os.Parcelable;
-import android.support.v4.view.ViewPager;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.LinearLayout;
-
-import com.topsoft.jianyu.R;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author ChayChan
- * @description: 底部页签根节点
- * @date 2017/6/23  11:02
- */
-public class BottomBarLayout extends LinearLayout implements ViewPager.OnPageChangeListener {
-
-    private static final String STATE_INSTANCE = "instance_state";
-    private static final String STATE_ITEM = "state_item";
-
-
-    private ViewPager mViewPager;
-    private int mChildCount;//子条目个数
-    public List<BottomBarItem> mItemViews = new ArrayList<>();
-    private int mCurrentItem;//当前条目的索引
-    private boolean mSmoothScroll;
-    private boolean canChange=false;
-
-    public void setCanChange(boolean canChange) {
-        this.canChange = canChange;
-    }
-
-    public BottomBarLayout(Context context) {
-        this(context, null);
-    }
-
-    public BottomBarLayout(Context context, AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public BottomBarLayout(Context context, AttributeSet attrs, int defStyleAttr) {
-        super(context, attrs, defStyleAttr);
-        TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.BottomBarLayout);
-        mSmoothScroll = ta.getBoolean(R.styleable.BottomBarLayout_smoothScroll,false);
-        ta.recycle();
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-        init();
-    }
-
-    @Override
-    public void setOrientation(int orientation) {
-        super.setOrientation(orientation);
-    }
-
-    public void setViewPager(ViewPager viewPager) {
-        this.mViewPager = viewPager;
-        init();
-    }
-
-    private void init() {
-        mChildCount = getChildCount();
-
-        if (mViewPager != null) {
-            if (mViewPager.getAdapter().getCount() != mChildCount) {
-                throw new IllegalArgumentException("LinearLayout的子View数量必须和ViewPager条目数量一致");
-            }
-        }
-
-        for (int i = 0; i < mChildCount; i++) {
-            if (getChildAt(i) instanceof BottomBarItem) {
-                BottomBarItem bottomBarItem = (BottomBarItem) getChildAt(i);
-                mItemViews.add(bottomBarItem);
-                //设置点击监听
-                bottomBarItem.setOnClickListener(new MyOnClickListener(i));
-            } else {
-                throw new IllegalArgumentException("BottomBarLayout的子View必须是BottomBarItem");
-            }
-        }
-
-        mItemViews.get(mCurrentItem).setStatus(true);//设置选中项
-
-        if (mViewPager != null){
-            mViewPager.setOnPageChangeListener(this);
-        }
-    }
-
-    @Override
-    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
-
-    }
-
-    @Override
-    public void onPageSelected(int position) {
-        resetState();
-        mItemViews.get(position).setStatus(true);
-        if (onItemSelectedListener != null){
-            onItemSelectedListener.onItemSelected(getBottomItem(position),mCurrentItem,position);
-        }
-        mCurrentItem = position;//记录当前位置
-    }
-
-    @Override
-    public void onPageScrollStateChanged(int state) {
-
-    }
-
-    private class MyOnClickListener implements OnClickListener {
-
-        private int currentIndex;
-
-        public MyOnClickListener(int i) {
-            this.currentIndex = i;
-        }
-
-        @Override
-        public void onClick(View v) {
-            //回调点击的位置
-            if(mViewPager != null){
-                //有设置viewPager
-                if (currentIndex == mCurrentItem){
-                    //如果还是同个页签,使用setCurrentItem不会回调OnPageSelecte(),所以在此处需要回调点击监听
-                    if (onItemSelectedListener != null) {
-                        onItemSelectedListener.onItemSelected(getBottomItem(currentIndex),mCurrentItem,currentIndex);
-                    }
-                }else{
-                    mViewPager.setCurrentItem(currentIndex, mSmoothScroll);
-                }
-            }else{
-                //没有设置viewPager
-                if (onItemSelectedListener != null) {
-                    onItemSelectedListener.onItemSelected(getBottomItem(currentIndex),mCurrentItem,currentIndex);
-                }
-                if(canChange){
-                    updateTabState(currentIndex);
-                }
-
-            }
-        }
-    }
-
-    public void updateTabState(int position){
-        resetState();
-        mCurrentItem = position;
-        mItemViews.get(mCurrentItem).setStatus(true);
-    }
-
-    /**
-     * 重置当前按钮的状态
-     */
-    private void resetState() {
-        if (mCurrentItem < mItemViews.size()){
-            mItemViews.get(mCurrentItem).setStatus(false);
-        }
-    }
-
-    public void setCurrentItem(int currentItem) {
-        if (mViewPager != null){
-            mViewPager.setCurrentItem(currentItem,mSmoothScroll);
-        }else{
-            updateTabState(currentItem);
-        }
-    }
-
-    /**
-     * 设置未读数
-     * @param position 底部标签的下标
-     * @param unreadNum 未读数
-     */
-    public void setUnread(int position,int unreadNum){
-        mItemViews.get(position).setUnreadNum(unreadNum);
-    }
-
-    /**
-     * 设置提示消息
-     * @param position 底部标签的下标
-     * @param msg 未读数
-     */
-    public void setMsg(int position,String msg){
-        mItemViews.get(position).setMsg(msg);
-    }
-
-    /**
-     * 隐藏提示消息
-     * @param position 底部标签的下标
-     */
-    public void hideMsg(int position){
-        mItemViews.get(position).hideMsg();
-    }
-
-    /**
-     * 显示提示的小红点
-     * @param position 底部标签的下标
-     */
-    public void showNotify(int position){
-        mItemViews.get(position).showNotify();
-    }
-
-    /**
-     * 隐藏提示的小红点
-     * @param position 底部标签的下标
-     */
-    public void hideNotify(int position){
-        mItemViews.get(position).hideNotify();
-    }
-
-    public int getCurrentItem() {
-        return mCurrentItem;
-    }
-
-    public void setSmoothScroll(boolean smoothScroll) {
-        this.mSmoothScroll = smoothScroll;
-    }
-
-    public BottomBarItem getBottomItem(int position){
-        return mItemViews.get(position);
-    }
-
-    /**
-     * @return 当View被销毁的时候,保存数据
-     */
-    @Override
-    protected Parcelable onSaveInstanceState() {
-        Bundle bundle = new Bundle();
-        bundle.putParcelable(STATE_INSTANCE, super.onSaveInstanceState());
-        bundle.putInt(STATE_ITEM, mCurrentItem);
-        return bundle;
-    }
-
-    /**
-     * @param state 用于恢复数据使用
-     */
-    @Override
-    protected void onRestoreInstanceState(Parcelable state) {
-        if (state instanceof Bundle) {
-            Bundle bundle = (Bundle) state;
-            mCurrentItem = bundle.getInt(STATE_ITEM);
-            //重置所有按钮状态
-            resetState();
-            //恢复点击的条目颜色
-            mItemViews.get(mCurrentItem).setStatus(true);
-            super.onRestoreInstanceState(bundle.getParcelable(STATE_INSTANCE));
-        } else {
-            super.onRestoreInstanceState(state);
-        }
-    }
-
-    private OnItemSelectedListener onItemSelectedListener;
-
-    public interface OnItemSelectedListener {
-        void onItemSelected(BottomBarItem bottomBarItem, int previousPosition, int currentPosition);
-    }
-
-    public void setOnItemSelectedListener(OnItemSelectedListener onItemSelectedListener) {
-        this.onItemSelectedListener = onItemSelectedListener;
-    }
-}

+ 0 - 34
android/app/src/main/java/com/topsoft/jianyu/bottomBar/UIUtils.java

@@ -1,34 +0,0 @@
-package com.topsoft.jianyu.bottomBar;
-
-import android.content.Context;
-
-/**
- * @author chaychan
- * @date 2017/3/7  17:19
- */
-public class UIUtils {
-    /**
-     * dip-->px
-     */
-    public static int dip2Px(Context context, int dip) {
-        // px/dip = density;
-        // density = dpi/160
-        // 320*480 density = 1 1px = 1dp
-        // 1280*720 density = 2 2px = 1dp
-
-        float density = context.getResources().getDisplayMetrics().density;
-        int px = (int) (dip * density + 0.5f);
-        return px;
-    }
-
-    /**
-     * 将sp值转换为px值,保证文字大小不变
-     *
-     * @param spValue
-     * @return
-     */
-    public static int sp2px(Context context, float spValue) {
-        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
-        return (int) (spValue * fontScale + 0.5f);
-    }
-}

+ 0 - 123
android/app/src/main/java/com/topsoft/jianyu/listener/CustomLoginListerner.java

@@ -1,123 +0,0 @@
-package com.topsoft.jianyu.listener;
-
-import android.app.Activity;
-import android.app.Dialog;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.util.Log;
-import android.webkit.WebView;
-import android.widget.Toast;
-
-import com.ccit.www.mobileshieldsdk.gsonutil.JsonObject;
-import com.topsoft.jianyu.MainActivity;
-
-import com.topsoft.jianyu.util.LoadingUtils;
-import com.topsoft.jianyu.util.SecretUtil;
-import com.umeng.socialize.UMAuthListener;
-import com.umeng.socialize.UMShareAPI;
-import com.umeng.socialize.bean.SHARE_MEDIA;
-
-import static android.content.Context.MODE_PRIVATE;
-
-
-import java.lang.ref.WeakReference;
-import java.util.Map;
-
-/**
- * Created by wangkaiyue on 2018/1/25.
- */
-
-public class CustomLoginListerner implements UMAuthListener {
-
-    private final String LOG_TAG = "CustomLoginListerner";
-
-    private WeakReference<MainActivity> mActivity;
-    private Context context;
-    private Dialog dialog ;
-    private WebView webView;
-
-    String userToken;
-
-    SharedPreferences share=null;
-
-    public CustomLoginListerner(Context context, WebView webView){
-        this.context=context;
-        this.webView=webView;
-        mActivity = new WeakReference((Activity)context);
-        share=context.getSharedPreferences("jy", MODE_PRIVATE);
-    }
-
-    @Override
-    public void onStart(SHARE_MEDIA share_media) {
-        dialog= LoadingUtils.createLoadingDialog(context, "正在加载登录");
-    }
-
-    @Override
-    public void onComplete(SHARE_MEDIA share_media, int i,final Map<String, String> map) {
-        LoadingUtils.closeDialog(dialog);
-
-        String city=map.get("city");
-        String country=map.get("country");
-        String profile_image_url=map.get("profile_image_url");
-        String screen_name=map.get("screen_name");
-        String openid=map.get("openid");
-        String province=map.get("province");
-        String unionid=map.get("unionid");
-        String sex_data=map.get("gender");
-
-        int sex=0;
-        if("男".equals(sex_data)){
-            sex=1;
-        }else if("女".equals(sex_data)){
-            sex=2;
-        }
-        long createtime=System.currentTimeMillis()/1000;
-
-        String singdata="city="+city+"&country="+country+"&createtime="+createtime+"&headimgurl="+profile_image_url+"&nickname="+screen_name+"&openid="+openid+"&province="+province+"&sex="+sex+"&unionid="+unionid;
-        String sign= SecretUtil.getMD5(singdata);
-
-        JsonObject userMsg=new JsonObject();
-        userMsg.addProperty("city",city);
-        userMsg.addProperty("country",country);
-        userMsg.addProperty("createtime",createtime);
-        userMsg.addProperty("headimgurl",profile_image_url);
-        userMsg.addProperty("nickname",screen_name);
-        userMsg.addProperty("openid",openid);
-        userMsg.addProperty("province",province);
-        userMsg.addProperty("sex",sex);
-        userMsg.addProperty("unionid",unionid);
-        userMsg.addProperty("sign",sign);
-
-        userToken= SecretUtil.getBase64(userMsg.toString());
-
-        if(!"".equals(openid)&&openid!=null){
-            webView.post(new Runnable() {
-                @Override
-                public void run() {
-                    webView.loadUrl("javascript:loginByWeixinCallBack('"+userToken+"')");
-                }
-            });
-
-        }
-    }
-
-    @Override
-    public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
-        LoadingUtils.closeDialog(dialog);
-        Log.e(LOG_TAG,"登录出错"+i+":"+throwable.getMessage());
-        if(i==0||throwable.getMessage().contains("没有安装应用")){
-            Toast.makeText(context,"微信登录失败,没有安装微信",Toast.LENGTH_LONG).show();
-        }
-        if(i==2||throwable.getMessage().contains("获取用户资料失败")){
-            Toast.makeText(context,"获取用户信息失败,请重新尝试",Toast.LENGTH_LONG).show();
-            //删除授权
-            CustomRemoveLoginListerner removeLoginListerner=new CustomRemoveLoginListerner(context,webView);
-            UMShareAPI.get(context).deleteOauth((Activity)context,SHARE_MEDIA.WEIXIN,removeLoginListerner);
-        }
-    }
-
-    @Override
-    public void onCancel(SHARE_MEDIA share_media, int i) {
-        LoadingUtils.closeDialog(dialog);
-    }
-}

+ 0 - 56
android/app/src/main/java/com/topsoft/jianyu/listener/CustomRemoveLoginListerner.java

@@ -1,56 +0,0 @@
-package com.topsoft.jianyu.listener;
-
-import android.app.Activity;
-import android.app.Dialog;
-import android.content.Context;
-import android.util.Log;
-import android.webkit.WebView;
-
-import com.topsoft.jianyu.MainActivity;
-import com.topsoft.jianyu.util.LoadingUtils;
-import com.umeng.socialize.UMAuthListener;
-import com.umeng.socialize.bean.SHARE_MEDIA;
-
-import java.lang.ref.WeakReference;
-import java.util.Map;
-
-/**
- * Created by wangkaiyue on 2018/1/25.
- */
-
-public class CustomRemoveLoginListerner implements UMAuthListener {
-
-    private final String LOG_TAG = "CustomLoginListerner";
-
-    private WeakReference<MainActivity> mActivity;
-    private Context context;
-    private Dialog dialog ;
-    private WebView webView;
-
-    public CustomRemoveLoginListerner(Context context, WebView webView){
-        this.context=context;
-        this.webView=webView;
-        mActivity = new WeakReference((Activity)context);
-    }
-
-    @Override
-    public void onStart(SHARE_MEDIA share_media) {
-        dialog= LoadingUtils.createLoadingDialog(context, "正在加载登录");
-    }
-
-    @Override
-    public void onComplete(SHARE_MEDIA share_media, int i,final Map<String, String> map) {
-        LoadingUtils.closeDialog(dialog);
-    }
-
-    @Override
-    public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
-        LoadingUtils.closeDialog(dialog);
-        Log.e(LOG_TAG,"登录出错:"+throwable.getMessage());
-    }
-
-    @Override
-    public void onCancel(SHARE_MEDIA share_media, int i) {
-        LoadingUtils.closeDialog(dialog);
-    }
-}

+ 0 - 90
android/app/src/main/java/com/topsoft/jianyu/listener/CustomShareListener.java

@@ -1,90 +0,0 @@
-package com.topsoft.jianyu.listener;
-
-import android.app.Activity;
-import android.app.Dialog;
-import android.content.Context;
-import android.os.Bundle;
-import android.os.Message;
-import android.widget.Toast;
-
-import com.topsoft.jianyu.MainActivity;
-import com.topsoft.jianyu.util.LoadingUtils;
-import com.umeng.socialize.UMShareListener;
-import com.umeng.socialize.bean.SHARE_MEDIA;
-import com.umeng.socialize.utils.Log;
-
-import java.lang.ref.WeakReference;
-
-/**
- * Created by wangkaiyue on 2018/1/25.
- */
-
-public  class CustomShareListener implements UMShareListener {
-
-    private WeakReference<MainActivity> mActivity;
-    private Context context;
-    private Dialog dialog ;
-    public CustomShareListener(Context context) {
-        this.context=context;
-        mActivity = new WeakReference((Activity)context);
-    }
-
-    @Override
-    public void onStart(SHARE_MEDIA platform) {
-        if(!platform.equals(SHARE_MEDIA.WEIXIN)&&!platform.equals(SHARE_MEDIA.WEIXIN_CIRCLE)){ //微信自带有加载
-            dialog= LoadingUtils.createLoadingDialog(context, "正在加载分享");
-        }
-    }
-
-    @Override
-    public void onResult(SHARE_MEDIA platform) {
-        if(!platform.equals(SHARE_MEDIA.WEIXIN)&&!platform.equals(SHARE_MEDIA.WEIXIN_CIRCLE)){
-            LoadingUtils.closeDialog(dialog);
-        }
-    }
-
-    @Override
-    public void onError(SHARE_MEDIA platform, Throwable t) {
-        if(!platform.equals(SHARE_MEDIA.WEIXIN)&&!platform.equals(SHARE_MEDIA.WEIXIN_CIRCLE)){
-            LoadingUtils.closeDialog(dialog);
-        }
-        if (t != null) {
-            Log.d("throw"+t, "throw:" + t.getMessage());
-            if(t.getMessage().contains("没有安装应用")){
-                Toast.makeText(context,"没有安装此应用",Toast.LENGTH_LONG).show();
-            }
-            if(t.getMessage().contains("QQ图片存储失败")){
-                Toast.makeText(context,"您未开启相关权限",Toast.LENGTH_LONG).show();
-            }
-        }
-    }
-
-    @Override
-    public void onCancel(SHARE_MEDIA platform) {
-        if(!platform.equals(SHARE_MEDIA.WEIXIN)&&!platform.equals(SHARE_MEDIA.WEIXIN_CIRCLE)){
-            LoadingUtils.closeDialog(dialog);
-        }
-        //取消分享
-        /*
-        Message message = Message.obtain();
-        message.what = 1201;
-        Bundle b= new Bundle();
-        String type="";
-        switch (platform.name()){
-            case "WEIXIN":
-                type="1";
-                break;
-            case "QQ":
-                type="2";
-                break;
-            case "WEIXIN_CIRCLE":
-                type="3";
-                break;
-        }
-        b.putString("type", type);
-        b.putString("flag","0");
-        message.setData(b);
-        MainActivity.mainHandler.sendMessage(message);*/
-    }
-}
-

+ 0 - 99
android/app/src/main/java/com/topsoft/jianyu/listener/KeyBoardListener.java

@@ -1,99 +0,0 @@
-package com.topsoft.jianyu.listener;
-
-/**
- * 解决webView键盘遮挡问题的类
- */
-
-import android.app.Activity;
-import android.content.Context;
-import android.graphics.Rect;
-import android.view.View;
-import android.view.ViewTreeObserver;
-import android.webkit.WebView;
-import android.widget.FrameLayout;
-
-import com.topsoft.jianyu.R;
-import com.topsoft.jianyu.util.AppUtil;
-
-public class KeyBoardListener {
-    private Activity activity;
-
-
-    private View mChildOfContent;
-    private int usableHeightPrevious;
-    private FrameLayout.LayoutParams frameLayoutParams;
-    private WebView wv;
-    private Context context;
-
-    private static KeyBoardListener keyBoardListener;
-
-
-    public static KeyBoardListener getInstance(Activity activity) {
-        if(keyBoardListener==null){
-            keyBoardListener=new KeyBoardListener(activity);
-        }
-        return keyBoardListener;
-    }
-
-
-    public KeyBoardListener(Activity activity) {
-        super();
-        this.activity = activity;
-    }
-
-
-    public void init(Context context) {
-        this.context=context;
-        FrameLayout content = (FrameLayout) activity
-                .findViewById(android.R.id.content);
-        wv=activity.findViewById(R.id.webView);
-        mChildOfContent = content.getChildAt(0);
-        mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
-            public void onGlobalLayout() {
-                possiblyResizeChildOfContent();
-            }
-        });
-        frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent.getLayoutParams();
-
-    }
-
-
-    private void possiblyResizeChildOfContent() {
-        int usableHeightNow = computeUsableHeight();
-
-        if (usableHeightNow != usableHeightPrevious) {
-            int usableHeightSansKeyboard = mChildOfContent.getRootView().getHeight();
-            int heightDifference = usableHeightSansKeyboard - usableHeightNow;
-
-            if (heightDifference > (usableHeightSansKeyboard / 4)) {
-                // 键盘显示
-               frameLayoutParams.height = usableHeightSansKeyboard-heightDifference+AppUtil.getStatusBarHight(context);
-               wv.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        wv.loadUrl("javascript:afterKeyboardShow();");
-                    }
-                });
-            } else {
-                // 键盘隐藏
-                frameLayoutParams.height = usableHeightSansKeyboard-AppUtil.getVirtualBarHeigh(context);
-                wv.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        wv.loadUrl("javascript:afterKeyboardHide();");
-                    }
-                });
-            }
-            mChildOfContent.requestLayout();
-            usableHeightPrevious = usableHeightNow;
-        }
-    }
-
-
-    private int computeUsableHeight() {
-        Rect r = new Rect();
-        mChildOfContent.getWindowVisibleDisplayFrame(r);
-        return (r.bottom - r.top);
-    }
-
-}

+ 0 - 47
android/app/src/main/java/com/topsoft/jianyu/push/HuaweiPushCustomActivity.java

@@ -1,47 +0,0 @@
-package com.topsoft.jianyu.push;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.util.Log;
-
-import com.topsoft.jianyu.MainActivity;
-import com.topsoft.jianyu.SQLite.JyMessage;
-
-
-
-public class HuaweiPushCustomActivity extends Activity {
-    String LOG_TAG="HuaweiPushCustomActivity";
-    @Override
-    protected void onResume() {
-        super.onResume();
-        Intent intent=getIntent();
-        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        String intentUrl=intent.toUri(Intent.URI_INTENT_SCHEME);
-        String data=intentUrl.substring(intentUrl.indexOf("huawei?data=")+12, intentUrl.indexOf("#Intent;"));
-
-        try {
-            //点击通知,页面跳转
-            Log.e(LOG_TAG, "点击接受消息" + data);
-            if (!"".equals(data) && data != null) {
-                JyMessage oneMsg = notifyUtil.FormatMsg(data);
-                //修改信息已读,
-                Log.e(LOG_TAG,"修改信息已读");
-                String url = notifyUtil.ChangeMsgRead(this,oneMsg);
-                Log.e(LOG_TAG,"修改信息已读完成!!!!!!!");
-                Log.e(LOG_TAG,""+MainActivity.mainHandler);
-                if(MainActivity.mainHandler==null){
-                    //MainActivity 没有存活
-                    Intent toMainAct =new Intent(this, MainActivity.class);
-                    toMainAct.putExtra("pushUrl",url);
-                    Log.e(LOG_TAG,url);
-                    startActivity(toMainAct);
-                }else{
-                    notifyUtil.ChangeMainUrl(this,oneMsg,url);
-                }
-            }
-        } catch (Exception e) {
-            Log.e(LOG_TAG, "接受信息出错" + e.getMessage());
-        }
-        finish();
-    }
-}

+ 0 - 70
android/app/src/main/java/com/topsoft/jianyu/push/HuaweiRevicer.java

@@ -1,70 +0,0 @@
-package com.topsoft.jianyu.push;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.util.Log;
-
-import com.huawei.hms.support.api.push.PushReceiver;
-import com.topsoft.jianyu.SQLite.JyMessage;
-import com.topsoft.jianyu.util.AppConstant;
-
-
-public class HuaweiRevicer extends PushReceiver {
-    public static String LOG_TAG = "HuaweiRevicer";
-
-    @Override
-    public void onToken(Context context, String token, Bundle bundle) {
-        super.onToken(context, token, bundle);
-        AppConstant.PUSH_TOKEN = token;
-        Log.d(LOG_TAG, "onToken: token   :  " + token);
-    }
-
-    @Override
-    public boolean onPushMsg(Context context, byte[] msg, Bundle bundle) {
-        try {
-            //收到通知 存入数据库
-            String list_str = new String(msg, "UTF-8");
-            Log.i(LOG_TAG, "收到PUSH传消息,消息内容为:" + list_str);
-            if (!"".equals(list_str) && list_str != null) {
-                //获取Msg对象
-                JyMessage oneMsg = notifyUtil.FormatMsg(list_str);
-                if("signOut".equals(oneMsg.category)){
-                    //退出通知
-                    notifyUtil.SendLoginOutMsg(context,oneMsg.descript);
-                }else{
-                    //推送通知
-                    notifyUtil.SaveMassage(context,oneMsg);
-                }
-            }
-        } catch (Exception e) {
-            Log.e(LOG_TAG, "接受信息出错" + e.getMessage());
-        }
-        return false;
-    }
-
-    public void onEvent(Context context, Event event, Bundle extras) {
-        //自定义动作 此处收到不到参数
-        /*try {
-            System.out.println("点击啦啦啦啦啦");
-            if (Event.NOTIFICATION_OPENED.equals(event) || Event.NOTIFICATION_CLICK_BTN.equals(event)) {
-                //点击通知,页面跳转
-                String list_str = extras.getString(EXTRA_EXTRA);
-                Log.e(LOG_TAG, "点击接受消息" + list_str);
-                if (!"".equals(list_str) && list_str != null) {
-                    JyMessage oneMsg = notifyUtil.FormatMsg(list_str);
-                    //修改信息已读,
-                    String url = notifyUtil.ChangeMsgRead(context,oneMsg);
-                    //更新主页面url
-                   // notifyUtil.ChangeMainUrl(oneMsg, url);
-                }
-            }
-        } catch (Exception e) {
-            Log.e(LOG_TAG, "接受信息出错" + e.getMessage());
-        }*/
-    }
-
-    @Override
-    public void onPushState(Context context, boolean pushState) {
-    }
-
-}

+ 0 - 139
android/app/src/main/java/com/topsoft/jianyu/push/JpushReceiver.java

@@ -1,139 +0,0 @@
-package com.topsoft.jianyu.push;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Message;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.topsoft.jianyu.MainActivity;
-import com.topsoft.jianyu.SQLite.JyMessage;
-import com.topsoft.jianyu.util.AppConstant;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.Iterator;
-
-import cn.jpush.android.api.JPushInterface;
-
-import static cn.jpush.android.api.JPushInterface.EXTRA_CONTENT_TYPE;
-import static cn.jpush.android.api.JPushInterface.EXTRA_EXTRA;
-import static cn.jpush.android.api.JPushInterface.EXTRA_MESSAGE;
-
-/**
- * 自定义接收器
- *
- * 如果不定义这个 Receiver,则:
- * 1) 默认用户会打开主界面
- * 2) 接收不到自定义消息
- */
-public class JpushReceiver extends BroadcastReceiver {
-	private static final String LOG_TAG = "JpushReceiver";
-
-	@Override
-	public void onReceive(Context context, Intent intent) {
-		if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
-			/**
-			 * 接受到推送消息,并存库
-			 */
-			try {
-				Bundle bundle = intent.getExtras();
-				String list_str=bundle.getString(EXTRA_EXTRA);
-				Log.i(LOG_TAG,bundle.toString());
-				if(!"".equals(list_str)&&list_str!=null){
-					//获取Msg对象
-					JyMessage oneMsg=notifyUtil.FormatMsg(list_str);
-					if(oneMsg!=null){
-						notifyUtil.SaveMassage(context,oneMsg);
-					}
-				}
-			} catch (Exception e){
-				Log.e(LOG_TAG,"接受信息出错"+e.getMessage());
-			}
-
-		} else if(JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())){
-			/**
-			 * 自定义消息
-			 */
-			Bundle bundle=intent.getExtras();
-			String msg=bundle.getString(EXTRA_MESSAGE);
-			String type=bundle.getString(EXTRA_CONTENT_TYPE);
-			if(type.equals("signOut")){
-				//发送退出登录消息
-				notifyUtil.SendLoginOutMsg(context,msg);
-				/*Message message = Message.obtain();
-				message.what = AppConstant.USER_LOGIN_OUT;
-				Bundle b= new Bundle();
-				b.putString("content", msg);
-				message.setData(b);
-				MainActivity.mainHandler.sendMessage(message);
-
-				//点击消息通知,app未在前台显示。-处理
-				context.startActivity(new Intent(context,MainActivity.class));*/
-			}
-
-		} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
-			/**
-			 * 点击推送消息,进行页面跳转处理
-			 */
-			try{
-				Bundle bundle=intent.getExtras();
-				//printBundle(bundle);
-				String list_str=bundle.getString(EXTRA_EXTRA);
-				if(!"".equals(list_str)&&list_str!=null){
-					JyMessage oneMsg=notifyUtil.FormatMsg(list_str);
-					//修改信息已读,
-					String url=notifyUtil.ChangeMsgRead(context,oneMsg);
-					//更新主页面url
-					notifyUtil.ChangeMainUrl(context,oneMsg,url);
-				}
-				
-			}catch (Exception e){
-				Log.e(LOG_TAG,"改变信息已读出错"+e.getMessage());
-			}
-
-		}
-
-	}
-
-	// 打印所有的 intent extra 数据
-	private static String printBundle(Bundle bundle) {
-		StringBuilder sb = new StringBuilder();
-		for (String key : bundle.keySet()) {
-			System.out.println(key+"--->"+bundle.get(key));
-		}
-
-		for (String key : bundle.keySet()) {
-			if (key.equals(JPushInterface.EXTRA_NOTIFICATION_ID)) {
-				sb.append("\nkey:" + key + ", value:" + bundle.getInt(key));
-			}else if(key.equals(JPushInterface.EXTRA_CONNECTION_CHANGE)){
-				sb.append("\nkey:" + key + ", value:" + bundle.getBoolean(key));
-			} else if (key.equals(EXTRA_EXTRA)) {
-				if (TextUtils.isEmpty(bundle.getString(EXTRA_EXTRA))) {
-					System.out.println("This message has no Extra data");
-					continue;
-				}
-
-				try {
-					JSONObject json = new JSONObject(bundle.getString(EXTRA_EXTRA));
-					Iterator<String> it =  json.keys();
-
-					while (it.hasNext()) {
-						String myKey = it.next();
-						sb.append("\nkey:" + key + ", value: [" +
-								myKey + " - " +json.optString(myKey) + "]");
-					}
-				} catch (JSONException e) {
-					System.out.println("Get message extra JSON error!");
-				}
-
-			} else {
-				sb.append("\nkey:" + key + ", value:" + bundle.getString(key));
-			}
-		}
-		return sb.toString();
-	}
-}

+ 0 - 218
android/app/src/main/java/com/topsoft/jianyu/push/notifyUtil.java

@@ -1,218 +0,0 @@
-package com.topsoft.jianyu.push;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.util.Log;
-import android.webkit.WebView;
-
-import com.topsoft.jianyu.MainActivity;
-import com.topsoft.jianyu.SQLite.DbBase;
-import com.topsoft.jianyu.SQLite.JyMessage;
-import com.topsoft.jianyu.WebFragment.Common;
-import com.topsoft.jianyu.WebFragment.MeFragment;
-import com.topsoft.jianyu.WebFragment.SearchFragment;
-import com.topsoft.jianyu.util.AppConstant;
-import com.topsoft.jianyu.util.AppUtil;
-import com.topsoft.jianyu.util.HttpUtil;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.net.URLEncoder;
-
-import static android.content.Context.MODE_PRIVATE;
-import static com.topsoft.jianyu.MainActivity.ctx;
-import static com.topsoft.jianyu.MainActivity.pushurl;
-import static com.umeng.socialize.utils.DeviceConfig.context;
-
-public class notifyUtil {
-
-    /**
-     * 格式化字符串
-     * @param str
-     * @return
-     * @throws JSONException
-     */
-    public static JyMessage FormatMsg(String str) throws JSONException{
-        String title,content,openid,type,descript,extend,url,pushTime;
-        JSONObject obj = new JSONObject(str);
-        JSONObject litObj=new JSONObject(obj.getString("info"));
-        type=obj.has("type")?obj.getString("type"):"";
-        openid=litObj.has("openid")?litObj.getString("openid"):"";
-        url=litObj.has("url")?litObj.getString("url"):"";
-        content=litObj.has("content")?litObj.getString("content"):"";
-        title=litObj.has("title")?litObj.getString("title"):"";
-        descript=litObj.has("descript")?litObj.getString("descript"):"";
-        extend=litObj.has("extend")?litObj.getJSONObject("extend")+"":"";
-        pushTime=litObj.has("pushTime")?litObj.getString("pushTime"):"";
-       return new JyMessage(title,content,url,type,0,(int)(System.currentTimeMillis()/1000),openid,descript,extend,pushTime);
-    }
-
-    /**
-     * 存入数据库
-     * @param msg
-     */
-    public static void SaveMassage(Context ctx,JyMessage msg){
-        if(DbBase.getInstance(ctx).insertMessage(msg)){
-            System.out.println("插入推送消息成功");
-            //刷新未读消息小红点提醒
-            FlushMePage(msg.openid);
-        }else{
-            System.out.println("插入推送消息失败");
-        }
-        //向后台发送统计-收到信息
-        if("message".equals(msg.category)){
-            HttpUtil.SendStatistics(msg.link,msg.openid,"D");
-        }
-    }
-
-    /**
-     * 修改信息已读,返回信息url
-     * @param msg
-     */
-    public static String ChangeMsgRead(Context ctx,JyMessage msg){
-        //修改信息为已读信息
-        String url=msg.link;
-        if("".equals(msg.pushTime)){
-            //根据url设置已读
-            DbBase.getInstance(ctx).updateMessageStateByUrl(msg.link);
-        }else{
-            //根据pushTime设置已读
-            DbBase.getInstance(ctx).updateMessageStateByPushTime(msg.pushTime);
-            //更改url 根据推送事件获取信息id
-            Integer integer=DbBase.getInstance(ctx).getIDbypushTime(msg.pushTime);
-            if(integer>0){
-                if("".equals(msg.category)&&!"".equals(msg.link)) url=msg.link+integer;
-            }
-        }
-        if("message".equals(msg.category)){
-            if(!"".equals(url)){
-                //发送统计
-                HttpUtil.SendStatistics(url,msg.openid,"C");
-                //改变  message  ==》 message_r
-                DbBase.getInstance(ctx).changeMessageTypeByUrl(url);
-            }
-        }
-        return url;
-    }
-
-    public static void ChangeMainUrl(Context ctx,JyMessage msg,String url){
-        //点击消息通知,app未在前台显示。-处理
-        ctx.startActivity(new Intent(ctx,MainActivity.class));
-        //============================================================
-        if("message".equals(msg.category)){
-            String str[]=url.split("==");
-            if(str.length==2){
-                url=str[0];
-            }else{
-                Log.e("MyRecevier","onReceive: 截取url出错"+ url);
-            }
-        }
-        int pos=MainActivity.bottomBar.getCurrentItem();
-        //通知页面有后退
-        Common.getPageWebview(pos).loadUrl("javascript:beforeOpenPushMessage(1)");
-
-        if(!"".equals(url)){
-            String toUrl="";
-            if(url.contains("http://")||url.contains("https://")){
-                toUrl=url;
-            }else{
-                toUrl=AppConstant.AppUrl+url;
-            }
-
-            Message message1 = Message.obtain();
-            message1.what = AppConstant.FRAGMENT_OPEN_URL;
-            Bundle b1= new Bundle();
-            b1.putString("url", toUrl);
-            message1.setData(b1);
-            Handler h=Common.getPageHandler(pos);
-            h.sendMessage(message1);
-
-            /*webView.post(new Runnable() {
-                @Override
-                public void run() {
-                    if(webView.canGoBack()){
-                        new Handler().postDelayed(new Runnable() { //需延迟执行,否则会导致js未加载出调用。
-                            @Override
-                            public void run() {
-                                webView.loadUrl("javascript:afterOpenPushMessage(1)");
-                            }
-                        },500);
-                    }else {
-                        new Handler().postDelayed(new Runnable() {
-                            @Override
-                            public void run() {
-                                webView.loadUrl("javascript:afterOpenPushMessage(0)");
-                            }
-                        },500);
-                    }
-                }
-            });*/
-        }/*else{
-            //目前不会
-            SharedPreferences sp = ctx.getSharedPreferences("jy", MODE_PRIVATE);
-            String token = sp.getString("token", "");
-            String toUrl="";
-            if("".equals(token)){
-                toUrl=AppConstant.AppUrl+"/jyapp/free/login";
-            }else{
-                toUrl=AppConstant.AppUrl+"/jyapp/free/login?sign="+token+"&url="+URLEncoder.encode("/jyapp/jylab/mainSearch")+"&from=restart";
-            }
-            Message message1 = Message.obtain();
-            message1.what = AppConstant.FRAGMENT_OPEN_URL;
-            Bundle b1= new Bundle();
-            b1.putString("url", toUrl);
-            message1.setData(b1);
-            Handler h=Common.getPageHandler(pos);
-            h.sendMessage(message1);
-        }*/
-
-        if(msg.openid!=null&&!msg.openid.equals("")){
-            if(pos!=3){  //防止在我的页面打不开推送消息处理
-                FlushMePage(msg.openid);
-            }else {
-                ChangeRedSpot(msg.openid);
-            }
-        }
-        Intent start = new Intent(ctx,MainActivity.class);
-        start.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
-        ctx.startActivity(start);
-    }
-    //刷新我的页面
-    public static void FlushMePage(String openid){
-        int unReadNum =DbBase.getInstance(ctx).getUnReadCount(openid);
-        if(unReadNum>0){
-            MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_REDSPOT_SHOW);
-        }else{
-            MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_REDSPOT_HIDDEN);
-        }
-        //刷新我的页面html未独消息数量
-        MeFragment.mePageHandler.sendEmptyMessage(AppConstant.FRAGMENT_WEBVIEW_INIT);
-        //防止底部栏出现
-        MainActivity.noShowBottomBar=1;
-    }
-    //刷新小红点
-    public static void ChangeRedSpot(String openid){
-        int unReadNum =DbBase.getInstance(ctx).getUnReadCount(openid);
-        if(unReadNum>0){
-            MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_REDSPOT_SHOW);
-        }else{
-            MainActivity.mainHandler.sendEmptyMessage(AppConstant.BOTTOM_REDSPOT_HIDDEN);
-        }
-    }
-    public static void SendLoginOutMsg(Context ctx,String msg){
-        Message message = Message.obtain();
-        message.what = AppConstant.USER_LOGIN_OUT;
-        Bundle b= new Bundle();
-        b.putString("content", msg);
-        message.setData(b);
-        MainActivity.mainHandler.sendMessage(message);
-
-        //点击消息通知,app未在前台显示。-处理
-        ctx.startActivity(new Intent(ctx,MainActivity.class));
-    }
-}

+ 0 - 46
android/app/src/main/java/com/topsoft/jianyu/util/AppConstant.java

@@ -1,46 +0,0 @@
-package com.topsoft.jianyu.util;
-
-public class AppConstant {
-
-
-
-    public static final int INIT_PUSH=1000;//初始化推送
-    public static final int INIT_UPDATE=1002;//检测更新
-    public static final int NETWORK_OK=300;//网络正常
-    public static final int NETWORK_ERR=301;//网络错误
-    public static final int BOTTOM_REDSPOT_SHOW=2003;//消息通知小红点显示
-    public static final int BOTTOM_REDSPOT_HIDDEN=2004;//消息通知小红点隐藏
-    public static final int SHARE_BACK=1201;//分享回调
-    public static final int BOTTOM_BAR_HIDDEN=5001;//隐藏切换导航
-    public static final int BOTTOM_BAR_SHOW=5002;//显示切换导航
-    public static final int FRAGMENT_SWITCH_FLUSH=5100;//底部导航切换  刷新页面
-    public static final int FRAGMENT_SWITCH=1999;//页面切换
-    public static final int CLEAR_WEBVIEW_HISTORY=6100;//清除浏览器历史记录
-    public static final int USER_LOGIN_OUT=2002; //通知退出登录
-
-    public static final int MAIN_ALERT=1200;
-    public static final int FRAGMENT_OPEN_URL=1001;//刷新Fragment
-    public static final int FRAGMENT_WEBVIEW_INIT=5000; //打开默认页面
-    public static final int FRAGMENT_READLOAD_ALL=5300;//网络正常时 刷新页面
-
-    //public static String AppUrl="http://weblxl.qmx.top";
-    //public static String AppUrl="http://webws.qmx.top";
-    //public static String AppUrl="http://webky.qmx.top";
-    //public static String AppUrl="http://webwcj.qmx.top";
-
-
-    //public static String AppUrl="http://w2blmjy.qmx.top"; //测试非原生底部导航版本
-    //public static String AppUrl="http://w4blmjy.qmx.top";  //测试原生底部导航测试服务器
-
-    //public static String AppUrl="https://www.jianyu360.com";//正式非原生底部导航版本
-    public static String AppUrl="https://app1.jianyu360.com";//正式原生底部导航版本
-
-    public static int PHONE_BRAND;
-    public static String PUSH_TOKEN;
-    static{
-        PHONE_BRAND=StringUtil.GetPhoneBrand();
-    }
-    //加密偏移量字段(aes分开存放)
-    public static String ivParameter = "1389461544135476";
-
-}

+ 0 - 216
android/app/src/main/java/com/topsoft/jianyu/util/AppUtil.java

@@ -1,216 +0,0 @@
-package com.topsoft.jianyu.util;
-
-import android.app.Activity;
-import android.app.ActivityManager;
-import android.app.AppOpsManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.graphics.Color;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.os.Build;
-import android.util.DisplayMetrics;
-import android.view.Display;
-import android.view.View;
-import android.view.Window;
-import android.view.WindowManager;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.List;
-
-import static android.content.Context.ACTIVITY_SERVICE;
-
-/**
- * Created by wangkaiyue on 2018/1/25.
- */
-
-public class AppUtil {
-    /**
-     * 判断当前应用是否是debug状态
-     */
-    public static boolean isApkInDebug(Context context) {
-        try {
-            ApplicationInfo info = context.getApplicationInfo();
-            return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
-        } catch (Exception e) {
-            return false;
-        }
-    }
-
-    /**
-     *  设置为全屏模式 改变颜色
-     * @param activity 需要改变的activity
-     * @param dark    bar图标文字 颜色是否为深色
-     */
-    public static void setAndroidNativeLightStatusBar(Activity activity,boolean full, boolean dark) {
-            //全屏
-            Window window = activity.getWindow();
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-                window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
-                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
-                window.setStatusBarColor(Color.TRANSPARENT);
-            }
-
-            //颜色
-            if (dark&&full) {
-                window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN );
-            } else if(dark&&!full){
-                window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
-            } else if(!dark&&full){
-                window.getDecorView().setSystemUiVisibility(0|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
-            }else if(!dark&&!full){
-                window.getDecorView().setSystemUiVisibility(0);
-            }
-
-            //魅族手机
-            if(android.os.Build.DISPLAY.toUpperCase().indexOf("FLYME")>-1){
-                FlymeStatusbarUtils.setStatusBarDarkIcon(activity,dark);
-            }
-    }
-
-
-    /**
-     * 判断是否开启通知权限
-     * @param context
-     * @return
-     */
-    private static final String CHECK_OP_NO_THROW = "checkOpNoThrow";
-    private static final String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION";
-    public static boolean isNotificationEnabled(Context context) {
-
-        AppOpsManager mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
-
-        ApplicationInfo appInfo = context.getApplicationInfo();
-
-        String pkg = context.getApplicationContext().getPackageName();
-
-        int uid = appInfo.uid;
-
-        Class appOpsClass = null; /* Context.APP_OPS_MANAGER */
-
-        try {
-
-            appOpsClass = Class.forName(AppOpsManager.class.getName());
-
-            Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE, String.class);
-
-            Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION);
-
-            int value = (int)opPostNotificationValue.get(Integer.class);
-
-            return ((int)checkOpNoThrowMethod.invoke(mAppOps,value, uid, pkg) == AppOpsManager.MODE_ALLOWED);
-
-        } catch (ClassNotFoundException e) {
-
-            e.printStackTrace();
-
-        } catch (NoSuchMethodException e) {
-
-            e.printStackTrace();
-
-        } catch (NoSuchFieldException e) {
-
-            e.printStackTrace();
-
-        } catch (InvocationTargetException e) {
-
-            e.printStackTrace();
-
-        } catch (IllegalAccessException e) {
-
-            e.printStackTrace();
-
-        }
-
-        return false;
-
-    }
-
-    //版本名
-    public static String getVersionName(Context context) {
-        return getPackageInfo(context).versionName;
-    }
-
-    //版本号
-    public static int getVersionCode(Context context) {
-        return getPackageInfo(context).versionCode;
-    }
-
-    private static PackageInfo getPackageInfo(Context context) {
-        PackageInfo pi = null;
-
-        try {
-            PackageManager pm = context.getPackageManager();
-            pi = pm.getPackageInfo(context.getPackageName(),
-                    PackageManager.GET_CONFIGURATIONS);
-            return pi;
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return pi;
-    }
-
-    //获取虚拟功能键高度
-    public static int getVirtualBarHeigh(Context context) {
-        int vh = 0;
-        WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
-        Display display = windowManager.getDefaultDisplay();
-        DisplayMetrics dm = new DisplayMetrics();
-        try {
-            @SuppressWarnings("rawtypes")
-            Class c = Class.forName("android.view.Display");
-            @SuppressWarnings("unchecked")
-            Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);
-            method.invoke(display, dm);
-            vh = dm.heightPixels - windowManager.getDefaultDisplay().getHeight();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return vh;
-    }
-
-    //获取状态栏高度
-    public static int getStatusBarHight(Context context){
-        int statusBarHeight = 0;
-        int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
-        if (resourceId > 0) {
-            statusBarHeight = context.getResources().getDimensionPixelSize(resourceId);
-        }
-        return statusBarHeight;
-    }
-
-    //是否联网
-    public static boolean NetworkState(Context context){
-        if (context != null) {
-        ConnectivityManager mConnectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
-        NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
-        if (mNetworkInfo != null) {
-            return true;
-        }
-    }
-    return false;
-    }
-
-    public static boolean isExsitMianActivity(Class<?> cls,Context context){
-        Intent intent = new Intent(context, cls);
-        ComponentName cmpName = intent.resolveActivity(context.getPackageManager());
-        boolean flag = false;
-        if (cmpName != null) { // 说明系统中存在这个activity
-            ActivityManager am = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
-            List<ActivityManager.RunningTaskInfo> taskInfoList = am.getRunningTasks(10);
-            for (ActivityManager.RunningTaskInfo taskInfo : taskInfoList) {
-                if (taskInfo.baseActivity.equals(cmpName)) { // 说明它已经启动了
-                    flag = true;
-                    break;  //跳出循环,优化效率
-                }
-            }
-        }
-        return flag;
-    }
-}

+ 0 - 71
android/app/src/main/java/com/topsoft/jianyu/util/Base64Encoder.java

@@ -1,71 +0,0 @@
-package com.topsoft.jianyu.util;
-
-public class Base64Encoder {
-    private static final char last2byte = (char) Integer
-            .parseInt("00000011", 2);
-    private static final char last4byte = (char) Integer
-            .parseInt("00001111", 2);
-    private static final char last6byte = (char) Integer
-            .parseInt("00111111", 2);
-    private static final char lead6byte = (char) Integer
-            .parseInt("11111100", 2);
-    private static final char lead4byte = (char) Integer
-            .parseInt("11110000", 2);
-    private static final char lead2byte = (char) Integer
-            .parseInt("11000000", 2);
-    private static final char[] encodeTable = new char[] { 'A', 'B', 'C', 'D',
-            'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
-            'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
-            'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
-            'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3',
-            '4', '5', '6', '7', '8', '9', '+', '/' };
-
-    /**
-     * Base64 encoding.
-     *
-     * @param from
-     *            The src data.
-     * @return
-     */
-    public static String encode(byte[] from) {
-        StringBuffer to = new StringBuffer((int) (from.length * 1.34) + 3);
-        int num = 0;
-        char currentByte = 0;
-        for (int i = 0; i < from.length; i++) {
-            num = num % 8;
-            while (num < 8) {
-                switch (num) {
-                    case 0:
-                        currentByte = (char) (from[i] & lead6byte);
-                        currentByte = (char) (currentByte >>> 2);
-                        break;
-                    case 2:
-                        currentByte = (char) (from[i] & last6byte);
-                        break;
-                    case 4:
-                        currentByte = (char) (from[i] & last4byte);
-                        currentByte = (char) (currentByte << 2);
-                        if ((i + 1) < from.length) {
-                            currentByte |= (from[i + 1] & lead2byte) >>> 6;
-                        }
-                        break;
-                    case 6:
-                        currentByte = (char) (from[i] & last2byte);
-                        currentByte = (char) (currentByte << 4);
-                        if ((i + 1) < from.length) {
-                            currentByte |= (from[i + 1] & lead4byte) >>> 4;
-                        }
-                        break;
-                }
-                to.append(encodeTable[currentByte]);
-                num += 6;
-            }
-        }
-        if (to.length() % 4 != 0) {
-            for (int i = 4 - to.length() % 4; i > 0; i--) {
-                to.append("=");
-            }
-        }
-        return to.toString();
-    }
-}

+ 0 - 230
android/app/src/main/java/com/topsoft/jianyu/util/FlymeStatusbarUtils.java

@@ -1,230 +0,0 @@
-package com.topsoft.jianyu.util;
-
-import android.app.Activity;
-import android.os.Build;
-import android.view.View;
-import android.view.Window;
-import android.view.WindowManager;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-/**
- * Created by wangchende on 15-9-7.
- * 魅族状态栏字体颜色
- */
-public class FlymeStatusbarUtils {
-    private static Method mSetStatusBarColorIcon;
-    private static Method mSetStatusBarDarkIcon;
-    private static Field mStatusBarColorFiled;
-    private static int SYSTEM_UI_FLAG_LIGHT_STATUS_BAR = 0;
-
-    static {
-        try {
-            mSetStatusBarColorIcon = Activity.class.getMethod("setStatusBarDarkIcon", int.class);
-        } catch (NoSuchMethodException e) {
-            e.printStackTrace();
-        }
-        try {
-            mSetStatusBarDarkIcon = Activity.class.getMethod("setStatusBarDarkIcon", boolean.class);
-        } catch (NoSuchMethodException e) {
-            e.printStackTrace();
-        }
-        try {
-            mStatusBarColorFiled = WindowManager.LayoutParams.class.getField("statusBarColor");
-        } catch (NoSuchFieldException e) {
-            e.printStackTrace();
-        }
-        try {
-            Field field = View.class.getField("SYSTEM_UI_FLAG_LIGHT_STATUS_BAR");
-            SYSTEM_UI_FLAG_LIGHT_STATUS_BAR = field.getInt(null);
-        } catch (NoSuchFieldException e) {
-            e.printStackTrace();
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 判断颜色是否偏黑色
-     *
-     * @param color 颜色
-     * @param level 级别
-     * @return
-     */
-    public static boolean isBlackColor(int color, int level) {
-        int grey = toGrey(color);
-        return grey < level;
-    }
-
-    /**
-     * 颜色转换成灰度值
-     *
-     * @param rgb 颜色
-     * @return 灰度值
-     */
-    public static int toGrey(int rgb) {
-        int blue = rgb & 0x000000FF;
-        int green = (rgb & 0x0000FF00) >> 8;
-        int red = (rgb & 0x00FF0000) >> 16;
-        return (red * 38 + green * 75 + blue * 15) >> 7;
-    }
-
-    /**
-     * 设置状态栏字体图标颜色
-     *
-     * @param activity 当前activity
-     * @param color    颜色
-     */
-    public static void setStatusBarDarkIcon(Activity activity, int color) {
-        if (mSetStatusBarColorIcon != null) {
-            try {
-                mSetStatusBarColorIcon.invoke(activity, color);
-            } catch (IllegalAccessException e) {
-                e.printStackTrace();
-            } catch (InvocationTargetException e) {
-                e.printStackTrace();
-            }
-        } else {
-            boolean whiteColor = isBlackColor(color, 50);
-            if (mStatusBarColorFiled != null) {
-                setStatusBarDarkIcon(activity, whiteColor, whiteColor);
-                setStatusBarDarkIcon(activity.getWindow(), color);
-            } else {
-                setStatusBarDarkIcon(activity, whiteColor);
-            }
-        }
-    }
-
-    /**
-     * 设置状态栏字体图标颜色(只限全屏非activity情况)
-     *
-     * @param window 当前窗口
-     * @param color  颜色
-     */
-    public static void setStatusBarDarkIcon(Window window, int color) {
-        try {
-            setStatusBarColor(window, color);
-            if (Build.VERSION.SDK_INT > 22) {
-                setStatusBarDarkIcon(window.getDecorView(), true);
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 设置状态栏字体图标颜色
-     *
-     * @param activity 当前activity
-     * @param dark     是否深色 true为深色 false 为白色
-     */
-    public static void setStatusBarDarkIcon(Activity activity, boolean dark) {
-        setStatusBarDarkIcon(activity, dark, true);
-    }
-
-    private static boolean changeMeizuFlag(WindowManager.LayoutParams winParams, String flagName, boolean on) {
-        try {
-            Field f = winParams.getClass().getDeclaredField(flagName);
-            f.setAccessible(true);
-            int bits = f.getInt(winParams);
-            Field f2 = winParams.getClass().getDeclaredField("meizuFlags");
-            f2.setAccessible(true);
-            int meizuFlags = f2.getInt(winParams);
-            int oldFlags = meizuFlags;
-            if (on) {
-                meizuFlags |= bits;
-            } else {
-                meizuFlags &= ~bits;
-            }
-            if (oldFlags != meizuFlags) {
-                f2.setInt(winParams, meizuFlags);
-                return true;
-            }
-        } catch (NoSuchFieldException e) {
-            e.printStackTrace();
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-        } catch (IllegalArgumentException e) {
-            e.printStackTrace();
-        } catch (Throwable e) {
-            e.printStackTrace();
-        }
-        return false;
-    }
-
-    /**
-     * 设置状态栏颜色
-     *
-     * @param view
-     * @param dark
-     */
-    private static void setStatusBarDarkIcon(View view, boolean dark) {
-        int oldVis = view.getSystemUiVisibility();
-        int newVis = oldVis;
-        if (dark) {
-            newVis |= SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
-        } else {
-            newVis &= ~SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
-        }
-        if (newVis != oldVis) {
-            view.setSystemUiVisibility(newVis);
-        }
-    }
-
-    /**
-     * 设置状态栏颜色
-     *
-     * @param window
-     * @param color
-     */
-    private static void setStatusBarColor(Window window, int color) {
-        WindowManager.LayoutParams winParams = window.getAttributes();
-        if (mStatusBarColorFiled != null) {
-            try {
-                int oldColor = mStatusBarColorFiled.getInt(winParams);
-                if (oldColor != color) {
-                    mStatusBarColorFiled.set(winParams, color);
-                    window.setAttributes(winParams);
-                }
-            } catch (IllegalAccessException e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    /**
-     * 设置状态栏字体图标颜色(只限全屏非activity情况)
-     *
-     * @param window 当前窗口
-     * @param dark   是否深色 true为深色 false 为白色
-     */
-    public static void setStatusBarDarkIcon(Window window, boolean dark) {
-        if (Build.VERSION.SDK_INT < 23) {
-            changeMeizuFlag(window.getAttributes(), "MEIZU_FLAG_DARK_STATUS_BAR_ICON", dark);
-        } else {
-            View decorView = window.getDecorView();
-            if (decorView != null) {
-                setStatusBarDarkIcon(decorView, dark);
-                setStatusBarColor(window, 0);
-            }
-        }
-    }
-
-    private static void setStatusBarDarkIcon(Activity activity, boolean dark, boolean flag) {
-        if (mSetStatusBarDarkIcon != null) {
-            try {
-                mSetStatusBarDarkIcon.invoke(activity, dark);
-            } catch (IllegalAccessException e) {
-                e.printStackTrace();
-            } catch (InvocationTargetException e) {
-                e.printStackTrace();
-            }
-        } else {
-            if (flag) {
-                setStatusBarDarkIcon(activity.getWindow(), dark);
-            }
-        }
-    }
-}

+ 0 - 101
android/app/src/main/java/com/topsoft/jianyu/util/HttpUtil.java

@@ -1,101 +0,0 @@
-package com.topsoft.jianyu.util;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.os.Build;
-import android.util.Log;
-
-import com.ccit.www.mobileshieldsdk.okutils.okhttp3.Call;
-import com.ccit.www.mobileshieldsdk.okutils.okhttputils.OkHttpUtils;
-import com.ccit.www.mobileshieldsdk.okutils.okhttputils.callback.StringCallback;
-import com.topsoft.jianyu.App;
-
-import org.json.JSONObject;
-
-import java.io.IOException;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import cn.jpush.android.api.JPushInterface;
-
-/**
- * Created by wangkaiyue on 2018/7/27.
- * 用于统计用户点击活动
- */
-
-public class HttpUtil {
-
-    static String TAG="Statistics";
-    private final static String StatisticsUrl=AppConstant.AppUrl+"/jyapp/free/message/receive";
-    private final static String SendMsgActioon=AppConstant.AppUrl+"";
-    private final static String SendBrandUrl=AppConstant.AppUrl+"/jyapp/free/message/brand";
-
-    /**
-     * 发送手机验证码校验码
-     * @param url
-     * @param openid
-     * @param rectype
-     */
-    public static void SendStatistics(final String url,final String openid,final String rectype){
-        new Thread(new Runnable(){
-            @Override
-            public void run() {
-                try {
-                    OkHttpUtils.post().url(StatisticsUrl).addParams("url",url).addParams("openid",openid).addParams("rectype",rectype).build().execute();
-                    Log.d(TAG, "发送统计 url:"+url+"  openid:"+openid+"  rectype:"+rectype);
-                } catch (IOException e) {
-                    Log.e(TAG, "run:SendStatistics "+e.getMessage());
-                }
-            }
-        }).start();
-    }
-    public static void SendSMsg(final String secret,final String phone){
-        new Thread(new Runnable(){
-            @Override
-            public void run() {
-                try {
-                    OkHttpUtils.post().url(SendMsgActioon).addParams("token",secret).addParams("phone",phone).build().execute();
-                } catch (IOException e) {
-                    Log.e(TAG, "run: "+e.getMessage());
-                }
-            }
-        }).start();
-    }
-    public static void SendPhoneBrand(final Context ctx,final String token){
-           new Timer().schedule(new TimerTask() {
-               @Override
-               public void run() {
-                   if(AppConstant.PUSH_TOKEN!=""&&AppConstant.PUSH_TOKEN!=null){
-                       try{
-                           Log.d(TAG, "发送手机型号推送信息 token"+token+"  phoneBrand:"+StringUtil.PhoneBrand+"  pushToken:"+AppConstant.PUSH_TOKEN);
-                           OkHttpUtils.post().url(SendBrandUrl).addParams("token",token).addParams("phoneBrand",StringUtil.PhoneBrand).addParams("pushToken", AppConstant.PUSH_TOKEN).build().execute(new StringCallback() {
-                               @Override
-                               public void onError(Call call, Exception e, int i) {
-                                   Log.d(TAG, "发送手机型号推送信息出错"+e.getMessage());
-                               }
-                               @Override
-                               public void onResponse(String s, int i) {
-                                    try{
-                                        if(!s.equals("")&&s!=null){
-                                            JSONObject obj = new JSONObject(s);
-                                            String upToken=obj.getString("token");
-                                            SharedPreferences.Editor editor = ctx.getSharedPreferences("jy", Context.MODE_PRIVATE).edit();
-                                            editor.putString("token",upToken);
-                                            editor.commit();
-                                        }
-                                    }catch (Exception e){
-                                        Log.e(TAG, "run:更新token字段出错"+e.getMessage());
-                                    }
-                               }
-                           });
-                       }catch (Exception e){
-                           Log.e(TAG, "run:SendPhoneBrand "+e.getMessage());
-                       }finally {
-                           this.cancel();
-                       }
-                   }
-               }
-           }, 0, 1000);
-
-    }
-}

+ 0 - 53
android/app/src/main/java/com/topsoft/jianyu/util/LoadingUtils.java

@@ -1,53 +0,0 @@
-package com.topsoft.jianyu.util;
-
-
-import android.app.Dialog;
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import com.topsoft.jianyu.R;
-
-
-/**
- * Created by wanghuidong on 2017/12/25.
- */
-
-public class LoadingUtils {
-    public static Dialog createLoadingDialog(Context context, String msg) {
-        LayoutInflater inflater = LayoutInflater.from(context);
-        View v = inflater.inflate(R.layout.simple_loading_view, null);// 得到加载view
-        RelativeLayout layout = (RelativeLayout) v
-                .findViewById(R.id.dialog_loading_view);// 加载布局
-        TextView tipTextView = (TextView) v.findViewById(R.id.simple_loading_view_text);// 提示文字
-        tipTextView.setText(msg);// 设置加载信息
-
-        Dialog loadingDialog = new Dialog(context, R.style.simple_progress_dialog_three_style);// 创建自定义样式dialog
-        loadingDialog.setCancelable(true); // 是否可以按“返回键”消失
-        loadingDialog.setCanceledOnTouchOutside(false); // 点击加载框以外的区域
-        loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
-                LinearLayout.LayoutParams.WRAP_CONTENT,
-                LinearLayout.LayoutParams.WRAP_CONTENT));// 设置布局
-
-        loadingDialog.show();
-
-        return loadingDialog;
-    }
-
-    /**
-     * 关闭dialog
-     * <p>
-     * http://blog.csdn.net/qq_21376985
-     *
-     * @param mDialogUtils
-     */
-    public static void closeDialog(Dialog mDialogUtils) {
-        if (mDialogUtils != null && mDialogUtils.isShowing()) {
-            mDialogUtils.dismiss();
-        }
-    }
-
-}

+ 0 - 68
android/app/src/main/java/com/topsoft/jianyu/util/SecretUtil.java

@@ -1,68 +0,0 @@
-package com.topsoft.jianyu.util;
-
-import android.util.Base64;
-import android.util.Log;
-
-import java.security.MessageDigest;
-
-import javax.crypto.Cipher;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-
-/**
- * Created by wangkaiyue on 2018/1/26.
- */
-
-public class SecretUtil {
-    private static final String TAG = "SecretUtil";
-    //md5加密
-    public static String getMD5(String str) {
-        try {
-            MessageDigest md = MessageDigest.getInstance("MD5");
-            byte[] bytes = md.digest(str.getBytes("utf-8"));
-            return toHex(bytes);
-        } catch (Exception e) {
-            Log.e(TAG,e.getMessage());
-            return "";
-        }
-    }
-    private static String toHex(byte[] bytes) {
-
-        final char[] HEX_DIGITS = "0123456789abcdef".toCharArray();
-        StringBuilder ret = new StringBuilder(bytes.length * 2);
-        for (int i=0; i<bytes.length; i++) {
-            ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]);
-            ret.append(HEX_DIGITS[bytes[i] & 0x0f]);
-        }
-        return ret.toString();
-    }
-
-    //base64加密
-    public static String getBase64(String str) {
-        String result = "";
-        byte[] b=str.getBytes();
-        try{
-            result=new String(com.ccit.www.mobileshieldsdk.util.Base64.encode(b,2));
-        }catch (Exception e){
-            Log.e(TAG,e.getMessage());
-        }
-        return result;
-    }
-
-    // 加密
-    private static String sKey = "mGlAgnIBB8bx2nch";
-
-
-    public static String AESdecode(String sSrc) throws Exception {
-        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
-        byte[] raw = sKey.getBytes();
-        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
-        IvParameterSpec iv = new IvParameterSpec(AppConstant.ivParameter.getBytes());//使用CBC模式,需要一个向量iv,可增加加密算法的强度
-        cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
-        byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
-        for(byte b: encrypted){
-            System.out.print(b);
-        }
-        return Base64Encoder.encode(encrypted);
-    }
-}

+ 0 - 50
android/app/src/main/java/com/topsoft/jianyu/util/StringUtil.java

@@ -1,50 +0,0 @@
-package com.topsoft.jianyu.util;
-
-import android.os.Build;
-
-public class StringUtil {
-    public final static int HUAWEI=1;
-    public final static int Xiaomi=2;
-    public final static int OPPO=3;
-    public final static int vivo=4;
-    public final static int Meizu=5;
-    public final static int samsung=6;
-    public final static int Coolpad=7;
-    public final static int Sony=8;
-    public final static int LG=9;
-    public final static int OTHER=0;
-    public final static String PhoneBrand=Build.MANUFACTURER;
-    public static int GetPhoneBrand(){
-        int brand=OTHER;
-        switch (PhoneBrand) {
-            case "HUAWEI":
-                brand=HUAWEI;
-                break;
-            case "Xiaomi":
-                brand=Xiaomi;
-                break;
-            case "OPPO":
-                brand=OPPO;
-                break;
-            case "vivo":
-                brand=vivo;
-                break;
-            case "Meizu":
-                brand=Meizu;
-                break;
-            case "samsung":
-                brand=samsung;
-                break;
-            case "Coolpad":
-                brand=Coolpad;
-                break;
-            case "Sony":
-                brand=Sony;
-                break;
-            case "LG":
-                brand=LG;
-                break;
-        }
-        return brand;
-    }
-}

+ 0 - 9
android/app/src/main/java/com/topsoft/jianyu/wxapi/WXEntryActivity.java

@@ -1,9 +0,0 @@
-package com.topsoft.jianyu.wxapi;
-
-
-import com.umeng.weixin.callback.WXCallbackActivity;
-
-public class WXEntryActivity extends WXCallbackActivity {
-
-}
-

BIN
android/app/src/main/res/drawable-hdpi/border_bg.9.png


BIN
android/app/src/main/res/drawable-hdpi/bottom_bg.9.png


+ 0 - 8
android/app/src/main/res/drawable-hdpi/bottombar_backgroud.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <stroke
-        android:width="1dp"
-        android:color="#c3c3c7"/>
-    <solid
-        android:color="@android:color/white"/>
-</shape>

+ 0 - 13
android/app/src/main/res/drawable-hdpi/btn_normal.xml

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <corners android:radius="3dp" />
-    <!-- 圆角,你也可以对不同的角设置不同的数值 -->
-
-    <solid android:color="#2cb7cb" />
-    <!-- 形状的填充色 -->
-
-    <stroke
-        android:width="1dp"
-        android:color="#2cb7cb" />
-    <!-- 边框宽度和颜色 -->
-</shape>

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác