From: snickersun Date: Wed, 24 Jun 2020 14:34:33 +0000 (+0800) Subject: release V24 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.js?a=commitdiff_plain;h=540a48dc5effafb1fd7467ff919b8858c80af6ba;p=factoryMode.git release V24 添加H88支持和NST175 温度校准。 --- diff --git a/app/release/FactoryMode_V21_202006240020_release.apk b/app/release/FactoryMode_V21_202006240020_release.apk new file mode 100644 index 0000000..5c22053 Binary files /dev/null and b/app/release/FactoryMode_V21_202006240020_release.apk differ diff --git a/app/release/FactoryMode_V24_202006242233_release.apk b/app/release/FactoryMode_V24_202006242233_release.apk new file mode 100644 index 0000000..935c8a3 Binary files /dev/null and b/app/release/FactoryMode_V24_202006242233_release.apk differ diff --git a/app/release/output.json b/app/release/output.json index 94c045c..fb3077e 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":10,"versionName":"202005071431","enabled":true,"outputFile":"FactoryMode_V10_202005071431_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V10_202005071431_release.apk","properties":{}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":24,"versionName":"202006242233","enabled":true,"outputFile":"FactoryMode_V24_202006242233_release.apk","fullName":"release","baseName":"release"},"path":"FactoryMode_V24_202006242233_release.apk","properties":{}}] \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5864e57..f835c92 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -103,6 +103,13 @@ + + + + + diff --git a/app/src/main/java/com/ic/jni/ICJniUtils.java b/app/src/main/java/com/ic/jni/ICJniUtils.java index 997d234..5c1928b 100644 --- a/app/src/main/java/com/ic/jni/ICJniUtils.java +++ b/app/src/main/java/com/ic/jni/ICJniUtils.java @@ -57,4 +57,7 @@ public class ICJniUtils { /*获取血氧值*/ public static native int getSPO2(); + + + public static native double getTemperature(); } diff --git a/app/src/main/java/mobile/miki/HeartRate.java b/app/src/main/java/mobile/miki/HeartRate.java index 92f2cfd..a192435 100644 --- a/app/src/main/java/mobile/miki/HeartRate.java +++ b/app/src/main/java/mobile/miki/HeartRate.java @@ -28,6 +28,7 @@ public class HeartRate extends BaseActivity implements View.OnClickListener { private TextView tv_isweared; private TextView tv_ppg; + private TextView tv_temperature; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -56,13 +57,15 @@ public class HeartRate extends BaseActivity implements View.OnClickListener { } int ppg=ICJniUtils.getPPG(); int weared=ICJniUtils.isWeared(); - + double temp=ICJniUtils.getTemperature(); String wearedstr=String.valueOf(weared); String ppgstr=String.valueOf(ppg); + String tempstr=String.format("%1$.2f",temp); tv_isweared.setText(wearedstr); tv_ppg.setText(ppgstr); - Logger.d("Weared:"+wearedstr+" PPG:"+ppgstr); + tv_temperature.setText(tempstr); + Logger.d("Weared:"+wearedstr+" PPG:"+ppgstr+" Temperature:"+tempstr); return false; } }); @@ -88,6 +91,7 @@ public class HeartRate extends BaseActivity implements View.OnClickListener { tv_isweared=(TextView)findViewById(R.id.tv_weared_value); tv_ppg=(TextView)findViewById(R.id.tv_ppg_value); + tv_temperature=(TextView)findViewById(R.id.tv_temperature_value); } diff --git a/app/src/main/java/mobile/miki/TemperatureAdjustActivity.java b/app/src/main/java/mobile/miki/TemperatureAdjustActivity.java new file mode 100644 index 0000000..c5fdcf6 --- /dev/null +++ b/app/src/main/java/mobile/miki/TemperatureAdjustActivity.java @@ -0,0 +1,175 @@ +package mobile.miki; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.os.PowerManager; +import android.preference.PreferenceManager; +import android.util.Log; +import android.view.View; +import android.widget.TextView; + +import com.ic.jni.ICJniUtils; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Timer; +import java.util.TimerTask; + +import mobile.miki.mainui.ButtonViewTwo; +import mobile.miki.mainui.TestMainActivity; +import mobile.miki.mainui.TestMainList; +import mobile.miki.util.Config; +import mobile.miki.util.Logger; + +public class TemperatureAdjustActivity extends BaseActivity implements View.OnClickListener { + + private ButtonViewTwo buttonView; + boolean running; + + Timer mTestTimer=null; + double avg_temp=0.0f; + private TextView tv_mesg; + private TextView tv_temperature; + + long timestamp_start = 0; + long adjust_start_seconds_left=300; + long adjust_timeout_time=300; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.temperature_adjust_layout); + initView(); + + timestamp_start=System.currentTimeMillis(); + mTestTimer=new Timer(); + TimerTask HRTimerTask=new TimerTask() { + @Override + public void run() { + mhandler.sendEmptyMessage(0); + } + }; + mTestTimer.schedule(HRTimerTask,0,1000L); + + } + PowerManager.WakeLock screenOnWakelock=null; + @Override + protected void onResume() { + super.onResume(); + if (screenOnWakelock==null) + screenOnWakelock = getScreenOnWakeLock(this,GPSActivity.class.getSimpleName()); + + } + public static PowerManager.WakeLock getScreenOnWakeLock(Context context, String tag) { + PowerManager.WakeLock wakeLock = ((PowerManager)(context.getSystemService(Context.POWER_SERVICE))).newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, tag); + wakeLock.acquire(); + return wakeLock; + } + @Override + protected void onPause() { + super.onPause(); + if(screenOnWakelock!=null) { + if (screenOnWakelock.isHeld()) { + screenOnWakelock.release(); + } + screenOnWakelock=null; + } + + + } + Handler mhandler=new Handler(new Handler.Callback() { + @Override + public boolean handleMessage(Message message) { + + double temp = ICJniUtils.getTemperature(); + String tempstr = String.format("%1$.2f", temp); + tv_temperature.setText(tempstr); + Logger.d("Temperature:" + tempstr); + String header = "体温校准开始,请放置在37摄氏度恒温箱中。剩余 "; + String tail = "秒。。。"; + long time_cost = (System.currentTimeMillis() - timestamp_start) / 1000; + adjust_start_seconds_left = (adjust_timeout_time - time_cost); + if (adjust_start_seconds_left == 0) { + + tv_mesg.setText("体温校准完毕,偏差数据"+String.format("%1$.2f",(avg_temp-37.0f))+"摄氏度!"); + if(mTestTimer!=null) { + + mTestTimer.cancel(); + mTestTimer=null; + } + + }else{ + + if(adjust_start_seconds_left <=5 && adjust_start_seconds_left > 0) { + if (avg_temp == 0.0f) + avg_temp = temp; + avg_temp = (avg_temp + temp) / 2;//对数据做一定的平均 + } + + tv_mesg.setText(header + adjust_start_seconds_left + tail); + } + return false; + } + }); + @Override + protected void onDestroy() { + super.onDestroy(); + ICJniUtils.disablePPG(); + if(mTestTimer!=null) { + + mTestTimer.cancel(); + mTestTimer=null; + } + } + + + + private void initView() { + buttonView = (ButtonViewTwo) findViewById(R.id.btn_set); + buttonView.btn_left.setOnClickListener(this); + buttonView.btn_right.setOnClickListener(this); + buttonView.setSuccessColor(); + buttonView.btn_left.setClickable(true); + buttonView.btn_left.setText("Ok"); + buttonView.btn_right.setText("Cancel"); + tv_mesg=(TextView)findViewById(R.id.tv_tempAdjustMsg); + tv_temperature=(TextView)findViewById(R.id.tv_temperature_value); + + } + + + private void save_adjust_value(){ + + if (adjust_start_seconds_left<=0){ + try { + new FileOutputStream(new File("/productinfo/temp_adjust_37.txt")).write(String.format("%1$.2f",(avg_temp-37.0f)).getBytes()); + Logger.d("write "+String.format("%1$.2f",(avg_temp-37.0f))+" to /productinfo/temp_adjust_37.txt success!"); + } catch (IOException e) { + e.printStackTrace(); + Logger.d("/productinfo/temp_adjust_37.txt 写入失败!"); + } + + } + } + @Override + public void onClick(View view) { + + Intent intent1 = new Intent(this, TestMainList.class); + // TestResult testResult = (TestResult) getApplicationContext(); + switch (view.getId()) { + + case R.id.btn_two_left: + save_adjust_value(); + startActivity(intent1); + finish(); + break; + case R.id.btn_two_right: + startActivity(intent1); + finish(); + break; + } + } +} diff --git a/app/src/main/java/mobile/miki/mainui/TestMainList.java b/app/src/main/java/mobile/miki/mainui/TestMainList.java index 036d7d9..020e8dc 100644 --- a/app/src/main/java/mobile/miki/mainui/TestMainList.java +++ b/app/src/main/java/mobile/miki/mainui/TestMainList.java @@ -27,6 +27,7 @@ import mobile.miki.BaseActivity; import mobile.miki.GPSActivity; import mobile.miki.MyApplication; import mobile.miki.R; +import mobile.miki.TemperatureAdjustActivity; import mobile.miki.VersionActivity; import mobile.miki.ageingmode.AgeingModeActivity; import mobile.miki.flow.DownLoad; @@ -49,6 +50,7 @@ public class TestMainList extends BaseActivity implements OnClickListener { private LinearLayout dial; private LinearLayout flagPosition; private LinearLayout gpsFulltest; + private LinearLayout tempAdjust; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub @@ -69,6 +71,7 @@ public class TestMainList extends BaseActivity implements OnClickListener { gpsFulltest = (LinearLayout) findViewById(R.id.gps_full_test); + tempAdjust = (LinearLayout)findViewById(R.id.tempAdjustLayout); flagPosition = (LinearLayout)findViewById(R.id.flagposiontion); if (!FTUtils.isSugar()) { flagPosition.setVisibility(View.GONE); @@ -93,6 +96,7 @@ public class TestMainList extends BaseActivity implements OnClickListener { flagPosition.setOnClickListener(this); shutdown_system.setOnClickListener(this); gpsFulltest.setOnClickListener(this); + tempAdjust.setOnClickListener(this); // Log.d(TAG, "onCreate"); Settings.System.putInt(getContentResolver(), "mobile.miki.FactoryModeRunning", 1); Config.initConfig(this); @@ -208,6 +212,10 @@ public class TestMainList extends BaseActivity implements OnClickListener { intent = new Intent(TestMainList.this, GPSActivity.class); startActivity(intent); break; + case R.id.tempAdjustLayout: + intent = new Intent(TestMainList.this, TemperatureAdjustActivity.class); + startActivity(intent); + break; default: break; } diff --git a/app/src/main/java/mobile/miki/util/Config.java b/app/src/main/java/mobile/miki/util/Config.java index daced4d..803ea67 100644 --- a/app/src/main/java/mobile/miki/util/Config.java +++ b/app/src/main/java/mobile/miki/util/Config.java @@ -275,6 +275,14 @@ public class Config { testResultList.add("keys"); testResultList.add("vibrator"); testResultList.add("heartrate"); + } else if (FTUtils.isH88()){ + + //list.add(context.getString(R.string.test_keypad)); + list.add(context.getString(R.string.heartrate)); + list.remove(context.getString(R.string.camera)); + //testResultList.add("keys"); + testResultList.add("heartrate"); + testResultList.remove("camera"); } stateArr = new String[testResultList.size()]; return list; diff --git a/app/src/main/java/mobile/miki/util/FTUtils.java b/app/src/main/java/mobile/miki/util/FTUtils.java index 7494d80..1d4fd3a 100644 --- a/app/src/main/java/mobile/miki/util/FTUtils.java +++ b/app/src/main/java/mobile/miki/util/FTUtils.java @@ -205,4 +205,11 @@ public class FTUtils { } return false; } + public static boolean isH88(){ + + if (getMODEL().contains("H88")||SystemProperties.get("ro.product.isH88","").equalsIgnoreCase("true")) { + return true; + } + return false; + } } diff --git a/app/src/main/res/layout/dig_layout_testlist.xml b/app/src/main/res/layout/dig_layout_testlist.xml index ab98eb3..af4b4c2 100644 --- a/app/src/main/res/layout/dig_layout_testlist.xml +++ b/app/src/main/res/layout/dig_layout_testlist.xml @@ -15,7 +15,7 @@ android:id="@+id/Factory_test_title" style="@style/category_title_style" android:layout_width="match_parent" - android:layout_height="60dp" + android:layout_height="50dp" android:gravity="center|center_horizontal" android:text="@string/benji" android:textSize="22sp" /> @@ -322,5 +322,42 @@ android:textSize="22sp" /> + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/heartrate_layout.xml b/app/src/main/res/layout/heartrate_layout.xml index 0ddc61a..330b159 100644 --- a/app/src/main/res/layout/heartrate_layout.xml +++ b/app/src/main/res/layout/heartrate_layout.xml @@ -8,6 +8,26 @@ android:layout_height="wrap_content" android:orientation="vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 44057af..0db5db3 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -861,6 +861,7 @@ 工程模式 更多设置 解绑 + 温度校准 开始录音 结束录音 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a9b0944..5c74565 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -193,7 +193,7 @@ Modify SIM1 Modify SIM2 Please enter a new IMEI number - Automatic testing + Automatic testing自动测试 PCBA testing edition Restore factory settings @@ -201,7 +201,7 @@ APN query SIM card lock function setting Modify IMEI number - Test report + Test report测试报告 Click start GPS test Click start FM test Click to start the camera test @@ -379,7 +379,7 @@ VLUp VLDown miaoSoS - Ageing mode + Ageing mode老化模式 Speaker test LCD test Camera test @@ -388,8 +388,8 @@ Start Testing Factory test - Reset - PowerOff + Reset恢复出厂设置 + PowerOff关机 Logo: pass (green), not pass (red), not measured (white) Clear the test data Version and calibration @@ -402,6 +402,7 @@ Phone Backlight GPS + Temperature Adjust 温度校准 Start recording Stop recording Start playing diff --git a/app/version_code.properties b/app/version_code.properties index 66dc3b4..b293b5f 100644 --- a/app/version_code.properties +++ b/app/version_code.properties @@ -1,2 +1,2 @@ -#Mon Jun 15 18:05:53 CST 2020 -VERSION_CODE=14 +#Wed Jun 24 22:33:02 CST 2020 +VERSION_CODE=24