apply plugin: 'com.android.application'
static def getL02ApkBaseName() {
- return "ICL02Launcher"
+ return "ICH88Launcher"
}
android {
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'
}
--- /dev/null
+// 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);
+}
--- /dev/null
+// 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();
+}
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);
}
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) {
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)) {
}
};
- 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
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 {
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;
}
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;
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;
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";
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);
((IcLauncherApplication) getApplication()).getTimeDatePresenter().registerTimeDateReceiver();
registerChangeClockReceiver();
+ //mHandler = new TestHandler(this);
+ //mHandler.sendEmptyMessageDelayed(1, 3000);
+
initLowPowerModel(getApplication());
ServiceUtil.startServiceUtil(getApplicationContext(),
((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();
isLowPower = status;
isChangeClock = false;
if (status) {
- ftManage.gotoLowPowerMode(isFinishing(),lowBatteryValue);
+ ftManage.gotoLowPowerMode(isFinishing(), lowBatteryValue);
} else {
ftManage.quitLowPowerMode(isFinishing());
}
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();
@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;
}
break;
case STRIP_ACTION:
- int event = intent.getIntExtra(EVENT_KEY,-1);
+ int event = intent.getIntExtra(EVENT_KEY, -1);
switch (event) {
case 1:
showSlipTipsDialog();
};
private void showImageTipsDialog(String message) {
+ if (isShowMessageTips) {
+ return;
+ }
+ isShowMessageTips = true;
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
Fragment prev = getSupportFragmentManager().findFragmentByTag("ImageTips");
if (prev != null) {
}
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) {
}
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;
}
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;
+ }
+ }
+ }
+
}
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"));
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;
}
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);
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();
return fragment;
}
+ public void setOnImageTipsListener(OnImageTipsListener listener) {
+ this.listener = listener;
+ }
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
textView.setText(value);
ImageView image = view.findViewById(R.id.image_bt_close);
image.setOnClickListener(v ->{
+ listener.OnDialogDismiss();
dismiss();
});
return view;
}
}
- 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);
--- /dev/null
+<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>
--- /dev/null
+<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>
<?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>
<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>
<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
<!--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
<!--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
-#Sun Jun 28 13:11:14 CST 2020
-VERSION_CODE=99
+#Wed Jul 29 21:08:37 CST 2020
+VERSION_CODE=136