carlos 1 年之前
父节点
当前提交
671cfa9f32
共有 73 个文件被更改,包括 906 次插入1208 次删除
  1. 22 17
      app/build.gradle
  2. 6 66
      app/google-services.json
  3. 2 0
      app/src/main/AndroidManifest.xml
  4. 2 0
      app/src/main/java/com/sikey/veryfit/app/startup/RingApplication.java
  5. 2 1
      app/src/main/java/com/sikey/veryfit/component/network/http/HttpService.kt
  6. 4 4
      app/src/main/java/com/sikey/veryfit/component/network/http/model/Location.kt
  7. 9 17
      app/src/main/java/com/sikey/veryfit/k2/adapter/ChatAdapter.java
  8. 2 2
      app/src/main/java/com/sikey/veryfit/k2/database/FamilyDatabaseManager.java
  9. 2 2
      app/src/main/java/com/sikey/veryfit/k2/database/PrivateDatabaseManager.java
  10. 2 5
      app/src/main/java/com/sikey/veryfit/k2/ui/BaseActivity.java
  11. 6 12
      app/src/main/java/com/sikey/veryfit/k2/ui/chat/BaseChatActivity.java
  12. 3 6
      app/src/main/java/com/sikey/veryfit/k2/ui/chat/ChatFamilyListActivity.java
  13. 15 27
      app/src/main/java/com/sikey/veryfit/k2/ui/chat/FamilyTalkActivity.java
  14. 9 18
      app/src/main/java/com/sikey/veryfit/k2/ui/chat/PrivateTalkActivity.kt
  15. 6 12
      app/src/main/java/com/sikey/veryfit/k2/ui/dailyTask/BirthdayActivity.java
  16. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/dailyTask/CustomNotifyActivity.java
  17. 1 1
      app/src/main/java/com/sikey/veryfit/k2/ui/dailyTask/DailyTaskListActivity.java
  18. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/dailyTask/WakeUpOrSleepTaskActivity.java
  19. 1 1
      app/src/main/java/com/sikey/veryfit/k2/ui/magicSchool/MagicSchoolDayActivity.kt
  20. 1 1
      app/src/main/java/com/sikey/veryfit/k2/ui/magicSchool/MagicSchoolWeekActivity.kt
  21. 1 1
      app/src/main/java/com/sikey/veryfit/k2/ui/main/RightMenuFragment.java
  22. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/massageReceiver/MassageListActivity.kt
  23. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/massageReceiver/MassgeSettingActivity.kt
  24. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/notificationCenter/ADRecoderActivity.kt
  25. 4 2
      app/src/main/java/com/sikey/veryfit/k2/ui/notificationCenter/MessegeCenterActivity.kt
  26. 1 1
      app/src/main/java/com/sikey/veryfit/k2/ui/notificationCenter/NotifyCenterActivity.java
  27. 3 3
      app/src/main/java/com/sikey/veryfit/k2/ui/notificationCenter/VerifyFriendActivity.java
  28. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/rejectStranger/RejectHistoryActivity.kt
  29. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/rejectStranger/RejectStrangerActivity.kt
  30. 3 3
      app/src/main/java/com/sikey/veryfit/k2/ui/settings/AddOrEditWatchWifiActivity.java
  31. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/settings/CallChargeActivity.java
  32. 1 1
      app/src/main/java/com/sikey/veryfit/k2/ui/settings/FactoryInfoActivity.java
  33. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/settings/SchoolTimeActivity.java
  34. 3 3
      app/src/main/java/com/sikey/veryfit/k2/ui/settings/SchoolTimeListActivity.java
  35. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/settings/WatchSettingsActivity.java
  36. 1 1
      app/src/main/java/com/sikey/veryfit/k2/ui/settings/WatchWifiActivity.java
  37. 1 1
      app/src/main/java/com/sikey/veryfit/k2/ui/watchContacts/AddFamilyActivity.java
  38. 1 1
      app/src/main/java/com/sikey/veryfit/k2/ui/watchContacts/AddFriendActivity.java
  39. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/watchContacts/ContactsActivity.java
  40. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/watchContacts/FamilyDetailActivity.java
  41. 2 2
      app/src/main/java/com/sikey/veryfit/k2/ui/watchContacts/FriendDetailActivity.java
  42. 1 1
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/PushSettingActivity.kt
  43. 4 4
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/baby/SchoolInfoActivity.java
  44. 2 2
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/baby/SchoolTimeActivity.java
  45. 2 2
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/chat/ChatActivity.java
  46. 3 3
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/fence/AddOrAlterFenceActivity.java
  47. 1 1
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/fence/FenceSettingActivity.java
  48. 1 1
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/fence/HomePreviewActivity.java
  49. 2 2
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/guardian/AddOrDeleteRecordActivity.java
  50. 1 1
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/history/BootAndShutRecordActivity.java
  51. 1 0
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/left/BabyDetailActivity.kt
  52. 1 1
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/left/FenceListActivity.java
  53. 1 1
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/left/GuardianActivity.java
  54. 1 1
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/left/WatchSettingsActivity.java
  55. 0 869
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/path/MDPathHistoryActivity.java
  56. 637 0
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/path/MDPathHistoryActivity.kt
  57. 1 0
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/right/ChooseRelationActivity.kt
  58. 1 0
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/right/ScanQRCodeActivity.kt
  59. 2 2
      app/src/main/java/com/sikey/veryfit/ui/avtivity/component/right/WebViewActivity.java
  60. 1 1
      app/src/main/java/com/sikey/veryfit/ui/avtivity/login/ResetPassActivity.java
  61. 1 0
      app/src/main/java/com/sikey/veryfit/ui/avtivity/login/SignupActivity.kt
  62. 36 14
      app/src/main/java/com/sikey/veryfit/ui/avtivity/main/CustomMapFragment.kt
  63. 6 2
      app/src/main/java/com/sikey/veryfit/ui/avtivity/main/DispatchActivity.kt
  64. 1 0
      app/src/main/java/com/sikey/veryfit/ui/avtivity/main/SplashActivity.kt
  65. 13 5
      app/src/main/java/com/sikey/veryfit/ui/custom/FABScrollBehavior.java
  66. 1 1
      app/src/main/java/com/sikey/veryfit/ui/fragment/main/MineFragment.kt
  67. 1 1
      app/src/main/java/com/sikey/veryfit/ui/fragment/main/WatchFragment.kt
  68. 10 9
      app/src/main/java/com/sikey/veryfit/ui/fragment/path/TrackSeekBarFragment.java
  69. 4 3
      app/src/main/java/com/sikey/veryfit/utils/HttpsUtil.java
  70. 12 8
      build.gradle
  71. 11 35
      google-services.json
  72. 4 0
      gradle.properties
  73. 3 3
      gradle/wrapper/gradle-wrapper.properties

+ 22 - 17
app/build.gradle

@@ -116,8 +116,11 @@ android {
 
 
     compileOptions {
-        targetCompatibility 1.8
-        sourceCompatibility 1.8
+        targetCompatibility 17
+        sourceCompatibility 17
+    }
+    kotlinOptions {
+        jvmTarget = '17'
     }
     lint {
         abortOnError false
@@ -132,26 +135,26 @@ dependencies {
     implementation(name: 'crop_image', ext: 'aar')
     //compile project(':social_sdk_library_project')
 //    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
-    implementation 'com.google.android.material:material:1.6.1'
+    implementation 'com.google.android.material:material:1.9.0'
 
     //kotlin coroutines
     implementation(platform('org.jetbrains.kotlin:kotlin-bom:1.8.0'))
-    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1"
-    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4"
+    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1"
+    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1"
 
     // androidX
     implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.2'
     implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.2'
     implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
-    implementation 'androidx.appcompat:appcompat:1.5.1'
-    implementation 'androidx.activity:activity-ktx:1.6.1'
-    implementation 'androidx.fragment:fragment-ktx:1.5.5'
+    implementation 'androidx.appcompat:appcompat:1.6.1'
+    implementation 'androidx.activity:activity-ktx:1.7.0'
+    implementation 'androidx.fragment:fragment-ktx:1.5.6'
     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
-    implementation 'androidx.recyclerview:recyclerview:1.2.1'
+    implementation 'androidx.recyclerview:recyclerview:1.3.0'
     implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
     implementation 'androidx.cardview:cardview:1.0.0'
     implementation 'androidx.transition:transition:1.4.1'
-    implementation 'androidx.exifinterface:exifinterface:1.3.3'
+    implementation 'androidx.exifinterface:exifinterface:1.3.6'
 
     implementation 'com.airbnb.android:lottie:3.0.0'
     implementation 'com.ashokvarma.android:bottom-navigation-bar:1.3.1'
@@ -163,14 +166,16 @@ dependencies {
     implementation 'com.koushikdutta.async:androidasync:2.2.1'
 
     // GMS
-    implementation 'com.google.android.gms:play-services-maps:18.0.2'
-    implementation 'com.google.android.libraries.places:places:2.5.0'
+    implementation 'com.google.android.gms:play-services-maps:18.1.0'
+    implementation 'com.google.android.libraries.places:places:3.0.0'
     implementation 'com.google.android.gms:play-services-location:21.0.1'
-    implementation 'com.google.android.gms:play-services-auth:20.1.0'
-    implementation 'com.google.android.gms:play-services-basement:18.1.0'
+    implementation 'com.google.android.gms:play-services-auth:20.4.1'
+    implementation 'com.google.android.gms:play-services-basement:18.2.0'
     implementation 'com.github.pengrad:mapscaleview:1.2.1'
-    implementation 'com.google.firebase:firebase-messaging:23.0.2'
-    implementation 'com.google.firebase:firebase-core:20.1.2'
+//    implementation 'com.google.firebase:firebase-messaging:23.4.0'
+    implementation 'com.google.firebase:firebase-messaging-ktx:23.4.0'
+    implementation 'com.google.firebase:firebase-core:21.1.1'
+    implementation(platform("com.google.firebase:firebase-bom:32.7.1"))
 
     //rxpremissions
     implementation 'io.reactivex.rxjava2:rxjava:2.2.21'
@@ -186,5 +191,5 @@ dependencies {
     implementation 'io.reactivex.rxjava2:rxjava:2.2.21'
     implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
     //gson
-    implementation 'com.google.code.gson:gson:2.9.1'
+    implementation 'com.google.code.gson:gson:2.10'
 }

+ 6 - 66
app/google-services.json

@@ -8,89 +8,29 @@
   "client": [
     {
       "client_info": {
-        "mobilesdk_app_id": "1:389777651454:android:60fab0a6cf94977f",
+        "mobilesdk_app_id": "1:389777651454:android:5f5ed0e160c8b19f9f17af",
         "android_client_info": {
-          "package_name": "cn.yulong.appring"
+          "package_name": "com.sikey.veryfit"
         }
       },
       "oauth_client": [
         {
-          "client_id": "389777651454-ocp4ik27k0r51jddcdkfmnqotu8vvhmc.apps.googleusercontent.com",
+          "client_id": "389777651454-t1h7khdocjf7avicleb6e1o997jbpokn.apps.googleusercontent.com",
           "client_type": 1,
           "android_info": {
-            "package_name": "cn.yulong.appring",
-            "certificate_hash": "08169deb9909609203251f17bd98f385baf67d86"
+            "package_name": "com.sikey.veryfit",
+            "certificate_hash": "8f2668baf60a0b920de8896503b4aabf85c83dbc"
           }
-        },
-        {
-          "client_id": "389777651454-9oo41jmqcu7mki2079h35b20a5cr2188.apps.googleusercontent.com",
-          "client_type": 3
         }
       ],
       "api_key": [
-        {
-          "current_key": "AIzaSyANUnjOuUWQBO_r3mbOGjS5m7JlLgR1nRw"
-        },
-        {
-          "current_key": "AIzaSyA-jGorZyhppk2jIYsbSn2MxIV39bZFb6E"
-        }
-      ],
-      "services": {
-        "appinvite_service": {
-          "other_platform_oauth_client": [
-            {
-              "client_id": "389777651454-9oo41jmqcu7mki2079h35b20a5cr2188.apps.googleusercontent.com",
-              "client_type": 3
-            },
-            {
-              "client_id": "389777651454-ak984tt8cmdek4sbp1imngpbet4kb26p.apps.googleusercontent.com",
-              "client_type": 2,
-              "ios_info": {
-                "bundle_id": "com.yulong.kidowatch",
-                "app_store_id": "1229047945"
-              }
-            }
-          ]
-        }
-      }
-    },
-    {
-      "client_info": {
-        "mobilesdk_app_id": "1:389777651454:android:5f5ed0e160c8b19f9f17af",
-        "android_client_info": {
-          "package_name": "com.sikey.veryfit"
-        }
-      },
-      "oauth_client": [
-        {
-          "client_id": "389777651454-9oo41jmqcu7mki2079h35b20a5cr2188.apps.googleusercontent.com",
-          "client_type": 3
-        }
-      ],
-      "api_key": [
-        {
-          "current_key": "AIzaSyANUnjOuUWQBO_r3mbOGjS5m7JlLgR1nRw"
-        },
         {
           "current_key": "AIzaSyA-jGorZyhppk2jIYsbSn2MxIV39bZFb6E"
         }
       ],
       "services": {
         "appinvite_service": {
-          "other_platform_oauth_client": [
-            {
-              "client_id": "389777651454-9oo41jmqcu7mki2079h35b20a5cr2188.apps.googleusercontent.com",
-              "client_type": 3
-            },
-            {
-              "client_id": "389777651454-ak984tt8cmdek4sbp1imngpbet4kb26p.apps.googleusercontent.com",
-              "client_type": 2,
-              "ios_info": {
-                "bundle_id": "com.yulong.kidowatch",
-                "app_store_id": "1229047945"
-              }
-            }
-          ]
+          "other_platform_oauth_client": []
         }
       }
     }

+ 2 - 0
app/src/main/AndroidManifest.xml

@@ -599,6 +599,8 @@
         <meta-data
             android:name="com.google.firebase.messaging.default_notification_icon"
             android:resource="@mipmap/ic_launcher" />
+<!--        <meta-data android:name="com.google.firebase.messaging.default_notification_channel_id"
+            android:value="@string/default_notification_channel_id"/>-->
         <!--
              Set color used with incoming notification messages. This is used when no color is set for the incoming
              notification message. See README(https://goo.gl/6BKBk7) for more.

+ 2 - 0
app/src/main/java/com/sikey/veryfit/app/startup/RingApplication.java

@@ -7,6 +7,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 
+import com.google.firebase.FirebaseApp;
 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
 import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
 import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
@@ -69,6 +70,7 @@ public class RingApplication extends Application implements OnTerminateListener{
 //        if (!LeakCanary.isInAnalyzerProcess(this)) {
 //            LeakCanary.install(this);
 //        }
+        FirebaseApp.initializeApp(this);
 
 
         //移除小米推送

+ 2 - 1
app/src/main/java/com/sikey/veryfit/component/network/http/HttpService.kt

@@ -54,6 +54,7 @@ interface LocationService : BaseHttpService {
     @POST(UrlConstants.refreshLocation)
     fun refreshLocation(@Body body: RefreshLocationReq): CustomFlowable<BaseResponse<NormalResponse>>
 
+    //HistoryLocationReq
     @GET(UrlConstants.historyLocation)
-    fun getHistoryLocation(@QueryMap body: HistoryLocationReq): CustomFlowable<HistoryLocationRepo>
+    fun getHistoryLocation(@QueryMap paras: Map<String, String>): CustomFlowable<HistoryLocationRepo>
 }

+ 4 - 4
app/src/main/java/com/sikey/veryfit/component/network/http/model/Location.kt

@@ -15,10 +15,10 @@ data class RefreshLocationReq(
 
 data class HistoryLocationReq(
     @SerializedName("startDate")
-    val startDate: String,
+    val startDate: Long,
     @SerializedName("endDate")
-    val endDate: String,
-    @SerializedName("cid ")
+    val endDate: Long,
+    @SerializedName("cid")
     val cid: String
 ) : BaseRequest()
 
@@ -29,7 +29,7 @@ data class HistoryLocationRepo(
 
 data class Location(
     @SerializedName("positionTime")
-    val date: Long = 0,
+    var date: Long = 0,
     @SerializedName("lat")
     val lat: String = "0.0",
     @SerializedName("lng")

+ 9 - 17
app/src/main/java/com/sikey/veryfit/k2/adapter/ChatAdapter.java

@@ -107,8 +107,6 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
                 return TYPE_OTHER_TEXT;
             }else if(chatType==Constant.CHAT_TYPE_PHIZ){
                 return TYPE_OTHER_PIC;
-            }else if(chatType==Constant.CHAT_TYPE_MAGIC){
-                return TYPE_OTHER_MAGIC;
             }else {
                 return TYPE_OTHER_VIDEO;
             }
@@ -127,8 +125,6 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
                     return TYPE_MY_TEXT;
                 }else if(chatType==Constant.CHAT_TYPE_PHIZ){
                     return TYPE_MY_PIC;
-                }else if(chatType==Constant.CHAT_TYPE_MAGIC){
-                    return TYPE_MY_MAGIC;
                 }else {
                     return TYPE_MY_VIDEO;
                 }
@@ -143,8 +139,6 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
                     return TYPE_OTHER_TEXT;
                 }else if(chatType==Constant.CHAT_TYPE_PHIZ){
                     return TYPE_OTHER_PIC;
-                }else if(chatType==Constant.CHAT_TYPE_MAGIC){
-                    return TYPE_OTHER_MAGIC;
                 }else {
                     return TYPE_OTHER_VIDEO;
                 }
@@ -208,8 +202,6 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
             return getOtherText(bean, convertView, parent);
         }else if(chatType==Constant.CHAT_TYPE_PHIZ){
             return getOtherPic(bean,convertView,parent);
-        }else if(chatType==Constant.CHAT_TYPE_MAGIC){
-            return getOtherMagic(bean,convertView,parent);
         }else {
             return getOtherVideo(bean,convertView,parent);
         }
@@ -312,7 +304,7 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
         }
         else
         {
-            String imgUrl = DataManager.getInstance().getChildTrackInfoById(mChildId).getAvatar();
+            String imgUrl = DataManager.getInstance().getChildInfoById(mChildId).getAvatar();
             holder.setHeadImage(imgUrl);
         }
 
@@ -357,7 +349,7 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
         holder.readFlagView.setVisibility(bean.getReadFlag() == 0 ? View.VISIBLE : View.INVISIBLE);
         holder.startDownload();
 
-        String imgUrl = DataManager.getInstance().getChildTrackInfoById(mChildId).getAvatar();
+        String imgUrl = DataManager.getInstance().getChildInfoById(mChildId).getAvatar();
         holder.setHeadImage(imgUrl);
 
         return convertView;
@@ -439,7 +431,7 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
         }
         else
         {
-            String imgUrl = DataManager.getInstance().getChildTrackInfoById(mChildId).getAvatar();
+            String imgUrl = DataManager.getInstance().getChildInfoById(mChildId).getAvatar();
             holder.setHeadImage(imgUrl);
         }
         return convertView;
@@ -480,7 +472,7 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
         }
         else
         {
-            String imgUrl = DataManager.getInstance().getChildTrackInfoById(mChildId).getAvatar();
+            String imgUrl = DataManager.getInstance().getChildInfoById(mChildId).getAvatar();
             holder.setHeadImage(imgUrl);
         }
         return convertView;
@@ -522,7 +514,7 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
         }
         else
         {
-            String imgUrl = DataManager.getInstance().getChildTrackInfoById(mChildId).getAvatar();
+            String imgUrl = DataManager.getInstance().getChildInfoById(mChildId).getAvatar();
             holder.setHeadImage(imgUrl);
         }
         return convertView;
@@ -576,7 +568,7 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
         }
         else
         {
-            String imgUrl = DataManager.getInstance().getChildTrackInfoById(mChildId).getAvatar();
+            String imgUrl = DataManager.getInstance().getChildInfoById(mChildId).getAvatar();
             holder.setHeadImage(imgUrl);
         }
         return convertView;
@@ -621,7 +613,7 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
         }
         else
         {
-            String imgUrl = DataManager.getInstance().getChildTrackInfoById(mChildId).getAvatar();
+            String imgUrl = DataManager.getInstance().getChildInfoById(mChildId).getAvatar();
             holder.setHeadImage(imgUrl);
         }
         return convertView;
@@ -677,7 +669,7 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
         }
         else
         {
-            String imgUrl = DataManager.getInstance().getChildTrackInfoById(mChildId).getAvatar();
+            String imgUrl = DataManager.getInstance().getChildInfoById(mChildId).getAvatar();
             holder.setHeadImage(imgUrl);
         }
         return convertView;
@@ -724,7 +716,7 @@ public class ChatAdapter extends CustomBaseAdapter<ChatBean>{
         }
         else
         {
-            String imgUrl = DataManager.getInstance().getChildTrackInfoById(mChildId).getAvatar();
+            String imgUrl = DataManager.getInstance().getChildInfoById(mChildId).getAvatar();
             holder.setHeadImage(imgUrl);
         }
         return convertView;

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/database/FamilyDatabaseManager.java

@@ -116,7 +116,7 @@ public class FamilyDatabaseManager implements BaseDatabaseManager {
     public ArrayList<ChatBean> fetchMessageExt(String queryString)
     {
         ArrayList beanArrayList = new ArrayList();
-        Cursor c = this._mdb.rawQuery(queryString, (String[])null);
+/*        Cursor c = this._mdb.rawQuery(queryString, (String[])null);
         while (c.moveToNext()) {
 
             ChatBean bean = new ChatBean();
@@ -143,7 +143,7 @@ public class FamilyDatabaseManager implements BaseDatabaseManager {
 
             beanArrayList.add(bean);
         }
-        c.close();
+        c.close();*/
         return beanArrayList;
     }
 

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/database/PrivateDatabaseManager.java

@@ -116,7 +116,7 @@ public class PrivateDatabaseManager implements BaseDatabaseManager {
     public ArrayList<ChatBean> fetchMessageExt(String queryString)
     {
         ArrayList beanArrayList = new ArrayList();
-        Cursor c = this._mdb.rawQuery(queryString, (String[])null);
+        /*Cursor c = this._mdb.rawQuery(queryString, (String[])null);
         while (c.moveToNext()) {
 
             ChatBean bean = new ChatBean();
@@ -142,7 +142,7 @@ public class PrivateDatabaseManager implements BaseDatabaseManager {
             bean.setVideoFilePath(c.getString(c.getColumnIndex("videoFilePath")));
             beanArrayList.add(bean);
         }
-        c.close();
+        c.close();*/
         return beanArrayList;
     }
 

+ 2 - 5
app/src/main/java/com/sikey/veryfit/k2/ui/BaseActivity.java

@@ -251,11 +251,8 @@ public class BaseActivity extends AppCompatActivity implements IShowSessionExcep
                     ToastUtils.showShortToast(error.getMessage());
                 }
             }
-        },new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                ToastUtils.showLongToast(R.string.network_exception);
-            }
+        }, error -> {
+//            ToastUtils.showLongToast(R.string.network_exception)
         });
         RequestManager.getInstance(this).addToRequestQueue(request);
 

+ 6 - 12
app/src/main/java/com/sikey/veryfit/k2/ui/chat/BaseChatActivity.java

@@ -471,12 +471,9 @@ public abstract class BaseChatActivity extends BaseNoActionBarActivity implement
                     }
                 }
             }
-        },new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                hideProgressDialog();
-                ToastUtils.showLongToast(R.string.network_exception);
-            }
+        }, error -> {
+            hideProgressDialog();
+//                ToastUtils.showLongToast(R.string.network_exception);
         });
         showProgressDialog();
         RequestManager.getInstance(this).addToRequestQueue(fetchBabyDataRequest);
@@ -528,12 +525,9 @@ public abstract class BaseChatActivity extends BaseNoActionBarActivity implement
                     fetchBabyDetailData();
                 }
             }
-        },new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                hideProgressDialog();
-                ToastUtils.showLongToast(R.string.network_exception);
-            }
+        }, error -> {
+            hideProgressDialog();
+//                ToastUtils.showLongToast(R.string.network_exception);
         });
         showProgressDialog();
         RequestManager.getInstance(this).addToRequestQueue(request);

+ 3 - 6
app/src/main/java/com/sikey/veryfit/k2/ui/chat/ChatFamilyListActivity.java

@@ -145,12 +145,9 @@ public class ChatFamilyListActivity extends BaseNoActionBarActivity {
 
                         }
                     }
-                }, new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
-            }
-        });
+                }, error -> {
+    //                /* ToastUtils.showShortToast(R.string.network_exception) */;
+                });
         //showProgressDialog();
         RequestManager.getInstance().addToRequestQueue(request);
     }

+ 15 - 27
app/src/main/java/com/sikey/veryfit/k2/ui/chat/FamilyTalkActivity.java

@@ -204,12 +204,9 @@ public class FamilyTalkActivity extends BaseChatActivity{
                             SharedPreferenceUtil.setLongDataIntoSP("FamilyTalkActivity", timekey, lastVoiceBeanTimeTick);
                         }
                     }
-                }, new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
-            }
-        });
+                }, error -> {
+    //                /* ToastUtils.showShortToast(R.string.network_exception) */;
+                });
         //showProgressDialog();
         RequestManager.getInstance().addToRequestQueue(request);
 
@@ -270,13 +267,10 @@ public class FamilyTalkActivity extends BaseChatActivity{
                             postProcessRecord(responseBean);
                         }
                     }
-                }, new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                Logger.d(TAG, "onErrorResponse");
-                ToastUtils.showShortToast(R.string.network_exception);
-            }
-        });
+                }, error -> {
+                    Logger.d(TAG, "onErrorResponse");
+    //                /* ToastUtils.showShortToast(R.string.network_exception) */;
+                });
 
         RequestManager.getInstance().addToRequestQueue(request);
     }
@@ -322,13 +316,10 @@ public class FamilyTalkActivity extends BaseChatActivity{
                             postProcessRecord(responseBean);
                         }
                     }
-                }, new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                Logger.d(TAG, "onErrorResponse");
-                ToastUtils.showShortToast(R.string.network_exception);
-            }
-        });
+                }, error -> {
+                    Logger.d(TAG, "onErrorResponse");
+    //                /* ToastUtils.showShortToast(R.string.network_exception) */;
+                });
 
         RequestManager.getInstance().addToRequestQueue(request);
     }
@@ -379,13 +370,10 @@ public class FamilyTalkActivity extends BaseChatActivity{
                             postProcessRecord(responseBean);
                         }
                     }
-                }, new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                Logger.d(TAG, "onErrorResponse");
-                ToastUtils.showShortToast(R.string.network_exception);
-            }
-        });
+                }, error -> {
+                    Logger.d(TAG, "onErrorResponse");
+    //                /* ToastUtils.showShortToast(R.string.network_exception) */;
+                });
 
         RequestManager.getInstance().addToRequestQueue(request);
     }

+ 9 - 18
app/src/main/java/com/sikey/veryfit/k2/ui/chat/PrivateTalkActivity.kt

@@ -1,22 +1,14 @@
 package com.sikey.veryfit.k2.ui.chat
 
 import android.content.Intent
-import android.graphics.Bitmap
 import android.os.Bundle
 import android.view.View
 import android.widget.ImageView
 import android.widget.TextView
 import androidx.appcompat.widget.Toolbar
-import androidx.lifecycle.lifecycleScope
-import com.google.gson.Gson
 import com.sikey.veryfit.R
 import com.sikey.veryfit.app.DataManager.Companion.instance
 import com.sikey.veryfit.component.helper.RecordHelper
-import com.sikey.veryfit.component.log.Logger
-import com.sikey.veryfit.component.network.http.ChatService
-import com.sikey.veryfit.component.network.http.HttpServiceExecutor
-import com.sikey.veryfit.component.network.http.RetrofitFactory
-import com.sikey.veryfit.component.network.http.model.*
 import com.sikey.veryfit.component.network.response.SocketPrivateChatResponse
 import com.sikey.veryfit.component.receiver.CustomMIPushReceiver
 import com.sikey.veryfit.constant.Constant
@@ -27,7 +19,6 @@ import com.sikey.veryfit.ui.avtivity.component.right.AccountManagerActivity
 import com.sikey.veryfit.ui.avtivity.login.LoginActivity
 import com.sikey.veryfit.ui.custom.layout.CustomChatRecordLayout
 import com.sikey.veryfit.utils.SharedPreferenceUtil
-import kotlinx.coroutines.launch
 import org.json.JSONObject
 
 class PrivateTalkActivity : BaseChatActivity(), View.OnClickListener {
@@ -114,7 +105,7 @@ class PrivateTalkActivity : BaseChatActivity(), View.OnClickListener {
         )*/
 
     override fun fetchRecordDataFromNet() {
-        lifecycleScope.launch {
+      /*  lifecycleScope.launch {
             val lastKey = String.format("%s%s", "CHAT_CHILD_LAST_VOICE_TIME_", childId)
             val lastMsg = SharedPreferenceUtil.getStringValueFromSP(
                 "PrivateTalkActivity",
@@ -156,16 +147,16 @@ class PrivateTalkActivity : BaseChatActivity(), View.OnClickListener {
 
 
                     //保存别人发送的语音id和time,以供下次联网使用
-                    /*val bean = beanList[beanList.size - 1]
+                    *//*val bean = beanList[beanList.size - 1]
                     lastVoiceBeanTimeTick = bean.
                     val timekey = String.format("%s%s", "CHAT_CHILD_LAST_VOICE_TIME_", childId)
                     SharedPreferenceUtil.setLongDataIntoSP(
                         "PrivateTalkActivity",
                         timekey,
-                        lastVoiceBeanTimeTick)*/
+                        lastVoiceBeanTimeTick)*//*
                 }
             }
-        }
+        }*/
 
     }
 
@@ -226,7 +217,7 @@ class PrivateTalkActivity : BaseChatActivity(), View.OnClickListener {
                  }
              }) {
              Logger.d(TAG, "onErrorResponse")
-             ToastUtils.showShortToast(R.string.network_exception)
+             /* ToastUtils.showShortToast(R.string.network_exception) */
          }
          RequestManager.getInstance().addToRequestQueue(request)*/
     }
@@ -251,9 +242,9 @@ class PrivateTalkActivity : BaseChatActivity(), View.OnClickListener {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_chat)
-        intent.getStringExtra("chatInfo")?.let {
+/*        intent.getStringExtra("chatInfo")?.let {
             info = Gson().fromJson(it, ChatInfo::class.java)
-        }
+        }*/
         registSensor()
         initView()
     }
@@ -315,7 +306,7 @@ class PrivateTalkActivity : BaseChatActivity(), View.OnClickListener {
                  }
              }) {
              Logger.d(TAG, "onErrorResponse")
-             ToastUtils.showShortToast(R.string.network_exception)
+             /* ToastUtils.showShortToast(R.string.network_exception) */
          }
          RequestManager.getInstance().addToRequestQueue(request)*/
     }
@@ -367,7 +358,7 @@ class PrivateTalkActivity : BaseChatActivity(), View.OnClickListener {
                  }
              }) {
              Logger.d(TAG, "onErrorResponse")
-             ToastUtils.showShortToast(R.string.network_exception)
+             /* ToastUtils.showShortToast(R.string.network_exception) */
          }
          RequestManager.getInstance().addToRequestQueue(request)*/
     }

+ 6 - 12
app/src/main/java/com/sikey/veryfit/k2/ui/dailyTask/BirthdayActivity.java

@@ -247,12 +247,9 @@ public class BirthdayActivity extends K2BaseActivity {
                             finish();
                         }
                     }
-                }, new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
-            }
-        });
+                }, error -> {
+    //                /* ToastUtils.showShortToast(R.string.network_exception) */;
+                });
         //showProgressDialog();
         RequestManager.getInstance().addToRequestQueue(request);
     }
@@ -293,12 +290,9 @@ public class BirthdayActivity extends K2BaseActivity {
                             finish();
                         }
                     }
-                }, new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
-            }
-        });
+                }, error -> {
+    //                /* ToastUtils.showShortToast(R.string.network_exception) */;
+                });
         //showProgressDialog();
         RequestManager.getInstance().addToRequestQueue(request);
     }

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/dailyTask/CustomNotifyActivity.java

@@ -281,7 +281,7 @@ public class CustomNotifyActivity extends K2BaseActivity implements View.OnClick
                 }, new Response.ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         //showProgressDialog();
@@ -369,7 +369,7 @@ public class CustomNotifyActivity extends K2BaseActivity implements View.OnClick
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 1 - 1
app/src/main/java/com/sikey/veryfit/k2/ui/dailyTask/DailyTaskListActivity.java

@@ -252,7 +252,7 @@ public class DailyTaskListActivity extends BaseNoActionBarActivity implements Da
                 }, new Response.ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         //showProgressDialog();

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/dailyTask/WakeUpOrSleepTaskActivity.java

@@ -186,7 +186,7 @@ public class WakeUpOrSleepTaskActivity extends K2BaseActivity implements Compoun
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -250,7 +250,7 @@ public class WakeUpOrSleepTaskActivity extends K2BaseActivity implements Compoun
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 1 - 1
app/src/main/java/com/sikey/veryfit/k2/ui/magicSchool/MagicSchoolDayActivity.kt

@@ -119,7 +119,7 @@ class MagicSchoolDayActivity : BaseNoActionBarActivity() {
                     }
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)

+ 1 - 1
app/src/main/java/com/sikey/veryfit/k2/ui/magicSchool/MagicSchoolWeekActivity.kt

@@ -150,7 +150,7 @@ class MagicSchoolWeekActivity : BaseNoActionBarActivity() {
                     }
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)

+ 1 - 1
app/src/main/java/com/sikey/veryfit/k2/ui/main/RightMenuFragment.java

@@ -185,7 +185,7 @@ public class RightMenuFragment extends Fragment implements ICurrentChildObserver
                 }, new Response.ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         RequestManager.getInstance().addToRequestQueue(request);

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/massageReceiver/MassageListActivity.kt

@@ -108,7 +108,7 @@ class MassageListActivity : BaseNoActionBarActivity() {
 
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)
@@ -148,7 +148,7 @@ class MassageListActivity : BaseNoActionBarActivity() {
                     }
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/massageReceiver/MassgeSettingActivity.kt

@@ -118,7 +118,7 @@ class MassgeSettingActivity : BaseNoActionBarActivity() {
                     }
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)
@@ -163,7 +163,7 @@ class MassgeSettingActivity : BaseNoActionBarActivity() {
 
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/notificationCenter/ADRecoderActivity.kt

@@ -125,7 +125,7 @@ class ADRecoderActivity : BaseNoActionBarActivity() {
                     }
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)
@@ -163,7 +163,7 @@ class ADRecoderActivity : BaseNoActionBarActivity() {
 //
 //                }, Response.ErrorListener {
 //            hideProgressDialog()
-//            ToastUtils.showShortToast(R.string.network_exception)
+//            /* ToastUtils.showShortToast(R.string.network_exception) */
 //        })
 //        showProgressDialog()
 //        RequestManager.getInstance().addToRequestQueue(request)

+ 4 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/notificationCenter/MessegeCenterActivity.kt

@@ -92,7 +92,9 @@ class MessegeCenterActivity : BaseNoActionBarActivity(), androidx.swiperefreshla
     }
 
     private fun fetchMessegeFromDB(){
-        mList?.addAll(mDatabaseManager?.fetchMessage() as MutableList)
+        mDatabaseManager?.fetchMessage()?.let {
+            mList?.addAll(it as MutableList)
+        }
 
         if(mList!!.size<1){
             fetchMessegeList()
@@ -142,7 +144,7 @@ class MessegeCenterActivity : BaseNoActionBarActivity(), androidx.swiperefreshla
                     }
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)

+ 1 - 1
app/src/main/java/com/sikey/veryfit/k2/ui/notificationCenter/NotifyCenterActivity.java

@@ -125,7 +125,7 @@ public class NotifyCenterActivity extends BaseNoActionBarActivity implements OnC
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 3 - 3
app/src/main/java/com/sikey/veryfit/k2/ui/notificationCenter/VerifyFriendActivity.java

@@ -136,7 +136,7 @@ public class VerifyFriendActivity extends BaseNoActionBarActivity implements Swi
                 }, new Response.ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         //showProgressDialog();
@@ -191,7 +191,7 @@ public class VerifyFriendActivity extends BaseNoActionBarActivity implements Swi
                 }, new Response.ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         //showProgressDialog();
@@ -233,7 +233,7 @@ public class VerifyFriendActivity extends BaseNoActionBarActivity implements Swi
                 }, new Response.ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         //showProgressDialog();

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/rejectStranger/RejectHistoryActivity.kt

@@ -106,7 +106,7 @@ class RejectHistoryActivity : BaseNoActionBarActivity() {
 
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)
@@ -146,7 +146,7 @@ class RejectHistoryActivity : BaseNoActionBarActivity() {
                     }
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/rejectStranger/RejectStrangerActivity.kt

@@ -120,7 +120,7 @@ class RejectStrangerActivity : BaseNoActionBarActivity() {
                     }
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)
@@ -170,7 +170,7 @@ class RejectStrangerActivity : BaseNoActionBarActivity() {
 
                 }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)

+ 3 - 3
app/src/main/java/com/sikey/veryfit/k2/ui/settings/AddOrEditWatchWifiActivity.java

@@ -146,7 +146,7 @@ public class AddOrEditWatchWifiActivity extends BaseNoActionBarActivity {
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -191,7 +191,7 @@ public class AddOrEditWatchWifiActivity extends BaseNoActionBarActivity {
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -236,7 +236,7 @@ public class AddOrEditWatchWifiActivity extends BaseNoActionBarActivity {
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/settings/CallChargeActivity.java

@@ -186,7 +186,7 @@ public class CallChargeActivity extends BaseNoActionBarActivity implements Swipe
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -277,7 +277,7 @@ public class CallChargeActivity extends BaseNoActionBarActivity implements Swipe
                 }, new Response.ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         //showProgressDialog();

+ 1 - 1
app/src/main/java/com/sikey/veryfit/k2/ui/settings/FactoryInfoActivity.java

@@ -120,7 +120,7 @@ public class FactoryInfoActivity extends BaseNoActionBarActivity {
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/settings/SchoolTimeActivity.java

@@ -314,7 +314,7 @@ public class SchoolTimeActivity extends BaseNoActionBarActivity implements View.
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -375,7 +375,7 @@ public class SchoolTimeActivity extends BaseNoActionBarActivity implements View.
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 3 - 3
app/src/main/java/com/sikey/veryfit/k2/ui/settings/SchoolTimeListActivity.java

@@ -145,7 +145,7 @@ public class SchoolTimeListActivity extends BaseNoActionBarActivity implements F
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -210,7 +210,7 @@ public class SchoolTimeListActivity extends BaseNoActionBarActivity implements F
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -265,7 +265,7 @@ public class SchoolTimeListActivity extends BaseNoActionBarActivity implements F
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/settings/WatchSettingsActivity.java

@@ -223,7 +223,7 @@ public class WatchSettingsActivity extends K2BaseActivity implements View.OnClic
             }
         }, error -> {
             hideProgressDialog();
-            ToastUtils.showShortToast(R.string.network_exception);
+            /* ToastUtils.showShortToast(R.string.network_exception) */;
         });
     }
 
@@ -542,7 +542,7 @@ public class WatchSettingsActivity extends K2BaseActivity implements View.OnClic
             public void onErrorResponse(VolleyError error) {
                 //buttonView.setChecked(!isChecked);
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 1 - 1
app/src/main/java/com/sikey/veryfit/k2/ui/settings/WatchWifiActivity.java

@@ -257,7 +257,7 @@ public class WatchWifiActivity extends BaseNoActionBarActivity implements Listen
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 1 - 1
app/src/main/java/com/sikey/veryfit/k2/ui/watchContacts/AddFamilyActivity.java

@@ -274,7 +274,7 @@ public class AddFamilyActivity extends BaseNoActionBarActivity implements Choose
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 1 - 1
app/src/main/java/com/sikey/veryfit/k2/ui/watchContacts/AddFriendActivity.java

@@ -262,7 +262,7 @@ public class AddFriendActivity extends BaseNoActionBarActivity implements Choose
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/watchContacts/ContactsActivity.java

@@ -203,7 +203,7 @@ public class ContactsActivity extends BaseNoActionBarActivity implements View.On
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -267,7 +267,7 @@ public class ContactsActivity extends BaseNoActionBarActivity implements View.On
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/watchContacts/FamilyDetailActivity.java

@@ -314,7 +314,7 @@ public class FamilyDetailActivity extends BaseNoActionBarActivity implements Vie
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -351,7 +351,7 @@ public class FamilyDetailActivity extends BaseNoActionBarActivity implements Vie
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 2 - 2
app/src/main/java/com/sikey/veryfit/k2/ui/watchContacts/FriendDetailActivity.java

@@ -256,7 +256,7 @@ public class FriendDetailActivity extends BaseNoActionBarActivity implements Vie
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -294,7 +294,7 @@ public class FriendDetailActivity extends BaseNoActionBarActivity implements Vie
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 1 - 1
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/PushSettingActivity.kt

@@ -110,7 +110,7 @@ class PushSettingActivity : BaseNoActionBarActivity() {
             }
         }, Response.ErrorListener {
             hideProgressDialog()
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         })
         showProgressDialog()
         RequestManager.getInstance().addToRequestQueue(request)

+ 4 - 4
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/baby/SchoolInfoActivity.java

@@ -277,7 +277,7 @@ public class SchoolInfoActivity extends BaseActivity implements AdapterView.OnIt
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -489,7 +489,7 @@ public class SchoolInfoActivity extends BaseActivity implements AdapterView.OnIt
             @Override
             public void onErrorResponse(VolleyError error) {
                 //hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -732,7 +732,7 @@ public class SchoolInfoActivity extends BaseActivity implements AdapterView.OnIt
             @Override
             public void onErrorResponse(VolleyError error) {
                 //hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         //showProgressDialog();
@@ -792,7 +792,7 @@ public class SchoolInfoActivity extends BaseActivity implements AdapterView.OnIt
             @Override
             public void onErrorResponse(VolleyError error) {
                 //hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         //showProgressDialog();

+ 2 - 2
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/baby/SchoolTimeActivity.java

@@ -239,7 +239,7 @@ public class SchoolTimeActivity extends BaseNoActionBarActivity implements View.
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         if(showProgressFlag)
@@ -466,7 +466,7 @@ public class SchoolTimeActivity extends BaseNoActionBarActivity implements View.
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 2 - 2
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/chat/ChatActivity.java

@@ -329,7 +329,7 @@ public class ChatActivity extends BaseActivity implements ChatInputFragment.OnHo
                 }, new Response.ErrorListener() {
             @Override
             public void onErrorResponse(VolleyError error) {
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         //showProgressDialog();
@@ -414,7 +414,7 @@ public class ChatActivity extends BaseActivity implements ChatInputFragment.OnHo
             @Override
             public void onErrorResponse(VolleyError error) {
                 Logger.d(TAG, "onErrorResponse");
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
 

+ 3 - 3
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/fence/AddOrAlterFenceActivity.java

@@ -162,7 +162,7 @@ public class AddOrAlterFenceActivity extends BaseNoActionBarActivity implements
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
 
@@ -185,7 +185,7 @@ public class AddOrAlterFenceActivity extends BaseNoActionBarActivity implements
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
     }
@@ -218,7 +218,7 @@ public class AddOrAlterFenceActivity extends BaseNoActionBarActivity implements
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
     }

+ 1 - 1
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/fence/FenceSettingActivity.java

@@ -433,7 +433,7 @@ public class FenceSettingActivity extends BaseNoActionBarActivity implements Vie
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
     }

+ 1 - 1
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/fence/HomePreviewActivity.java

@@ -81,7 +81,7 @@ public class HomePreviewActivity extends BaseActivity {
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
 

+ 2 - 2
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/guardian/AddOrDeleteRecordActivity.java

@@ -505,7 +505,7 @@ public class AddOrDeleteRecordActivity extends BaseBindServiceActivity implement
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();
@@ -577,7 +577,7 @@ public class AddOrDeleteRecordActivity extends BaseBindServiceActivity implement
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
 
                 //replace with another fragment which tell user to check network config and allows the user to submit data again
             }

+ 1 - 1
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/history/BootAndShutRecordActivity.java

@@ -135,7 +135,7 @@ public class BootAndShutRecordActivity extends BaseNoActionBarActivity {
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 1 - 0
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/left/BabyDetailActivity.kt

@@ -393,6 +393,7 @@ class BabyDetailActivity : BaseNoActionBarActivity(),
         //super.onSaveInstanceState(outState);
     }
 
+    @Deprecated("Deprecated in Java")
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         super.onActivityResult(requestCode, resultCode, data)
         Logger.d(TAG, "onActivityResult,requestCode=$requestCode,resultCode=$resultCode")

+ 1 - 1
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/left/FenceListActivity.java

@@ -457,7 +457,7 @@ public class FenceListActivity extends BaseNoActionBarActivity implements View.O
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 1 - 1
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/left/GuardianActivity.java

@@ -306,7 +306,7 @@ public class GuardianActivity extends BaseActivity implements View.OnClickListen
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 1 - 1
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/left/WatchSettingsActivity.java

@@ -284,7 +284,7 @@ public class WatchSettingsActivity extends BaseActivity implements
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
     }

+ 0 - 869
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/path/MDPathHistoryActivity.java

@@ -1,869 +0,0 @@
-package com.sikey.veryfit.ui.avtivity.component.path;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Message;
-import androidx.fragment.app.FragmentTransaction;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-import androidx.appcompat.widget.Toolbar;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.SeekBar;
-import android.widget.TextView;
-
-import com.android.volley.Request;
-import com.android.volley.Response;
-import com.android.volley.VolleyError;
-import com.android.volley.toolbox.JsonObjectRequest;
-import com.google.android.gms.maps.CameraUpdateFactory;
-import com.google.android.gms.maps.GoogleMap;
-import com.google.android.gms.maps.OnMapReadyCallback;
-import com.google.android.gms.maps.SupportMapFragment;
-import com.google.android.gms.maps.model.BitmapDescriptor;
-import com.google.android.gms.maps.model.BitmapDescriptorFactory;
-import com.google.android.gms.maps.model.CameraPosition;
-import com.google.android.gms.maps.model.Dot;
-import com.google.android.gms.maps.model.Gap;
-import com.google.android.gms.maps.model.LatLng;
-import com.google.android.gms.maps.model.LatLngBounds;
-import com.google.android.gms.maps.model.Marker;
-import com.google.android.gms.maps.model.MarkerOptions;
-import com.google.android.gms.maps.model.PatternItem;
-import com.google.android.gms.maps.model.Polyline;
-import com.google.android.gms.maps.model.PolylineOptions;
-import com.sikey.veryfit.R;
-import com.sikey.veryfit.app.DataManager;
-import com.sikey.veryfit.component.VersionMatch.VersionMatch;
-import com.sikey.veryfit.component.handler.WeakReferenceHandler;
-import com.sikey.veryfit.component.log.Logger;
-import com.sikey.veryfit.component.network.BusinessError;
-import com.sikey.veryfit.component.network.RequestManager;
-import com.sikey.veryfit.component.network.ZipGsonListener;
-import com.sikey.veryfit.constant.JSONConstants;
-import com.sikey.veryfit.constant.UrlConstants;
-import com.sikey.veryfit.data.bean.PathTraceBean;
-import com.sikey.veryfit.k2.entity.DateBean;
-import com.sikey.veryfit.k2.ui.settings.LocationSettingActivity;
-import com.sikey.veryfit.k2.utils.FormatUtils;
-import com.sikey.veryfit.ui.adapter.DateAdapter;
-import com.sikey.veryfit.ui.avtivity.base.BaseNoActionBarActivity;
-import com.sikey.veryfit.ui.fragment.path.TrackSeekBarFragment;
-import com.sikey.veryfit.utils.ResUtils;
-import com.sikey.veryfit.utils.ToastUtils;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-public class MDPathHistoryActivity extends BaseNoActionBarActivity
-        implements View.OnClickListener,DateAdapter.DateItemClickListener,OnMapReadyCallback {
-
-    private static final String TAG=MDPathHistoryActivity.class.getSimpleName();
-
-    private static final int FIXED_THREAD_NUM=1;
-
-    private static final int NORMAL_Z_INDEX=1;
-
-    private static final int MSG_DRAW_PATH=1;
-
-    private static final int POLYLINE_WIDTH=10;
-    private static final int DOT_LINE_WIDTH=6;
-    private static final int COLOR_GREEN=0xff259f44;
-    private static final int COLOR_BLUE=0xff2c9cff;
-
-    private static final long ONE_DAY_MILL_SECONDS=24*3600*1000;
-
-    private static final long HALF_HOUR_SECONDS=38*60;
-    private final int NEW_COUNT = 30;
-
-    private final Calendar calendar = Calendar.getInstance();
-
-    private GoogleMap map;
-    private Polyline mMutablePolyline;
-
-    private static final int PATTERN_GAP_LENGTH_PX = 20;
-    private static final Dot DOT = new Dot();
-    private static final Gap GAP = new Gap(PATTERN_GAP_LENGTH_PX);
-    private static final List<PatternItem> PATTERN_DOTTED = Arrays.asList(DOT, GAP);
-
-    @Override
-    public void onMapReady(GoogleMap googleMap) {
-        map = googleMap;
-        setMapLoadFinishFlag(true);
-    }
-
-    private enum PointGravity{
-        top,center,bottom
-    }
-
-    private final WeakReferenceHandler<Activity>mHandler=new WeakReferenceHandler<Activity>(this) {
-        @Override
-        protected void handleMessage(Activity activity, Message msg) {
-            switch (msg.what)
-            {
-                case MSG_DRAW_PATH:
-                    drawPath(mCurrentBeanList);
-                    break;
-            }
-
-        }
-    };
-
-
-
-    private List<PathTraceBean>mCurrentBeanList;
-
-    private final List<MarkerOptions>mOverlayOptionList=new ArrayList<>();
-
-    private boolean mMapLoadFinishFlag=false;
-
-    private final Object mLock=new Object();
-
-    private ExecutorService mFixedThreadPool=null;
-
-    private FragmentTransaction mFragmentTransaction;
-    private TrackSeekBarFragment mTrackSeekBarFrag;
-    private boolean isSeekFragShow=false;
-    private Marker mCurrentMarker;
-    private int mCurrentProgress=0;
-
-    private Toolbar mToolbar;
-    private TextView mName ;
-    private TextView mRightTv ;
-    private ImageView mBack ;
-
-    RecyclerView mLytDate;
-    DateAdapter mDateAdapter;
-
-    private ArrayList<DateBean> dateData;
-
-    private void initView()
-    {
-
-
-
-        SupportMapFragment mapFragment =
-                (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
-        mapFragment.getMapAsync(this);
-
-        mToolbar = (Toolbar) findViewById(R.id.toolbar);
-        mName = (TextView) mToolbar.findViewById(R.id.title);
-        mBack = (ImageView) mToolbar.findViewById(R.id.ic_back);
-        mRightTv = (TextView) mToolbar.findViewById(R.id.rightActionTv);
-        mRightTv.setText(getString(R.string.today));
-        mRightTv.setTextColor(getResources().getColor(R.color.dark));
-        mName.setText(getText(R.string.track_history));
-
-        mBack.setVisibility(View.VISIBLE);
-        mBack.setOnClickListener(this);
-
-        mRightTv.setOnClickListener(this);
-
-        //init date view
-
-        dateData = new ArrayList<>();
-        addMoreDays();
-        mLytDate = (RecyclerView) findViewById(R.id.day_list);
-        mLytDate.setHasFixedSize(true);
-        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
-        layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
-        mLytDate.setLayoutManager(layoutManager);
-        mDateAdapter = new DateAdapter(this,dateData);
-        mLytDate.setAdapter(mDateAdapter);
-        mLytDate.scrollToPosition(14);
-        mDateAdapter.setSelectItem(14);
-        mDateAdapter.setmListener(this);
-        showSeekBarFragment();
-
-
-
-        findViewById(R.id.tv_set_location).setOnClickListener(this);
-
-    }
-
-    private void initData()
-    {
-        Date today=new Date(System.currentTimeMillis());
-        //mChosenDate=today;
-        startToSubmit(today);
-
-    }
-
-    private void startToSubmit(Date startDay)
-    {
-        SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd", Locale.CHINA);
-        String startTime=sdf.format(startDay);
-        Logger.d(TAG, "startTime:" + startTime);
-        //mChosenDayTv.setText(startTime);
-        Date endDay=new Date(startDay.getTime()+ONE_DAY_MILL_SECONDS);
-        String endTime=sdf.format(endDay);
-        Logger.d(TAG, "endTime:" + endTime);
-        submitRequest(startTime,endTime);
-    }
-
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_mdpath_history);
-        initView();
-        initData();
-    }
-
-
-
-    @Override
-    public void onClick(View v) {
-        switch(v.getId())
-        {
-
-            case R.id.ic_back:
-                backAction();
-                break;
-            case R.id.rightActionTv:
-                onItemClick(14);
-                break;
-            case R.id.tv_set_location:
-                startActivity(new Intent(this, LocationSettingActivity.class));
-                break;
-            default:
-                break;
-        }
-    }
-
-    private void showOrHideSeekBarFragment()
-    {
-        if(null==mCurrentBeanList||mCurrentBeanList.size()<1)
-        {
-            ToastUtils.showShortToast(R.string.no_path_history_tip);
-            return;
-        }
-        if(null==mTrackSeekBarFrag)
-        {
-            TrackSeekBarManager manager=new TrackSeekBarManager();
-            mCurrentProgress = 1;
-            PathTraceBean bean = null;
-            if(mCurrentBeanList.size() >= 1) {
-                bean = mCurrentBeanList.get(mCurrentProgress - 1);
-            }
-
-            mTrackSeekBarFrag=TrackSeekBarFragment.newInstance(mCurrentBeanList.size()-1 ,manager,bean);
-        }
-         if(null==mFragmentTransaction)
-         {
-             mFragmentTransaction=this.getSupportFragmentManager().beginTransaction();
-
-             mFragmentTransaction.replace(R.id.seekBarContainer,mTrackSeekBarFrag);
-             mFragmentTransaction.commit();
-             isSeekFragShow=true;
-         }
-         else
-         {
-             mFragmentTransaction=this.getSupportFragmentManager().beginTransaction();
-             if(isSeekFragShow)
-             {
-                 Logger.d(TAG,"hide fragment");
-                 mFragmentTransaction.hide(mTrackSeekBarFrag);
-                 isSeekFragShow=false;
-             }
-             else
-             {
-                 isSeekFragShow=true;
-                 mFragmentTransaction.show(mTrackSeekBarFrag);
-             }
-
-             mFragmentTransaction.commit();
-
-//             mCurrentProgress = 1;
-             if(mCurrentBeanList.size() >= 1) {
-                 PathTraceBean bean = mCurrentBeanList.get(mCurrentProgress - 1);
-                 mTrackSeekBarFrag.setCurrentPositionDetail(bean,mCurrentProgress);
-             }
-         }
-    }
-
-    private void hideTrackSeekFrag()
-    {
-        Logger.d(TAG,"isSeekFragShow:"+isSeekFragShow);
-        if(!isSeekFragShow||mTrackSeekBarFrag==null)
-        {
-            return;
-        }
-        mFragmentTransaction=this.getSupportFragmentManager().beginTransaction();
-        Logger.d(TAG,"hide fragment");
-        mFragmentTransaction.hide(mTrackSeekBarFrag);
-        isSeekFragShow=false;
-        mFragmentTransaction.commit();
-    }
-
-    private void showSeekBarFragment()
-    {
-        if(null==mTrackSeekBarFrag)
-        {
-            TrackSeekBarManager manager=new TrackSeekBarManager();
-            mCurrentProgress = 1;
-            PathTraceBean bean = null;
-            int maxNum = 0;
-            if(null!=mCurrentBeanList&&mCurrentBeanList.size() >= 1) {
-                bean = mCurrentBeanList.get(mCurrentProgress - 1);
-                maxNum = mCurrentBeanList.size()-1;
-            }
-
-            mTrackSeekBarFrag=TrackSeekBarFragment.newInstance(maxNum ,manager,bean);
-        }
-        if(null==mFragmentTransaction)
-        {
-            mFragmentTransaction=this.getSupportFragmentManager().beginTransaction();
-
-            mFragmentTransaction.replace(R.id.seekBarContainer,mTrackSeekBarFrag);
-            mFragmentTransaction.commit();
-        }
-        else
-        {
-            mFragmentTransaction=this.getSupportFragmentManager().beginTransaction();
-            mFragmentTransaction.show(mTrackSeekBarFrag);
-
-            mFragmentTransaction.commit();
-
-//             mCurrentProgress = 1;
-            if(mCurrentBeanList.size() >= 1) {
-                PathTraceBean bean = mCurrentBeanList.get(mCurrentProgress - 1);
-                mTrackSeekBarFrag.setCurrentPositionDetail(bean,mCurrentProgress);
-            }
-        }
-    }
-
-
-    /*
-    private void refreshNextDayBtn()
-    {
-        if(mChosenDateWrapper.getTime()>System.currentTimeMillis())
-        {
-            mNextDayBtn.setEnabled(false);
-        }
-        else if(Math.abs(mChosenDateWrapper.getTime()-System.currentTimeMillis())<TORATABLE_ERROR)
-        {
-            mNextDayBtn.setEnabled(false);
-        }
-        else if(mChosenDate.getTime()<System.currentTimeMillis())
-        {
-            mNextDayBtn.setEnabled(true);
-        }
-
-    }
-    */
-    //generate more days
-    private void addMoreDays() {
-        calendar.add(Calendar.DATE, -15);
-        for (int i = 0; i < NEW_COUNT; i++) {
-            DateBean data = new DateBean();
-            calendar.add(Calendar.DATE, 1);
-            data.setDate(calendar.getTime());
-            data.setDay(FormatUtils.formateDay(this,calendar.get(Calendar.DAY_OF_WEEK)));
-            data.setDayOfMonth(calendar.get(Calendar.DAY_OF_MONTH));
-            data.setMonth(calendar.get(Calendar.MONTH)+1);
-            data.setYear(calendar.get(Calendar.YEAR));
-
-
-            dateData.add(data);
-        }
-    }
-
-
-    @Override
-    protected void onResume()
-    {
-        super.onResume();
-        View view  = findViewById(R.id.lyt_location_setting);
-        if(!VersionMatch.showLocationSetting()){
-            view.setVisibility(View.GONE);
-        }else {
-/*            if(!DataManager.getInstance().getCurrentChildInfo().isTraceUploadSwitch()){
-                view.setVisibility(View.VISIBLE);
-            }else {
-                view.setVisibility(View.GONE);
-            }*/
-        }
-
-    }
-
-    @Override
-    protected void onPause()
-    {
-        super.onPause();
-    }
-
-    @Override
-    protected void onDestroy()
-    {
-        if(null!=mFixedThreadPool)
-        {
-            mFixedThreadPool.shutdownNow();
-        }
-
-        super.onDestroy();
-    }
-
-    private void setMapLoadFinishFlag(boolean flag)
-    {
-        synchronized (mLock)
-        {
-            mMapLoadFinishFlag=flag;
-            mLock.notify();
-        }
-    }
-
-
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        // Inflate the menu; this adds items to the action bar if it is present.
-        //getMenuInflater().inflate(R.menu.menu_mdpath_history, menu);
-        //return true;
-        return false;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        // Handle action bar item clicks here. The action bar will
-        // automatically handle clicks on the Home/Up button, so long
-        // as you specify a parent activity in AndroidManifest.xml.
-        int id = item.getItemId();
-
-        //noinspection SimplifiableIfStatement
-        if (id == R.id.action_settings) {
-            return true;
-        }
-
-        return super.onOptionsItemSelected(item);
-    }
-
-    private void submitRequest(String startTime,String endTime)
-    {
-        TimeZone timeZone = TimeZone.getDefault();
-        int rawOffset = timeZone.getRawOffset()/1000;
-        int mTimeZonehour = rawOffset/3600;
-        int mTimeZoneMinute = (rawOffset/3600)%60;
-        Log.d(TAG,"mTimeZonehour="+mTimeZonehour+"==mTimeZoneMinute=="+mTimeZoneMinute);
-        if(!DataManager.checkLoginResponseAndCurrentChildInfo())
-        {
-            return;
-        }
-
-        JSONObject params=new JSONObject();
-        try
-        {
-//            params.put(JSONConstants.USER_ID,DataManager.getInstance().getLoginResponse().getUserId());
-//            params.put(JSONConstants.CHILD_ID,DataManager.getInstance().getCurrentChildInfo().getChildId());
-            params.put(JSONConstants.BEGIN,startTime);
-            params.put(JSONConstants.END,endTime);
-            params.put("timeZone",mTimeZonehour);
-            params.put("minutes",mTimeZoneMinute);
-//            params.put(JSONConstants.SESSION_KEY,DataManager.getInstance().getLoginResponse().getSessionKey());
-
-        }
-        catch(JSONException ex)
-        {
-            ex.printStackTrace();
-        }
-
-        JsonObjectRequest request=new JsonObjectRequest(Request.Method.POST, UrlConstants.BaseURL + UrlConstants.GET_SINGLE_CHILD_TRACE_LIST,
-                params,new ZipGsonListener<PathTraceBean>(PathTraceBean.class) {
-            @Override
-            protected void onResponse(BusinessError error, JSONObject response, JSONArray array, PathTraceBean responseBean, List<PathTraceBean> beanList) {
-                Logger.d(TAG,"onResponse");
-                hideProgressDialog();
-                if(null!=error)
-                {
-                    ToastUtils.showShortToast(error.getMessage());
-                    hideTrackSeekFrag();
-                }
-                else
-                {
-                    mCurrentBeanList=beanList;
-                    if(null==beanList||beanList.size()==0)
-                    {
-                        map.clear();
-                        hideTrackSeekFrag();
-                        ToastUtils.showShortToast(R.string.no_path_history_tip);
-                        if(mTrackSeekBarFrag!=null) {
-                            mTrackSeekBarFrag.setMax(0);
-                        }
-                        return;
-                    }
-                    Logger.d(TAG, "beaList.size()=" + beanList.size());
-
-                    startToWaitOrDrawPath();
-                    if(mTrackSeekBarFrag!=null)
-                    {
-                        mTrackSeekBarFrag.setMax(mCurrentBeanList.size());
-                        PathTraceBean bean = mCurrentBeanList.get(0);
-                        mTrackSeekBarFrag.setCurrentPositionDetail(bean,1);
-                    }
-                }
-
-            }
-        },new Response.ErrorListener() {
-            @Override
-            public void onErrorResponse(VolleyError error) {
-                hideProgressDialog();
-                hideTrackSeekFrag();
-                ToastUtils.showShortToast(R.string.network_exception);
-            }
-        });
-
-        showProgressDialog();
-        RequestManager.getInstance(this).addToRequestQueue(request);
-
-    }
-
-    private void addAllMarkers(List<LatLng>points)
-    {
-        mOverlayOptionList.clear();
-        for(int i=0;i<points.size();++i)
-        {
-            if(i==0)
-            {
-                //addSingleMarker(R.drawable.path_end,points.get(0),NORMAL_Z_INDEX+1);
-                addSingleMarker(R.drawable.point_start,points.get(0),NORMAL_Z_INDEX+1);
-            }
-            else if(i==points.size()-1)
-            {
-                //addSingleMarker(R.drawable.path_start,points.get(points.size()-1),NORMAL_Z_INDEX+1);
-                addSingleMarker(R.drawable.point_end,points.get(points.size()-1),NORMAL_Z_INDEX+1);
-            }
-            else
-            {
-                addSingleMarker(R.drawable.point_normal,points.get(i),NORMAL_Z_INDEX,PointGravity.center);
-                //addSingleMarker(R.drawable.green_circle,points.get(i));
-            }
-        }
-
-    }
-
-    private void zoomToSpan(List<LatLng> points)
-    {
-        double minX=0.0,maxX=0.0,minY=0.0,maxY=0.0;
-        if(points==null){
-            return;
-        }
-        for(int i=0;i<points.size();++i)
-        {
-            //LatLng latLng=getConvertedLatLng(mAvatarItems.get(i).info.toLatLng());
-            LatLng latLng=points.get(i);
-            if(i==0)
-            {
-                minX=latLng.latitude;
-                maxX=minX;
-                minY=latLng.longitude;
-                maxY=minY;
-            }
-            else
-            {
-                if(latLng.latitude<minX)
-                {
-                    minX=latLng.latitude;
-                }
-                if(latLng.latitude>maxX)
-                {
-                    maxX=latLng.latitude;
-                }
-                if(latLng.longitude<minY)
-                {
-                    minY=latLng.longitude;
-                }
-                if(latLng.longitude>maxY)
-                {
-                    maxY=latLng.longitude;
-                }
-
-            }
-        }
-
-        LatLng southWest=new LatLng(minX,minY);
-        LatLng earthEast=new LatLng(maxX,maxY);
-        LatLngBounds bounds = new LatLngBounds(southWest, earthEast);
-        map.setLatLngBoundsForCameraTarget(bounds);
-        // 100是LatLngBounds与地图边缘100像素的填充区域
-        map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100));
-    }
-
-    private void startToWaitOrDrawPath()
-    {
-        /*
-        Thread thread=new Thread(new Runnable() {
-            @Override
-            public void run() {
-                synchronized (mLock)
-                {
-                    while(!mMapLoadFinishFlag)
-                    {
-                        try
-                        {
-                            mLock.wait();
-                        }
-                        catch(InterruptedException ex)
-                        {
-                            ex.printStackTrace();
-                        }
-                    }
-                }
-                mHandler.sendEmptyMessage(MSG_DRAW_PATH);
-            }
-        });
-        thread.start();
-        */
-        if(null==mFixedThreadPool)
-        {
-            mFixedThreadPool= Executors.newFixedThreadPool(FIXED_THREAD_NUM);
-        }
-        mFixedThreadPool.execute(new Runnable() {
-            @Override
-            public void run() {
-                synchronized (mLock)
-                {
-                    while(!mMapLoadFinishFlag)
-                    {
-                        try
-                        {
-                            mLock.wait();
-                        }
-                        catch(InterruptedException ex)
-                        {
-                            ex.printStackTrace();
-                        }
-                    }
-                }
-                mHandler.sendEmptyMessage(MSG_DRAW_PATH);
-            }
-        });
-    }
-
-    private void drawPath(List<PathTraceBean>beanList)
-    {
-        Logger.d(TAG,"drawPath");
-        if(null==map||null==beanList||beanList.size()==0)
-        {
-            return;
-        }
-        map.clear();
-        List<LatLng>points=generatePoints(beanList);
-        addAllMarkers(points);
-        drawAllLines(points);
-
-        zoomToSpan(points);
-
-    }
-
-    private void drawAllLines(List<LatLng>points)
-    {
-        if(points.size()<2)
-        {
-            return;
-        }
-        List<LatLng>tempPoints=new ArrayList<>();
-        long timeInterval;
-        for(int i=0;i<points.size()-1;++i)
-        {
-            tempPoints.clear();
-            tempPoints.add(points.get(i));
-            tempPoints.add(points.get(i+1));
-            timeInterval=mCurrentBeanList.get(i+1).getTimeTicks()-mCurrentBeanList.get(i).getTimeTicks();
-            drawSingleLine(tempPoints,timeInterval);
-        }
-    }
-
-
-
-    private void drawSingleLine(List<LatLng>tempPoints,long timeInterval)
-    {
-        PolylineOptions polyLine;
-        if(timeInterval<HALF_HOUR_SECONDS)
-        {
-            polyLine=new PolylineOptions().width(POLYLINE_WIDTH).color(COLOR_GREEN).addAll(tempPoints);
-            mMutablePolyline = map.addPolyline(polyLine);
-        }
-        else
-        {
-            polyLine=new PolylineOptions().width(DOT_LINE_WIDTH).color(COLOR_BLUE).addAll(tempPoints);
-            mMutablePolyline = map.addPolyline(polyLine);
-            mMutablePolyline.setPattern(PATTERN_DOTTED);
-        }
-    }
-
-    private void addSingleMarker(int drawId,LatLng latLng,int customIndex)
-    {
-        addSingleMarker(drawId,latLng,customIndex,PointGravity.bottom);
-    }
-
-    private void addSingleMarker(int drawId,LatLng latLng,int customIndex,PointGravity gravity)
-    {
-        BitmapDescriptor descriptor= BitmapDescriptorFactory.fromResource(drawId);
-        MarkerOptions options=new MarkerOptions().position(latLng).icon(descriptor)
-                .zIndex(customIndex).draggable(false);
-        switch (gravity){
-            case top:
-                options.anchor(0.5f,0f);
-                break;
-            case center:
-                options.anchor(0.5f,0.5f);
-                break;
-            case bottom:
-                options.anchor(0.5f,1f);
-                break;
-            default:
-                break;
-        }
-        mOverlayOptionList.add(options);
-        Marker marker =  map.addMarker(options );
-    }
-
-    private List<LatLng> generatePoints(List<PathTraceBean>beanList)
-    {
-        List<LatLng>points=new ArrayList<>();
-        for(PathTraceBean bean:beanList)
-        {
-            LatLng desLatLng=getConvertedLatLng(bean);
-            points.add(desLatLng);
-        }
-        return points;
-    }
-
-    private LatLng getConvertedLatLng(PathTraceBean bean)
-    {
-        LatLng sourceLatLng=new LatLng(bean.getDecodeLat(),bean.getDecodeLng());
-        return sourceLatLng;
-    }
-
-
-     private String getTimeDetail(long time)
-    {
-        Logger.d(TAG,"time:"+time);
-        Date date=new Date(time);
-        //SimpleDateFormat sdf=new SimpleDateFormat("HH:MM:ss");
-        SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss",Locale.CHINA);
-        Logger.d(TAG,"timeDetail:"+sdf.format(date));
-        return sdf.format(date);
-    }
-
-    private String getPositionDetail(PathTraceBean bean)
-    {
-        StringBuilder builder=new StringBuilder();
-        builder.append(mCurrentProgress);
-        builder.append("/");
-        builder.append(mCurrentBeanList.size());
-        builder.append("(");
-        builder.append(getTimeDetail(bean.getTimeTicks()*1000));
-        builder.append(") ");
-
-//        ChildInfo info = DataManager.getInstance().getCurrentChildInfo();
-//        builder.append(MainHelper.getLocaTypeStr(bean.getLocaType(), info.isWatchDebugFlag()));
-
-        String precision = ResUtils.getString(R.string.location_precision, bean.getAccuracy());
-        builder.append(precision);
-
-        return builder.toString();
-    }
-
-
-
-    private void refreshChosenMarkerAndPositionDetail()
-    {
-        if(mCurrentBeanList==null||mCurrentBeanList.size()==0
-                ||mCurrentBeanList.size()<mCurrentProgress||mCurrentProgress<1)
-        {
-            return;
-        }
-
-        if(mCurrentMarker!=null)
-        {
-            mCurrentMarker.remove();
-        }
-
-        //mCurrentProgress can be [0,mCurrentBeanLis.size()];
-        PathTraceBean bean=mCurrentBeanList.get(mCurrentProgress-1);
-
-        mTrackSeekBarFrag.setCurrentPositionDetail(bean,mCurrentProgress);
-
-        LatLng latLng=getConvertedLatLng(bean);
-        BitmapDescriptor descriptor= BitmapDescriptorFactory.fromResource(R.drawable.point_selected);
-        MarkerOptions options=new MarkerOptions().position(latLng).icon(descriptor)
-                .zIndex(NORMAL_Z_INDEX+1).draggable(false).anchor(0.5f,0.5f);
-        mOverlayOptionList.add(options);
-        mCurrentMarker=map.addMarker(options);
-        animateMapStatus(latLng);
-    }
-
-
-
-    private void animateMapStatus(LatLng latLng)
-    {
-        CameraPosition position =new CameraPosition.Builder()
-                .target(latLng).zoom(14.0f).bearing(0).tilt(0).build();
-        map.animateCamera(CameraUpdateFactory.newCameraPosition(position));
-    }
-
-    //another useful function is that inner class could implements all the interfaces that outter class do not want to implements
-    //In this way, the code will be elegant and tidy
-    private class TrackSeekBarManager implements SeekBar.OnSeekBarChangeListener
-    {
-        @Override
-        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
-            Logger.d(TAG,"progress:"+progress);
-            mCurrentProgress=progress+1;
-            refreshChosenMarkerAndPositionDetail();
-        }
-
-        @Override
-        public void onStartTrackingTouch(SeekBar seekBar) {
-
-        }
-
-        @Override
-        public void onStopTrackingTouch(SeekBar seekBar) {
-
-        }
-    }
-    ///////////////////////////////////////////////////////////////
-
-    @Override
-    public void onItemClick(int postion) {
-        mDateAdapter.setSelectItem(postion);
-        mDateAdapter.notifyItemRangeChanged(0,NEW_COUNT);
-
-        if(postion==14){
-            mRightTv.setVisibility(View.GONE);
-        }else {
-            mRightTv.setVisibility(View.VISIBLE);
-        }
-
-        if(dateData.get(postion).getDate().getTime()>System.currentTimeMillis())
-        {
-            ToastUtils.showShortToast(R.string.date_proceed_today_tip);
-            return;
-        }
-
-
-
-        startToSubmit(dateData.get(postion).getDate());
-    }
-
-
-
-}

+ 637 - 0
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/path/MDPathHistoryActivity.kt

@@ -0,0 +1,637 @@
+package com.sikey.veryfit.ui.avtivity.component.path
+
+import android.app.Activity
+import android.content.Intent
+import android.os.Bundle
+import android.os.Message
+import android.view.Menu
+import android.view.MenuItem
+import android.view.View
+import android.widget.ImageView
+import android.widget.SeekBar
+import android.widget.SeekBar.OnSeekBarChangeListener
+import android.widget.TextView
+import androidx.appcompat.widget.Toolbar
+import androidx.fragment.app.FragmentTransaction
+import androidx.lifecycle.lifecycleScope
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.google.android.gms.maps.CameraUpdateFactory
+import com.google.android.gms.maps.GoogleMap
+import com.google.android.gms.maps.OnMapReadyCallback
+import com.google.android.gms.maps.SupportMapFragment
+import com.google.android.gms.maps.model.BitmapDescriptorFactory
+import com.google.android.gms.maps.model.CameraPosition
+import com.google.android.gms.maps.model.Dot
+import com.google.android.gms.maps.model.Gap
+import com.google.android.gms.maps.model.LatLng
+import com.google.android.gms.maps.model.LatLngBounds
+import com.google.android.gms.maps.model.Marker
+import com.google.android.gms.maps.model.MarkerOptions
+import com.google.android.gms.maps.model.Polyline
+import com.google.android.gms.maps.model.PolylineOptions
+import com.sikey.veryfit.R
+import com.sikey.veryfit.app.DataManager
+import com.sikey.veryfit.app.DataManager.Companion.checkLoginResponseAndCurrentChildInfo
+import com.sikey.veryfit.component.VersionMatch.VersionMatch
+import com.sikey.veryfit.component.handler.WeakReferenceHandler
+import com.sikey.veryfit.component.log.Logger
+import com.sikey.veryfit.component.network.http.HttpServiceExecutor
+import com.sikey.veryfit.component.network.http.LocationService
+import com.sikey.veryfit.component.network.http.RetrofitFactory
+import com.sikey.veryfit.component.network.http.model.HistoryLocationRepo
+import com.sikey.veryfit.component.network.http.model.HistoryLocationReq
+import com.sikey.veryfit.component.network.http.model.Location
+import com.sikey.veryfit.component.network.http.toMap
+import com.sikey.veryfit.data.bean.PathTraceBean
+import com.sikey.veryfit.k2.entity.DateBean
+import com.sikey.veryfit.k2.ui.settings.LocationSettingActivity
+import com.sikey.veryfit.k2.utils.FormatUtils
+import com.sikey.veryfit.ui.adapter.DateAdapter
+import com.sikey.veryfit.ui.avtivity.base.BaseNoActionBarActivity
+import com.sikey.veryfit.ui.avtivity.component.path.MDPathHistoryActivity
+import com.sikey.veryfit.ui.avtivity.component.right.AccountManagerActivity
+import com.sikey.veryfit.ui.avtivity.login.LoginActivity
+import com.sikey.veryfit.ui.fragment.path.TrackSeekBarFragment
+import com.sikey.veryfit.utils.ResUtils
+import com.sikey.veryfit.utils.ToastUtils
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
+import java.text.SimpleDateFormat
+import java.util.Calendar
+import java.util.Date
+import java.util.Locale
+import java.util.TimeZone
+
+class MDPathHistoryActivity : BaseNoActionBarActivity(), View.OnClickListener,
+    DateAdapter.DateItemClickListener, OnMapReadyCallback {
+    private val NEW_COUNT = 30
+    private val calendar = Calendar.getInstance()
+    private var map: GoogleMap? = null
+    private var mMutablePolyline: Polyline? = null
+    override fun onMapReady(googleMap: GoogleMap) {
+        map = googleMap
+        setMapLoadFinishFlag(true)
+    }
+
+    private enum class PointGravity {
+        top, center, bottom
+    }
+
+    private val mHandler: WeakReferenceHandler<Activity> =
+        object : WeakReferenceHandler<Activity>(this) {
+            override fun handleMessage(activity: Activity, msg: Message) {
+                when (msg.what) {
+                    MSG_DRAW_PATH -> drawPath(mCurrentBeanList)
+                }
+            }
+        }
+    private var mCurrentBeanList: ArrayList<Location>? = null
+    private val mOverlayOptionList: MutableList<MarkerOptions> = ArrayList()
+
+    private var mMapLoadFinishFlag = false
+    private var mFragmentTransaction: FragmentTransaction? = null
+    private var mTrackSeekBarFrag: TrackSeekBarFragment? = null
+    private var isSeekFragShow = false
+    private var mCurrentMarker: Marker? = null
+    private var mCurrentProgress = 0
+    private var mToolbar: Toolbar? = null
+    private var mName: TextView? = null
+    private var mRightTv: TextView? = null
+    private var mBack: ImageView? = null
+    var mLytDate: RecyclerView? = null
+    var mDateAdapter: DateAdapter? = null
+    private var dateData: ArrayList<DateBean>? = null
+    private fun initView() {
+        val mapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment?
+        mapFragment!!.getMapAsync(this)
+        mToolbar = findViewById<View>(R.id.toolbar) as Toolbar
+        mName = mToolbar!!.findViewById<View>(R.id.title) as TextView
+        mBack = mToolbar!!.findViewById<View>(R.id.ic_back) as ImageView
+        mRightTv = mToolbar!!.findViewById<View>(R.id.rightActionTv) as TextView
+        mRightTv!!.text = getString(R.string.today)
+        mRightTv!!.setTextColor(resources.getColor(R.color.dark))
+        mName!!.text = getText(R.string.track_history)
+        mBack!!.visibility = View.VISIBLE
+        mBack!!.setOnClickListener(this)
+        mRightTv!!.setOnClickListener(this)
+
+        //init date view
+        dateData = ArrayList()
+        addMoreDays()
+        mLytDate = findViewById<View>(R.id.day_list) as RecyclerView
+        mLytDate!!.setHasFixedSize(true)
+        val layoutManager = LinearLayoutManager(this)
+        layoutManager.orientation = LinearLayoutManager.HORIZONTAL
+        mLytDate!!.layoutManager = layoutManager
+        mDateAdapter = DateAdapter(this, dateData)
+        mLytDate!!.adapter = mDateAdapter
+        mLytDate!!.scrollToPosition(14)
+        mDateAdapter!!.setSelectItem(14)
+        mDateAdapter!!.setmListener(this)
+        showSeekBarFragment()
+        findViewById<View>(R.id.tv_set_location).setOnClickListener(this)
+    }
+
+    private fun initData() {
+        val today = Date(System.currentTimeMillis())
+        //mChosenDate=today;
+        startToSubmit(today)
+    }
+
+    private fun startToSubmit(startDay: Date) {
+        val calendar = Calendar.getInstance()
+        calendar.time = startDay
+        calendar.set(Calendar.HOUR_OF_DAY, 0)
+        calendar.set(Calendar.MINUTE, 0)
+        calendar.set(Calendar.SECOND, 0)
+        val offset = TimeZone.getDefault().rawOffset
+        val startTime = calendar.time.time
+        val endTime = startTime + ONE_DAY_MILL_SECONDS
+        Logger.d("timezonetest", "offset:$offset -- startTime:$startTime -- endTime:$endTime")
+        submitRequest(startTime / 1000, endTime / 1000)
+    }
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_mdpath_history)
+        initView()
+        initData()
+    }
+
+    override fun onClick(v: View) {
+        when (v.id) {
+            R.id.ic_back -> backAction()
+            R.id.rightActionTv -> onItemClick(14)
+            R.id.tv_set_location -> startActivity(Intent(this, LocationSettingActivity::class.java))
+            else -> {}
+        }
+    }
+
+    private fun showOrHideSeekBarFragment() {
+        if (null == mCurrentBeanList || mCurrentBeanList!!.isEmpty()) {
+            ToastUtils.showShortToast(R.string.no_path_history_tip)
+            return
+        }
+        if (null == mTrackSeekBarFrag) {
+            val manager = TrackSeekBarManager()
+            mCurrentProgress = 1
+            var bean: Location? = null
+            if (mCurrentBeanList!!.isNotEmpty()) {
+                bean = mCurrentBeanList!![0]
+            }
+            mTrackSeekBarFrag =
+                TrackSeekBarFragment.newInstance(mCurrentBeanList!!.size - 1, manager, bean)
+        }
+        if (null == mFragmentTransaction) {
+            mFragmentTransaction = this.supportFragmentManager.beginTransaction()
+            mFragmentTransaction!!.replace(R.id.seekBarContainer, mTrackSeekBarFrag!!)
+            mFragmentTransaction!!.commit()
+            isSeekFragShow = true
+        } else {
+            mFragmentTransaction = this.supportFragmentManager.beginTransaction()
+            if (isSeekFragShow) {
+                Logger.d(TAG, "hide fragment")
+                mFragmentTransaction!!.hide(mTrackSeekBarFrag!!)
+                isSeekFragShow = false
+            } else {
+                isSeekFragShow = true
+                mFragmentTransaction!!.show(mTrackSeekBarFrag!!)
+            }
+            mFragmentTransaction!!.commit()
+
+//             mCurrentProgress = 1;
+            if (mCurrentBeanList!!.size >= 1) {
+                val bean = mCurrentBeanList!![mCurrentProgress - 1]
+                mTrackSeekBarFrag!!.setCurrentPositionDetail(bean, mCurrentProgress)
+            }
+        }
+    }
+
+    private fun hideTrackSeekFrag() {
+        Logger.d(TAG, "isSeekFragShow:$isSeekFragShow")
+        if (!isSeekFragShow || mTrackSeekBarFrag == null) {
+            return
+        }
+        mFragmentTransaction = this.supportFragmentManager.beginTransaction()
+        Logger.d(TAG, "hide fragment")
+        mFragmentTransaction!!.hide(mTrackSeekBarFrag!!)
+        isSeekFragShow = false
+        mFragmentTransaction!!.commit()
+    }
+
+    private fun showSeekBarFragment() {
+        if (null == mTrackSeekBarFrag) {
+            val manager = TrackSeekBarManager()
+            mCurrentProgress = 1
+            var bean: Location? = null
+            var maxNum = 0
+            if (null != mCurrentBeanList && mCurrentBeanList!!.isNotEmpty()) {
+                bean = mCurrentBeanList!![0]
+                maxNum = mCurrentBeanList!!.size - 1
+            }
+            mTrackSeekBarFrag = TrackSeekBarFragment.newInstance(maxNum, manager, bean)
+        }
+        if (null == mFragmentTransaction) {
+            mFragmentTransaction = this.supportFragmentManager.beginTransaction()
+            mFragmentTransaction!!.replace(R.id.seekBarContainer, mTrackSeekBarFrag!!)
+            mFragmentTransaction!!.commit()
+        } else {
+            mFragmentTransaction = this.supportFragmentManager.beginTransaction()
+            mFragmentTransaction!!.show(mTrackSeekBarFrag!!)
+            mFragmentTransaction!!.commit()
+
+//             mCurrentProgress = 1;
+            if (mCurrentBeanList!!.isNotEmpty()) {
+                val bean = mCurrentBeanList!![mCurrentProgress - 1]
+                mTrackSeekBarFrag!!.setCurrentPositionDetail(bean, mCurrentProgress)
+            }
+        }
+    }
+
+    /*
+    private void refreshNextDayBtn()
+    {
+        if(mChosenDateWrapper.getTime()>System.currentTimeMillis())
+        {
+            mNextDayBtn.setEnabled(false);
+        }
+        else if(Math.abs(mChosenDateWrapper.getTime()-System.currentTimeMillis())<TORATABLE_ERROR)
+        {
+            mNextDayBtn.setEnabled(false);
+        }
+        else if(mChosenDate.getTime()<System.currentTimeMillis())
+        {
+            mNextDayBtn.setEnabled(true);
+        }
+
+    }
+    */
+    //generate more days
+    private fun addMoreDays() {
+        calendar.add(Calendar.DATE, -15)
+        for (i in 0 until NEW_COUNT) {
+            val data = DateBean()
+            calendar.add(Calendar.DATE, 1)
+            data.date = calendar.time
+            data.day = FormatUtils.formateDay(this, calendar[Calendar.DAY_OF_WEEK])
+            data.dayOfMonth = calendar[Calendar.DAY_OF_MONTH]
+            data.month = calendar[Calendar.MONTH] + 1
+            data.year = calendar[Calendar.YEAR]
+            dateData!!.add(data)
+        }
+    }
+
+    override fun onResume() {
+        super.onResume()
+        val view = findViewById<View>(R.id.lyt_location_setting)
+        if (!VersionMatch.showLocationSetting()) {
+            view.visibility = View.GONE
+        } else {
+/*            if(!DataManager.getInstance().getCurrentChildInfo().isTraceUploadSwitch()){
+                view.setVisibility(View.VISIBLE);
+            }else {
+                view.setVisibility(View.GONE);
+            }*/
+        }
+    }
+
+    override fun onDestroy() {
+        super.onDestroy()
+    }
+
+    private fun setMapLoadFinishFlag(flag: Boolean) {
+        mMapLoadFinishFlag = flag
+    }
+
+    override fun onCreateOptionsMenu(menu: Menu): Boolean {
+        // Inflate the menu; this adds items to the action bar if it is present.
+        //getMenuInflater().inflate(R.menu.menu_mdpath_history, menu);
+        //return true;
+        return false
+    }
+
+    override fun onOptionsItemSelected(item: MenuItem): Boolean {
+        // Handle action bar item clicks here. The action bar will
+        // automatically handle clicks on the Home/Up button, so long
+        // as you specify a parent activity in AndroidManifest.xml.
+        val id = item.itemId
+        return if (id == R.id.action_settings) {
+            true
+        } else super.onOptionsItemSelected(item)
+    }
+
+    private fun gotoLogin() {
+        val intent = Intent(this, LoginActivity::class.java)
+        intent.putExtra(AccountManagerActivity.EXTRA_EXIT_ACCOUNT_FLAG, true)
+        finish()
+        startActivity(intent)
+    }
+
+    private fun submitRequest(startTime: Long, endTime: Long) {
+        if (!checkLoginResponseAndCurrentChildInfo()) {
+            return
+        }
+        lifecycleScope.launch {
+            showProgressDialog()
+            HttpServiceExecutor.execute(
+                (RetrofitFactory.retrofit(LocationService::class.java) as LocationService).getHistoryLocation(
+                    HistoryLocationReq(
+                        cid = DataManager.instance.currentChildInfo?.childId?.trim() ?: "",
+                        startDate = startTime,
+                        endDate = endTime
+                    ).toMap()
+                ).flowable
+            ).apply {
+                if (this.code?.startsWith("40") != false) {
+                    gotoLogin()
+                    return@launch
+                } else {
+                    Logger.d(TAG, "beaList.size()=" + this.code)
+                    when (val data = this.mData) {
+                        is HistoryLocationRepo -> {
+                            val list = arrayListOf<Location>()
+                            data.locationList.forEach { location ->
+                                location.date = location.date / 1000
+                                list.add(location)
+                            }
+                            list.sortWith(compareBy { location -> location.date })
+                            mCurrentBeanList = list
+                            if (list.size == 0) {
+                                map!!.clear()
+                                hideTrackSeekFrag()
+                                ToastUtils.showShortToast(R.string.no_path_history_tip)
+                                if (mTrackSeekBarFrag != null) {
+                                    mTrackSeekBarFrag!!.setMax(0)
+                                }
+                                hideProgressDialog()
+                                return@apply
+                            }
+                            Logger.d(TAG, "beaList.size()=" + list.size)
+
+                            startToWaitOrDrawPath()
+                            if (mTrackSeekBarFrag != null) {
+                                mTrackSeekBarFrag!!.setMax(list.size)
+                                val bean = list[0]
+                                mTrackSeekBarFrag!!.setCurrentPositionDetail(bean, 1)
+                            }
+
+                        }
+                        else -> {
+                            ToastUtils.showShortToast(this.message)
+                        }
+                    }
+                }
+                hideProgressDialog()
+                hideTrackSeekFrag()
+            }
+        }
+    }
+
+    private fun addAllMarkers(points: List<LatLng>) {
+        mOverlayOptionList.clear()
+        for (i in points.indices) {
+            when (i) {
+                0 -> {
+                    //addSingleMarker(R.drawable.path_end,points.get(0),NORMAL_Z_INDEX+1);
+                    addSingleMarker(R.drawable.point_start, points[0], NORMAL_Z_INDEX + 1)
+                }
+                points.size - 1 -> {
+                    //addSingleMarker(R.drawable.path_start,points.get(points.size()-1),NORMAL_Z_INDEX+1);
+                    addSingleMarker(
+                        R.drawable.point_end,
+                        points[points.size - 1],
+                        NORMAL_Z_INDEX + 1
+                    )
+                }
+                else -> {
+                    addSingleMarker(
+                        R.drawable.point_normal,
+                        points[i],
+                        NORMAL_Z_INDEX,
+                        PointGravity.center
+                    )
+                    //addSingleMarker(R.drawable.green_circle,points.get(i));
+                }
+            }
+        }
+    }
+
+    private fun zoomToSpan(points: List<LatLng>?) {
+        var minX = 0.0
+        var maxX = 0.0
+        var minY = 0.0
+        var maxY = 0.0
+        if (points == null) {
+            return
+        }
+        for (i in points.indices) {
+            //LatLng latLng=getConvertedLatLng(mAvatarItems.get(i).info.toLatLng());
+            val latLng = points[i]
+            if (i == 0) {
+                minX = latLng.latitude
+                maxX = minX
+                minY = latLng.longitude
+                maxY = minY
+            } else {
+                if (latLng.latitude < minX) {
+                    minX = latLng.latitude
+                }
+                if (latLng.latitude > maxX) {
+                    maxX = latLng.latitude
+                }
+                if (latLng.longitude < minY) {
+                    minY = latLng.longitude
+                }
+                if (latLng.longitude > maxY) {
+                    maxY = latLng.longitude
+                }
+            }
+        }
+        val southWest = LatLng(minX, minY)
+        val earthEast = LatLng(maxX, maxY)
+        val bounds = LatLngBounds(southWest, earthEast)
+        map!!.setLatLngBoundsForCameraTarget(bounds)
+        // 100是LatLngBounds与地图边缘100像素的填充区域
+        map!!.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 100))
+    }
+
+    private fun startToWaitOrDrawPath() {
+        lifecycleScope.launch(Dispatchers.IO) {
+            while (!mMapLoadFinishFlag) {
+                delay(200)
+            }
+            mHandler.sendEmptyMessage(MSG_DRAW_PATH)
+        }
+    }
+
+    private fun drawPath(beanList: ArrayList<Location>?) {
+        Logger.d(TAG, "drawPath")
+        if (null == map || null == beanList || beanList.isEmpty()) {
+            return
+        }
+        map!!.clear()
+        val points = generatePoints(beanList)
+        addAllMarkers(points)
+        drawAllLines(points)
+        zoomToSpan(points)
+    }
+
+    private fun drawAllLines(points: List<LatLng>) {
+        if (points.size < 2) {
+            return
+        }
+        val tempPoints: MutableList<LatLng> = ArrayList()
+        var timeInterval: Long
+        for (i in 0 until points.size - 1) {
+            tempPoints.clear()
+            tempPoints.add(points[i])
+            tempPoints.add(points[i + 1])
+            timeInterval = mCurrentBeanList!![i + 1].date - mCurrentBeanList!![i].date
+            drawSingleLine(tempPoints, timeInterval)
+        }
+    }
+
+    private fun drawSingleLine(tempPoints: List<LatLng>, timeInterval: Long) {
+        val polyLine: PolylineOptions
+        if (timeInterval < HALF_HOUR_SECONDS) {
+            polyLine = PolylineOptions().width(POLYLINE_WIDTH.toFloat()).color(COLOR_GREEN)
+                .addAll(tempPoints)
+            mMutablePolyline = map!!.addPolyline(polyLine)
+        } else {
+            polyLine = PolylineOptions().width(DOT_LINE_WIDTH.toFloat()).color(COLOR_BLUE)
+                .addAll(tempPoints)
+            mMutablePolyline = map!!.addPolyline(polyLine)
+            mMutablePolyline!!.pattern = PATTERN_DOTTED
+        }
+    }
+
+    private fun addSingleMarker(
+        drawId: Int,
+        latLng: LatLng,
+        customIndex: Int,
+        gravity: PointGravity = PointGravity.bottom
+    ) {
+        val descriptor = BitmapDescriptorFactory.fromResource(drawId)
+        val options = MarkerOptions().position(latLng).icon(descriptor)
+            .zIndex(customIndex.toFloat()).draggable(false)
+        when (gravity) {
+            PointGravity.top -> options.anchor(0.5f, 0f)
+            PointGravity.center -> options.anchor(0.5f, 0.5f)
+            PointGravity.bottom -> options.anchor(0.5f, 1f)
+        }
+        mOverlayOptionList.add(options)
+        map!!.addMarker(options)
+    }
+
+    private fun generatePoints(beanList: ArrayList<Location>): List<LatLng> {
+        val points: MutableList<LatLng> = ArrayList()
+        for (bean in beanList) {
+            val desLatLng = getConvertedLatLng(bean)
+            points.add(desLatLng)
+        }
+        return points
+    }
+
+    private fun getConvertedLatLng(bean: Location): LatLng {
+        return LatLng(bean.lat.toDouble(), bean.lng.toDouble())
+    }
+
+    private fun getTimeDetail(time: Long): String {
+        Logger.d(TAG, "time:$time")
+        val date = Date(time)
+        //SimpleDateFormat sdf=new SimpleDateFormat("HH:MM:ss");
+        val sdf = SimpleDateFormat("HH:mm:ss", Locale.CHINA)
+        Logger.d(TAG, "timeDetail:" + sdf.format(date))
+        return sdf.format(date)
+    }
+
+    private fun getPositionDetail(bean: PathTraceBean): String {
+        val builder = StringBuilder()
+        builder.append(mCurrentProgress)
+        builder.append("/")
+        builder.append(mCurrentBeanList!!.size)
+        builder.append("(")
+        builder.append(getTimeDetail(bean.timeTicks * 1000))
+        builder.append(") ")
+
+//        ChildInfo info = DataManager.getInstance().getCurrentChildInfo();
+//        builder.append(MainHelper.getLocaTypeStr(bean.getLocaType(), info.isWatchDebugFlag()));
+        val precision = ResUtils.getString(R.string.location_precision, bean.accuracy)
+        builder.append(precision)
+        return builder.toString()
+    }
+
+    private fun refreshChosenMarkerAndPositionDetail() {
+        if (mCurrentBeanList == null || mCurrentBeanList!!.isEmpty() || mCurrentBeanList!!.size < mCurrentProgress || mCurrentProgress < 1) {
+            return
+        }
+        if (mCurrentMarker != null) {
+            mCurrentMarker!!.remove()
+        }
+
+        //mCurrentProgress can be [0,mCurrentBeanLis.size()];
+        val bean = mCurrentBeanList!![mCurrentProgress - 1]
+        mTrackSeekBarFrag!!.setCurrentPositionDetail(bean, mCurrentProgress)
+        val latLng = getConvertedLatLng(bean)
+        val descriptor = BitmapDescriptorFactory.fromResource(R.drawable.point_selected)
+        val options = MarkerOptions().position(latLng).icon(descriptor)
+            .zIndex((NORMAL_Z_INDEX + 1).toFloat()).draggable(false).anchor(0.5f, 0.5f)
+        mOverlayOptionList.add(options)
+        mCurrentMarker = map!!.addMarker(options)
+        animateMapStatus(latLng)
+    }
+
+    private fun animateMapStatus(latLng: LatLng) {
+        val position = CameraPosition.Builder()
+            .target(latLng).zoom(14.0f).bearing(0f).tilt(0f).build()
+        map!!.animateCamera(CameraUpdateFactory.newCameraPosition(position))
+    }
+
+    //another useful function is that inner class could implements all the interfaces that outter class do not want to implements
+    //In this way, the code will be elegant and tidy
+    private inner class TrackSeekBarManager : OnSeekBarChangeListener {
+        override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
+            Logger.d(TAG, "progress:$progress")
+            mCurrentProgress = progress + 1
+            refreshChosenMarkerAndPositionDetail()
+        }
+
+        override fun onStartTrackingTouch(seekBar: SeekBar) {}
+        override fun onStopTrackingTouch(seekBar: SeekBar) {}
+    }
+
+    ///////////////////////////////////////////////////////////////
+    override fun onItemClick(postion: Int) {
+        mDateAdapter!!.setSelectItem(postion)
+        mDateAdapter!!.notifyItemRangeChanged(0, NEW_COUNT)
+        if (postion == 14) {
+            mRightTv!!.visibility = View.GONE
+        } else {
+            mRightTv!!.visibility = View.VISIBLE
+        }
+        if (dateData!![postion].date.time > System.currentTimeMillis()) {
+            ToastUtils.showShortToast(R.string.date_proceed_today_tip)
+            return
+        }
+        startToSubmit(dateData!![postion].date)
+    }
+
+    companion object {
+        private val TAG = MDPathHistoryActivity::class.java.simpleName
+        private const val FIXED_THREAD_NUM = 1
+        private const val NORMAL_Z_INDEX = 1
+        private const val MSG_DRAW_PATH = 1
+        private const val POLYLINE_WIDTH = 10
+        private const val DOT_LINE_WIDTH = 6
+        private const val COLOR_GREEN = -0xda60bc
+        private const val COLOR_BLUE = -0xd36301
+        private const val ONE_DAY_MILL_SECONDS = (24 * 3600 * 1000).toLong()
+        private const val HALF_HOUR_SECONDS = (38 * 60).toLong()
+        private const val PATTERN_GAP_LENGTH_PX = 20
+        private val DOT = Dot()
+        private val GAP = Gap(PATTERN_GAP_LENGTH_PX.toFloat())
+        private val PATTERN_DOTTED = listOf(DOT, GAP)
+    }
+}

+ 1 - 0
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/right/ChooseRelationActivity.kt

@@ -280,6 +280,7 @@ class ChooseRelationActivity : BaseNoActionBarActivity(), View.OnClickListener {
         }
     }
 
+    @Deprecated("Deprecated in Java")
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         super.onActivityResult(requestCode, resultCode, data)
         if (resultCode == RESULT_OK) {

+ 1 - 0
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/right/ScanQRCodeActivity.kt

@@ -261,6 +261,7 @@ class ScanQRCodeActivity : BaseNoActionBarActivity(), View.OnClickListener, OnQR
     }
 
     private val mBeepListener = OnCompletionListener { mMediaPlayer!!.seekTo(0) }
+    @Deprecated("Deprecated in Java")
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         super.onActivityResult(requestCode, resultCode, data)
         if (resultCode == LoginActivity.FINISH_CODE) {

+ 2 - 2
app/src/main/java/com/sikey/veryfit/ui/avtivity/component/right/WebViewActivity.java

@@ -112,7 +112,7 @@ public class WebViewActivity extends BaseNoActionBarActivity {
                     @Override
                     public void run() {
                         hideProgressDialog();
-                        ToastUtils.showShortToast(R.string.network_exception);
+                        /* ToastUtils.showShortToast(R.string.network_exception) */;
                     }
                 });
             }
@@ -191,7 +191,7 @@ public class WebViewActivity extends BaseNoActionBarActivity {
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
 
         });

+ 1 - 1
app/src/main/java/com/sikey/veryfit/ui/avtivity/login/ResetPassActivity.java

@@ -309,7 +309,7 @@ public class ResetPassActivity extends BaseNoActionBarActivity implements View.O
             @Override
             public void onErrorResponse(VolleyError error) {
                 hideProgressDialog();
-                ToastUtils.showShortToast(R.string.network_exception);
+                /* ToastUtils.showShortToast(R.string.network_exception) */;
             }
         });
         showProgressDialog();

+ 1 - 0
app/src/main/java/com/sikey/veryfit/ui/avtivity/login/SignupActivity.kt

@@ -311,6 +311,7 @@ class SignupActivity : BaseNoActionBarActivity(), View.OnClickListener {
             }
         }
 
+    @Deprecated("Deprecated in Java")
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         super.onActivityResult(requestCode, resultCode, data)
         if (resultCode == LoginActivity.FINISH_CODE) {

+ 36 - 14
app/src/main/java/com/sikey/veryfit/ui/avtivity/main/CustomMapFragment.kt

@@ -15,7 +15,12 @@ import com.google.android.gms.maps.CameraUpdateFactory
 import com.google.android.gms.maps.GoogleMap
 import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener
 import com.google.android.gms.maps.SupportMapFragment
-import com.google.android.gms.maps.model.*
+import com.google.android.gms.maps.model.BitmapDescriptorFactory
+import com.google.android.gms.maps.model.Circle
+import com.google.android.gms.maps.model.LatLng
+import com.google.android.gms.maps.model.LatLngBounds
+import com.google.android.gms.maps.model.Marker
+import com.google.android.gms.maps.model.MarkerOptions
 import com.sikey.veryfit.R
 import com.sikey.veryfit.app.DataManager.Companion.checkLoginResponseAndCurrentChildInfo
 import com.sikey.veryfit.app.DataManager.Companion.instance
@@ -31,7 +36,7 @@ import com.sikey.veryfit.ui.custom.popupwindow.AnimationPopWindow
 import com.sikey.veryfit.ui.custom.popupwindow.OnItemShrinkEndListener
 import com.sikey.veryfit.utils.ToastUtils
 import com.sikey.veryfit.utils.Verification
-import java.util.*
+import java.util.Calendar
 
 /**
  * Created by bruce.jiang on 2017/2/27.
@@ -54,19 +59,21 @@ class CustomMapFragment : SupportMapFragment(), OnMarkerClickListener, IAvatarOb
                 val hour = calendar[Calendar.HOUR_OF_DAY]
                 val minute = calendar[Calendar.MINUTE]
 
-/*                List<ClassForbiddenBean> beens = currentChild.getSchedules();
-                for(ClassForbiddenBean bean : beens){
-                    isForbidden |= bean.isInforbidden(weekDay, hour, minute);
-                }*/
+                /*                List<ClassForbiddenBean> beens = currentChild.getSchedules();
+                                for(ClassForbiddenBean bean : beens){
+                                    isForbidden |= bean.isInforbidden(weekDay, hour, minute);
+                                }*/
             }
             when (msg.what) {
                 MSG_EXPAND -> {
                     Logger.d(TAG, "received MSG_EXPAND")
                     mAnimationPopWindow!!.expandMenu()
                 }
+
                 MSG_PRIVATE_CHAT -> jumpToChat()
                 MSG_SHOW_PATH -> //                    showPath();
                     callBaby()
+
                 MSG_SEND_SMS -> {
                     if (isForbidden) {
                         ToastUtils.showShortToast(R.string.cannot_monitor_while_inforbidden)
@@ -126,13 +133,13 @@ class CustomMapFragment : SupportMapFragment(), OnMarkerClickListener, IAvatarOb
         }
         mOverlayOptionList.clear()
         for (info in items) {
-            var lat = info.device?.location?.lat ?: "0.0"
+            var lat = info.device.location?.lat ?: "0.0"
             if (lat.isEmpty()) lat = "0.0"
             var lng = info.device?.location?.lng ?: "0.0"
             if (lng.isEmpty()) lng = "0.0"
             val latitude = getCheckedLatitude(lat.toDouble())
             val longitude = getCheckedLongitude(lng.toDouble())
-            Logger.d(TAG, "latitude=$latitude,longitude$longitude")
+            Logger.d(TAG, "latitude = $latitude,longitude = $longitude")
             val layerIndex: Int = if (info == instance.currentChildInfo) {
                 INIT_LAYER_INDEX + 1
             } else {
@@ -317,12 +324,24 @@ class CustomMapFragment : SupportMapFragment(), OnMarkerClickListener, IAvatarOb
 
     private fun getDecodeLat(lat: String): Double {
 //        val str: String = String(Base64.decode(lat, Base64.DEFAULT))
-        return lat.toDouble()
+        return lat.let {
+            if (
+                it.isEmpty()
+            ) 0.0
+            else
+                it.toDouble()
+        }
     }
 
     private fun getDecodeLng(lng: String): Double {
 //        val str: String = String(Base64.decode(lng, Base64.DEFAULT))
-        return lng.toDouble()
+        return lng.let {
+            if (
+                it.isEmpty()
+            ) 0.0
+            else
+                it.toDouble()
+        }
     }
 
     private fun addMarker(childTrackView: View?, latLng: LatLng, layerIndex: Int, info: ChildInfo) {
@@ -433,16 +452,19 @@ class CustomMapFragment : SupportMapFragment(), OnMarkerClickListener, IAvatarOb
                     { mHandler.sendEmptyMessage(MSG_SEND_SMS) },
                     ANIMATE_DELAY.toLong()
                 )
+
             0 ->                 //showPath();
                 mHandler.postDelayed(
                     { mHandler.sendEmptyMessage(MSG_SHOW_PATH) },
                     ANIMATE_DELAY.toLong()
                 )
+
             3 ->                 //sendSmsToWatch();
                 mHandler.postDelayed(
                     { mHandler.sendEmptyMessage(MSG_NAVIGATE) },
                     ANIMATE_DELAY.toLong()
                 )
+
             1 -> mHandler.postDelayed(
                 { mHandler.sendEmptyMessage(MSG_PRIVATE_CHAT) },
                 ANIMATE_DELAY.toLong()
@@ -468,10 +490,10 @@ class CustomMapFragment : SupportMapFragment(), OnMarkerClickListener, IAvatarOb
             val hour = calendar[Calendar.HOUR_OF_DAY]
             val minute = calendar[Calendar.MINUTE]
 
-/*            List<ClassForbiddenBean> beens = info.getSchedules();
-            for(ClassForbiddenBean bean : beens){
-                isForbidden |= bean.isInforbidden(weekDay, hour, minute);
-            }*/
+            /*            List<ClassForbiddenBean> beens = info.getSchedules();
+                        for(ClassForbiddenBean bean : beens){
+                            isForbidden |= bean.isInforbidden(weekDay, hour, minute);
+                        }*/
         }
         if (isForbidden) {
             ToastUtils.showShortToast(R.string.cannot_make_call_while_inforbidden)

+ 6 - 2
app/src/main/java/com/sikey/veryfit/ui/avtivity/main/DispatchActivity.kt

@@ -49,7 +49,11 @@ import com.sikey.veryfit.ui.avtivity.component.right.AccountManagerActivity
 import com.sikey.veryfit.ui.avtivity.component.right.ScanQRCodeActivity
 import com.sikey.veryfit.ui.avtivity.component.right.WebViewActivity
 import com.sikey.veryfit.ui.avtivity.login.LoginActivity
-import com.sikey.veryfit.ui.fragment.main.*
+import com.sikey.veryfit.ui.fragment.main.ChatMenuFragment
+import com.sikey.veryfit.ui.fragment.main.LocationFragment
+import com.sikey.veryfit.ui.fragment.main.MineFragment
+import com.sikey.veryfit.ui.fragment.main.RightMenuFragment
+import com.sikey.veryfit.ui.fragment.main.WatchFragment
 import com.sikey.veryfit.update.VersionUpdate
 import com.sikey.veryfit.utils.SharedPreferenceUtil
 import com.sikey.veryfit.utils.ToastUtils
@@ -504,7 +508,7 @@ class DispatchActivity : BaseNoActionBarActivity() ,BottomNavigationBar.OnTabSel
                 }
             }
         }) {
-            ToastUtils.showShortToast(R.string.network_exception)
+//            /* ToastUtils.showShortToast(R.string.network_exception) */
         }
         RequestManager.getInstance(this).addToRequestQueue(request)
 

+ 1 - 0
app/src/main/java/com/sikey/veryfit/ui/avtivity/main/SplashActivity.kt

@@ -311,6 +311,7 @@ class SplashActivity : BaseActivity() {
         }
     }
 
+    @Deprecated("Deprecated in Java")
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         super.onActivityResult(requestCode, resultCode, data)
         val ADREQUEST = 101

+ 13 - 5
app/src/main/java/com/sikey/veryfit/ui/custom/FABScrollBehavior.java

@@ -9,8 +9,12 @@ import android.content.Context;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
 import com.google.android.material.appbar.AppBarLayout;
+
+import androidx.annotation.RequiresApi;
 import androidx.coordinatorlayout.widget.CoordinatorLayout;
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
+
+import android.os.Build;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.View;
@@ -48,12 +52,16 @@ public class FABScrollBehavior  extends FloatingActionButton.Behavior{
         return returnValue;
     }
 
+    @RequiresApi(api = Build.VERSION_CODES.S)
     public static int getToolbarHeight(Context context) {
-        final TypedArray styledAttributes = context.getTheme().obtainStyledAttributes(
-                new int[]{R.attr.actionBarSize});
-        int toolbarHeight = (int) styledAttributes.getDimension(0, 0);
-        int height = context.getResources().getDimensionPixelSize(R.dimen.toolbar_big_height);
-        styledAttributes.recycle();
+        int toolbarHeight;
+        int height;
+        try (TypedArray styledAttributes = context.getTheme().obtainStyledAttributes(
+                new int[]{R.attr.actionBarSize})) {
+            toolbarHeight = (int) styledAttributes.getDimension(0, 0);
+            height = context.getResources().getDimensionPixelSize(R.dimen.toolbar_big_height);
+            styledAttributes.recycle();
+        }
 
         return height-toolbarHeight;
     }

+ 1 - 1
app/src/main/java/com/sikey/veryfit/ui/fragment/main/MineFragment.kt

@@ -191,7 +191,7 @@ class MineFragment : androidx.fragment.app.Fragment() , View.OnClickListener {
 
                         }
                     }
-                }, Response.ErrorListener { ToastUtils.showShortToast(R.string.network_exception) })
+                }, Response.ErrorListener { /* ToastUtils.showShortToast(R.string.network_exception) */ })
 
         RequestManager.getInstance().addToRequestQueue(request)
     }

+ 1 - 1
app/src/main/java/com/sikey/veryfit/ui/fragment/main/WatchFragment.kt

@@ -150,7 +150,7 @@ class WatchFragment : androidx.fragment.app.Fragment() ,WatchFuncAdapter.OnItemC
                 }
             }
         }) {
-            ToastUtils.showShortToast(R.string.network_exception)
+            /* ToastUtils.showShortToast(R.string.network_exception) */
         }
     }
 

+ 10 - 9
app/src/main/java/com/sikey/veryfit/ui/fragment/path/TrackSeekBarFragment.java

@@ -12,6 +12,7 @@ import android.widget.SeekBar;
 import android.widget.TextView;
 
 import com.sikey.veryfit.R;
+import com.sikey.veryfit.component.network.http.model.Location;
 import com.sikey.veryfit.constant.Constant;
 import com.sikey.veryfit.constant.UrlConstants;
 import com.sikey.veryfit.data.bean.PathTraceBean;
@@ -38,12 +39,12 @@ public class TrackSeekBarFragment extends Fragment {
     private TextView mPositon;
     private TextView mLocalType;
     private SeekBar mSeekBar;
-    private PathTraceBean mInitDetail;
+    private Location mInitDetail;
 
     private RelativeLayout mEmptyView;
     private final String[] localType = {"GPS","IBS","WIFI"};
 
-    public static TrackSeekBarFragment newInstance(int maxNum,SeekBar.OnSeekBarChangeListener listener, PathTraceBean initDetail)
+    public static TrackSeekBarFragment newInstance(int maxNum,SeekBar.OnSeekBarChangeListener listener, Location initDetail)
     {
         TrackSeekBarFragment frag=new TrackSeekBarFragment();
         Bundle bundle=new Bundle();
@@ -55,7 +56,7 @@ public class TrackSeekBarFragment extends Fragment {
         return frag;
     }
 
-    public void setCurrentPositionDetail(PathTraceBean detail,int currentProgress)
+    public void setCurrentPositionDetail(Location detail, int currentProgress)
     {
         initData(detail,currentProgress);
     }
@@ -126,21 +127,21 @@ public class TrackSeekBarFragment extends Fragment {
         });
     }
 
-    private void initData(PathTraceBean mInitDetail,int currentpositon) {
+    private void initData(Location mInitDetail,int currentpositon) {
         if(mInitDetail==null){
             mEmptyView.setVisibility(View.VISIBLE);
             return;
         }
-        mTime.setText(FormatUtils.getDate(mInitDetail.getTimeTicks(),Constant.TITLE_TIME_FORMAT));
-        mDate.setText(FormatUtils.getDate(mInitDetail.getTimeTicks(),Constant.TITLE_DATE_FORMAT));
-        mAccuracy.setText(ResUtils.getString(R.string.location_precision, mInitDetail.getAccuracy()));
+        mTime.setText(FormatUtils.getDate(mInitDetail.getDate(),Constant.TITLE_TIME_FORMAT));
+        mDate.setText(FormatUtils.getDate(mInitDetail.getDate(),Constant.TITLE_DATE_FORMAT));
+        mAccuracy.setText(ResUtils.getString(R.string.location_precision, mInitDetail.getAcc()));
         mCurrentPosition.setText(""+currentpositon);
         mMaxPositon.setText("/"+mMaxNum);
         //测试服增加localtype显示
-        if(UrlConstants.getServerMode() == 1){
+/*        if(UrlConstants.getServerMode() == 1){
             mLocalType.setVisibility(View.VISIBLE);
             mLocalType.setText(localType[mInitDetail.getLocaType()]);
-        }
+        }*/
 
     }
 

+ 4 - 3
app/src/main/java/com/sikey/veryfit/utils/HttpsUtil.java

@@ -43,12 +43,13 @@ public class HttpsUtil {
      * @param context
      */
     public static void initHttpsUrlConnection(Context context) {
-        InputStream[] certificates = getCertificates(context, CERTIFICATES);
+/*        InputStream[] certificates = getCertificates(context, CERTIFICATES);
         SSLSocketFactory sslSocketFactory = getSSLSocketFactory(certificates, null, null);
         HttpsURLConnection.setDefaultSSLSocketFactory(sslSocketFactory);
         if (certificates == null) {
-            HttpsURLConnection.setDefaultHostnameVerifier(getUnSafeHostnameVerifier());
-        }
+
+        }*/
+        HttpsURLConnection.setDefaultHostnameVerifier(getUnSafeHostnameVerifier());
     }
 
     /**

+ 12 - 8
build.gradle

@@ -1,16 +1,18 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 
 buildscript {
-    ext.kotlin_version = '1.7.20'
+    ext.kotlin_version = '1.9.0'
     repositories {
         google()
         mavenCentral()
-        maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
-        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
-        maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
+        maven { url 'https://maven.aliyun.com/repository/central' }
+        maven { url 'https://maven.aliyun.com/repository/public' }
+        maven { url 'https://maven.aliyun.com/repository/gradle-plugin'}
+        maven { url 'https://maven.aliyun.com/repository/google'}
+        maven { url 'https://maven.aliyun.com/repository/jcenter'}
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:7.3.1'
+        classpath 'com.android.tools.build:gradle:8.2.2'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
@@ -22,9 +24,11 @@ allprojects {
     repositories {
         google()
         mavenCentral()
-        maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
-        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
-        maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
+        maven { url 'https://maven.aliyun.com/repository/central' }
+        maven { url 'https://maven.aliyun.com/repository/public' }
+        maven { url 'https://maven.aliyun.com/repository/gradle-plugin'}
+        maven { url 'https://maven.aliyun.com/repository/google'}
+        maven { url 'https://maven.aliyun.com/repository/jcenter'}
         maven { url "https://jitpack.io" }
 
     }

+ 11 - 35
google-services.json

@@ -1,60 +1,36 @@
 {
   "project_info": {
-    "project_number": "287730646142",
-    "firebase_url": "https://damas-214106.firebaseio.com",
-    "project_id": "damas-214106",
-    "storage_bucket": "damas-214106.appspot.com"
+    "project_number": "389777651454",
+    "firebase_url": "https://kido-158903.firebaseio.com",
+    "project_id": "kido-158903",
+    "storage_bucket": "kido-158903.appspot.com"
   },
   "client": [
     {
       "client_info": {
-        "mobilesdk_app_id": "1:287730646142:android:15249c17293e2537",
+        "mobilesdk_app_id": "1:389777651454:android:5f5ed0e160c8b19f9f17af",
         "android_client_info": {
-          "package_name": "com.ojoy.champs"
+          "package_name": "com.sikey.veryfit"
         }
       },
       "oauth_client": [
         {
-          "client_id": "287730646142-qu54tbpaa0kf3scn4tltv1u7s2bbrb8v.apps.googleusercontent.com",
+          "client_id": "389777651454-t1h7khdocjf7avicleb6e1o997jbpokn.apps.googleusercontent.com",
           "client_type": 1,
           "android_info": {
-            "package_name": "com.ojoy.champs",
-            "certificate_hash": "08169deb9909609203251f17bd98f385baf67d86"
+            "package_name": "com.sikey.veryfit",
+            "certificate_hash": "8f2668baf60a0b920de8896503b4aabf85c83dbc"
           }
-        },
-        {
-          "client_id": "287730646142-v2kgj66cilo9lam61v5h3qtn5fjv1qvv.apps.googleusercontent.com",
-          "client_type": 3
         }
       ],
       "api_key": [
         {
-          "current_key": "AIzaSyDDV-Ntdy6VpwihWkI1isGzMAIAv7hoE58"
+          "current_key": "AIzaSyA-jGorZyhppk2jIYsbSn2MxIV39bZFb6E"
         }
       ],
       "services": {
-        "analytics_service": {
-          "status": 1
-        },
         "appinvite_service": {
-          "status": 2,
-          "other_platform_oauth_client": [
-            {
-              "client_id": "287730646142-v2kgj66cilo9lam61v5h3qtn5fjv1qvv.apps.googleusercontent.com",
-              "client_type": 3
-            },
-            {
-              "client_id": "287730646142-bqa8ht6e0phpbpbtpd3id7i374tfpn82.apps.googleusercontent.com",
-              "client_type": 2,
-              "ios_info": {
-                "bundle_id": "com.ojoy.champs",
-                "app_store_id": "1433460302"
-              }
-            }
-          ]
-        },
-        "ads_service": {
-          "status": 2
+          "other_platform_oauth_client": []
         }
       }
     }

+ 4 - 0
gradle.properties

@@ -16,6 +16,10 @@
 # This option should only be used with decoupled projects. More details, visit
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
+android.defaults.buildfeatures.buildconfig=true
 android.enableJetifier=true
+android.nonFinalResIds=false
+android.nonTransitiveRClass=false
 android.useAndroidX=true
+org.gradle.configuration-cache=true
 org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError

+ 3 - 3
gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
-#Tue Dec 12 18:22:43 CST 2023
+#Tue Jan 30 17:47:03 CST 2024
 distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
 distributionPath=wrapper/dists
-zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-milestone-1-bin.zip
 zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists