add s123 weather aidl.
authorTrillGates <williamtrillgates@gmail.com>
Wed, 30 Jun 2021 04:05:25 +0000 (12:05 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Wed, 30 Jun 2021 04:05:25 +0000 (12:05 +0800)
12 files changed:
app/release/ICSer_V880_2106291941_release.apk [moved from app/release/ICSer_V879_2106282242_release.apk with 77% similarity]
app/release/output.json
app/src/main/AndroidManifest.xml
app/src/main/aidl/com/ic/s123/IS123WeatherCallback.aidl [new file with mode: 0644]
app/src/main/aidl/com/ic/s123/IS123WeatherService.aidl [new file with mode: 0644]
app/src/main/aidl/com/ic/s123/S123WeatherInfo.aidl [new file with mode: 0644]
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/bean/Runtime.java
app/src/main/java/com/ic/protocols/protocolAPIHelper.java
app/src/main/java/com/ic/protocols/protocol_s123.java
app/src/main/java/com/ic/s123/S123WeatherInfo.java [new file with mode: 0644]
app/version_code.properties

similarity index 77%
rename from app/release/ICSer_V879_2106282242_release.apk
rename to app/release/ICSer_V880_2106291941_release.apk
index 3495ae5..86da53d 100644 (file)
Binary files a/app/release/ICSer_V879_2106282242_release.apk and b/app/release/ICSer_V880_2106291941_release.apk differ
index 23a4ee8..619a3d8 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":879,"versionName":"2106282242","enabled":true,"outputFile":"ICSer_V879_2106282242_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V879_2106282242_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":880,"versionName":"2106291941","enabled":true,"outputFile":"ICSer_V880_2106291941_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V880_2106291941_release.apk","properties":{}}]
\ No newline at end of file
index 60eda8a..7d1d148 100644 (file)
                 <action android:name="com.enqualcomm.support.OTHER_ALARM_START" />
                 <action android:name="com.ic.action.VIDEO_CALL" />
                 <action android:name="com.ic.fzd.action.WEATHER" />
+                <action android:name="com.ic.s123.action.WEATHER" />
                 <action android:name="com.ic.power.ACTION_ALARM_POWER_OFF" />
             </intent-filter>
         </service>
diff --git a/app/src/main/aidl/com/ic/s123/IS123WeatherCallback.aidl b/app/src/main/aidl/com/ic/s123/IS123WeatherCallback.aidl
new file mode 100644 (file)
index 0000000..f18dec9
--- /dev/null
@@ -0,0 +1,8 @@
+
+package com.ic.s123;
+
+import com.ic.s123.S123WeatherInfo;
+
+interface IS123WeatherCallback {
+    void onWeatherLoaded(in List<S123WeatherInfo> resultList);
+}
\ No newline at end of file
diff --git a/app/src/main/aidl/com/ic/s123/IS123WeatherService.aidl b/app/src/main/aidl/com/ic/s123/IS123WeatherService.aidl
new file mode 100644 (file)
index 0000000..18c9d1c
--- /dev/null
@@ -0,0 +1,10 @@
+
+package com.ic.s123;
+
+import com.ic.s123.IS123WeatherCallback;
+
+interface IS123WeatherService {
+    void registerCallback(in IS123WeatherCallback callback);
+    void unRegisterCallback(in IS123WeatherCallback callback);
+    void getWeatherInfo();
+}
\ No newline at end of file
diff --git a/app/src/main/aidl/com/ic/s123/S123WeatherInfo.aidl b/app/src/main/aidl/com/ic/s123/S123WeatherInfo.aidl
new file mode 100644 (file)
index 0000000..260aafe
--- /dev/null
@@ -0,0 +1,4 @@
+
+package com.ic.s123;
+
+parcelable S123WeatherInfo;
\ No newline at end of file
index dd603f5..2af7b70 100644 (file)
@@ -70,6 +70,9 @@ import com.ic.fzd.weather.IFZDWeatherService;
 import com.ic.jni.ICJniUtils;
 import com.ic.protocols.protocolAPIHelper;
 import com.ic.protocols.protocol_fzd;
+import com.ic.protocols.protocol_s123;
+import com.ic.s123.IS123WeatherCallback;
+import com.ic.s123.IS123WeatherService;
 
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
@@ -1610,10 +1613,10 @@ public class CoreService extends Service {
         String action = intent.getAction();
         if ("com.ic.action.VIDEO_CALL".equals(action)) {
             try {
-                if(Config.protocol_no == Config.PROTOCOL_FZD) {
+                if (Config.protocol_no == Config.PROTOCOL_FZD) {
                     mFZDService.getBRId();
                     mFZDService.getContacts();
-                }else{
+                } else {
                     //need user implement for other protocol
 
                 }
@@ -1623,6 +1626,9 @@ public class CoreService extends Service {
             return mFZDService;
         } else if ("com.ic.fzd.action.WEATHER".equals(action)) {
             return mFZDWeatherService;
+        } else if ("com.ic.s123.action.WEATHER".equals(action)) {
+            //S123获取天气
+            return mS123WeatherService;
         }
         return this.mMessenger.getBinder();
     }
@@ -1631,6 +1637,30 @@ public class CoreService extends Service {
         this.connection.close();
     }
 
+    private final IS123WeatherService.Stub mS123WeatherService = new IS123WeatherService.Stub() {
+        @Override
+        public void registerCallback(IS123WeatherCallback callback) {
+            runtime.registerS123WeatherCallback(callback);
+        }
+
+        @Override
+        public void unRegisterCallback(IS123WeatherCallback callback) {
+            runtime.registerS123WeatherCallback(null);
+        }
+
+        @Override
+        public void getWeatherInfo() {
+            //获取一下数据
+            getS123WeatherInfo();
+        }
+    };
+
+    private void getS123WeatherInfo() {
+        //获取天气信息
+        StringMessage wt = protocol_s123.APTQ(runtime);
+        connection.send(wt);
+    }
+
     private final IFZDWeatherService.Stub mFZDWeatherService = new IFZDWeatherService.Stub() {
         @Override
         public void registerCallback(IFZDWeatherCallback callback) {
index acfb629..162aea6 100644 (file)
@@ -17,8 +17,11 @@ import com.enqualcomm.support.utils.DnsUtil;
 import com.enqualcomm.support.utils.ICLogger;
 import com.enqualcomm.support.utils.LanguageUtils;
 import com.ic.fzd.weather.IFZDWeatherCallback;
+import com.ic.s123.IS123WeatherCallback;
+import com.ic.s123.S123WeatherInfo;
 
 import java.io.File;
+import java.util.List;
 
 public class Runtime {
     private boolean debugflag = false;
@@ -228,6 +231,23 @@ public class Runtime {
     }
 
 
+    public IS123WeatherCallback mS123WeatherCallback = null;
+
+    public void registerS123WeatherCallback(IS123WeatherCallback callback) {
+        mS123WeatherCallback = callback;
+    }
+
+    public void updateS123Weather(List<S123WeatherInfo> S123WeatherInfo) {
+        if (mS123WeatherCallback != null) {
+            try {
+                mS123WeatherCallback.onWeatherLoaded(S123WeatherInfo);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+
     public enum AlarmType {
         ALARM_SOS, //sos
         ALARM_LOWBATTERY, //低电
@@ -991,9 +1011,10 @@ public class Runtime {
     }
 
     //Gator 使用
-    public void setmccmnc(String mccmnc){
+    public void setmccmnc(String mccmnc) {
         this.mccAndMnc = mccmnc;
     }
+
     //实际上是分别设置MCC和MNC
     public void setMccAndMnc(String MccMnc) {
 
@@ -1249,25 +1270,26 @@ public class Runtime {
         return mLBSMultiStationData;
     }
 
-    public String getGatorLBSData(){
+    public String getGatorLBSData() {
 //        String netstat="46 00 002482 0000DE127";
 //        MCC(%03d)+MNC(%03d)+LACID(%04X)+CELLID(%07X)+RX LEVEL(%02X),
         StringBuilder sb = new StringBuilder();
-        int mcc=0;
-        int mnc=0;
+        int mcc = 0;
+        int mnc = 0;
         try {
             mcc = Integer.parseInt(gpsp.getMCC());
             mnc = Integer.parseInt(gpsp.getMNC());
-        }catch (Exception e){
-            ICLogger.e(e.getMessage(),e);
+        } catch (Exception e) {
+            ICLogger.e(e.getMessage(), e);
         }
-        sb.append(String.format("%1$03d",mcc))
-                .append(String.format("%1$03d",mnc))
-                .append(String.format("%1$04X",gpsp.getLAC()))
-                .append(String.format("%1$07X",gpsp.getGSMStationCID()))
-                .append(String.format("%1$02X",gpsp.getRxlevel()));
+        sb.append(String.format("%1$03d", mcc))
+                .append(String.format("%1$03d", mnc))
+                .append(String.format("%1$04X", gpsp.getLAC()))
+                .append(String.format("%1$07X", gpsp.getGSMStationCID()))
+                .append(String.format("%1$02X", gpsp.getRxlevel()));
         return sb.toString();
     }
+
     public String getLBSData() {
 
 //        460,0,9520,3671 : LBS基站数据,MCC国家码,460为中国,0:MNC,0为移动,9520:LAC,十进制,3671,CID,十进制
index dd9734b..f30a1a4 100644 (file)
@@ -8,7 +8,6 @@ import com.enqualcomm.support.bean.StringMessage;
 import com.enqualcomm.support.utils.AESCipher;
 import com.enqualcomm.support.utils.Connection;
 import com.enqualcomm.support.utils.ICLogger;
-import com.enqualcomm.support.utils.TimeUtil;
 
 import static com.enqualcomm.support.Config.PROTOCOL_ANAN;
 
@@ -871,7 +870,6 @@ public class protocolAPIHelper {
     }
 
     public static int getDefaultServerPort() {
-
         int ret = 8090;
         switch (Config.protocol_no) {
             case Config.PROTOCOL_JIAI:
@@ -1022,7 +1020,7 @@ public class protocolAPIHelper {
                 ret = null;
                 break;
             case Config.PROTOCOL_S123:
-                ret = protocol_ic.APBR(runtime);
+                ret = protocol_s123.APBR(runtime);
                 break;
             case Config.PROTOCOL_GATOR:
                 ret = null;
index cc13fdb..1580699 100644 (file)
@@ -36,6 +36,7 @@ import com.enqualcomm.support.utils.TimeUtil;
 import com.enqualcomm.support.utils.Util;
 import com.enqualcomm.support.utils.VibrateUtil;
 import com.enqualcomm.support.utils.WakeLockUtil;
+import com.ic.s123.S123WeatherInfo;
 import com.ic.view.msg.MsgMustReadDialog;
 
 import java.io.File;
@@ -2547,6 +2548,8 @@ public class protocol_s123 {
 
             StringBuilder sb = new StringBuilder();
             StringBuilder msg = new StringBuilder();
+            String City = Util.decodeUnicode2Utf8(cmdlist[22]);
+            List<S123WeatherInfo> weatherInfo = new ArrayList<>();
             for (int i = 0; i < 3; i++) {
                 String DayTime = cmdlist[1 + i * 7] + " " + cmdlist[2 + i * 7];
                 String date = "20" + cmdlist[1 + i * 7].trim();
@@ -2571,9 +2574,13 @@ public class protocol_s123 {
                 msg.append("," + temp_high);
                 msg.append("," + temp_low);
                 msg.append(";");
-            }
-            String City = Util.decodeUnicode2Utf8(cmdlist[22]);
 
+                //返回数据给UI
+                S123WeatherInfo itemFirst = new S123WeatherInfo(DayTime,
+                        weather_name, weather_id, temp_current, temp_low, temp_high, City);
+                //封装数据
+                weatherInfo.add(itemFirst);
+            }
             ICLogger.i(City + " \n" + sb.toString());
 
             msg.insert(0, City + ";");
@@ -2585,7 +2592,7 @@ public class protocol_s123 {
             intent.putExtra(Constants.KEY_Weather, weatherstr);
             ICLogger.i("send Broadcast " + Constants.ACTION_WEATHER_RECEIVED + "\n" + weatherstr + "\n");
             CoreService.getInstance().sendBroadcast(intent);
-
+            mRuntime.updateS123Weather(weatherInfo);
         } else {
             ICLogger.i(" BPTQ Format error!");
         }
@@ -2608,19 +2615,20 @@ public class protocol_s123 {
          */
 
         //在UI逻辑中,只要有处理就都是已经阅读。所以不存在取消阅读的说法。
-        return genStringMessage(cmdMap.get(protocol_s123.CMD_TYPE.AP94), new StringBuffer(CMDHEADER).append(cmdMap.get(protocol_s123.CMD_TYPE.AP94))
-                .append(CMDSPLIT).append(Runtime.PushtxtMsg_srv_index)
-                .append(CMDSPLIT).append("1")
-                .append(CMDEND).toString());
+        return genStringMessage(cmdMap.get(protocol_s123.CMD_TYPE.AP94),
+                new StringBuffer(CMDHEADER).append(cmdMap.get(protocol_s123.CMD_TYPE.AP94))
+                        .append(CMDSPLIT).append(Runtime.PushtxtMsg_srv_index)
+                        .append(CMDSPLIT).append("1")
+                        .append(CMDEND).toString());
 
     }
 
-
     public static StringMessage APAT(String id, String cmd) {
-        return genStringMessage("APAT", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APAT))
-                .append(CMDSPLIT).append(id)
-                .append(CMDSPLIT).append(cmd)
-                .append(CMDEND).toString());
+        return genStringMessage("APAT",
+                new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APAT))
+                        .append(CMDSPLIT).append(id)
+                        .append(CMDSPLIT).append(cmd)
+                        .append(CMDEND).toString());
     }
 
     /***
diff --git a/app/src/main/java/com/ic/s123/S123WeatherInfo.java b/app/src/main/java/com/ic/s123/S123WeatherInfo.java
new file mode 100644 (file)
index 0000000..45539ab
--- /dev/null
@@ -0,0 +1,133 @@
+package com.ic.s123;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+public class S123WeatherInfo implements Parcelable {
+
+    private String time;
+
+    private String description;
+
+    private String weatherCode;
+
+    private String currentTemp;
+
+    private String highTemp;
+    private String lowTemp;
+    private String cityName;
+
+    protected S123WeatherInfo(Parcel in) {
+        time = in.readString();
+        description = in.readString();
+        weatherCode = in.readString();
+        currentTemp = in.readString();
+        highTemp = in.readString();
+        lowTemp = in.readString();
+        cityName = in.readString();
+    }
+
+    public S123WeatherInfo(String time,
+                           String description,
+                           String weatherCode,
+                           String currentTemp,
+                           String highTemp,
+                           String lowTemp,
+                           String cityName) {
+        this.time = time;
+        this.description = description;
+        this.weatherCode = weatherCode;
+        this.currentTemp = currentTemp;
+        this.highTemp = highTemp;
+        this.lowTemp = lowTemp;
+        this.cityName = cityName;
+    }
+
+    public S123WeatherInfo() {
+
+    }
+
+    public static final Creator<S123WeatherInfo> CREATOR = new Creator<S123WeatherInfo>() {
+        @Override
+        public S123WeatherInfo createFromParcel(Parcel in) {
+            return new S123WeatherInfo(in);
+        }
+
+        @Override
+        public S123WeatherInfo[] newArray(int size) {
+            return new S123WeatherInfo[size];
+        }
+    };
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getWeatherCode() {
+        return weatherCode;
+    }
+
+    public void setWeatherCode(String weatherCode) {
+        this.weatherCode = weatherCode;
+    }
+
+    public String getCurrentTemp() {
+        return currentTemp;
+    }
+
+    public void setCurrentTemp(String currentTemp) {
+        this.currentTemp = currentTemp;
+    }
+
+    public String getHighTemp() {
+        return highTemp;
+    }
+
+    public void setHighTemp(String highTemp) {
+        this.highTemp = highTemp;
+    }
+
+    public String getLowTemp() {
+        return lowTemp;
+    }
+
+    public void setLowTemp(String lowTemp) {
+        this.lowTemp = lowTemp;
+    }
+
+    public String getCityName() {
+        return cityName;
+    }
+
+    public void setCityName(String cityName) {
+        this.cityName = cityName;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeString(time);
+        dest.writeString(description);
+        dest.writeString(weatherCode);
+        dest.writeString(currentTemp);
+        dest.writeString(highTemp);
+        dest.writeString(lowTemp);
+        dest.writeString(cityName);
+    }
+}
index 5f2d7c3..3234721 100644 (file)
@@ -1,5 +1,5 @@
-#Mon Jun 28 22:42:14 CST 2021\r
+#Tue Jun 29 19:41:46 CST 2021\r
 >>>>>>>=b405d1184f3616d4e894d199cee0eb91613a68db\r
-VERSION_CODE=879\r
-=\=\=\=\=\=\=\r
+VERSION_CODE=880\r
 <<<<<<<=HEAD\r
+=\=\=\=\=\=\=\r