gator-解决设置时区的bug
authork.liang <liangkang648253071@126.com>
Tue, 18 Jan 2022 03:41:28 +0000 (11:41 +0800)
committerk.liang <liangkang648253071@126.com>
Tue, 18 Jan 2022 03:41:28 +0000 (11:41 +0800)
app/release/output.json
app/src/main/java/com/enqualcomm/support/utils/TimeUtil.java
app/src/main/java/com/ic/protocols/protocol_gator.java
app/version_code.properties

index b005b9b..45a3b59 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1037,"versionName":"2201041149","enabled":true,"outputFile":"ICSer_V1037_2201041149_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V1037_2201041149_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1043,"versionName":"2201181017","enabled":true,"outputFile":"ICSer_V1043_2201181017_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V1043_2201181017_release.apk","properties":{}}]
\ No newline at end of file
index d7223c9..1121c29 100644 (file)
@@ -5,6 +5,8 @@ import android.content.Context;
 import android.provider.Settings;
 import android.text.format.DateFormat;
 
+import com.enqualcomm.support.Config;
+
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
@@ -545,18 +547,134 @@ public class TimeUtil {
 
     static String getTimeZoneID_ByDisplayName(String tzname) {
         String str = TimeZone.getDefault().getID();
-        if (tzname.equals("GMT+03:30")) {
-            str = "Asia/Tehran";
-        } else if (tzname.equals("GMT+04:30")) {
-            str = "Asia/Kabul";
-        } else if (tzname.equals("GMT+05:30")) {
-            str = "Asia/Colombo";
-        } else if (tzname.equals("GMT+06:30")) {
-            str = "Asia/Rangoon";
-        } else if (tzname.equals("GMT+09:30")) {
-            str = "Australia/Darwin";
-        } else if (tzname.equals("GMT+09:00")) {
-            str = "Asia/Tokyo";
+        if(Config.protocol_no != Config.PROTOCOL_GATOR) {
+            if (tzname.equals("GMT+03:30")) {
+                str = "Asia/Tehran";
+            } else if (tzname.equals("GMT+04:30")) {
+                str = "Asia/Kabul";
+            } else if (tzname.equals("GMT+05:30")) {
+                str = "Asia/Colombo";
+            } else if (tzname.equals("GMT+06:30")) {
+                str = "Asia/Rangoon";
+            } else if (tzname.equals("GMT+09:30")) {
+                str = "Australia/Darwin";
+            } else if (tzname.equals("GMT+09:00")) {
+                str = "Asia/Tokyo";
+            }
+        }else {
+            switch (tzname) {
+                case "GMT-11:30":
+                case "GMT-11:00":
+                    str = "Pacific/Midway";
+                    break;
+                case "GMT-10:30":
+                case "GMT-10:00":
+                    str = "Pacific/Honolulu";
+                    break;
+                case "GMT-09:30":
+                    str = "Pacific/Marquesas";
+                    break;
+                case "GMT-09:00":
+                    str = "Pacific/Gambier";
+                    break;
+                case "GMT-08:30":
+                case "GMT-08:00":
+                    str = "Pacific/Pitcairn";
+                    break;
+                case "GMT-07:30":
+                case "GMT-07:00":
+                    str = "America/Mazatlan";
+                    break;
+                case "GMT-06:30":
+                case "GMT-06:00":
+                    str = "Pacific/Galapagos";
+                    break;
+                case "GMT-05:30":
+                case "GMT-05:00":
+                    str = "America/Havana";
+                    break;
+                case "GMT-04:30":
+                case "GMT-04:00":
+                    str = "America/Barbados";
+                    break;
+                case "GMT-03:30":
+                    str = "Canada/Newfoundland";
+                    break;
+                case "GMT-03:00":
+                    str = "America/Mendoza";
+                    break;
+                case "GMT-02:30":
+                case "GMT-02:00":
+                    str = "Brazil/DeNoronha";
+                    break;
+                case "GMT-01:30":
+                case "GMT-01:00":
+                    str = "America/Scoresbysund";
+                    break;
+                case "GMT+00:30":
+                case "GMT+00:00":
+                    str = "Atlantic/Azores";
+                    break;
+                case "GMT+01:30":
+                case "GMT+01:00":
+                    str = "Europe/Brussels";
+                    break;
+                case "GMT+02:30":
+                case "GMT+02:00":
+                    str = "Europe/Zaporozhye";
+                    break;
+                case "GMT+03:30":
+                    str = "Asia/Tehran";
+                    break;
+                case "GMT+03:00":
+                    str = "Europe/Moscow";
+                    break;
+                case "GMT+04:30":
+                    str = "Asia/Kabul";
+                    break;
+                case "GMT+04:00":
+                    str = "Asia/Dubai";
+                    break;
+                case "GMT+05:30":
+                    str = "Asia/Kolkata";
+                    break;
+                case "GMT+05:00":
+                    str = "Asia/Aqtobe";
+                    break;
+                case "GMT+06:30":
+                    str = "Asia/Rangoon";
+                    break;
+                case "GMT+06:00":
+                    str = "Asia/Urumqi";
+                    break;
+                case "GMT+07:30":
+                case "GMT+07:00":
+                    str = "Asia/Vientiane";
+                    break;
+                case "GMT+08:30":
+                case "GMT+08:00":
+                    str = "Asia/Shanghai";
+                    break;
+                case "GMT+09:30":
+                    str = "Australia/Adelaide";
+                    break;
+                case "GMT+09:00":
+                    str = "Asia/Yakutsk";
+                    break;
+                case "GMT+10:30":
+                    str = "Australia/Yancowinna";
+                    break;
+                case "GMT+10:00":
+                    str = "Asia/Vladivostok";
+                    break;
+                case "GMT+11:30":
+                case "GMT+11:00":
+                    str = "Asia/Magadan";
+                    break;
+                case "GMT+12:00":
+                    str = "Pacific/Majuro";
+                    break;
+            }
         }
         return str;
     }
@@ -586,11 +704,17 @@ public class TimeUtil {
                 ICLogger.d("===tmp:" + str1);
                 ICLogger.d("setTimeZone:" + timeZone1.getDisplayName());
                 alarmManager.setTimeZone(timeZone1.getID());
+                Calendar now = Calendar.getInstance();
+                TimeZone tz = TimeZone.getTimeZone(timeZone1.getID());
+                now.setTimeZone(tz);
                 return;
             }
         }
-        ICLogger.d(paramString + " not found , set to default timezone " + timeZone.getID());
         alarmManager.setTimeZone(getTimeZoneID_ByDisplayName(paramString));
+        ICLogger.d(paramString + " not found , set to default timezone " + getTimeZoneID_ByDisplayName(paramString));
+        Calendar now = Calendar.getInstance();
+        TimeZone tz = TimeZone.getTimeZone(getTimeZoneID_ByDisplayName(paramString));
+        now.setTimeZone(tz);
     }
 
 
index 8c67c41..30aa43d 100644 (file)
@@ -25,6 +25,7 @@ import com.enqualcomm.support.bean.VoiceContent;
 import com.enqualcomm.support.bean.VoicePacket;
 import com.enqualcomm.support.provider.ICAlarmProvider;
 import com.enqualcomm.support.provider.ICDatabaseHelper;
+import com.enqualcomm.support.provider.ICGlobalSettingsProvider;
 import com.enqualcomm.support.provider.ICMembersProvider;
 import com.enqualcomm.support.provider.WeTalkMessageProvider;
 import com.enqualcomm.support.service.SilentManager;
@@ -529,6 +530,7 @@ public class protocol_gator {
                     ICLogger.i("===" + TimeUtil.getDefaultTimeZone());
                     TimeUtil.setSysDateTime(runtime.getContextProxy().context, datetime, msg[3], true);
                     ICLogger.i("===" + TimeUtil.getDefaultTimeZone());
+                    updateIcSettingsValue("TIMEZONE_CHANGED","00");
                     connection.send(BPXX_REPLY(runtime, CMD_TYPE.BP03, index, true));
                 } else {
                     connection.send(BPXX_REPLY(runtime, CMD_TYPE.BP03, index, false));
@@ -545,6 +547,15 @@ public class protocol_gator {
         }
     }
 
+    private void updateIcSettingsValue(String key, String value) {
+        ContentResolver resolver = mRuntime.getContextProxy().getResolver();
+        ContentValues values = new ContentValues();
+        values.put(ICDatabaseHelper.sKey, key);
+        //把值保存到数据库中,相机会就监听数据库值的变化,做出响应
+        values.put(ICDatabaseHelper.sValue, value);
+        resolver.insert(Uri.parse(ICGlobalSettingsProvider.SETTINGS), values);
+    }
+
     private void appendSOS(Runtime runtime, ArrayList<String> numbers, ArrayList<String> names, ArrayList<String> types) {
         ArrayList<Contact> contactArray = new ArrayList<>();
         //先删除掉SOS的号码
@@ -1700,6 +1711,7 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
         RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
         int i = fzdCallback.beginBroadcast();
         try {
+            ICLogger.i("dispatchAP51 i = "+i);
             while (i > 0) {
                 i--;
                 //1是视频通话,0是语音通话
index 4ef6cbe..6ef54e8 100644 (file)
@@ -1,2 +1,2 @@
-#Tue Jan 04 11:49:56 CST 2022\r
-VERSION_CODE=1037\r
+#Tue Jan 18 10:17:29 CST 2022\r
+VERSION_CODE=1043\r