1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-09-27 16:56:57 +02:00

Xiaomi: Display widget id when names are repeated

This commit is contained in:
José Rebelo 2023-12-12 20:58:42 +00:00
parent cb3e10f07a
commit 1028d2c0cd
3 changed files with 24 additions and 6 deletions

View File

@ -29,6 +29,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.Set;
@ -90,6 +91,9 @@ public class XiaomiWidgetManager implements WidgetManager {
final XiaomiProto.WidgetParts rawWidgetParts = getRawWidgetParts();
final Set<String> seenNames = new HashSet<>();
final Set<String> duplicatedNames = new HashSet<>();
for (final XiaomiProto.WidgetPart widgetPart : rawWidgetParts.getWidgetPartList()) {
final WidgetType type = fromRawWidgetType(widgetPart.getType());
@ -118,10 +122,23 @@ public class XiaomiWidgetManager implements WidgetManager {
}
}
if (seenNames.contains(newPart.getFullName())) {
duplicatedNames.add(newPart.getFullName());
} else {
seenNames.add(newPart.getFullName());
}
parts.add(newPart);
}
}
// Ensure that all names are unique
for (final WidgetPart part : parts) {
if (duplicatedNames.contains(part.getFullName())) {
part.setName(String.format(Locale.ROOT, "%s (%s)", part.getName(), part.getId()));
}
}
return parts;
}

View File

@ -833,6 +833,7 @@ public class XiaomiSystemService extends AbstractXiaomiService implements Xiaomi
}
private void setWidgets() {
// Just take the persisted protobuf and send it (see above and XiaomiWidgetManager)
final String hex = getDevicePrefs().getString(XiaomiPreferences.PREF_WIDGET_SCREENS, null);
if (hex == null) {
LOG.warn("raw widget screens hex is null");

View File

@ -41,7 +41,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="2x1"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textAppearance="?android:attr/textAppearanceMedium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_layout" />
</androidx.constraintlayout.widget.ConstraintLayout>
@ -80,7 +80,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="TOP LEFT"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textAppearance="?android:attr/textAppearanceMedium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_widget_top_left" />
</androidx.constraintlayout.widget.ConstraintLayout>
@ -119,7 +119,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="TOP RIGHT"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textAppearance="?android:attr/textAppearanceMedium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_widget_top_right" />
</androidx.constraintlayout.widget.ConstraintLayout>
@ -158,7 +158,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="CENTER"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textAppearance="?android:attr/textAppearanceMedium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_widget_center" />
</androidx.constraintlayout.widget.ConstraintLayout>
@ -197,7 +197,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="BOT LEFT"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textAppearance="?android:attr/textAppearanceMedium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_widget_bottom_left" />
</androidx.constraintlayout.widget.ConstraintLayout>
@ -236,7 +236,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="BOT RIGHT"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textAppearance="?android:attr/textAppearanceMedium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/label_widget_bottom_right" />
</androidx.constraintlayout.widget.ConstraintLayout>