From fb873406f9c87b1e3bc84c381a9e84810871a993 Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 23 Jun 2023 17:46:50 +0200 Subject: [PATCH] Adaptation of the receive logic --- .../greenwatch/communication/WiFiCommunication.java | 7 +------ .../greenwatch/repositories/DeviceRepository.java | 9 ++++++++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/example/greenwatch/communication/WiFiCommunication.java b/app/src/main/java/com/example/greenwatch/communication/WiFiCommunication.java index 108689e..17c38cf 100644 --- a/app/src/main/java/com/example/greenwatch/communication/WiFiCommunication.java +++ b/app/src/main/java/com/example/greenwatch/communication/WiFiCommunication.java @@ -51,11 +51,6 @@ public class WiFiCommunication { if (mDeviceRepository == null) { this.mDeviceRepository = deviceRepository; } - - } - public void setRecievedSting(String rxString) { - this.rxString = rxString; - //mDeviceRepository.getNewReceivedMessage(this.rxString); } public void setNewMessage(String newMessage, boolean isNewMessage){ @@ -124,7 +119,7 @@ public class WiFiCommunication { rxString = new String(packet.getData(), 0, packet.getLength()); if(!previousRxString.equals(rxString)){ - setRecievedSting(rxString); + mDeviceRepository.getNewReceivedMessage(rxString); } previousRxString = rxString; diff --git a/app/src/main/java/com/example/greenwatch/repositories/DeviceRepository.java b/app/src/main/java/com/example/greenwatch/repositories/DeviceRepository.java index 8ee9dc6..d772147 100644 --- a/app/src/main/java/com/example/greenwatch/repositories/DeviceRepository.java +++ b/app/src/main/java/com/example/greenwatch/repositories/DeviceRepository.java @@ -1,6 +1,8 @@ package com.example.greenwatch.repositories; +import android.os.Looper; + import androidx.lifecycle.MutableLiveData; import com.example.greenwatch.models.Device; @@ -273,7 +275,12 @@ public class DeviceRepository { private void setMutableLiveDataDeviceList() { List list = new ArrayList<>(connectedDevicesList.values()); - deviceList.setValue(list); + if (Looper.myLooper() == Looper.getMainLooper()){ + deviceList.setValue(list); + } + else { + deviceList.postValue(list); + } } private void setMutableLiveDataAlarmHistoryList() {