add calorie value to main page.
authorTrillGates <williamtrillgates@gmail.com>
Wed, 30 Jun 2021 03:31:07 +0000 (11:31 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Wed, 30 Jun 2021 03:31:07 +0000 (11:31 +0800)
app/src/main/aidl/com/ic/aidl/ped/IPedAidlInterface.aidl
app/src/main/java/com/ic/sport/PedometerActivity.java
app/src/main/java/com/ic/sport/fragment/pedometer/PedMainFragment.java
app/src/main/java/com/ic/sport/model/PedometerModel.java
app/src/main/java/com/ic/sport/presenter/PedometerPresenter.java
app/src/main/java/com/ic/sport/widget/ring/RingProgress.java
app/src/main/res/layout/fragment_ped_main.xml

index 339498a..46daf02 100644 (file)
@@ -5,6 +5,7 @@ import com.ic.aidl.ped.RecordParcelable;
 interface IPedAidlInterface {
 
      void updatePedCount(int count);
+     void updateCalorie(float count);
      void updatePedRecord(in List<RecordParcelable> record);
 
 }
index 6e5181f..df4b4c7 100644 (file)
@@ -46,11 +46,15 @@ public class PedometerActivity extends AppCompatActivity
         pedometerModel = new ViewModelProvider(this, factory).get(PedometerModel.class);
 
         pedometerModel.getObsPedCount().observe(this, integer -> {
-            ((PedMainFragment)myAdapter.getFragment(1)).updatePedNumber(integer);
+            ((PedMainFragment) myAdapter.getFragment(1)).updatePedNumber(integer);
         });
 
         pedometerModel.getObsPedRecord().observe(this, record -> {
-            ((PedRecordFragment)myAdapter.getFragment(2)).updatePedRecord(record);
+            ((PedRecordFragment) myAdapter.getFragment(2)).updatePedRecord(record);
+        });
+
+        pedometerModel.getCalorie().observe(this, calorie -> {
+            ((PedMainFragment) myAdapter.getFragment(1)).updateCalorie(calorie);
         });
 
         pedometerModel.onBindService();
@@ -109,15 +113,15 @@ public class PedometerActivity extends AppCompatActivity
     private final ViewPager2.OnPageChangeCallback currentItemUpdater = new ViewPager2.OnPageChangeCallback() {
         @Override
         public void onPageSelected(int position) {
-            IcLog.i(TAG,"onPageSelected"+position);
+            IcLog.i(TAG, "onPageSelected" + position);
             indicatorAdapter.updateIndicatorState(position);
         }
 
         @Override
         public void onPageScrollStateChanged(int newState) {
-            IcLog.i(TAG,"onPageScrollStateChanged"+newState);
+            IcLog.i(TAG, "onPageScrollStateChanged" + newState);
             if (newState == SCROLL_STATE_IDLE) {
-                IcLog.i(TAG,"onPageScrollStateChanged"+newState);
+                IcLog.i(TAG, "onPageScrollStateChanged" + newState);
             }
         }
     };
index c41b7ac..1693423 100644 (file)
@@ -38,6 +38,10 @@ public class PedMainFragment extends Fragment {
     private static final String TAG = "PedMainFragment";
     private final Handler mHandler;
 
+    public void updateCalorie(Float calorie) {
+        pedMainBinding.setCalorieValue(calorie + " kcal");
+    }
+
     public interface QueryPedometerCountListener {
         void onQueryCount();
     }
@@ -87,6 +91,7 @@ public class PedMainFragment extends Fragment {
         targetValue = SPUtils.getPedTargetSP(mApp.getApplicationContext());
         pedMainBinding.setPedTarget(getResources().getString(R.string.target_text) +
                 targetValue);
+        pedMainBinding.ringProgress.setMaxProgress(targetValue);
         return pedMainBinding.getRoot();
     }
 
index 7849443..c5daf41 100644 (file)
@@ -18,6 +18,7 @@ public class PedometerModel extends AndroidViewModel {
     private final PedometerPresenter pedometerPresenter;
 
     private LiveData<Integer> mObsPedCount;
+    private LiveData<Float> mCalorie;
     private LiveData<List<RecordParcelable>> mObsPedRecord;
 
     private PedometerModel(@NonNull Application application) {
@@ -25,6 +26,11 @@ public class PedometerModel extends AndroidViewModel {
         pedometerPresenter = new PedometerPresenter(application.getApplicationContext());
         mObsPedCount = pedometerPresenter.getObsPedCount();
         mObsPedRecord = pedometerPresenter.getObsPedRecord();
+        mCalorie = pedometerPresenter.getCalorie();
+    }
+
+    public LiveData<Float> getCalorie() {
+        return mCalorie;
     }
 
     public LiveData<Integer> getObsPedCount() {
@@ -35,27 +41,27 @@ public class PedometerModel extends AndroidViewModel {
         return mObsPedRecord;
     }
 
-    public void onBindService(){
+    public void onBindService() {
         pedometerPresenter.bindService();
     }
 
-    public void onUnBindService(){
+    public void onUnBindService() {
         pedometerPresenter.unbindService();
     }
 
-    public void  queryPedCount(){
+    public void queryPedCount() {
         pedometerPresenter.queryPedCount();
     }
 
-    public void  queryPedRecord(){
+    public void queryPedRecord() {
         pedometerPresenter.queryPedRecord();
     }
 
-    public void  syncPedHeightSetting(int height){
+    public void syncPedHeightSetting(int height) {
         pedometerPresenter.syncPedHeightSetting(height);
     }
 
-    public void  syncPedWeightSetting(int weight){
+    public void syncPedWeightSetting(int weight) {
         pedometerPresenter.syncPedWeightSetting(weight);
     }
 
index eae3fb7..638624c 100644 (file)
@@ -6,6 +6,7 @@ import android.content.ServiceConnection;
 import android.os.IBinder;
 import android.os.RemoteException;
 
+import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
 import com.ic.aidl.ped.IPedAidlInterface;
@@ -27,12 +28,14 @@ public class PedometerPresenter {
     private IPedRemoteService mService;
     private MutableLiveData<Integer> mObsPedCount;
     private MutableLiveData<List<RecordParcelable>> mObsPedRecord;
+    private MutableLiveData<Float> mCalorie;
     private final ExecutorService executorService;
 
     public PedometerPresenter(Context context) {
         mContext = context;
         mObsPedCount = new MutableLiveData<>();
         mObsPedRecord = new MutableLiveData<>();
+        mCalorie = new MutableLiveData<>();
         executorService = Executors.newSingleThreadExecutor();
     }
 
@@ -137,9 +140,18 @@ public class PedometerPresenter {
             mObsPedCount.postValue(count);
         }
 
+        @Override
+        public void updateCalorie(float count) {
+            mCalorie.postValue(count);
+        }
+
         @Override
         public void updatePedRecord(List<RecordParcelable> record) {
             mObsPedRecord.postValue(record);
         }
     };
+
+    public LiveData<Float> getCalorie() {
+        return mCalorie;
+    }
 }
index cf7b472..d3d464c 100644 (file)
@@ -327,7 +327,7 @@ public class RingProgress extends View {
     }
 
     public void setProgress(float progress) {
-        //setProgress(progress, useAnimation);
+        setProgress(progress, useAnimation);
     }
 
     public int getDisableAngle() {
index 5e86a64..8591b16 100644 (file)
@@ -12,6 +12,9 @@
         <variable
             name="pedTarget"
             type="String" />
+        <variable
+            name="calorieValue"
+            type="String" />
     </data>
 
     <RelativeLayout
@@ -38,7 +41,7 @@
             android:layout_centerInParent="true"
             android:includeFontPadding="false"
             android:paddingBottom="20dp"
-            android:text="540"
+            android:text="@{pedNumber}"
             android:textColor="@color/white"
             android:textSize="42sp" />
 
             android:layout_centerHorizontal="true"
             android:layout_marginBottom="60dp"
             android:drawableTop="@mipmap/icon_calorie_small"
-            android:text="300.5 kcal"
+            android:text="@{calorieValue}"
             android:textColor="@color/white"
             android:textSize="20sp"
             android:textStyle="bold" />
-        
+
     </RelativeLayout>
 </layout>
\ No newline at end of file