diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java index e13b6d8d..5f7c5891 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java +++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java @@ -194,6 +194,18 @@ public class OpenScale { public void deleteScaleUser(int id) { userDAO.delete(userDAO.get(id)); selectedScaleUser = null; + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + + // Remove user specific settings + SharedPreferences.Editor editor = prefs.edit(); + final String prefix = ScaleUser.getPreferenceKey(id, ""); + for (String key : prefs.getAll().keySet()) { + if (key.startsWith(prefix)) { + editor.remove(key); + } + } + editor.apply(); } public void updateScaleUser(ScaleUser user) { diff --git a/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleUser.java b/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleUser.java index d99df719..b5d28f8b 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleUser.java +++ b/android_app/app/src/main/java/com/health/openscale/core/datatypes/ScaleUser.java @@ -152,6 +152,14 @@ public class ScaleUser { return Converters.fromKilogram(initialWeight, scaleUnit); } + public static String getPreferenceKey(int userId, String key) { + return String.format("user.%d.%s", userId, key); + } + + public String getPreferenceKey(String key) { + return getPreferenceKey(getId(), key); + } + @Override public String toString() {