1.H88
authorkfl_614 <kfl_614@163.com>
Thu, 20 Aug 2020 03:17:18 +0000 (11:17 +0800)
committerkfl_614 <kfl_614@163.com>
Thu, 20 Aug 2020 03:17:18 +0000 (11:17 +0800)
Signed-off-by: kfl_614 <kfl_614@163.com>
68 files changed:
app/build.gradle
app/src/main/aidl/com/ic/aidl/temp/ITempAidlInterface.aidl [new file with mode: 0644]
app/src/main/aidl/com/ic/aidl/temp/ITempRemoteService.aidl [new file with mode: 0644]
app/src/main/java/com/ic/launcher/AnimalHeatActivity.java
app/src/main/java/com/ic/launcher/FragmentManage.java
app/src/main/java/com/ic/launcher/MainActivity.java
app/src/main/java/com/ic/launcher/configure/l02/L02AppInfo.java
app/src/main/java/com/ic/launcher/fragment/LowPowerModeFragment.java
app/src/main/java/com/ic/launcher/fragment/dialog/ImageTipsFragment.java
app/src/main/java/com/ic/launcher/util/ServiceUtil.java
app/src/main/res/drawable/ic_temp_human.xml [new file with mode: 0644]
app/src/main/res/drawable/ic_temp_wrist.xml [new file with mode: 0644]
app/src/main/res/layout/activity_animal_heat.xml
app/src/main/res/mipmap-mdpi/a9_albumn_l02.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_alipay_l02.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_battery_0.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_battery_1.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_battery_2.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_battery_3.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_battery_4.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_battery_5.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_camera_l02.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_contacts_l02.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_dialer_l02.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_heartrate_icon.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_heartrate_l02.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_hour_0.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_hour_1.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_hour_2.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_hour_3.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_hour_4.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_hour_5.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_hour_6.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_hour_7.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_hour_8.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_hour_9.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_language_h88.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_minutes_0.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_minutes_1.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_minutes_2.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_minutes_3.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_minutes_4.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_minutes_5.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_minutes_6.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_minutes_7.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_minutes_8.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_minutes_9.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_pedometer.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_pedometer_l02.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_phone_type_4g.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_qr_code_h88.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_settings_l02.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_signal_0.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_signal_1.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_signal_2.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_signal_3.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_signal_4.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_signal_x.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_sms_l02.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_talk_l02.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_temperature_h88.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_time_colon.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/a9_weather_l02.png [new file with mode: 0644]
app/src/main/res/values-en/strings.xml
app/src/main/res/values-th/strings.xml
app/src/main/res/values-zh-rCN/strings.xml
app/src/main/res/values/strings.xml
app/version_code.properties

index 97873d8..a39fe38 100644 (file)
@@ -1,7 +1,7 @@
 apply plugin: 'com.android.application'
 
 static def getL02ApkBaseName() {
-    return "ICL02Launcher"
+    return "ICH88Launcher"
 }
 
 android {
@@ -144,5 +144,5 @@ dependencies {
     implementation 'com.jakewharton:butterknife:10.2.1'
     annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
 
-    implementation 'org.greenrobot:eventbus:3.2.0'
+    implementation 'com.github.silvestrpredko:dot-progress-bar:1.1'
 }
diff --git a/app/src/main/aidl/com/ic/aidl/temp/ITempAidlInterface.aidl b/app/src/main/aidl/com/ic/aidl/temp/ITempAidlInterface.aidl
new file mode 100644 (file)
index 0000000..2feb420
--- /dev/null
@@ -0,0 +1,11 @@
+// ITempAidlInterface.aidl
+package com.ic.aidl.temp;
+
+interface ITempAidlInterface {
+    /**
+     * Demonstrates some basic types that you can use as parameters
+     * and return values in AIDL.
+     */
+     void updateCurrTempValue(double value,double animal);
+     void updateResultTempValue(double value,double animal);
+}
diff --git a/app/src/main/aidl/com/ic/aidl/temp/ITempRemoteService.aidl b/app/src/main/aidl/com/ic/aidl/temp/ITempRemoteService.aidl
new file mode 100644 (file)
index 0000000..bad691f
--- /dev/null
@@ -0,0 +1,18 @@
+// ITempRemoteService.aidl
+package com.ic.aidl.temp;
+
+// Declare any non-default types here with import statements
+
+import com.ic.aidl.temp.ITempAidlInterface;
+
+interface ITempRemoteService {
+    /**
+     * Demonstrates some basic types that you can use as parameters
+     * and return values in AIDL.
+     */
+    void registerCallback(ITempAidlInterface cb);
+    void unregisterCallback(ITempAidlInterface cb);
+
+    void onStartQueryTemp();
+    void onStopQueryTemp();
+}
index 5c7213a..451fbc6 100644 (file)
@@ -3,53 +3,79 @@ package com.ic.launcher;
 import androidx.annotation.NonNull;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.core.view.GestureDetectorCompat;
+import androidx.databinding.DataBindingUtil;
 
+import android.annotation.SuppressLint;
 import android.content.BroadcastReceiver;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.IBinder;
 import android.os.Message;
+import android.os.PowerManager;
+import android.os.RemoteException;
 import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.MotionEvent;
 import android.widget.TextView;
 
+import com.ic.aidl.temp.ITempAidlInterface;
+import com.ic.aidl.temp.ITempRemoteService;
+import com.ic.launcher.databinding.ActivityAnimalHeatBinding;
 import com.ic.launcher.listener.MainClockGestureDetectorImpl;
-import com.ic.launcher.util.IcLog;
+import com.ic.launcher.util.ServiceUtil;
 
 import java.lang.ref.WeakReference;
 import java.text.DecimalFormat;
 
+import butterknife.BindString;
+import butterknife.ButterKnife;
+
 public class AnimalHeatActivity extends AppCompatActivity implements
-        MainClockGestureDetectorImpl.OnClockGestureFlingListener{
+        MainClockGestureDetectorImpl.OnClockGestureFlingListener {
+
+    @BindString(R.string.activity_temp_tips_check)
+    String tipsCheck;
 
-    private static final String GET_TEMPERATURE_ACTION = "com.ic.action.GET_TEMPERATURE";
-    private static final String TEMPERATURE_KEY = "TEMPERATURE_KEY";
-    private static final String TEMPERATURE_FINISH_ACTION = "com.ic.action.TEMPERATURE_FINISH";
+    @BindString(R.string.activity_temp_tips_end)
+    String tipsEnd;
 
     private GestureDetectorCompat gesture;
+    private ITempRemoteService mService;
 
-    private TextView temperatureView;
+    private HeatHandler mHandler;
+    private PowerManager.WakeLock mWakeLock = null;
 
-    private HeatHandler heatHandler;
+    private ActivityAnimalHeatBinding heatBinding;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_animal_heat);
-        temperatureView = findViewById(R.id.temperature_value);
-        heatHandler = new HeatHandler(this);
+        heatBinding = DataBindingUtil.setContentView(this,R.layout.activity_animal_heat);
+        ButterKnife.bind(this);
+        mHandler = new HeatHandler(this);
         gesture = new GestureDetectorCompat(this, new MainClockGestureDetectorImpl(this));
         registerBroadcast();
-        sendTemperatureBroadcast();
+        bindWorkService(this);
+        initWakeLock(this);
+        heatBinding.setBodyTemp("--");
+        heatBinding.setWristTemp("--");
     }
+
+
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        heatHandler.removeMessages(1);
-        heatHandler=null;
+        try {
+            mService.onStopQueryTemp();
+        } catch (Exception e) {
+        }
+        releaseWakeLock();
+        unbindWorkService(this);
         unregisterReceiver(mIntentReceiver);
     }
 
@@ -82,19 +108,88 @@ public class AnimalHeatActivity extends AppCompatActivity implements
         return true;
     }
 
-    public void registerBroadcast() {
+    private void setTemperatureUi(int type, double temp, double animal) {
+        DecimalFormat df = new DecimalFormat("#.0");
+        switch (type){
+            case 0:
+                heatBinding.setBodyTemp(df.format(animal));
+                heatBinding.setWristTemp(df.format(temp));
+                break;
+            case 1:
+                heatBinding.setShowLoading(false);
+                heatBinding.setCheckTips(tipsEnd);
+                break;
+        }
+    }
+
+    private void bindWorkService(Context context) {
+        ServiceUtil.bindServiceUtil(context,
+                "com.ic.action.WORK_SERVICE",
+                connection,
+                "com.ic.temp");
+    }
+
+    private void unbindWorkService(Context context) {
+        try {
+            if (mService != null) {
+                mService.unregisterCallback(tempInterface);
+            }
+            ServiceUtil.unBindServiceUtil(context, connection);
+        } catch (Exception e) {
+        } finally {
+            mService = null;
+            tempInterface = null;
+            connection = null;
+        }
+    }
+
+    private ServiceConnection connection = new ServiceConnection() {
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            try {
+                mService = ITempRemoteService.Stub.asInterface(service);
+                mService.registerCallback(tempInterface);
+                mService.onStartQueryTemp();
+                heatBinding.setShowLoading(true);
+                heatBinding.setCheckTips(tipsCheck);
+            } catch (Exception e) {
+            }
+        }
+
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+        }
+    };
+
+    private ITempAidlInterface.Stub tempInterface = new ITempAidlInterface.Stub() {
+        @Override
+        public void updateCurrTempValue(double value, double animal) throws RemoteException {
+            mHandler.sendMessage(obtainMessage(0, value, animal));
+        }
+
+        @Override
+        public void updateResultTempValue(double value, double animal) throws RemoteException {
+            mHandler.sendMessage(obtainMessage(1, value, animal));
+        }
+    };
+
+    private Message obtainMessage(int type, double value, double animal) {
+        Message message = Message.obtain();
+        message.what = 1;
+        Bundle bundle = new Bundle();
+        bundle.putInt("type", type);
+        bundle.putDouble("value", value);
+        bundle.putDouble("animal", animal);
+        message.setData(bundle);
+        return message;
+    }
+
+    private void registerBroadcast() {
         IntentFilter filter = new IntentFilter();
-        filter.addAction(TEMPERATURE_FINISH_ACTION);
         filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
         registerReceiver(mIntentReceiver, filter);
     }
 
-    private void sendTemperatureBroadcast() {
-        Intent pedIntent = new Intent();
-        pedIntent.setAction(GET_TEMPERATURE_ACTION);
-        sendBroadcast(pedIntent);
-    }
-
     private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -104,14 +199,6 @@ public class AnimalHeatActivity extends AppCompatActivity implements
                     return;
                 }
                 switch (acyion) {
-                    case TEMPERATURE_FINISH_ACTION:
-                        double temperature = intent.getDoubleExtra(TEMPERATURE_KEY,0);
-                        DecimalFormat df = new DecimalFormat("#.0");
-                        temperatureView.setText(df.format(temperature));
-                        if(heatHandler != null){
-                            heatHandler.sendEmptyMessageDelayed(1,800);
-                        }
-                        break;
                     case Intent.ACTION_CLOSE_SYSTEM_DIALOGS:
                         String reason = intent.getStringExtra("reason");
                         if ("homekey".equals(reason)) {
@@ -124,24 +211,41 @@ public class AnimalHeatActivity extends AppCompatActivity implements
         }
     };
 
-    private static class HeatHandler extends Handler{
+    private static class HeatHandler extends Handler {
         private WeakReference<AnimalHeatActivity> weakRf;
 
-        public HeatHandler(AnimalHeatActivity activity){
+        public HeatHandler(AnimalHeatActivity activity) {
             weakRf = new WeakReference<>(activity);
         }
 
         @Override
         public void dispatchMessage(@NonNull Message msg) {
             super.dispatchMessage(msg);
-            switch (msg.what){
+            switch (msg.what) {
                 case 1:
-                    IcLog.i("TSEEE","DDDDDDDDDD");
-                    weakRf.get().sendTemperatureBroadcast();
+                    Bundle bundle = msg.getData();
+                    weakRf.get().setTemperatureUi(
+                            bundle.getInt("type"),
+                            bundle.getDouble("value"),
+                            bundle.getDouble("animal"));
                     break;
             }
         }
     }
 
+    @SuppressLint("InvalidWakeLockTag")
+    private void initWakeLock(Context context) {
+        PowerManager powerManager = (PowerManager) context.getSystemService(POWER_SERVICE);
+        if (powerManager != null) {
+            mWakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "TmepWakeLock");
+            mWakeLock.acquire();
+        }
+    }
 
+    private void releaseWakeLock() {
+        if (mWakeLock != null) {
+            mWakeLock.release();
+        }
+        mWakeLock = null;
+    }
 }
\ No newline at end of file
index dbfabf7..70a72a8 100644 (file)
@@ -13,12 +13,10 @@ import com.ic.launcher.fragment.L02MainFragment;
 import com.ic.launcher.fragment.LowPowerModeFragment;
 import com.ic.launcher.fragment.clock.Clock12DialFragment;
 import com.ic.launcher.fragment.clock.Clock6DialFragment;
-import com.ic.launcher.mode.L02MainModel;
 import com.ic.launcher.util.SPUtils;
 
 import static com.ic.launcher.configure.l02.L02Icon.CLOCK_INDEX_12;
 import static com.ic.launcher.configure.l02.L02Icon.CLOCK_INDEX_6;
-import static com.ic.launcher.configure.l02.L02Icon.CLOCK_INDEX_L02;
 
 public class FragmentManage {
 
@@ -72,8 +70,7 @@ public class FragmentManage {
     void changeMainClock(boolean finish) {
         Fragment fragment = getCurrMainFragment();
         Fragment oldFt = getFragmentList(MAIN_FRAGMENT_INDEX);
-        if ((fragment instanceof L02MainFragment && oldFt instanceof L02MainFragment)
-                || (fragment instanceof Clock6DialFragment && oldFt instanceof Clock6DialFragment)
+        if ((fragment instanceof Clock6DialFragment && oldFt instanceof Clock6DialFragment)
                 || (fragment instanceof Clock12DialFragment && oldFt instanceof Clock12DialFragment)) {
             return;
         }
index 7dfebe4..0d2dcba 100644 (file)
@@ -1,12 +1,14 @@
 package com.ic.launcher;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentTransaction;
 import androidx.lifecycle.ViewModelProvider;
 
+import android.app.Activity;
 import android.app.Application;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -14,6 +16,8 @@ import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.res.Configuration;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
 import android.view.KeyEvent;
 
 import com.ic.launcher.fragment.dialog.ImageTipsFragment;
@@ -27,10 +31,13 @@ import com.ic.launcher.util.IcLog;
 import com.ic.launcher.util.ServiceUtil;
 import com.ic.launcher.util.SystemUtils;
 
+import java.lang.ref.WeakReference;
+
 
 public class MainActivity extends AppCompatActivity implements
         MainClockGestureDetectorImpl.OnClockGestureFlingListener,
-        IChangeMainFragmentListener {
+        IChangeMainFragmentListener,
+        ImageTipsFragment.OnImageTipsListener {
 
     private static final String TAG = "MainActivity";
 
@@ -43,11 +50,16 @@ public class MainActivity extends AppCompatActivity implements
     private boolean isChangeClock = false;
     private String lowBatteryValue;
 
+    private boolean isShowSlipTips = false;
+    private boolean isShowMessageTips = false;
+
+    //private TestHandler mHandler;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
+
         ftManage = new FragmentManage(this, getSupportFragmentManager());
         ftManage.showCurrMainFragment(isFinishing(), 0);
 
@@ -55,6 +67,9 @@ public class MainActivity extends AppCompatActivity implements
         ((IcLauncherApplication) getApplication()).getTimeDatePresenter().registerTimeDateReceiver();
         registerChangeClockReceiver();
 
+        //mHandler = new TestHandler(this);
+        //mHandler.sendEmptyMessageDelayed(1, 3000);
+
         initLowPowerModel(getApplication());
 
         ServiceUtil.startServiceUtil(getApplicationContext(),
@@ -112,6 +127,16 @@ public class MainActivity extends AppCompatActivity implements
         ((IcLauncherApplication) getApplication()).getAppListPresenter().updateLanguageSystemApp();
     }
 
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        //No call for super(). Bug on API Level > 11.
+    }
+
+    @Override
+    public void OnDialogDismiss() {
+        isShowMessageTips=false;
+    }
+
     private void startTestProtocol() {
         try {
             String cid = SystemUtils.GetCidFromSystem();
@@ -143,7 +168,7 @@ public class MainActivity extends AppCompatActivity implements
             isLowPower = status;
             isChangeClock = false;
             if (status) {
-                ftManage.gotoLowPowerMode(isFinishing(),lowBatteryValue);
+                ftManage.gotoLowPowerMode(isFinishing(), lowBatteryValue);
             } else {
                 ftManage.quitLowPowerMode(isFinishing());
             }
@@ -158,12 +183,12 @@ public class MainActivity extends AppCompatActivity implements
         lowBatteryValue = value;
     }
 
-    private static final String TXT_ACTION ="action.ic.srvPushTxt";
-    private static final String TYPE_KEY ="msgType";
-    private static final String MSG_KEY ="txtMsg";
+    private static final String TXT_ACTION = "action.ic.srvPushTxt";
+    private static final String TYPE_KEY = "msgType";
+    private static final String MSG_KEY = "txtMsg";
 
-    private static final String STRIP_ACTION ="com.ic.ACTION_STRIP";
-    private static final String EVENT_KEY ="eventID";
+    private static final String STRIP_ACTION = "com.ic.ACTION_STRIP";
+    private static final String EVENT_KEY = "eventID";
 
     private void registerChangeClockReceiver() {
         IntentFilter filter = new IntentFilter();
@@ -185,14 +210,14 @@ public class MainActivity extends AppCompatActivity implements
         @Override
         public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();
-            switch (action){
+            switch (action) {
                 case TXT_ACTION:
-                    int type = intent.getIntExtra(TYPE_KEY,-1);
+                    int type = intent.getIntExtra(TYPE_KEY, -1);
                     String message = intent.getStringExtra(MSG_KEY);
-                    if(type == 0 || type == 1){
-                        IcLauncherApplication app = (IcLauncherApplication)getApplication();
+                    if (type == 0 || type == 1) {
+                        IcLauncherApplication app = (IcLauncherApplication) getApplication();
                         BatteryPresenter batteryPresenter = app.getBatteryPresenter();
-                        switch (message){
+                        switch (message) {
                             case "socializing":
                                 batteryPresenter.playSoundIndex(5);
                                 break;
@@ -208,7 +233,7 @@ public class MainActivity extends AppCompatActivity implements
                     }
                     break;
                 case STRIP_ACTION:
-                    int event = intent.getIntExtra(EVENT_KEY,-1);
+                    int event = intent.getIntExtra(EVENT_KEY, -1);
                     switch (event) {
                         case 1:
                             showSlipTipsDialog();
@@ -226,6 +251,10 @@ public class MainActivity extends AppCompatActivity implements
     };
 
     private void showImageTipsDialog(String message) {
+        if (isShowMessageTips) {
+            return;
+        }
+        isShowMessageTips = true;
         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
         Fragment prev = getSupportFragmentManager().findFragmentByTag("ImageTips");
         if (prev != null) {
@@ -233,12 +262,23 @@ public class MainActivity extends AppCompatActivity implements
         }
         ft.addToBackStack(null);
 
-        // Create and show the dialog.
-        DialogFragment newFragment = ImageTipsFragment.newInstance(message);
-        newFragment.show(ft, "ImageTips");
+        try {
+            // Create and show the dialog.
+            ImageTipsFragment newFragment = ImageTipsFragment.newInstance(message);
+            newFragment.setOnImageTipsListener(this);
+            newFragment.show(ft, "ImageTips");
+        } catch (IllegalStateException e) {
+            isShowMessageTips = false;
+        }
     }
 
     private void showSlipTipsDialog() {
+        if (isShowSlipTips) {
+            return;
+        }
+
+        isShowSlipTips = true;
+
         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
         Fragment prev = getSupportFragmentManager().findFragmentByTag("SlipTips");
         if (prev != null) {
@@ -246,12 +286,21 @@ public class MainActivity extends AppCompatActivity implements
         }
         ft.addToBackStack(null);
 
-        // Create and show the dialog.
-        DialogFragment newFragment = SlipTipsFragment.newInstance();
-        newFragment.show(ft, "SlipTips");
+        try {
+            // Create and show the dialog.
+            SlipTipsFragment newFragment = SlipTipsFragment.newInstance();
+            newFragment.show(ft, "SlipTips");
+        } catch (IllegalStateException e) {
+            isShowSlipTips = false;
+        }
+
     }
 
     private void dismissSlipTipsDialog() {
+        if (!isShowSlipTips) {
+            return;
+        }
+        isShowSlipTips = false;
         Fragment prev = getSupportFragmentManager().findFragmentByTag("SlipTips");
         if (prev != null) {
             DialogFragment df = (DialogFragment) prev;
@@ -260,10 +309,29 @@ public class MainActivity extends AppCompatActivity implements
     }
 
     private void testMessageBroadcast() {
-        Intent intent = new Intent("action.ic.srvPushTxt");
-        intent.putExtra("msgType", 1); //0 代表 server下发消息,1代表 SMS消息
-        intent.putExtra("txtMsg", "high body temperature");
+        Intent intent = new Intent(TXT_ACTION);
+        intent.putExtra(TYPE_KEY, 1); //0 代表 server下发消息,1代表 SMS消息
+        intent.putExtra(MSG_KEY, "ffffffffffffffffffff");
         sendBroadcast(intent);
     }
 
+
+    private static class TestHandler extends Handler {
+        private WeakReference<MainActivity> weakRf;
+
+        public TestHandler(MainActivity activity) {
+            weakRf = new WeakReference<>(activity);
+        }
+
+        @Override
+        public void dispatchMessage(@NonNull Message msg) {
+            super.dispatchMessage(msg);
+            switch (msg.what) {
+                case 1:
+                    weakRf.get().testMessageBroadcast();
+                    break;
+            }
+        }
+    }
+
 }
index b18dd62..8926603 100644 (file)
@@ -106,6 +106,9 @@ public class L02AppInfo {
 
             add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_temperature_h88, R.string.app_h88_temperature,
                     "com.ic.launcher", "com.ic.launcher.AnimalHeatActivity"));
+            //心率
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_heartrate_l02, R.string.app_name_heart,
+                    "com.ic.blood", "com.ic.blood.BloodActivity"));
             //联系人
             add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_contacts_l02, R.string.app_ContactName,
                     "com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.PhoneDirectoryActivity"));
index b698670..fd75b91 100644 (file)
@@ -16,6 +16,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import com.ic.launcher.BuildConfig;
 import com.ic.launcher.configure.l02.L02AppInfo;
 import com.ic.launcher.databinding.FragmentLowPowerModeBinding;
 import com.ic.launcher.entity.AppInfoEntity;
@@ -80,7 +81,11 @@ public class LowPowerModeFragment extends Fragment {
     }
 
     private ILowPowerCallPhoneListener callListener = () -> {
-        AppInfoEntity entity = L02AppInfo.getAppList().get(1);
+        int value=1;
+        if(BuildConfig.V_TYPE == 2){
+            value = 4;
+        }
+        AppInfoEntity entity = L02AppInfo.getAppList().get(value);
         if (entity != null) {
             try {
                 Intent intent = new Intent(Intent.ACTION_MAIN);
index 79239f8..566a80e 100644 (file)
@@ -18,6 +18,11 @@ public class ImageTipsFragment extends DialogFragment {
 
     private static final String ARG_PARAM1 = "param1";
     private String value;
+    private OnImageTipsListener listener;
+
+    public interface OnImageTipsListener {
+        void OnDialogDismiss();
+    }
 
     public static ImageTipsFragment newInstance(String param1) {
         ImageTipsFragment fragment = new ImageTipsFragment();
@@ -27,6 +32,10 @@ public class ImageTipsFragment extends DialogFragment {
         return fragment;
     }
 
+    public void setOnImageTipsListener(OnImageTipsListener listener) {
+        this.listener = listener;
+    }
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -57,6 +66,7 @@ public class ImageTipsFragment extends DialogFragment {
         textView.setText(value);
         ImageView image = view.findViewById(R.id.image_bt_close);
         image.setOnClickListener(v ->{
+            listener.OnDialogDismiss();
             dismiss();
         });
         return view;
index 1a3b429..9441958 100644 (file)
@@ -19,15 +19,18 @@ public class ServiceUtil {
         }
     }
 
-    public static void bindServiceUtil(Context context , String action, ServiceConnection connection,String pck,int type) {
+    public static void bindServiceUtil(Context context , String action, ServiceConnection connection,String pck) {
         Intent in = getExplicitIntent(context, new Intent(action));
         if(in != null){
             in.setPackage(pck);
-            in.putExtra("REQ_TYPE",type);
             context.bindService(in, connection, 0);
         }
     }
 
+    public static void unBindServiceUtil(Context context ,ServiceConnection connection) {
+        context.unbindService(connection);
+    }
+
     private static Intent getExplicitIntent(Context context, Intent impl) {
         List<ResolveInfo> resolveInfo = context.getPackageManager().queryIntentServices(impl, 0);
 
diff --git a/app/src/main/res/drawable/ic_temp_human.xml b/app/src/main/res/drawable/ic_temp_human.xml
new file mode 100644 (file)
index 0000000..5e9b037
--- /dev/null
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="48dp"
+    android:height="48dp"
+    android:viewportWidth="1025"
+    android:viewportHeight="1024">
+  <path
+      android:pathData="M378.88,503.81c62.46,0 121.34,-24.58 165.38,-69.12 44.03,-44.54 68.61,-103.94 68.61,-166.91s-24.58,-122.37 -68.61,-166.91C499.71,55.3 441.34,30.72 378.88,30.72c-62.46,0 -121.34,24.58 -165.38,69.12 -44.03,44.54 -68.61,103.94 -68.61,166.91S169.47,389.12 213.5,433.66c44.03,45.57 102.91,70.14 165.38,70.14zM630.78,561.15c-28.16,-25.09 -53.76,-38.4 -98.3,-38.4 -10.75,0 -20.99,5.12 -28.16,13.31l-124.93,153.6 -126.46,-153.6c-7.17,-8.19 -16.9,-13.31 -28.16,-13.31 -58.37,0 -113.15,23.04 -154.62,64.51 -41.47,41.47 -70.14,97.28 -70.14,156.16v214.53c0,16.9 11.26,30.21 26.62,34.82h621.57c-50.18,-54.27 -82.43,-135.68 -82.43,-226.3 0,-79.36 24.58,-151.55 65.02,-205.31zM960.51,658.43L960.51,241.15c0,-58.37 -39.42,-136.7 -129.02,-136.7 -96.77,0 -130.05,77.82 -130.05,136.7v417.28c-41.47,31.74 -64,83.46 -64,141.82 0,97.79 73.73,204.29 192.51,204.29 118.27,0 195.58,-107.01 195.58,-204.29 -1.02,-58.37 -23.55,-110.08 -65.02,-141.82zM831.49,942.59c-76.29,0 -138.75,-64 -138.75,-141.82 0,-53.25 31.74,-97.79 73.22,-122.37L765.95,239.1c0,-38.91 27.14,-71.17 65.02,-71.17 37.89,0 64,31.74 64,71.17v438.78c41.47,25.09 74.24,71.17 74.24,122.37 0.51,78.34 -61.44,142.34 -137.73,142.34zM865.79,699.39L865.79,282.11c0,-19.46 -15.36,-35.33 -34.82,-35.33 -18.94,0 -34.82,15.87 -34.82,35.33v417.28c-39.94,14.34 -69.12,53.25 -69.12,101.38 0,58.37 46.59,106.5 103.94,106.5 57.34,0 103.94,-48.13 103.94,-106.5 0.51,-46.59 -29.18,-85.5 -69.12,-101.38z"
+      android:fillColor="#FB8C00"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_temp_wrist.xml b/app/src/main/res/drawable/ic_temp_wrist.xml
new file mode 100644 (file)
index 0000000..f26ff82
--- /dev/null
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="48dp"
+    android:height="48dp"
+    android:viewportWidth="1024"
+    android:viewportHeight="1024">
+  <path
+      android:pathData="M537.59,230.65c-34.06,-24.39 -127.96,-25.59 -127.96,-25.59l102.37,-102.37c39.77,16.43 179.14,153.55 179.14,153.55l-102.37,76.78s-17.12,-77.98 -51.18,-102.37zM959.24,673.88c-47.11,53.85 -96.56,105.21 -140.45,161.64 -100.5,129.11 -234.42,186.49 -394.5,187.87 -61.16,0.54 -138.35,-0.03 -182.14,0 -43.79,0.05 -43.79,-9.32 -78.54,-44.35 82.41,0 161.13,5.5 239.67,7.91 179.71,5.5 326.24,-72.58 426.95,-222.11 32.91,-48.85 76.42,-89.14 115.47,-133.9 18.3,-20.93 16.81,-40.92 -5.81,-63.31 -7.19,-7.09 -13.44,-17.61 -15.07,-27.41 -19.27,-113.63 -84.04,-196.34 -169.39,-266.13 -79.13,-64.67 -157.59,-127.19 -230.63,-198.75 -36.7,-35.93 -83.2,-46.04 -128.29,-22.65 -46.07,23.88 -93.1,46.3 -135.53,76.39 -17.22,12.23 -39.33,32.25 -18.81,51.62 43.51,41.15 100.68,74.63 161.13,79.13 19.99,1.46 46.37,-6.01 60.75,-20.99 28.18,-29.35 45.17,-11 64.49,14.54 20.63,27.26 33.06,52.51 36.83,86.04 7.17,63.9 34.57,137.76 40.92,179.14 2.76,18.2 -6.17,25.54 -19.3,31.32 -24.13,6.42 -46.01,6.04 -70.07,7.24 -50.95,2.61 -98.22,19.88 -124.2,64.7 -9.85,17.07 -23.7,41.02 -43.74,41.02 -20.17,0 -127.5,-2.53 -197.21,18.66 -18.94,5.71 -37.26,13.51 -55.97,19.96 -15.53,5.35 -34.09,15.69 -42.82,-7.01 -7.47,-19.55 10.83,-25.82 24.8,-31.61 74.14,-30.66 150.35,-52.16 231.66,-41 27.36,3.74 43.07,-2.53 59.76,-26.33 38.98,-55.56 94.59,-85.37 164.43,-81.84 27.18,1.38 35.73,-3.58 25.52,-32.42 -16.25,-45.73 -24.64,-93.61 -31.79,-141.83 -8.11,-54.74 -24.11,-63.57 -74.63,-48.65 -77.85,22.98 -213.69,-37.36 -249.16,-110.07 -11.03,-22.57 -7.27,-41.59 11.08,-57.25A625.9,625.9 0,0 1,424.3 4.83c34.78,-11.62 70.15,-2.15 98.71,22.44 108.53,93.44 218.07,185.85 324.53,281.59 57.79,51.98 92.92,119.69 112.81,194.8 3.12,11.7 4.38,25.87 11.82,34.11 45.89,50.77 24.8,93.08 -12.92,136.1zM348.95,662.85h0.05,-0.05z"
+      android:fillColor="#00ACC1"/>
+</vector>
index 9fa5d51..599d406 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@mipmap/qs_background"
-    tools:context=".AnimalHeatActivity">
-
-    <TextView
-        android:id="@+id/temperature_value"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textColor="#FFFFFF"
-        android:textSize="62px"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        android:background="@android:color/transparent"/>
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="℃"
-        android:textColor="#FFFFFF"
-        android:textSize="32dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.00"
-        app:layout_constraintStart_toEndOf="@+id/temperature_value"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.548"
-        android:background="@android:color/transparent"/>
-
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <data>
+
+        <import type="android.view.View" />
+
+        <variable
+            name="bodyTemp"
+            type="String" />
+
+        <variable
+            name="wristTemp"
+            type="String" />
+
+        <variable
+            name="checkTips"
+            type="String" />
+
+        <variable
+            name="showLoading"
+            type="boolean" />
+    </data>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@mipmap/qs_background"
+        tools:context=".AnimalHeatActivity">
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:src="@drawable/ic_temp_human"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.2"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.206" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:text="@string/activity_temp_str"
+            android:textColor="#FB8C00"
+            android:textSize="32sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.2"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.053" />
+
+        <TextView
+            android:id="@+id/temperature_value"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:text="@{bodyTemp}"
+            android:textColor="#FFFFFF"
+            android:textSize="62sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.62"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.165" />
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:src="@drawable/ic_temp_wrist"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.2"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.613" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:text="@string/activity_temp_wrist_str"
+            android:textColor="#00ACC1"
+            android:textSize="32sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.18"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.454" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:text="@{wristTemp}"
+            android:textColor="#FFFFFF"
+            android:textSize="62sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.62"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.6" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:text="@string/activity_temp_unit"
+            android:textColor="#FFFFFF"
+            android:textSize="32sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.899"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.599" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:text="@string/activity_temp_unit"
+            android:textColor="#FFFFFF"
+            android:textSize="32sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.899"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.202" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:text="@{checkTips}"
+            android:textColor="#FFFFFF"
+            android:textSize="36sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.812" />
+
+        <com.github.silvestrpredko.dotprogressbar.DotProgressBar
+            android:id="@+id/dot_progress_bar"
+            android:layout_width="wrap_content"
+            android:layout_height="40dp"
+            android:background="@android:color/transparent"
+            android:visibility="@{showLoading ? View.VISIBLE : View.GONE}"
+            app:amount="5"
+            app:animationDirection="left"
+            app:duration="@android:integer/config_mediumAnimTime"
+            app:endColor="@color/teal_A200"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintVertical_bias="0.962"
+            app:startColor="@color/lime_A400" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</layout>
diff --git a/app/src/main/res/mipmap-mdpi/a9_albumn_l02.png b/app/src/main/res/mipmap-mdpi/a9_albumn_l02.png
new file mode 100644 (file)
index 0000000..c452068
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_albumn_l02.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_alipay_l02.png b/app/src/main/res/mipmap-mdpi/a9_alipay_l02.png
new file mode 100644 (file)
index 0000000..7f7e4c4
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_alipay_l02.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_battery_0.png b/app/src/main/res/mipmap-mdpi/a9_battery_0.png
new file mode 100644 (file)
index 0000000..4f0c40e
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_battery_0.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_battery_1.png b/app/src/main/res/mipmap-mdpi/a9_battery_1.png
new file mode 100644 (file)
index 0000000..2ba5cc0
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_battery_1.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_battery_2.png b/app/src/main/res/mipmap-mdpi/a9_battery_2.png
new file mode 100644 (file)
index 0000000..fdf6d6f
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_battery_2.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_battery_3.png b/app/src/main/res/mipmap-mdpi/a9_battery_3.png
new file mode 100644 (file)
index 0000000..19c7c0c
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_battery_3.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_battery_4.png b/app/src/main/res/mipmap-mdpi/a9_battery_4.png
new file mode 100644 (file)
index 0000000..a1d396d
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_battery_4.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_battery_5.png b/app/src/main/res/mipmap-mdpi/a9_battery_5.png
new file mode 100644 (file)
index 0000000..348ef53
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_battery_5.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_camera_l02.png b/app/src/main/res/mipmap-mdpi/a9_camera_l02.png
new file mode 100644 (file)
index 0000000..5f242b2
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_camera_l02.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_contacts_l02.png b/app/src/main/res/mipmap-mdpi/a9_contacts_l02.png
new file mode 100644 (file)
index 0000000..c32315e
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_contacts_l02.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_dialer_l02.png b/app/src/main/res/mipmap-mdpi/a9_dialer_l02.png
new file mode 100644 (file)
index 0000000..b6252dc
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_dialer_l02.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_heartrate_icon.png b/app/src/main/res/mipmap-mdpi/a9_heartrate_icon.png
new file mode 100644 (file)
index 0000000..eb83864
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_heartrate_icon.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_heartrate_l02.png b/app/src/main/res/mipmap-mdpi/a9_heartrate_l02.png
new file mode 100644 (file)
index 0000000..b7e16d0
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_heartrate_l02.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_hour_0.png b/app/src/main/res/mipmap-mdpi/a9_hour_0.png
new file mode 100644 (file)
index 0000000..fe5cdeb
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_hour_0.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_hour_1.png b/app/src/main/res/mipmap-mdpi/a9_hour_1.png
new file mode 100644 (file)
index 0000000..1575506
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_hour_1.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_hour_2.png b/app/src/main/res/mipmap-mdpi/a9_hour_2.png
new file mode 100644 (file)
index 0000000..590caf4
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_hour_2.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_hour_3.png b/app/src/main/res/mipmap-mdpi/a9_hour_3.png
new file mode 100644 (file)
index 0000000..1159c4f
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_hour_3.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_hour_4.png b/app/src/main/res/mipmap-mdpi/a9_hour_4.png
new file mode 100644 (file)
index 0000000..ef74787
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_hour_4.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_hour_5.png b/app/src/main/res/mipmap-mdpi/a9_hour_5.png
new file mode 100644 (file)
index 0000000..c5e7a8d
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_hour_5.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_hour_6.png b/app/src/main/res/mipmap-mdpi/a9_hour_6.png
new file mode 100644 (file)
index 0000000..ab3cd09
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_hour_6.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_hour_7.png b/app/src/main/res/mipmap-mdpi/a9_hour_7.png
new file mode 100644 (file)
index 0000000..9794ea3
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_hour_7.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_hour_8.png b/app/src/main/res/mipmap-mdpi/a9_hour_8.png
new file mode 100644 (file)
index 0000000..97a8faa
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_hour_8.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_hour_9.png b/app/src/main/res/mipmap-mdpi/a9_hour_9.png
new file mode 100644 (file)
index 0000000..0ce8178
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_hour_9.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_language_h88.png b/app/src/main/res/mipmap-mdpi/a9_language_h88.png
new file mode 100644 (file)
index 0000000..cb3c0ff
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_language_h88.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_minutes_0.png b/app/src/main/res/mipmap-mdpi/a9_minutes_0.png
new file mode 100644 (file)
index 0000000..fa77bd5
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_minutes_0.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_minutes_1.png b/app/src/main/res/mipmap-mdpi/a9_minutes_1.png
new file mode 100644 (file)
index 0000000..fae4b0b
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_minutes_1.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_minutes_2.png b/app/src/main/res/mipmap-mdpi/a9_minutes_2.png
new file mode 100644 (file)
index 0000000..5628e03
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_minutes_2.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_minutes_3.png b/app/src/main/res/mipmap-mdpi/a9_minutes_3.png
new file mode 100644 (file)
index 0000000..0d060bf
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_minutes_3.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_minutes_4.png b/app/src/main/res/mipmap-mdpi/a9_minutes_4.png
new file mode 100644 (file)
index 0000000..6e0649b
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_minutes_4.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_minutes_5.png b/app/src/main/res/mipmap-mdpi/a9_minutes_5.png
new file mode 100644 (file)
index 0000000..905fd3b
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_minutes_5.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_minutes_6.png b/app/src/main/res/mipmap-mdpi/a9_minutes_6.png
new file mode 100644 (file)
index 0000000..22f863c
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_minutes_6.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_minutes_7.png b/app/src/main/res/mipmap-mdpi/a9_minutes_7.png
new file mode 100644 (file)
index 0000000..9f98c20
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_minutes_7.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_minutes_8.png b/app/src/main/res/mipmap-mdpi/a9_minutes_8.png
new file mode 100644 (file)
index 0000000..f3d38de
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_minutes_8.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_minutes_9.png b/app/src/main/res/mipmap-mdpi/a9_minutes_9.png
new file mode 100644 (file)
index 0000000..48e192d
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_minutes_9.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_pedometer.png b/app/src/main/res/mipmap-mdpi/a9_pedometer.png
new file mode 100644 (file)
index 0000000..8881488
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_pedometer.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_pedometer_l02.png b/app/src/main/res/mipmap-mdpi/a9_pedometer_l02.png
new file mode 100644 (file)
index 0000000..3931075
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_pedometer_l02.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_phone_type_4g.png b/app/src/main/res/mipmap-mdpi/a9_phone_type_4g.png
new file mode 100644 (file)
index 0000000..a01a9bb
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_phone_type_4g.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_qr_code_h88.png b/app/src/main/res/mipmap-mdpi/a9_qr_code_h88.png
new file mode 100644 (file)
index 0000000..8b4d224
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_qr_code_h88.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_settings_l02.png b/app/src/main/res/mipmap-mdpi/a9_settings_l02.png
new file mode 100644 (file)
index 0000000..ad4b4f2
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_settings_l02.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_signal_0.png b/app/src/main/res/mipmap-mdpi/a9_signal_0.png
new file mode 100644 (file)
index 0000000..6c38c47
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_signal_0.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_signal_1.png b/app/src/main/res/mipmap-mdpi/a9_signal_1.png
new file mode 100644 (file)
index 0000000..ab222b1
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_signal_1.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_signal_2.png b/app/src/main/res/mipmap-mdpi/a9_signal_2.png
new file mode 100644 (file)
index 0000000..07ce173
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_signal_2.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_signal_3.png b/app/src/main/res/mipmap-mdpi/a9_signal_3.png
new file mode 100644 (file)
index 0000000..97d569a
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_signal_3.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_signal_4.png b/app/src/main/res/mipmap-mdpi/a9_signal_4.png
new file mode 100644 (file)
index 0000000..dc01d22
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_signal_4.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_signal_x.png b/app/src/main/res/mipmap-mdpi/a9_signal_x.png
new file mode 100644 (file)
index 0000000..c27b208
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_signal_x.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_sms_l02.png b/app/src/main/res/mipmap-mdpi/a9_sms_l02.png
new file mode 100644 (file)
index 0000000..b9459d9
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_sms_l02.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_talk_l02.png b/app/src/main/res/mipmap-mdpi/a9_talk_l02.png
new file mode 100644 (file)
index 0000000..f415aa1
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_talk_l02.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_temperature_h88.png b/app/src/main/res/mipmap-mdpi/a9_temperature_h88.png
new file mode 100644 (file)
index 0000000..4abd5fb
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_temperature_h88.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_time_colon.png b/app/src/main/res/mipmap-mdpi/a9_time_colon.png
new file mode 100644 (file)
index 0000000..22c4d23
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_time_colon.png differ
diff --git a/app/src/main/res/mipmap-mdpi/a9_weather_l02.png b/app/src/main/res/mipmap-mdpi/a9_weather_l02.png
new file mode 100644 (file)
index 0000000..ad0c377
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/a9_weather_l02.png differ
index 5b99737..0871faa 100644 (file)
@@ -7,7 +7,7 @@
 
        <string name="app_h88_qrcode">QR Code</string>
        <string name="app_h88_temperature">TEMP</string>
-       <string name="app_h88_language">language</string>
+       <string name="app_h88_language">Language</string>
 
        <string name="main_manu_settings">Settings</string>
        <string name="main_manu_family">My Family</string>
 
        <string name="ic_high_pressure">HP</string>
        <string name="ic_low_pressure">LP</string>
+
+       <string name="activity_temp_str">BODY</string>
+       <string name="activity_temp_wrist_str">WRIST</string>
+       <string name="activity_temp_tips_check">MEASURING</string>
+       <string name="activity_temp_tips_end">COMPLETE</string>
 </resources>
index af8b2a1..59343d9 100644 (file)
        <string name="friday">ศุกร์</string>\r
        <string name="saturday">วันเสาร์</string>\r
        <string name="sunday">อาทิตย์</string>\r
+\r
+       <string name="activity_temp_str">คน</string>\r
+       <string name="activity_temp_wrist_str">ข้อมือ</string>\r
+       <string name="activity_temp_unit">℃</string>\r
+       <string name="activity_temp_tips_check">การวัดอุณหภูมิ</string>\r
+       <string name="activity_temp_tips_end">ดำเนินการ</string>\r
 </resources>\r
index 944ee06..af3aab3 100644 (file)
     <!--IC ADD-->
     <string name="ic_high_pressure">高压</string>
     <string name="ic_low_pressure">低压</string>
+
+    <string name="activity_temp_str">体温</string>
+    <string name="activity_temp_wrist_str">腕温</string>
+    <string name="activity_temp_tips_check">正在测量</string>
+    <string name="activity_temp_tips_end">测量完成</string>
 </resources>
\ No newline at end of file
index a6c7882..d8d27d4 100644 (file)
     <!--IC ADD-->
     <string name="ic_high_pressure" translatable="false">高压</string>
     <string name="ic_low_pressure" translatable="false">低压</string>
+
+    <string name="activity_temp_str">体温</string>
+    <string name="activity_temp_wrist_str">腕温</string>
+    <string name="activity_temp_unit">℃</string>
+    <string name="activity_temp_tips_check">正在测量</string>
+    <string name="activity_temp_tips_end">测量完成</string>
 </resources>
\ No newline at end of file
index a132217..2bc03ed 100644 (file)
@@ -1,2 +1,2 @@
-#Sun Jun 28 13:11:14 CST 2020
-VERSION_CODE=99
+#Wed Jul 29 21:08:37 CST 2020
+VERSION_CODE=136