1.修复微聊不能打开的bug
authorkfl_614 <kfl_614@163.com>
Tue, 24 Mar 2020 05:01:16 +0000 (13:01 +0800)
committerkfl_614 <kfl_614@163.com>
Tue, 24 Mar 2020 05:01:16 +0000 (13:01 +0800)
2.添加fragment过度动画。待优化
3.修改双击进去协议模块
4.合并LiveData,不在分开。难以管理fragment。

Signed-off-by: kfl_614 <kfl_614@163.com>
19 files changed:
app/src/main/java/com/enqualcomm/support/bean/Contact.java [new file with mode: 0644]
app/src/main/java/com/ic/launcher/IcLauncherApplication.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/L02MainFragment.java
app/src/main/java/com/ic/launcher/fragment/l02/L02StatusBarFragment.java
app/src/main/java/com/ic/launcher/fragment/l02/L02WatchFragment.java
app/src/main/java/com/ic/launcher/listener/MainClockGestureDetectorImpl.java
app/src/main/java/com/ic/launcher/mode/L02MainModel.java [new file with mode: 0644]
app/src/main/java/com/ic/launcher/mode/StateBarModel.java [deleted file]
app/src/main/java/com/ic/launcher/mode/WatchFaceModel.java [deleted file]
app/src/main/java/com/ic/launcher/presenter/AppListPresenter.java
app/src/main/java/com/ic/launcher/presenter/BatteryPresenter.java
app/src/main/java/com/ic/launcher/presenter/HardwarePresenter.java
app/src/main/java/com/ic/launcher/presenter/TimeDatePresenter.java
app/src/main/java/com/ic/launcher/util/SPUtils.java [new file with mode: 0644]
app/src/main/java/com/ic/launcher/util/SystemUtils.java [new file with mode: 0644]
app/src/main/res/layout/fragment_l02_watch.xml
app/src/main/res/values/strings.xml

diff --git a/app/src/main/java/com/enqualcomm/support/bean/Contact.java b/app/src/main/java/com/enqualcomm/support/bean/Contact.java
new file mode 100644 (file)
index 0000000..09d8a58
--- /dev/null
@@ -0,0 +1,143 @@
+package com.enqualcomm.support.bean;
+
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+public class Contact implements Parcelable {
+    public static final int CATEGORY_ADMIN = 1;
+
+    public static final int CATEGORY_CALL = 3;
+
+    public static final int CATEGORY_CARE = 2;
+
+    public static final int CATEGORY_GROUP = 0;
+
+    public static final int CATEGORY_PARTNER = 4;
+
+    public static final int CATEGORY_VIDEO = 5;
+
+    public static final int CATEGORY_VOLTE = 6;
+
+    public static final int CATEGORY_SOS = 7;
+
+    public static final Creator<Contact> CREATOR = new Creator<Contact>() {
+        public Contact createFromParcel(Parcel param1Parcel) { return new Contact(param1Parcel); }
+
+        public Contact[] newArray(int param1Int) { return new Contact[param1Int]; }
+    };
+
+    public static final String GROUP_FAMILY = "1@-1";
+
+    public static final String GROUP_ALL = "1@-3";
+
+    String GROUP_PARTNER = "1@-2";
+
+    public int category;
+
+    public String extra;
+
+    public String icon_index;
+    public Uri icon;
+    public String name;
+
+    public String number;
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String type;
+
+    /**
+     * Contact
+     * @param _category
+     * @param _name
+     * @param _number
+     */
+    public Contact(int _category, String _name, String _number) {
+        this.category = _category;
+        this.name = _name;
+        this.number = _number;
+    }
+
+    /**
+     * Contact
+     * @param _category
+     * @param _name
+     * @param _number
+     * @param _extra
+     */
+    public Contact(int _category, String _name, String _number, String _extra) {
+        this.category = _category;
+        this.name = _name;
+        this.number = _number;
+        this.extra = _extra;
+    }
+    public Contact(int category, String name, String number, Uri icon, String extra) {
+        this.category = category;
+        this.name = name;
+        this.number = number;
+        this.icon = icon;
+        this.extra = extra;
+    }
+
+    /**
+     * Contact
+     * @param _category
+     * @param _name
+     * @param _number
+     * @param _icon_index
+     * @param _extra
+     */
+    public Contact(int _category, String _name, String _number, String _icon_index, String _extra) {
+        this.category = _category;
+        this.name = _name;
+        this.number = _number;
+        this.icon_index = _icon_index;
+        this.extra = _extra;
+    }
+
+    protected Contact(Parcel paramParcel) {
+        this.category = paramParcel.readInt();
+        this.name = paramParcel.readString();
+        this.number = paramParcel.readString();
+        this.icon_index = paramParcel.readString();
+        this.extra = paramParcel.readString();
+        icon = paramParcel.readParcelable(Uri.class.getClassLoader());
+    }
+
+    public int describeContents() { return 0; }
+
+    public String toString() {
+        StringBuilder stringBuilder = new StringBuilder();
+        stringBuilder.append("Contact{category=");
+        stringBuilder.append(this.category);
+        stringBuilder.append(", name='");
+        stringBuilder.append(this.name);
+        stringBuilder.append('\'');
+        stringBuilder.append(", number='");
+        stringBuilder.append(this.number);
+        stringBuilder.append('\'');
+        stringBuilder.append(", icon_index='");
+        stringBuilder.append(this.icon_index);
+        stringBuilder.append('\'');
+        stringBuilder.append(", extra='");
+        stringBuilder.append(this.extra);
+        stringBuilder.append('\'');
+        stringBuilder.append('}');
+        return stringBuilder.toString();
+    }
+
+    public void writeToParcel(Parcel paramParcel, int paramInt) {
+        paramParcel.writeInt(this.category);
+        paramParcel.writeString(this.name);
+        paramParcel.writeString(this.number);
+        paramParcel.writeString(this.icon_index);
+        paramParcel.writeString(this.extra);
+    }
+}
+
index 0779d2a..ce9624c 100644 (file)
@@ -4,6 +4,7 @@ import android.app.Application;
 
 import com.ic.launcher.presenter.AppListPresenter;
 import com.ic.launcher.presenter.BatteryPresenter;
+import com.ic.launcher.presenter.HardwarePresenter;
 import com.ic.launcher.presenter.PhoneStatePresenter;
 import com.ic.launcher.presenter.TimeDatePresenter;
 import com.ic.launcher.util.CrashHandler;
@@ -15,6 +16,7 @@ public class IcLauncherApplication extends Application {
     private BatteryPresenter  mBatteryPresenter;
     private TimeDatePresenter timeDatePresenter;
     private AppListPresenter appListPresenter;
+    private HardwarePresenter mHardwarePresenter;
 
     @Override
     public void onCreate() {
@@ -26,9 +28,10 @@ public class IcLauncherApplication extends Application {
         mBatteryPresenter = new BatteryPresenter(this);
         timeDatePresenter = new TimeDatePresenter(this);
         appListPresenter = new AppListPresenter(this);
+        mHardwarePresenter = new HardwarePresenter(this);
 
-        CrashHandler crashHandler = CrashHandler.getInstance();
-        crashHandler.init(getApplicationContext());
+        //CrashHandler crashHandler = CrashHandler.getInstance();
+        //crashHandler.init(getApplicationContext());
     }
 
     public PhoneStatePresenter getPhoneStatePresenter() {
@@ -43,4 +46,7 @@ public class IcLauncherApplication extends Application {
     public AppListPresenter getAppListPresenter() {
         return appListPresenter;
     }
+    public HardwarePresenter getHardwarePresenter() {
+        return mHardwarePresenter;
+    }
 }
index 53b24c7..c471081 100644 (file)
@@ -7,34 +7,36 @@ import androidx.fragment.app.FragmentTransaction;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.util.SparseArray;
+import android.view.KeyEvent;
 
 import com.ic.launcher.fragment.AppListFragment;
 import com.ic.launcher.fragment.L02MainFragment;
 import com.ic.launcher.listener.IChangeMainFragmentListener;
 import com.ic.launcher.listener.MainClockGestureDetectorImpl;
 import com.ic.launcher.util.ServiceUtil;
-
-import java.util.ArrayList;
-import java.util.List;
+import com.ic.launcher.util.SystemUtils;
 
 
 public class MainActivity extends AppCompatActivity implements
         MainClockGestureDetectorImpl.OnClockGestureFlingListener,
         IChangeMainFragmentListener {
 
-    private static final String PACKAGE_NAME_LAUNCHER = "mobile.miki";
+    private static final String SERVICE_PKG_NAME = "com.enqualcomm.support";
+
     private FragmentManager fragmentManager;
 
-    private List<Fragment> mAddFt;
+    private SparseArray<Fragment> mAddFt;
 
     private L02MainFragment l02MainFt;
     private AppListFragment appListFt;
 
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
-        mAddFt = new ArrayList<>();
+        mAddFt = new SparseArray<>();
         fragmentManager = getSupportFragmentManager();
 
         l02MainFt = L02MainFragment.newInstance();
@@ -48,10 +50,16 @@ public class MainActivity extends AppCompatActivity implements
     @Override
     public void onDouble() {
         try {
-            // 启动工厂测试
-            Intent intent = getPackageManager().getLaunchIntentForPackage(PACKAGE_NAME_LAUNCHER);
-            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
-            startActivity(intent);
+            String cid = SystemUtils.GetCidFromSystem();
+            if (cid.startsWith("TESTPROTOCOL")) {
+                try {
+                    // 协议测试
+                    Intent intent = getPackageManager().getLaunchIntentForPackage(SERVICE_PKG_NAME);
+                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+                    startActivity(intent);
+                } catch (Exception ignored) {
+                }
+            }
         } catch (Exception ignored) {
         }
     }
@@ -93,13 +101,34 @@ public class MainActivity extends AppCompatActivity implements
             fragmentTransaction.hide(mAddFt.get(i));
         }
 
+        fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
+
         if (fragment.isAdded()) {
             fragmentTransaction.show(fragment);
         } else {
-            mAddFt.add(fragment);
+            putFragmentToArray(fragment);
             fragmentTransaction.add(R.id.main_content_fl, fragment);
         }
 
-        fragmentTransaction.commit();
+        fragmentTransaction.commitAllowingStateLoss();
+    }
+
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            // 禁用 KEYCODE_BACK 退出功能
+            if (mAddFt.get(0).isVisible()) {
+                return true;
+            }
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    private void putFragmentToArray(Fragment fragment) {
+        int flag = 0;
+        if (fragment instanceof AppListFragment) {
+            flag = 1;
+        }
+        mAddFt.put(flag, fragment);
     }
 }
index 1be15c0..c1133fa 100644 (file)
@@ -25,7 +25,7 @@ public class L02AppInfo {
                     "com.ic.hardware", "com.ic.hardware.PedometerActivity"));
             //微聊
             add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_talk_l02, R.string.app_name_talk,
-                    "", ""));
+                    "com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.MicroChatActivity"));
             //天气
             add(new AppInfoEntity(BACK_COLOUR, R.mipmap.icon_weather_l02, R.string.app_name_weather,
                     "com.ic.weather", "com.ic.weather.WeatherActivity"));
index 439576b..3d32341 100644 (file)
@@ -8,15 +8,18 @@ import androidx.annotation.NonNull;
 import androidx.core.view.GestureDetectorCompat;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentTransaction;
+import androidx.lifecycle.ViewModelProvider;
 
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import com.ic.launcher.IcLauncherApplication;
 import com.ic.launcher.R;
 import com.ic.launcher.fragment.l02.L02WatchFragment;
 import com.ic.launcher.fragment.l02.L02StatusBarFragment;
 import com.ic.launcher.listener.MainClockGestureDetectorImpl;
+import com.ic.launcher.mode.L02MainModel;
 import com.ic.launcher.util.IcLog;
 
 
@@ -25,6 +28,9 @@ public class L02MainFragment extends Fragment {
     private static final String TAG = "L02MainFragment";
 
     private Context mContext;
+    private IcLauncherApplication mApp;
+
+    private L02MainModel watchMainModel;
 
     private L02StatusBarFragment statusBarFt;
     private L02WatchFragment watchFt;
@@ -37,9 +43,23 @@ public class L02MainFragment extends Fragment {
         return new L02MainFragment();
     }
 
+    @Override
+    public void onAttach(@NonNull Context context) {
+        super.onAttach(context);
+        this.mContext = context;
+
+        if (context instanceof MainClockGestureDetectorImpl.OnClockGestureFlingListener) {
+            flingListener = (MainClockGestureDetectorImpl.OnClockGestureFlingListener) context;
+        } else {
+            throw new RuntimeException(context.toString()
+                    + " must implement MainClockGestureDetectorImpl.OnClockGestureFlingListener");
+        }
+    }
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        mApp = (IcLauncherApplication) mContext.getApplicationContext();
     }
 
     @Override
@@ -48,6 +68,7 @@ public class L02MainFragment extends Fragment {
         View view = inflater.inflate(R.layout.fragment_l02_main, container, false);
         statusBarFt = (L02StatusBarFragment) getChildFragmentManager().findFragmentById(R.id.l02_status_fl);
         watchFt = (L02WatchFragment) getChildFragmentManager().findFragmentById(R.id.l02_watch_fl);
+        initL02MainModel();
         //监听事件
         initOnTouchListener(view);
         return view;
@@ -56,46 +77,82 @@ public class L02MainFragment extends Fragment {
     @Override
     public void onHiddenChanged(boolean hidden) {
         super.onHiddenChanged(hidden);
-        IcLog.i(TAG, "onHiddenChanged hidden" + hidden);
+        if(hidden){
+            IcLog.i(TAG, "Fragment hidden");
+        }else{
+            IcLog.i(TAG, "Fragment show");
+        }
     }
 
     @Override
     public void onResume() {
         super.onResume();
-        controlStatusBar(true);
+        if(watchMainModel != null){
+            watchMainModel.onFragmentResume();
+        }
         IcLog.i(TAG, "onResume");
     }
 
     @Override
     public void onPause() {
         super.onPause();
-        controlStatusBar(false);
+        if(watchMainModel != null){
+            watchMainModel.onFragmentPause();
+        }
+
         IcLog.i(TAG, "onPause");
     }
 
     @Override
-    public void onAttach(@NonNull Context context) {
-        super.onAttach(context);
-        this.mContext = context;
-        if (context instanceof MainClockGestureDetectorImpl.OnClockGestureFlingListener) {
-            flingListener = (MainClockGestureDetectorImpl.OnClockGestureFlingListener) context;
-        } else {
-            throw new RuntimeException(context.toString()
-                    + " must implement MainClockGestureDetectorImpl.OnClockGestureFlingListener");
+    public void onDestroy() {
+        super.onDestroy();
+        if(watchMainModel != null){
+            watchMainModel.onFragmentDestroy();
         }
+
+        IcLog.i(TAG, "onDestroy");
     }
 
-    @Override
-    public void onDetach() {
-        super.onDetach();
+    private void initL02MainModel() {
+        L02MainModel.Factory factory = new L02MainModel.Factory(mApp,
+                mApp.getPhoneStatePresenter(),
+                mApp.getBatterPresenter(),
+                mApp.getTimeDatePresenter(),
+                mApp.getHardwarePresenter());
+
+        watchMainModel = new ViewModelProvider(this, factory).get(L02MainModel.class);
+        observeStateBarValue(watchMainModel);
+        observeWatchValue(watchMainModel);
+        watchMainModel.onFragmentCreate();
+    }
+
+    private void observeStateBarValue(L02MainModel model) {
+        model.getObsPhoneSignalID().observe(getViewLifecycleOwner(), resID -> statusBarFt.updatePhoneSignal(resID));
+
+        model.getObsPhoneTransportID().observe(getViewLifecycleOwner(), resID -> statusBarFt.updateTransportValue(resID));
+
+        model.getObsPhoneTypeID().observe(getViewLifecycleOwner(), resID -> statusBarFt.updateNetTypeValue(resID));
+
+        model.getObsBatteryCharging().observe(getViewLifecycleOwner(), charging -> statusBarFt.updateBatteryChargeValue(charging));
+
+        model.getObsBatteryResID().observe(getViewLifecycleOwner(), resID -> statusBarFt.updateBatteryDrawable(resID));
+
+        model.getObsBatteryValue().observe(getViewLifecycleOwner(), value -> statusBarFt.updateBatteryValue(value));
+    }
+
+    private void observeWatchValue(L02MainModel model) {
+        model.getObsTime().observe(getViewLifecycleOwner(), timeList -> watchFt.updateTimeValue(timeList));
+
+        model.getObsWeek().observe(getViewLifecycleOwner(), week -> watchFt.updateWeekValue(week));
+
+        model.getObsYear().observe(getViewLifecycleOwner(), year -> watchFt.updateDateValue(year));
+
+        model.getObsHardwareHeart().observe(getViewLifecycleOwner(), heart -> watchFt.updateHeartValue(heart));
+
+        model.getObsHardwarePed().observe(getViewLifecycleOwner(), ped -> watchFt.updatePedValue(ped));
     }
 
 
-    /**
-     * 状态显示与隐藏
-     *
-     * @param isShow true 显示  false 隐藏  在 onResume 与 onPause 控制
-     */
     private void controlStatusBar(boolean isShow) {
         FragmentTransaction ft = getChildFragmentManager().beginTransaction();
         if (isShow && !statusBarFt.isVisible()) {
index 772592d..4bec7de 100644 (file)
@@ -6,26 +6,20 @@ import android.os.Bundle;
 
 import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
-import androidx.lifecycle.ViewModelProvider;
 
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
-import com.ic.launcher.IcLauncherApplication;
 import com.ic.launcher.databinding.FragmentL02StatusBarBinding;
-import com.ic.launcher.mode.StateBarModel;
-import com.ic.launcher.util.IcLog;
 
 
 public class L02StatusBarFragment extends Fragment {
     private static final String TAG = "L02StatusBarFt";
 
     private Context mContext;
-    private IcLauncherApplication mApp;
     private FragmentL02StatusBarBinding mStateBarBinding;
 
-    private StateBarModel phoneModel;
 
     @Override
     public void onAttach(@NonNull Context context) {
@@ -36,68 +30,51 @@ public class L02StatusBarFragment extends Fragment {
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        mApp = (IcLauncherApplication) mContext.getApplicationContext();
     }
 
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                              Bundle savedInstanceState) {
         mStateBarBinding = FragmentL02StatusBarBinding.inflate(inflater, container, false);
-        initStateBarModel();
-        phoneModel.registerBatteryReceiver();
-        IcLog.i(TAG,"onCreateView");
         return mStateBarBinding.getRoot();
     }
 
     @Override
     public void onResume() {
         super.onResume();
-        IcLog.i(TAG,"onResume");
-        phoneModel.onResumeView();
     }
 
     @Override
     public void onPause() {
         super.onPause();
-        IcLog.i(TAG,"onPause");
-        phoneModel.onPauseView();
     }
 
     @Override
     public void onDestroy() {
         super.onDestroy();
-        phoneModel.onDestroyView();
-        phoneModel.unregisterBatteryReceiver();
     }
 
-    private void initStateBarModel() {
-
-        StateBarModel.Factory factory = new StateBarModel.Factory(mApp, mApp.getPhoneStatePresenter(), mApp.getBatterPresenter());
-        phoneModel = new ViewModelProvider(this, factory).get(StateBarModel.class);
-        phoneModel.getObsPhoneSignalID().observe(getViewLifecycleOwner(), resID -> {
-            mStateBarBinding.setPhoneSignal(resID);
-        });
-
-        phoneModel.getObsPhoneTransportID().observe(getViewLifecycleOwner(), resID -> {
-            mStateBarBinding.setPhoneTransport(resID);
-        });
+    public void updateBatteryValue(String value) {
+        mStateBarBinding.setBatteryValue(value);
+    }
 
-        phoneModel.getObsPhoneTypeID().observe(getViewLifecycleOwner(), resID -> {
-            mStateBarBinding.setPhoneNetType(resID);
-        });
+    public void updateBatteryDrawable(int drawableRes) {
+        mStateBarBinding.setBatteryDrawable(drawableRes);
+    }
 
-        phoneModel.getObsBatteryCharging().observe(getViewLifecycleOwner(), charging -> {
-            mStateBarBinding.setBatteryCharge(charging);
-        });
+    public void updateBatteryChargeValue(boolean state) {
+        mStateBarBinding.setBatteryCharge(state);
+    }
 
-        phoneModel.getObsBatteryResID().observe(getViewLifecycleOwner(),resID ->{
-            mStateBarBinding.setBatteryDrawable(resID);
-        });
+    public void updatePhoneSignal(int value) {
+        mStateBarBinding.setPhoneSignal(value);
+    }
 
-        phoneModel.getObsBatteryValue().observe(getViewLifecycleOwner(),value ->{
-            mStateBarBinding.setBatteryValue(value);
-        });
+    public void updateTransportValue(int value) {
+        mStateBarBinding.setPhoneTransport(value);
+    }
 
-        phoneModel.onStartQuery();
+    public void updateNetTypeValue(int value) {
+        mStateBarBinding.setPhoneNetType(value);
     }
 }
index e012afa..d2099d1 100644 (file)
@@ -6,26 +6,22 @@ import android.os.Bundle;
 
 import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
-import androidx.lifecycle.ViewModelProvider;
 
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
-import com.ic.launcher.IcLauncherApplication;
 import com.ic.launcher.databinding.FragmentL02WatchBinding;
-import com.ic.launcher.mode.WatchFaceModel;
-import com.ic.launcher.util.IcLog;
+import com.ic.launcher.util.SPUtils;
+
+import java.util.ArrayList;
+import java.util.List;
 
 public class L02WatchFragment extends Fragment {
 
     private static final String TAG = "L02WatchFragment";
 
     private Context mContext;
-    private IcLauncherApplication mApp;
-
-    private WatchFaceModel watchFaceModel;
-
     private FragmentL02WatchBinding watchBinding;
 
     @Override
@@ -37,65 +33,51 @@ public class L02WatchFragment extends Fragment {
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        mApp = (IcLauncherApplication) mContext.getApplicationContext();
     }
 
     @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+    public View onCreateView(LayoutInflater inflater,
+                             ViewGroup container,
                              Bundle savedInstanceState) {
 
         watchBinding = FragmentL02WatchBinding.inflate(inflater, container, false);
-        initWatchFaceModel();
+        updateHeartValue(String.valueOf(SPUtils.getBloodHeartSP(mContext)));
+        updatePedValue("0");
         return watchBinding.getRoot();
     }
 
     @Override
     public void onResume() {
         super.onResume();
-        watchFaceModel.onResumeView();
-        IcLog.i(TAG, "onResume");
     }
 
     @Override
     public void onPause() {
         super.onPause();
-        watchFaceModel.onPauseView();
-        IcLog.i(TAG, "onPause");
     }
 
     @Override
     public void onDestroy() {
         super.onDestroy();
-        watchFaceModel.onDestroyView();
     }
 
+    public void updateHeartValue(String value){
+        watchBinding.setHeartValue(value);
+    }
 
-    private void initWatchFaceModel() {
-        WatchFaceModel.Factory factory = new WatchFaceModel.Factory(mApp, mApp.getTimeDatePresenter());
-        watchFaceModel = new ViewModelProvider(this, factory).get(WatchFaceModel.class);
-
-        watchFaceModel.getObsTime().observe(getViewLifecycleOwner(), timeList -> {
-            watchBinding.setTimeText(timeList);
-        });
-
-        watchFaceModel.getObsWeek().observe(getViewLifecycleOwner(), week -> {
-            watchBinding.setWatchWeek(week);
-        });
-
-        watchFaceModel.getObsYear().observe(getViewLifecycleOwner(), year -> {
-            watchBinding.setWatchDate(year);
-        });
+    public void updatePedValue(String value){
+        watchBinding.setStepValue(value);
+    }
 
-        watchFaceModel.getObsHardwareHeart().observe(getViewLifecycleOwner(), heart -> {
-            watchBinding.setHeartValue(heart);
-        });
+    public void updateWeekValue(String value){
+        watchBinding.setWatchWeek(value);
+    }
 
-        watchFaceModel.getObsHardwarePed().observe(getViewLifecycleOwner(), ped -> {
-            watchBinding.setStepValue(ped);
-        });
+    public void updateDateValue(String value){
+        watchBinding.setWatchDate(value);
+    }
 
-        watchBinding.setHeartValue("0");
-        watchBinding.setStepValue("0");
-        watchFaceModel.onCreateView();
+    public void updateTimeValue(ArrayList<Integer> value){
+        watchBinding.setTimeText(value);
     }
 }
index ece2e7c..a682398 100644 (file)
@@ -10,7 +10,7 @@ public class MainClockGestureDetectorImpl extends GestureDetector.SimpleOnGestur
     private static final String TAG = "MainClockGesture";
 
     private final int COUNTS = 2;//点击次数
-    private final long DURATION = 3 * 1000;//规定有效时间
+    private final long DURATION = 500;//规定有效时间
     private long[] mHits = new long[COUNTS];
 
     public interface OnClockGestureFlingListener {
diff --git a/app/src/main/java/com/ic/launcher/mode/L02MainModel.java b/app/src/main/java/com/ic/launcher/mode/L02MainModel.java
new file mode 100644 (file)
index 0000000..d639e25
--- /dev/null
@@ -0,0 +1,185 @@
+package com.ic.launcher.mode;
+
+import android.app.Application;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.AndroidViewModel;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.ViewModel;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.ic.launcher.presenter.BatteryPresenter;
+import com.ic.launcher.presenter.HardwarePresenter;
+import com.ic.launcher.presenter.PhoneStatePresenter;
+import com.ic.launcher.presenter.TimeDatePresenter;
+import com.ic.launcher.util.IcLog;
+
+import java.util.ArrayList;
+
+public class L02MainModel extends AndroidViewModel {
+
+    private static final String TAG = "L02MainModel";
+
+    private final Application application;
+    private final PhoneStatePresenter phonePresenter;
+    private final BatteryPresenter batteryPresenter;
+    private final TimeDatePresenter timeDatePresenter;
+    private final HardwarePresenter hardwarePresenter;
+
+    private final LiveData<Integer> mObsPhoneTypeID;
+    private final LiveData<Integer> mObsPhoneSignalID;
+    private final LiveData<Integer> mObsPhoneTransportID;
+
+    private final LiveData<String> mObsBatteryValue;
+    private final LiveData<Boolean> mObsBatteryCharging;
+    private final LiveData<Integer> mObsBatteryResID;
+
+    private final LiveData<ArrayList<Integer>> mObsTime;
+    private final LiveData<String> mObsYear;
+    private final LiveData<String> mObsWeek;
+
+    private final LiveData<String> mObsHardwareHeart;
+    private final LiveData<String> mObsHardwarePed;
+
+    public L02MainModel(@NonNull Application application,
+                        @NonNull PhoneStatePresenter phonePresenter,
+                        @NonNull BatteryPresenter batteryPresenter,
+                        @NonNull TimeDatePresenter timeDatePresenter,
+                        @NonNull HardwarePresenter hardwarePresenter) {
+        super(application);
+        this.application = application;
+        this.phonePresenter = phonePresenter;
+        this.batteryPresenter = batteryPresenter;
+        this.timeDatePresenter = timeDatePresenter;
+        this.hardwarePresenter = hardwarePresenter;
+
+        mObsPhoneSignalID = phonePresenter.getPhoneSignalObservable();
+        mObsPhoneTypeID = phonePresenter.getPhoneTypeObservable();
+        mObsPhoneTransportID = phonePresenter.getPhoneTransportObservable();
+
+        mObsBatteryCharging = batteryPresenter.getObsBatteryCharging();
+        mObsBatteryResID = batteryPresenter.getObsBatteryResID();
+        mObsBatteryValue = batteryPresenter.getObsBatteryValue();
+
+        mObsTime = timeDatePresenter.getObsTime();
+        mObsYear = timeDatePresenter.getObsYear();
+        mObsWeek = timeDatePresenter.getmObsWeek();
+
+        mObsHardwareHeart = hardwarePresenter.getObsHardwareHeart();
+        mObsHardwarePed = hardwarePresenter.getObsHardwarePed();
+    }
+
+    public void onFragmentCreate(){
+        IcLog.i(TAG,"onFragmentCreate");
+        hardwarePresenter.registerHardwareBroadcast();
+        phonePresenter.onStartQuery();
+        timeDatePresenter.registerTimeDateReceiver();
+    }
+
+    public void onFragmentResume(){
+        IcLog.i(TAG,"onFragmentResume");
+        hardwarePresenter.sendGetPedBroadcast();
+        timeDatePresenter.onResumePresenter();
+        phonePresenter.onResumePresenter();
+    }
+
+    public void onFragmentPause(){
+        IcLog.i(TAG,"onFragmentPause");
+        timeDatePresenter.onPausePresenter();
+        phonePresenter.onPausePresenter();
+    }
+
+    public void onFragmentDestroy(){
+        IcLog.i(TAG,"onFragmentDestroy");
+        batteryPresenter.unRegisterBatteryReceiver();
+        hardwarePresenter.unRegisterHardwareReceiver();
+        phonePresenter.onDestroyPresenter();
+        timeDatePresenter.unRegisterTimeDateReceiver();
+    }
+
+    public static class Factory extends ViewModelProvider.NewInstanceFactory {
+
+        @NonNull
+        private final Application mApplication;
+
+        @NonNull
+        private final PhoneStatePresenter phonePresenter;
+
+        @NonNull
+        private final BatteryPresenter batteryPresenter;
+
+        @NonNull
+        private final TimeDatePresenter timeDatePresenter;
+
+        @NonNull
+        private final HardwarePresenter hardwarePresenter;
+
+        public Factory(@NonNull Application application,
+                       @NonNull PhoneStatePresenter phonePresenter,
+                       @NonNull BatteryPresenter batteryPresenter,
+                       @NonNull TimeDatePresenter timeDatePresenter,
+                       @NonNull HardwarePresenter hardwarePresenter) {
+            mApplication = application;
+            this.phonePresenter = phonePresenter;
+            this.batteryPresenter = batteryPresenter;
+            this.timeDatePresenter = timeDatePresenter;
+            this.hardwarePresenter = hardwarePresenter;
+
+        }
+
+        @SuppressWarnings("unchecked")
+        @Override
+        @NonNull
+        public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
+            return (T) new L02MainModel(mApplication,
+                    phonePresenter,
+                    batteryPresenter,
+                    timeDatePresenter,
+                    hardwarePresenter);
+        }
+    }
+
+    public LiveData<Integer> getObsPhoneTypeID() {
+        return mObsPhoneTypeID;
+    }
+
+    public LiveData<Integer> getObsPhoneSignalID() {
+        return mObsPhoneSignalID;
+    }
+
+    public LiveData<Integer> getObsPhoneTransportID() {
+        return mObsPhoneTransportID;
+    }
+
+    public LiveData<String> getObsBatteryValue() {
+        return mObsBatteryValue;
+    }
+
+    public LiveData<Boolean> getObsBatteryCharging() {
+        return mObsBatteryCharging;
+    }
+
+    public LiveData<Integer> getObsBatteryResID() {
+        return mObsBatteryResID;
+    }
+
+    public LiveData<ArrayList<Integer>> getObsTime() {
+        return mObsTime;
+    }
+
+    public LiveData<String> getObsYear() {
+        return mObsYear;
+    }
+
+    public LiveData<String> getObsWeek() {
+        return mObsWeek;
+    }
+
+    public LiveData<String> getObsHardwareHeart() {
+        return mObsHardwareHeart;
+    }
+
+    public LiveData<String> getObsHardwarePed() {
+        return mObsHardwarePed;
+    }
+}
diff --git a/app/src/main/java/com/ic/launcher/mode/StateBarModel.java b/app/src/main/java/com/ic/launcher/mode/StateBarModel.java
deleted file mode 100644 (file)
index 3c6b3d3..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-package com.ic.launcher.mode;
-
-import android.app.Application;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.ViewModel;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.ic.launcher.presenter.BatteryPresenter;
-import com.ic.launcher.presenter.PhoneStatePresenter;
-import com.ic.launcher.util.IcLog;
-
-public class StateBarModel extends AndroidViewModel {
-
-    private final LiveData<Integer> mObsPhoneTypeID;
-    private final LiveData<Integer> mObsPhoneSignalID;
-    private final LiveData<Integer> mObsPhoneTransportID;
-
-    private final LiveData<String> mObsBatteryValue;
-    private final LiveData<Boolean> mObsBatteryCharging;
-    private final LiveData<Integer> mObsBatteryResID;
-
-    private PhoneStatePresenter mPhonePresenter;
-    private BatteryPresenter mBatteryPresenter;
-
-    public StateBarModel(@NonNull Application application,
-                         @NonNull PhoneStatePresenter phonePresenter,
-                         @NonNull BatteryPresenter batteryPresenter) {
-        super(application);
-        mPhonePresenter = phonePresenter;
-        mBatteryPresenter = batteryPresenter;
-
-        mObsPhoneSignalID = mPhonePresenter.getPhoneSignalObservable();
-        mObsPhoneTypeID = mPhonePresenter.getPhoneTypeObservable();
-        mObsPhoneTransportID = mPhonePresenter.getPhoneTransportObservable();
-
-        mObsBatteryCharging = mBatteryPresenter.getObsBatteryCharging();
-        mObsBatteryResID = mBatteryPresenter.getObsBatteryResID();
-        mObsBatteryValue = mBatteryPresenter.getObsBatteryValue();
-    }
-
-    public LiveData<Integer> getObsPhoneTypeID() {
-        return mObsPhoneTypeID;
-    }
-
-    public LiveData<Integer> getObsPhoneSignalID() {
-        return mObsPhoneSignalID;
-    }
-
-    public LiveData<Integer> getObsPhoneTransportID() {
-        return mObsPhoneTransportID;
-    }
-
-    public LiveData<String> getObsBatteryValue() {
-        return mObsBatteryValue;
-    }
-
-    public LiveData<Boolean> getObsBatteryCharging() {
-        return mObsBatteryCharging;
-    }
-
-    public LiveData<Integer> getObsBatteryResID() {
-        return mObsBatteryResID;
-    }
-
-
-    public void onStartQuery(){
-        mPhonePresenter.onStartQuery();
-    }
-
-    public void onResumeView(){
-        mPhonePresenter.onResumePresenter();
-    }
-
-    public void registerBatteryReceiver(){
-        mBatteryPresenter.registerBatteryReceiver();
-    }
-
-    public void unregisterBatteryReceiver(){
-        mBatteryPresenter.unRegisterBatteryReceiver();
-    }
-
-    public void onPauseView(){
-        mPhonePresenter.onPausePresenter();
-    }
-
-    public void onDestroyView(){
-        mPhonePresenter.onDestroyPresenter();
-    }
-
-    public static class Factory extends ViewModelProvider.NewInstanceFactory {
-
-        @NonNull
-        private final Application mApplication;
-
-        @NonNull
-        private final PhoneStatePresenter phonePresenter;
-
-        @NonNull
-        private final BatteryPresenter batteryPresenter;
-
-        public Factory(@NonNull Application application,
-                       @NonNull PhoneStatePresenter phonePresenter,
-                       @NonNull BatteryPresenter batteryPresenter) {
-            mApplication = application;
-            this.phonePresenter = phonePresenter;
-            this.batteryPresenter = batteryPresenter;
-
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        @NonNull
-        public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
-            return (T) new StateBarModel(mApplication, phonePresenter,batteryPresenter);
-        }
-    }
-
-}
diff --git a/app/src/main/java/com/ic/launcher/mode/WatchFaceModel.java b/app/src/main/java/com/ic/launcher/mode/WatchFaceModel.java
deleted file mode 100644 (file)
index eb1e6e4..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-package com.ic.launcher.mode;
-
-import android.app.Application;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.ViewModel;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.ic.launcher.presenter.HardwarePresenter;
-import com.ic.launcher.presenter.TimeDatePresenter;
-
-import java.util.ArrayList;
-
-
-public class WatchFaceModel extends AndroidViewModel {
-
-    private final TimeDatePresenter timeDatePresenter;
-    private final HardwarePresenter hardwarePresenter;
-
-    private final LiveData<ArrayList<Integer>> mObsTime;
-    private final LiveData<String> mObsYear;
-    private final LiveData<String> mObsWeek;
-
-    private final LiveData<String> mObsHardwareHeart;
-    private final LiveData<String> mObsHardwarePed;
-
-    public WatchFaceModel(@NonNull Application application,
-                          @NonNull TimeDatePresenter timeDatePresenter) {
-        super(application);
-
-        this.timeDatePresenter = timeDatePresenter;
-        hardwarePresenter = new HardwarePresenter(application);
-
-        mObsTime = timeDatePresenter.getObsTime();
-        mObsYear = timeDatePresenter.getObsYear();
-        mObsWeek = timeDatePresenter.getmObsWeek();
-
-        mObsHardwareHeart = hardwarePresenter.getObsHardwareHeart();
-        mObsHardwarePed = hardwarePresenter.getObsHardwarePed();
-    }
-
-    public LiveData<ArrayList<Integer>> getObsTime() {
-        return mObsTime;
-    }
-
-    public LiveData<String> getObsYear() {
-        return mObsYear;
-    }
-
-    public LiveData<String> getObsWeek() {
-        return mObsWeek;
-    }
-
-    public LiveData<String> getObsHardwareHeart() {
-        return mObsHardwareHeart;
-    }
-
-    public LiveData<String> getObsHardwarePed() {
-        return mObsHardwarePed;
-    }
-
-    public void onCreateView(){
-        hardwarePresenter.registerHardwareBroadcast();
-    }
-
-    public void onResumeView() {
-        timeDatePresenter.onResumePresenter();
-        hardwarePresenter.sendGetPedBroadcast();
-    }
-
-    public void onPauseView() {
-        timeDatePresenter.onPausePresenter();
-    }
-
-    public void onDestroyView() {
-        timeDatePresenter.unRegisterTimeDateReceiver();
-        hardwarePresenter.unRegisterHardwareReceiver();
-    }
-
-    public static class Factory extends ViewModelProvider.NewInstanceFactory {
-
-        @NonNull
-        private final Application mApplication;
-
-        @NonNull
-        private final TimeDatePresenter timeDatePresenter;
-
-
-        public Factory(@NonNull Application application,
-                       @NonNull TimeDatePresenter timeDatePresenter) {
-            mApplication = application;
-            this.timeDatePresenter = timeDatePresenter;
-
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        @NonNull
-        public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
-            return (T) new WatchFaceModel(mApplication, timeDatePresenter);
-        }
-    }
-}
index 4ff9840..bdc912c 100644 (file)
@@ -3,10 +3,12 @@ package com.ic.launcher.presenter;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.os.Parcelable;
 import android.text.TextUtils;
 
 import androidx.lifecycle.MutableLiveData;
 
+import com.enqualcomm.support.bean.Contact;
 import com.ic.launcher.R;
 import com.ic.launcher.configure.l02.L02AppInfo;
 import com.ic.launcher.entity.AppInfoEntity;
@@ -69,12 +71,29 @@ public class AppListPresenter {
         }
 
         try {
+            startCustomActivity(pck,activity);
+        } catch (Exception e) {
+            mObsActivityError.setValue(mErrorInfo);
+        }
+    }
+
+    private void startCustomActivity(String pck,String activity) throws Exception{
+        if ("com.enqualcomm.imessage".equals(pck) && "com.enqualcomm.imessage.ui.MicroChatActivity".equals(activity)) {
+            ComponentName componentName1= new ComponentName("com.enqualcomm.imessage",
+                    "com.enqualcomm.imessage.ui.chat.ChatActivity_");
+            Contact contact = new Contact(Contact.CATEGORY_GROUP, context.getResources().getString(R.string.all_group), Contact.GROUP_ALL);
+            Intent var5 = new Intent(Intent.ACTION_MAIN);
+            var5.putExtra("ACTIVITY_TYPE", 2);
+            var5.putExtra("contact", (Parcelable)contact);
+            var5.addCategory(Intent.CATEGORY_DEFAULT);
+            var5.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            var5.setComponent(componentName1);
+            context.startActivity(var5);
+        }else{
             Intent intent = new Intent(Intent.ACTION_MAIN);
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             intent.setComponent(new ComponentName(pck, activity));
             context.startActivity(intent);
-        } catch (Exception e) {
-            mObsActivityError.setValue(mErrorInfo);
         }
     }
 }
index 9ca23e4..46ad639 100644 (file)
@@ -13,7 +13,7 @@ import com.ic.launcher.configure.l02.L02Icon;
 import com.ic.launcher.util.IcLog;
 
 public class BatteryPresenter {
-
+    private static final String TAG = "BatteryPresenter";
     private Context mContext;
 
     private MediatorLiveData<String> mObsBatteryValue;
@@ -38,9 +38,11 @@ public class BatteryPresenter {
         mObsBatteryValue = new MediatorLiveData<>();
         mObsBatteryCharging = new MediatorLiveData<>();
         mObsBatteryResID = new MediatorLiveData<>();
+
+        registerBatteryReceiver();
     }
 
-    public void registerBatteryReceiver() {
+    private void registerBatteryReceiver() {
         IntentFilter filter = new IntentFilter();
         filter.addAction(Intent.ACTION_BATTERY_CHANGED);
         mContext.registerReceiver(mIntentReceiver, filter);
@@ -70,6 +72,9 @@ public class BatteryPresenter {
                     int status = intent.getIntExtra("status", -1);
                     int rawlevel = intent.getIntExtra("level", -1);
                     int scale = intent.getIntExtra("scale", -1);
+
+                    IcLog.i(TAG,"Battery Statu:"+acyion);
+
                     updateBatteryValue(rawlevel, scale);
                     updateBatteryCharging(status);
                 }
index 73eed9f..769049e 100644 (file)
@@ -8,6 +8,8 @@ import android.text.TextUtils;
 
 import androidx.lifecycle.MediatorLiveData;
 
+import com.ic.launcher.util.SPUtils;
+
 public class HardwarePresenter {
 
     private static final String HEART_ACTION = "com.ic.action.BLOOD_HEART";
@@ -68,6 +70,7 @@ public class HardwarePresenter {
                     case HEART_ACTION:
                         int heart = intent.getIntExtra("BLOOD_HEART", 0);
                         mObsHardwareHeart.setValue(String.valueOf(heart));
+                        SPUtils.setBloodHeartSP(mContext,heart);
                         break;
                 }
             }
index 49bfe38..28c24b0 100644 (file)
@@ -39,7 +39,6 @@ public class TimeDatePresenter {
     public TimeDatePresenter(Context context) {
         mContext = context;
         timeList = new ArrayList<>();
-        registerTimeDateReceiver();
         createTime(null);
 
         mObsTime = new MediatorLiveData<>();
diff --git a/app/src/main/java/com/ic/launcher/util/SPUtils.java b/app/src/main/java/com/ic/launcher/util/SPUtils.java
new file mode 100644 (file)
index 0000000..9cae414
--- /dev/null
@@ -0,0 +1,26 @@
+package com.ic.launcher.util;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+public class SPUtils {
+
+    private static final String Blood_Heart = "Blood_Heart";
+
+    public static SharedPreferences getSP(Context context) {
+        return context.getSharedPreferences("IcBloodSet", Context.MODE_PRIVATE);
+    }
+
+    public static int getBloodHeartSP(Context context) {
+        return getSP(context).getInt(Blood_Heart, 0);
+    }
+
+
+    public static void setBloodHeartSP(Context context,int height) {
+        SharedPreferences.Editor editor = getSP(context).edit();
+        if (editor != null) {
+            editor.putInt(Blood_Heart, height);
+            editor.apply();
+        }
+    }
+}
diff --git a/app/src/main/java/com/ic/launcher/util/SystemUtils.java b/app/src/main/java/com/ic/launcher/util/SystemUtils.java
new file mode 100644 (file)
index 0000000..6985afa
--- /dev/null
@@ -0,0 +1,69 @@
+package com.ic.launcher.util;
+
+
+import java.io.FileInputStream;
+import java.lang.reflect.Method;
+
+public class SystemUtils {
+
+    public static String GetCidFromSystem() {
+        String cid_file = getSystemProperties("ro.product.partitionpath") + "miscdata";
+        byte[] resCid = new byte[16];
+        try {
+            byte[] buf = new byte[50];
+            FileInputStream inputStream = new FileInputStream(cid_file);
+            int len = inputStream.read(buf);
+            if (len < 50) return null;
+            for (int i = 0; i < 16; i++) {
+                resCid[i] = buf[i + 28];
+            }
+            for (int i = 0; i < 16; i++) {
+                if ((resCid[i] >= 0x30 && resCid[i] <= 0x39) || (resCid[i] >= 0x61 && resCid[i] <= 0x7A) || (resCid[i] >= 0x41 && resCid[i] <= 0x5A)) {
+                    // valid
+                } else {
+                    // invalid
+                    for (int j = 28; j < 28 + 16; j++) {
+                        resCid[j] = 0x30;
+                    }
+                    break;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        String cid = new String(resCid);
+        return cid;
+    }
+
+    public static String getSystemProperties(String prop) {
+
+        String str = "";
+        Class clazz = null;
+        try {
+            clazz = Class.forName("android.os.SystemProperties");
+            str = (String) clazz.getMethod("get", new Class[]{String.class}).invoke(clazz, new Object[]{prop});
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return str;
+    }
+
+    static public void setSystemProperties(String key, String defaultValue) {
+
+        String value = defaultValue;
+
+        try {
+
+            Class<?> c = Class.forName("android.os.SystemProperties");
+
+            Method get = c.getMethod("set", String.class, String.class);
+
+            get.invoke(c, key, value);
+
+        } catch (Exception e) {
+
+            e.printStackTrace();
+
+        }
+    }
+}
index 43aae6a..e71fdca 100644 (file)
             android:layout_toEndOf="@id/l02_time_sp"
             android:text="@{watchWeek}" />
 
-        <TextView
-            style="@style/watchDateIconTextStyle"
-            android:id="@+id/l02_heart_value"
-            android:text="@{heartValue}"
-            android:layout_toStartOf="@id/l02_time_sp"
-            android:layout_marginEnd="10dp"/>
-
         <ImageView
             style="@style/watchDateIconStyle"
             android:id="@+id/l02_heart_img"
             android:src="@mipmap/clockl02_heartrate_icon"
-            android:layout_toStartOf="@id/l02_heart_value"
-            android:layout_marginEnd="5dp"/>
+            android:layout_alignParentStart="true"
+            android:layout_marginStart="40dp" />
+
+        <TextView
+            style="@style/watchDateIconTextStyle"
+            android:id="@+id/l02_heart_value"
+            android:text="@{heartValue}"
+            android:layout_marginStart="5dp"
+            android:layout_toEndOf="@id/l02_heart_img" />
 
         <ImageView
             style="@style/watchDateIconStyle"
index 2078193..c5d1592 100644 (file)
@@ -15,6 +15,9 @@
     <string name="app_name_short_message">短信</string>
     <string name="app_name_setting">设置</string>
 
+
+    <string name="all_group">所有人</string>
+
     <string name="error_start_activity">应用程序启动失败</string>
 
     <string name="program_abnormal">很抱歉,程序出现异常,即将退出</string>