Bugfix for Camera photo not being displayed in the app.

This commit is contained in:
2025-10-06 20:42:34 +02:00
parent 7fa666bcd4
commit 567b279030
32 changed files with 741 additions and 1976 deletions

View File

@@ -4,10 +4,11 @@ import static java.nio.charset.StandardCharsets.UTF_8;
import android.util.Log;
import androidx.annotation.NonNull;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.eclipse.paho.android.service.MqttAndroidClient;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
@@ -15,15 +16,12 @@ import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Objects;
import javax.net.ssl.SSLSocketFactory;
public class MqttClient {
static org.eclipse.paho.client.mqttv3.MqttClient client = null;
static boolean connSuccess = false;
static String logContent = "";
static String tv_Zustand1 = "", tv_Zustand2 = "", tv_Zustand3 = "", tv_Zustand4 = "", tv_Zustand5 = "", tv_Zustand6 = "";
static String tv_Zustand7 = "", tv_Zustand8 = "", tv_Zustand9 = "", tv_Zustand10 = "", tv_Zustand11 = "", tv_Zustand12 = "";
@@ -39,25 +37,9 @@ public class MqttClient {
@Override
public void connectionLost(Throwable cause) {
Log.d("MQTT connloss", "client lost connection " + cause);
Log.d("MQTT connloss", cause.getMessage());
Log.d("MQTT connloss", Objects.requireNonNull(cause.getMessage()));
Log.d("MQTT connless", String.valueOf(client.getDebug()));
Log.d("MQTT connloss", String.valueOf(MqttClient.client.isConnected()));
// MainActivity.tv_mqtt.setTextColor(Color.RED);
// if (!MqttClient.client.isConnected()) {
// try {
// client.reconnect();
// client.subscribe("stat/Haussteuerung/#");
// client.subscribe("fhem/temp/#");
// client.subscribe("fhem/Heizung/#");
// } catch (MqttException e) {
// e.printStackTrace();
// }
// }
// Log.d("MQTT connloss2", String.valueOf(MqttClient.client.isConnected()));
// disconnect();
// Log.d("MQTT connloss", "client disconnected after connection lost");
// connect();
}
@Override
@@ -66,12 +48,8 @@ public class MqttClient {
if (topic.equals("stat/Haussteuerung/Alarm")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
if (jsonObject.get("Zustand").getAsString().equals("true")) {
// MainActivity.buttonAlarm.setText(R.string.alarm_ein);
// MainActivity.buttonAlarm.setBackgroundResource(R.drawable.alarm_true);
MainActivity.alarmStatus = true;
} else if (jsonObject.get("Zustand").getAsString().equals("false")) {
// MainActivity.buttonAlarm.setText(R.string.alarm_aus);
// MainActivity.buttonAlarm.setBackgroundResource(R.drawable.alarm_false);
MainActivity.alarmStatus = false;
}
}
@@ -79,10 +57,8 @@ public class MqttClient {
if (topic.equals("stat/Haussteuerung/Waschmaschine/WM1")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
if (jsonObject.get("Zustand").getAsString().equals("ein")) {
// MainActivity.tv_WM1.setText(R.string.wm1_laeuft);
MainActivity.wm1Status = true;
} else if (jsonObject.get("Zustand").getAsString().equals("aus")) {
// MainActivity.tv_WM1.setText(R.string.wm1_aus);
MainActivity.wm1Status = false;
}
}
@@ -90,10 +66,8 @@ public class MqttClient {
if (topic.equals("stat/Haussteuerung/Waschmaschine/WM2")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
if (jsonObject.get("Zustand").getAsString().equals("ein")) {
// MainActivity.tv_WM2.setText(R.string.wm2_laeuft);
MainActivity.wm2Status = true;
} else if (jsonObject.get("Zustand").getAsString().equals("aus")) {
// MainActivity.tv_WM2.setText(R.string.wm2_aus);
MainActivity.wm2Status = false;
}
}
@@ -133,14 +107,6 @@ public class MqttClient {
activityLicht.checkedGlocke = jsonObject.get("Checkbox").getAsBoolean();
}
// WEIHNACHTSBELEUCHTUNG
if (topic.equals("tele/sonoff153/STATE")) {
JsonObject jsonObject = JsonParser.parseString(message.toString()).getAsJsonObject();
activityChristmas.power = jsonObject.get("POWER").getAsString();
activityChristmas.hsbColorArray = new ArrayList<>(Arrays.asList(jsonObject.get("HSBColor").getAsString().split(",")));
}
// WEIHNACHTSBELEUCHTUNG
handleLWP(topic, message);
fensterZustaende(topic, message);
@@ -152,8 +118,24 @@ public class MqttClient {
}
});
} catch (MqttException e) {
e.printStackTrace();
Log.d("MQTTLOG", "Connect failed: " + e);
}
MqttConnectOptions mqttConnectOptions = getMqttConnectOptions();
try {
client.connect(mqttConnectOptions);
subscribe("stat/Haussteuerung/#");
subscribe("fhem/temp/#");
subscribe("fhem/Heizung/#");
subscribe("tele/sonoff153/#");
subscribe("growatt/#");
Log.d("MQTTLOG", "client connected");
} catch (MqttException e) {
Log.d("MQTTLOG", "connection failed " + e.getMessage());
}
}
@NonNull
private static MqttConnectOptions getMqttConnectOptions() {
MqttConnectOptions mqttConnectOptions = new MqttConnectOptions();
mqttConnectOptions.setUserName("steve");
mqttConnectOptions.setPassword("Florian1".toCharArray());
@@ -161,58 +143,33 @@ public class MqttClient {
mqttConnectOptions.setCleanSession(false);
mqttConnectOptions.setKeepAliveInterval(15);
mqttConnectOptions.setConnectionTimeout(30);
mqttConnectOptions.setSocketFactory(SSLSocketFactory.getDefault()); // using the default socket factory
try {
client.connect(mqttConnectOptions);
// connSuccess = true;
subscribe("stat/Haussteuerung/#");
subscribe("fhem/temp/#");
subscribe("fhem/Heizung/#");
subscribe("tele/sonoff153/#");
subscribe("growatt/#");
Log.d("MQTTLOG", "client connected");
// MainActivity.tv_mqtt.setTextColor(Color.parseColor("#64DD17"));
} catch (MqttException e) {
e.printStackTrace();
// connSuccess = false;
Log.d("MQTTLOG", "connection failed " + e.getMessage());
// MainActivity.tv_mqtt.setTextColor(Color.RED);
}
mqttConnectOptions.setSocketFactory(SSLSocketFactory.getDefault());
return mqttConnectOptions;
}
public static void subscribe(String topic) {
try {
// if (!client.isConnected()) {
// client.reconnect();
// }
client.subscribe(topic);
} catch (MqttException e) {
e.printStackTrace();
Log.d("MQTTLOG", "Subscribing failed: " + e);
}
}
public static void publish(String topic, String message) {
try {
// if (!client.isConnected()) {
// client.reconnect();
// }
client.publish(topic, message.getBytes(UTF_8),2, false);
client.publish(topic, message.getBytes(UTF_8), 2, false);
Log.d("MQTTLOG", "Message" + message + "published.");
} catch (MqttException e) {
e.printStackTrace();
Log.d("MQTTLOG", "Publish failed: " + e);
}
}
public static void publish(String topic, String message, int qos, boolean retained) {
try {
// if (!client.isConnected()) {
// client.reconnect();
// }
client.publish(topic, message.getBytes(UTF_8), qos, retained);
Log.d("MQTTLOG", "Message" + message + "published.");
} catch (MqttException e) {
e.printStackTrace();
Log.d("MQTTLOG", "Publish failed: " + e);
}
}
@@ -220,9 +177,8 @@ public class MqttClient {
try {
client.disconnect();
} catch (MqttException e) {
e.printStackTrace();
Log.d("MQTTLOG", "Disconnect failed: " + e);
}
// MainActivity.tv_mqtt.setTextColor(Color.RED);
}
private static void handleLWP(String topic, MqttMessage message) {