release V168
authorsnickersun <scy@incartech.cn>
Thu, 29 Oct 2020 13:54:28 +0000 (21:54 +0800)
committersnickersun <scy@incartech.cn>
Thu, 29 Oct 2020 13:54:28 +0000 (21:54 +0800)
添加Q3FYT 项目界面,采用AK和L02的合集

15 files changed:
app/release/ICL02Launcher_V168_202010292150_release.apk [moved from app/release/ICL02Launcher_V165_202010250101_release.apk with 52% similarity]
app/release/output.json
app/src/main/java/com/ic/launcher/FragmentManage.java
app/src/main/java/com/ic/launcher/configure/l02/L02AppInfo.java
app/src/main/java/com/ic/launcher/fragment/L02MainFragment.java
app/src/main/java/com/ic/launcher/fragment/S123MainFragment.java [new file with mode: 0644]
app/src/main/java/com/ic/launcher/util/SystemUtils.java
app/src/main/res/layout/fragment_l02_main.xml
app/src/main/res/mipmap-mdpi/ak_app_icon_call_records.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/ak_app_icon_sedentary.png [new file with mode: 0644]
app/src/main/res/mipmap-mdpi/ak_app_icon_sleep.png [new file with mode: 0644]
app/src/main/res/values-en/strings.xml
app/src/main/res/values-zh-rCN/strings.xml
app/src/main/res/values/strings.xml
app/version_code.properties

similarity index 52%
rename from app/release/ICL02Launcher_V165_202010250101_release.apk
rename to app/release/ICL02Launcher_V168_202010292150_release.apk
index b61e37e..5c2eedc 100644 (file)
Binary files a/app/release/ICL02Launcher_V165_202010250101_release.apk and b/app/release/ICL02Launcher_V168_202010292150_release.apk differ
index 60e4f93..192da07 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":165,"versionName":"202010250101","enabled":true,"outputFile":"ICL02Launcher_V165_202010250101_release.apk","fullName":"release","baseName":"release"},"path":"ICL02Launcher_V165_202010250101_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":168,"versionName":"202010292150","enabled":true,"outputFile":"ICL02Launcher_V168_202010292150_release.apk","fullName":"release","baseName":"release"},"path":"ICL02Launcher_V168_202010292150_release.apk","properties":{}}]
\ No newline at end of file
index 70a72a8..766dabe 100644 (file)
@@ -10,10 +10,13 @@ import androidx.fragment.app.FragmentTransaction;
 import com.ic.launcher.fragment.AppListFragment;
 import com.ic.launcher.fragment.BaseFragment;
 import com.ic.launcher.fragment.L02MainFragment;
+import com.ic.launcher.fragment.S123MainFragment;
+
 import com.ic.launcher.fragment.LowPowerModeFragment;
 import com.ic.launcher.fragment.clock.Clock12DialFragment;
 import com.ic.launcher.fragment.clock.Clock6DialFragment;
 import com.ic.launcher.util.SPUtils;
+import com.ic.launcher.util.SystemUtils;
 
 import static com.ic.launcher.configure.l02.L02Icon.CLOCK_INDEX_12;
 import static com.ic.launcher.configure.l02.L02Icon.CLOCK_INDEX_6;
@@ -144,7 +147,11 @@ public class FragmentManage {
             case CLOCK_INDEX_12:
                 return Clock12DialFragment.newInstance();
             default:
-                return L02MainFragment.newInstance();
+                if(SystemUtils.isS123()){
+                    return S123MainFragment.newInstance();
+                }else {
+                    return L02MainFragment.newInstance();
+                }
         }
     }
 
index 681fd70..c552ae8 100644 (file)
@@ -33,8 +33,10 @@ public class L02AppInfo {
         String language = locale.getLanguage();
         if (SystemUtils.isH88()) {
             return mH88AppList;
-        }else if (SystemUtils.isS123()){
+        }else if (SystemUtils.isS123()) {
             return mS123DefaultAppList;
+        }else if (SystemUtils.isYT()){
+            return mq3fytDefaultAppList;
         }else{
             if (language.contains("zh")) {
                 return mL02DefaultAppList;
@@ -57,6 +59,71 @@ public class L02AppInfo {
      * 拨号的顺序不能变 在低电量模式下会查找这个列表,然后查找索引为1的拨号,
      * 如果要修改 请到 {@link  LowPowerModeFragment} 中一并修改
      **/
+
+    private static final List<AppInfoEntity> mq3fytDefaultAppList = new ArrayList<AppInfoEntity>() {
+        {
+
+            //联系人
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_contacts_l02, R.string.app_ContactName,
+                    "com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.PhoneDirectoryActivity"));
+            //拨号
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_dialer_l02, R.string.app_dialer,
+                    "com.ic.dial", "com.ic.dial.MainActivity"));
+
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.ak_app_icon_call_records, R.string.app_calllog,
+                    "com.yjsoft.phonelog", "com.yjsoft.phonelog.MainActivity"));
+
+            //短信
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_sms_l02, R.string.app_Sms,
+                    "com.zmapp.sms", "com.zmapp.sms.MainActivity"));
+
+            //心率
+            if(ppg_ecg_sensor_available) {
+                add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_heartrate_l02, R.string.app_name_heart,
+                        "com.ic.blood", "com.ic.blood.BloodActivity"));
+//                        "com.ic.ak.hardware", "com.ic.ak.hardware.ui.BloodActivity"));
+            }
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.ak_app_icon_sleep, R.string.app_title_sleep,
+                    "com.ic.ak.hardware", "com.ic.ak.hardware.ui.SleepActivity"));
+
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.ak_app_icon_sedentary, R.string.app_title_sedentary,
+                    "com.ic.ak.hardware", "com.ic.ak.hardware.ui.SedentaryActivity"));
+
+            //运动
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_pedometer_l02, R.string.app_Sport,
+                    "com.ic.ak.hardware", "com.ic.ak.hardware.ui.PedometerActivity"));
+            //            //天气
+//            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_weather_l02, R.string.app_Weather,
+  //                  "com.ic.weather", "com.ic.weather.WeatherActivity"));
+
+
+            //微聊
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_talk_l02, R.string.app_Chat,
+                    "com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.MicroChatActivity"));
+
+
+
+//            //支付包
+//            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_alipay_l02, R.string.app_AliPay,
+//                    "com.eg.android.AlipayGphone", "com.alipay.watch.ui.MainActivity"));
+            //相机
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_camera_l02, R.string.app_Camera,
+                    "com.eqc.camera", "com.eqc.camera.TakePictureActivity"));
+            //相册
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_albumn_l02, R.string.app_Album,
+                    "com.eqc.gallery", "com.eqc.gallery.ui.LocalAlbumDetail"));
+
+//            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_language_h88, R.string.app_h88_language,
+//                    "com.ic.languageguide", "com.ic.languageguide.MainActivity"));
+
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_qr_code_h88, R.string.app_h88_qrcode,
+                    "com.ic.launcher", "com.ic.launcher.QrCodeActivity"));
+
+            //设置
+            add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_settings_l02, R.string.main_manu_settings,
+                    "com.eqc.settings", "com.eqc.settings.MainActivity"));
+        }
+    };
     private static final List<AppInfoEntity> mS123DefaultAppList = new ArrayList<AppInfoEntity>() {
         {
 
index 6db842f..c24cd9e 100644 (file)
@@ -30,7 +30,7 @@ public class L02MainFragment extends BaseFragment {
 
     private static final String TAG = "L02MainFragment";
 
-    private FragmentS123MainBinding mainBinding;
+    private FragmentL02MainBinding mainBinding;
     private boolean chargingState;
 
     public static L02MainFragment newInstance() {
@@ -62,7 +62,7 @@ public class L02MainFragment extends BaseFragment {
                              Bundle savedInstanceState) {
 
 
-        mainBinding = FragmentS123MainBinding.inflate(inflater, container, false);
+        mainBinding = FragmentL02MainBinding.inflate(inflater, container, false);
         mainBinding.setHeartValue(String.valueOf(SPUtils.getBloodHeartSP(mContext)));
         mainBinding.setTempValue(String.format("%.1f",SPUtils.getTempSP(mContext)));
         mainBinding.setSpo2value(String.valueOf(SPUtils.getBloodSPo2SP(mContext)));
@@ -79,6 +79,7 @@ public class L02MainFragment extends BaseFragment {
             mainBinding.setShowTemp(View.GONE);
             mainBinding.setShowStep(View.VISIBLE);
 
+
         }
         //监听事件
         initOnTouchListener(mainBinding.getRoot());
diff --git a/app/src/main/java/com/ic/launcher/fragment/S123MainFragment.java b/app/src/main/java/com/ic/launcher/fragment/S123MainFragment.java
new file mode 100644 (file)
index 0000000..3140a3f
--- /dev/null
@@ -0,0 +1,229 @@
+package com.ic.launcher.fragment;
+
+import android.app.Application;
+import android.content.Context;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.ic.launcher.configure.l02.L02Icon;
+import com.ic.launcher.databinding.FragmentL02MainBinding;
+import com.ic.launcher.databinding.FragmentS123MainBinding;
+import com.ic.launcher.mode.BaseModel;
+import com.ic.launcher.mode.L02MainModel;
+import com.ic.launcher.util.IcLog;
+import com.ic.launcher.util.SPUtils;
+import com.ic.launcher.util.SystemUtils;
+
+
+public class S123MainFragment extends BaseFragment {
+
+    private static final String TAG = "L02MainFragment";
+
+    private FragmentS123MainBinding mainBinding;
+    private boolean chargingState;
+
+    public static S123MainFragment newInstance() {
+        return new S123MainFragment();
+    }
+
+    @Override
+    public void onAttach(@NonNull Context context) {
+        super.onAttach(context);
+    }
+
+    @Override
+    protected BaseModel initFragmentModel(Application application) {
+        L02MainModel.Factory factory = new L02MainModel.Factory(application);
+        return new ViewModelProvider(this, factory).get(L02MainModel.class);
+    }
+
+    @Override
+    protected void onObserveModelValue(BaseModel baseModel) {
+        L02MainModel mainModel = (L02MainModel)baseModel;
+        observePhoneValue( mainModel);
+        observeBatteryValue(mainModel);
+        observeDataTimeValue(mainModel);
+        observeHardwareValue(mainModel);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                             Bundle savedInstanceState) {
+
+
+        mainBinding = FragmentS123MainBinding.inflate(inflater, container, false);
+        mainBinding.setHeartValue(String.valueOf(SPUtils.getBloodHeartSP(mContext)));
+        mainBinding.setTempValue(String.format("%.1f",SPUtils.getTempSP(mContext)));
+        mainBinding.setSpo2value(String.valueOf(SPUtils.getBloodSPo2SP(mContext)));
+        mainBinding.setOutTempValue(String.format("%.1f",SPUtils.getTempOutSP(mContext)));
+        chargingState=false;
+        mainBinding.setStepValue("0");
+        if(SystemUtils.isS123())
+        {
+            Log.i(TAG,"isS123");
+            mainBinding.setShowStep(View.GONE);
+            mainBinding.setShowTemp(View.VISIBLE);
+        }else{
+            Log.i(TAG,"not S123");
+            mainBinding.setShowTemp(View.GONE);
+            mainBinding.setShowStep(View.VISIBLE);
+
+
+        }
+        //监听事件
+        initOnTouchListener(mainBinding.getRoot());
+        return mainBinding.getRoot();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        if(chargingState){
+            if(mainBinding != null){
+                mainBinding.setBatteryCharge(true);
+            }
+        }
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        if(chargingState){
+            if(mainBinding != null){
+                mainBinding.setBatteryCharge(false);
+            }
+        }
+    }
+
+    private void observePhoneValue(L02MainModel model) {
+        model.getObservablePhoneType().observe(this, resID ->{
+            if(mainBinding != null){
+                mainBinding.setPhoneNetType(resID);
+            }
+        });
+
+        model.getObservableSignal().observe(this, resID ->{
+            if(mainBinding != null){
+                if(resID == L02Icon.l02SignalResId[0]
+                || resID == L02Icon.l02SignalResId[1]){
+                    mainBinding.setPhoneShow(false);
+                }else{
+                    mainBinding.setPhoneShow(true);
+                }
+                mainBinding.setPhoneSignal(resID);
+            }
+        });
+
+        model.getObservableTransport().observe(this, resID -> {
+            if(mainBinding != null){
+                mainBinding.setPhoneTransport(resID);
+            }
+        });
+
+        model.getObservableBTStatus().observe(this,btStatus ->{
+            if(mainBinding !=null){
+                mainBinding.setBtStatus(btStatus);
+            }
+        });
+
+        model.getObservableWiFiStatus().observe(this, wifiStatus ->{
+            if(mainBinding !=null){
+                mainBinding.setWifiStatus(wifiStatus);
+            }
+        });
+        model.getObservableGpsStatus().observe(this, gpsStatus ->{
+            if(mainBinding !=null){
+                mainBinding.setGpsStatus(gpsStatus);
+            }
+        });
+    }
+
+    private void observeBatteryValue(L02MainModel model) {
+        model.getObservableBatteryValue().observe(this, value ->{
+            if(mainBinding != null){
+                mainBinding.setBatteryValue(value);
+            }
+        });
+
+        model.getObservableBattery().observe(this, resID ->{
+            if(mainBinding != null){
+                mainBinding.setBatteryDrawable(resID);
+            }
+        });
+
+        model.getObservableBatteryCharging().observe(this, state -> {
+            if(chargingState != state){
+                chargingState =state;
+                if(mainBinding != null){
+                    mainBinding.setBatteryCharge(chargingState);
+                }
+            }
+        });
+    }
+
+    private void observeDataTimeValue(L02MainModel model) {
+        model.getObservableWeek().observe(this, week ->{
+            if(mainBinding != null){
+                mainBinding.setWatchWeek(week);
+            }
+        });
+
+        model.getObservableYear().observe(this, year -> {
+            if(mainBinding != null){
+                mainBinding.setWatchDate(year);
+            }
+        });
+
+        model.getObservableTime().observe(this, time -> {
+            if(mainBinding != null){
+                updateTimeValue(time);
+            }
+        });
+    }
+
+    private void observeHardwareValue(L02MainModel model) {
+        model.getObservableHardwareHeart().observe(this, heart ->{
+            if(mainBinding != null){
+                mainBinding.setHeartValue(heart);
+            }
+        });
+
+        model.getObservableHardwarePed().observe(this, ped -> {
+            if(mainBinding != null){
+                mainBinding.setStepValue(ped);
+            }
+        });
+        model.getObservableHardwareTemp().observe(this, temp -> {
+            if(mainBinding != null){
+                IcLog.i(TAG,"action get temp "+temp);
+                mainBinding.setTempValue(temp);
+            }
+        });
+        model.getObservableHardwareTempOut().observe(this, temp -> {
+            if(mainBinding != null){
+                IcLog.i(TAG,"action get tempOut "+temp);
+                mainBinding.setOutTempValue(temp);
+            }
+        });
+        model.getObservableHardwareHeartSpo2().observe(this, spo2 -> {
+            if(mainBinding != null){
+                IcLog.i(TAG,"action get SPo2 "+spo2);
+                mainBinding.setSpo2value(spo2);
+            }
+        });
+    }
+
+    private void updateTimeValue(int[] value){
+        IcLog.i("TEST","updateTimeValue");
+        mainBinding.setHourTen(value[0]);
+        mainBinding.setHourBit(value[1]);
+        mainBinding.setMinuteTen(value[2]);
+        mainBinding.setMinuteBit(value[3]);
+    }
+}
index 9c9b2cf..29ccecd 100644 (file)
@@ -59,12 +59,27 @@ public class SystemUtils {
         }
         return false;
     }
-
+    public static boolean isq3fyt()
+    {
+        String launcher=getLauncherName();
+        if (launcher.equals("q3fyt")){
+            return true;
+        }
+        return false;
+    }
     public static String getLauncherName(){
         String launchername=getSystemPropertiesString("persist.sys.launcherName","l02");
         return launchername;
     }
 
+    public static boolean isYT(){
+        String launcher=getLauncherName();
+        if (launcher.equals("q3fyt")){
+            return true;
+        }
+        return false;
+    }
+
 
     public static String getSystemPropertiesString(String prop,String defaultvlaue){
         String ret=defaultvlaue;
index ad57257..c00a17c 100644 (file)
             android:id="@+id/l02_heart_img"
             style="@style/watchDateIconStyle"
             android:layout_alignParentStart="true"
-            android:layout_marginStart="40dp"
+            android:layout_marginStart="10dp"
             android:src="@mipmap/clockl02_heartrate_icon" />
 
         <TextView
             android:layout_marginStart="5dp"
             android:layout_toEndOf="@id/l02_heart_img"
             android:text="@{heartValue}" />
+        <ImageView
+            android:id="@+id/s123_spo2_img"
+            style="@style/watchDateIconStyle"
+            android:layout_width="44dp"
+            android:layout_height="47dp"
+            android:layout_toEndOf="@id/l02_heart_value"
+            android:src="@mipmap/spo2" />
 
+        <TextView
+            android:id="@+id/l02_spo2_value"
+            style="@style/watchDateIconTextStyle"
+            android:layout_marginStart="2dp"
+            android:layout_toEndOf="@id/s123_spo2_img"
+            android:text="@{spo2value}" />
         <ImageView
             android:id="@+id/l02_pedometer_img"
             style="@style/watchDateIconStyle"
-            android:layout_toEndOf="@id/l02_time_sp"
-            android:visibility="@{showStep}"
+            android:layout_toEndOf="@id/l02_spo2_value"
             android:src="@mipmap/clockl02_pedometer" />
 
         <TextView
             style="@style/watchDateIconTextStyle"
             android:layout_marginStart="2dp"
             android:layout_toEndOf="@id/l02_pedometer_img"
-            android:visibility="@{showStep}"
             android:text="@{stepValue}" />
 
-        <ImageView
-            android:id="@+id/s123_temp_img"
-            style="@style/watchDateIconStyle"
-            android:layout_width="44dp"
-            android:layout_height="47dp"
-            android:layout_toEndOf="@id/l02_pedometer_value"
-            android:visibility="@{showTemp}"
-            android:src="@mipmap/temp_icon" />
 
-        <TextView
-            android:id="@+id/l02_temp_value"
-            style="@style/watchDateIconTextStyle"
-            android:layout_marginStart="2dp"
-            android:visibility="@{showTemp}"
-            android:layout_toEndOf="@id/s123_temp_img"
-            android:text="@{TempValue}" />
 
     </RelativeLayout>
 
diff --git a/app/src/main/res/mipmap-mdpi/ak_app_icon_call_records.png b/app/src/main/res/mipmap-mdpi/ak_app_icon_call_records.png
new file mode 100644 (file)
index 0000000..e90dbb4
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ak_app_icon_call_records.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ak_app_icon_sedentary.png b/app/src/main/res/mipmap-mdpi/ak_app_icon_sedentary.png
new file mode 100644 (file)
index 0000000..5d45d57
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ak_app_icon_sedentary.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ak_app_icon_sleep.png b/app/src/main/res/mipmap-mdpi/ak_app_icon_sleep.png
new file mode 100644 (file)
index 0000000..14bee3a
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ak_app_icon_sleep.png differ
index 2210d30..4d8199a 100644 (file)
@@ -62,6 +62,9 @@
        <string name="app_ContactName">Contacts</string>
        <string name="app_TelePhone">Call</string>
        <string name="app_VoLTE">VoLTE Call</string>
+       <string name="app_calllog">CallLog</string>
+       <string name="app_title_sedentary">Sedentary</string>
+       <string name="app_title_sleep">Sleep</string>
        <string name="app_Sms">Message</string>
        <string name="app_VideoCall">VideoCall</string>
        <string name="app_Wechat">We chat</string>
index 225b3cc..e4bab21 100644 (file)
@@ -58,6 +58,9 @@
     <string name="app_VoLTE">高清通话</string>
     <string name="app_Sms">短信</string>
     <string name="app_VideoCall">视频通话</string>
+    <string name="app_calllog">通话记录</string>
+    <string name="app_title_sedentary">久坐提醒</string>
+    <string name="app_title_sleep">睡眠监测</string>
     <string name="app_Wechat">微信</string>
     <string name="app_Chat">微聊</string>
     <string name="app_Camera">照相</string>
index f3d23ad..9fc79e9 100644 (file)
     <string name="app_ContactName" translatable="false">联系人</string>
     <string name="app_TelePhone">电话</string>
     <string name="app_VoLTE">高清通话</string>
+    <string name="app_calllog">通话记录</string>
     <string name="app_Sms">短信</string>
     <string name="app_VideoCall">视频通话</string>
+    <string name="app_title_sedentary">久坐提醒</string>
+    <string name="app_title_sleep">睡眠监测</string>
     <string name="app_Wechat">微信</string>
     <string name="app_Chat">微聊</string>
     <string name="app_Camera">照相</string>
index f280bcf..08cb512 100644 (file)
@@ -1,2 +1,2 @@
-#Sun Oct 25 01:01:29 CST 2020\r
-VERSION_CODE=165\r
+#Thu Oct 29 21:50:50 CST 2020\r
+VERSION_CODE=168\r