update aidl interfaces.
authorTrillGates <williamtrillgates@gmail.com>
Sat, 16 Jan 2021 06:08:27 +0000 (14:08 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Sat, 16 Jan 2021 06:08:27 +0000 (14:08 +0800)
.idea/codeStyles/Project.xml
app/build.gradle
app/release/output-metadata.json
app/src/main/aidl/com/ic/work/ITempSensorService.aidl
app/src/main/java/com/ic/temperature/MainActivity.kt
app/src/main/java/com/ic/temperature/repository/TemperatureRepository.kt
app/src/main/java/com/ic/temperature/utils/Constants.kt
app/src/main/java/com/ic/temperature/viewmodel/TemperatureViewModel.kt
app/src/main/java/com/ic/work/domain/Temperature.java [new file with mode: 0644]
app/version_code.properties

index 3c7772a..208123b 100644 (file)
@@ -3,18 +3,9 @@
     <JetCodeStyleSettings>
       <option name="PACKAGES_TO_USE_STAR_IMPORTS">
         <value>
-          <package name="java.util" alias="false" withSubpackages="false" />
-          <package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
-          <package name="io.ktor" alias="false" withSubpackages="true" />
-        </value>
-      </option>
-      <option name="PACKAGES_IMPORT_LAYOUT">
-        <value>
-          <package name="" alias="false" withSubpackages="true" />
-          <package name="java" alias="false" withSubpackages="true" />
-          <package name="javax" alias="false" withSubpackages="true" />
-          <package name="kotlin" alias="false" withSubpackages="true" />
-          <package name="" alias="true" withSubpackages="true" />
+          <package name="java.util" withSubpackages="false" static="false" />
+          <package name="kotlinx.android.synthetic" withSubpackages="true" static="false" />
+          <package name="io.ktor" withSubpackages="true" static="false" />
         </value>
       </option>
       <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
index 40e9e03..fe2fdb5 100644 (file)
@@ -133,4 +133,5 @@ dependencies {
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
     implementation 'com.github.silvestrpredko:dot-progress-bar:1.1'
     implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
+    implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0-RC1'
 }
\ No newline at end of file
index 5d16d92..b6808a6 100644 (file)
@@ -10,9 +10,9 @@
     {
       "type": "SINGLE",
       "filters": [],
-      "versionCode": 9,
-      "versionName": "202012161841",
-      "outputFile": "ICL02Temperature_V9_202012161841_release.apk"
+      "versionCode": 18,
+      "versionName": "202101151445",
+      "outputFile": "ICL02Temperature_V18_202101151445_release.apk"
     }
   ]
 }
\ No newline at end of file
index 3d1847e..8a210e6 100644 (file)
@@ -9,5 +9,5 @@ interface ITempSensorService {
     void unRegisterCallback(in ITempSensorCallback callback);
     //获取体温:0表示Alarm,1表示客户端用户发出的,3表示服务端发出的单次获取指令
     //callbackTag,可以使用报名+类名的字符串组合
-    oneway void getTemperatureInfo(int from,in String callbackTag);
+    void getTemperatureInfo(int from,in String callbackTag);
 }
\ No newline at end of file
index 9643ea6..2fb8d4f 100644 (file)
@@ -33,6 +33,7 @@ class MainActivity : AppCompatActivity() {
             this,
             ICViewModelFactory()
         ).get(TemperatureViewModel::class.java)
+
     }
 
     private val binding by lazy {
index 6737ae3..b330273 100644 (file)
@@ -2,27 +2,38 @@ package com.ic.temperature.repository
 
 import android.content.ComponentName
 import android.content.Context
+import android.content.Intent
 import android.content.ServiceConnection
 import android.os.IBinder
 import android.os.RemoteException
-import com.ic.aidl.temp.ITempAidlInterface
-import com.ic.aidl.temp.ITempRemoteService
 import com.ic.temperature.utils.Constants
 import com.ic.temperature.utils.IcLog
-import com.ic.temperature.utils.ServiceUtil
-import com.ic.temperature.viewmodel.TemperatureViewModel
+import com.ic.work.ITempSensorCallback
+import com.ic.work.ITempSensorService
+import com.ic.work.domain.Temperature
 
 class TemperatureRepository(context: Context) {
 
+    companion object {
+        const val TAG = "TemperatureRepository"
+    }
+
     private var mContext: Context = context
 
-    private var mService: ITempRemoteService? = null
+    private var mService: ITempSensorService? = null
 
     private var mCallback: ITemRepositoryCallback? = null
 
 
     fun release() {
-        ServiceUtil.unBindServiceUtil(mContext, mRemoteConnection)
+        try {
+            if (mService != null) {
+                mService?.unRegisterCallback(remoteDataCallback)
+                mContext.unbindService(mRemoteConnection)
+            }
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
     }
 
     /**
@@ -36,12 +47,11 @@ class TemperatureRepository(context: Context) {
             return
         }
         this.mCallback = callback
-        IcLog.i(TemperatureViewModel.TAG, "bind remote service..")
-        ServiceUtil.bindServiceUtil(
-            context,
-            Constants.ACTION_REMOTE_WORK_SERVICE,
+        IcLog.i(TAG, "bind remote service..")
+        context.bindService(
+            Intent(Constants.ACTION_TEMPERATURE),
             mRemoteConnection,
-            Constants.PACKAGE_REMOTE_WORK_SERVICE
+            Context.BIND_AUTO_CREATE
         )
     }
 
@@ -50,57 +60,51 @@ class TemperatureRepository(context: Context) {
         Callback4Remote()
     }
 
-
     private val mRemoteConnection by lazy {
         RemoteServiceConnection()
     }
 
-    inner class Callback4Remote : ITempAidlInterface.Stub() {
+    inner class Callback4Remote : ITempSensorCallback.Stub() {
         @Throws(RemoteException::class)
         /**
          * bodyOrWristTemp:体温或者腕温(当不支持腕温的时候,就是体温)
          * maybeBodyTemp:可能是体温(如果支持腕温的时候)
          * envTemp:环境温度
          */
-        override fun updateCurrTempValue(
-            bodyOrWristTemp: Double,
-            maybeBodyTemp: Double,
-            envTemp: Double
-        ) {
+        override fun onTemperatureGet(temperature: Temperature?) {
+            if (temperature == null) {
+                IcLog.d(TAG, "result is null")
+                return
+            }
+            IcLog.d(TAG, "temperature is == > $temperature")
             IcLog.d(
-                TemperatureViewModel.TAG,
-                "updateCurrTempValue... "
-                        + bodyOrWristTemp +
-                        " maybeBodyTemp --> "
-                        + maybeBodyTemp +
+                TAG,
+                "final ... "
+                        + temperature.wristTemp +
+                        " maybeBodyTemp --> "
+                        + temperature.bodyTemp +
                         " envTemp + >  "
-                        + envTemp
+                        + temperature.envTemp
             )
-            mCallback?.onTempUpdate(bodyOrWristTemp, maybeBodyTemp, envTemp)
+            //最后的结果
+            mCallback?.onTempFinal(temperature.wristTemp, temperature.bodyTemp, temperature.envTemp)
         }
 
-        /**
-         * bodyOrWristTemp:体温或者腕温(当不支持腕温的时候,就是体温)
-         * maybeBodyTemp:可能是体温(如果支持腕温的时候)
-         * envTemp:环境温度
-         */
-        @Throws(RemoteException::class)
-        override fun updateResultTempValue(
-            bodyOrWristTemp: Double,
-            maybeBodyTemp: Double,
-            envTemp: Double
-        ) {
-            IcLog.d(
-                TemperatureViewModel.TAG,
-                "final ... "
-                        + bodyOrWristTemp +
-                        " maybeBodyTemp --> "
-                        + maybeBodyTemp +
-                        " envTemp + >  "
-                        + envTemp
+        override fun onTemperatureUpdating(temperature: Temperature) {
+            //温度更新中...
+            mCallback?.onTempUpdate(
+                temperature.wristTemp,
+                temperature.bodyTemp,
+                temperature.envTemp
             )
-            //最后的结果
-            mCallback?.onTempFinal(bodyOrWristTemp, maybeBodyTemp, envTemp)
+        }
+
+        override fun onGetingData() {
+            //正在获取
+        }
+
+        override fun onWaiting() {
+            //
         }
     }
 
@@ -109,10 +113,17 @@ class TemperatureRepository(context: Context) {
      */
     inner class RemoteServiceConnection : ServiceConnection {
         override fun onServiceConnected(name: ComponentName?, service: IBinder?) {
-            mService = ITempRemoteService.Stub.asInterface(service)
+            IcLog.d(TAG, "on service bind...")
+            mService = ITempSensorService.Stub.asInterface(service)
             //把回调接口设置给对方
-            mService?.registerCallback(remoteDataCallback)
-            getTemperature()
+            IcLog.d(TAG, "register callback..")
+            mService?.registerCallback(
+                remoteDataCallback,
+                this@TemperatureRepository.javaClass.name
+            )
+            Thread {
+                getTemperature()
+            }.start();
         }
 
         override fun onServiceDisconnected(name: ComponentName?) {
@@ -124,8 +135,12 @@ class TemperatureRepository(context: Context) {
     fun getTemperature() {
         mCallback?.onTesting()
         try {
-            //调用开始查询温度
-            mService?.onStartQueryTemp()
+            //调用开始查询温度,2表示用户主动测试,1
+            //SERVER_CMD(0)/*服务端单次测量指令*/,
+            //ALARM_CMD(1)/*定时的测试指令*/,
+            //CLIENT_CMD(2)/*用户UI主动的指令*/;
+            IcLog.d(TAG, "get Temperature -- > " + Thread.currentThread().name)
+            mService?.getTemperatureInfo(2, this@TemperatureRepository.javaClass.name)
         } catch (e: Exception) {
             e.printStackTrace()
         }
index 28fa2c3..a530971 100644 (file)
@@ -8,6 +8,6 @@ object Constants {
     const val STATE_ANTI_ON = 0
     const val STATE_ANTI_OFF = 1
     const val STATE_ANTI_NONE = -1
-    const val ACTION_REMOTE_WORK_SERVICE = "com.ic.action.WORK_SERVICE"
+    const val ACTION_TEMPERATURE = "com.ic.sensor.data.action.TEMPERATURE"
     const val PACKAGE_REMOTE_WORK_SERVICE = "com.ic.temp"
 }
\ No newline at end of file
index 17f2f12..d29d657 100644 (file)
@@ -21,8 +21,7 @@ import com.ic.temperature.utils.Constants.STATE_ANTI_ON
 import java.lang.ref.WeakReference
 
 class TemperatureViewModel() : ViewModel() {
-
-
+    
     lateinit var mContext: Context
 
     private val repository by lazy {
@@ -69,7 +68,7 @@ class TemperatureViewModel() : ViewModel() {
     }
 
     private fun updateUIData(temperature: Temperature) {
-        println("isDisableWristTemp $isDisableWristTemp")
+        println("isDisableWristTemp $temperature")
         //数据更新
         if (isDisableWristTemp) {
             mBodyTemp.value = StringUtils.formatTem(temperature.bodyOrWristTemp)
@@ -269,7 +268,9 @@ class TemperatureViewModel() : ViewModel() {
     private fun getRemoteData() {
         IcLog.d(TAG, "getRemoteData...")
         checkWearTimeEnough()
-        repository.getTemperature()
+        Thread {
+            repository.getTemperature()
+        }.start()
     }
 
     inner class WristWearStateReceiver : BroadcastReceiver() {
diff --git a/app/src/main/java/com/ic/work/domain/Temperature.java b/app/src/main/java/com/ic/work/domain/Temperature.java
new file mode 100644 (file)
index 0000000..4740324
--- /dev/null
@@ -0,0 +1,83 @@
+package com.ic.work.domain;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * bean类:体温,腕温,环境温度
+ */
+public class Temperature implements Parcelable {
+    private double bodyTemp;
+    private double wristTemp;
+    private double envTemp;
+
+
+    public Temperature(double bodyTemp, double wristTemp, double envTemp) {
+        this.bodyTemp = bodyTemp;
+        this.wristTemp = wristTemp;
+        this.envTemp = envTemp;
+    }
+
+    protected Temperature(Parcel in) {
+        bodyTemp = in.readDouble();
+        wristTemp = in.readDouble();
+        envTemp = in.readDouble();
+    }
+
+    public static final Creator<Temperature> CREATOR = new Creator<Temperature>() {
+        @Override
+        public Temperature createFromParcel(Parcel in) {
+            return new Temperature(in);
+        }
+
+        @Override
+        public Temperature[] newArray(int size) {
+            return new Temperature[size];
+        }
+    };
+
+    public double getBodyTemp() {
+        return bodyTemp;
+    }
+
+    public void setBodyTemp(double bodyTemp) {
+        this.bodyTemp = bodyTemp;
+    }
+
+    public double getWristTemp() {
+        return wristTemp;
+    }
+
+    public void setWristTemp(double wristTemp) {
+        this.wristTemp = wristTemp;
+    }
+
+    public double getEnvTemp() {
+        return envTemp;
+    }
+
+    public void setEnvTemp(double envTemp) {
+        this.envTemp = envTemp;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeDouble(bodyTemp);
+        dest.writeDouble(wristTemp);
+        dest.writeDouble(envTemp);
+    }
+
+    @Override
+    public String toString() {
+        return "Temperature{" +
+                "bodyTemp=" + bodyTemp +
+                ", wristTemp=" + wristTemp +
+                ", envTemp=" + envTemp +
+                '}';
+    }
+}
index e5a1cd2..c43d2f8 100644 (file)
@@ -1,2 +1,2 @@
-#Thu Dec 17 11:25:17 CST 2020
-VERSION_CODE=10
+#Fri Jan 15 14:45:31 CST 2021
+VERSION_CODE=18