Skip to content

Commit a2ec55b

Browse files
committed
Feat: Expose (Mutable)MapPreferences as API
1 parent 5ba757b commit a2ec55b

3 files changed

Lines changed: 55 additions & 11 deletions

File tree

preference/api/android/preference.api

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,16 @@ public final class me/zhanghai/compose/preference/ListPreferenceType : java/lang
7474
public static fun values ()[Lme/zhanghai/compose/preference/ListPreferenceType;
7575
}
7676

77+
public final class me/zhanghai/compose/preference/MapPreferences : me/zhanghai/compose/preference/Preferences {
78+
public static final field $stable I
79+
public fun <init> ()V
80+
public fun <init> (Ljava/util/Map;)V
81+
public synthetic fun <init> (Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
82+
public fun asMap ()Ljava/util/Map;
83+
public fun get (Ljava/lang/String;)Ljava/lang/Object;
84+
public fun toMutablePreferences ()Lme/zhanghai/compose/preference/MutablePreferences;
85+
}
86+
7787
public final class me/zhanghai/compose/preference/MultiSelectListPreferenceDefaults {
7888
public static final field $stable I
7989
public static final field INSTANCE Lme/zhanghai/compose/preference/MultiSelectListPreferenceDefaults;
@@ -87,6 +97,18 @@ public final class me/zhanghai/compose/preference/MultiSelectListPreferenceKt {
8797
public static synthetic fun multiSelectListPreference$default (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;Ljava/util/Set;Ljava/util/List;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function5;ILjava/lang/Object;)V
8898
}
8999

100+
public final class me/zhanghai/compose/preference/MutableMapPreferences : me/zhanghai/compose/preference/MutablePreferences {
101+
public static final field $stable I
102+
public fun <init> ()V
103+
public fun <init> (Ljava/util/Map;)V
104+
public synthetic fun <init> (Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
105+
public fun asMap ()Ljava/util/Map;
106+
public fun clear ()V
107+
public fun get (Ljava/lang/String;)Ljava/lang/Object;
108+
public fun set (Ljava/lang/String;Ljava/lang/Object;)V
109+
public fun toMutablePreferences ()Lme/zhanghai/compose/preference/MutablePreferences;
110+
}
111+
90112
public abstract interface class me/zhanghai/compose/preference/MutablePreferences : me/zhanghai/compose/preference/Preferences {
91113
public abstract fun clear ()V
92114
public fun minusAssign (Ljava/lang/String;)V

preference/api/jvm/preference.api

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,16 @@ public final class me/zhanghai/compose/preference/ListPreferenceType : java/lang
7474
public static fun values ()[Lme/zhanghai/compose/preference/ListPreferenceType;
7575
}
7676

77+
public final class me/zhanghai/compose/preference/MapPreferences : me/zhanghai/compose/preference/Preferences {
78+
public static final field $stable I
79+
public fun <init> ()V
80+
public fun <init> (Ljava/util/Map;)V
81+
public synthetic fun <init> (Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
82+
public fun asMap ()Ljava/util/Map;
83+
public fun get (Ljava/lang/String;)Ljava/lang/Object;
84+
public fun toMutablePreferences ()Lme/zhanghai/compose/preference/MutablePreferences;
85+
}
86+
7787
public final class me/zhanghai/compose/preference/MultiSelectListPreferenceDefaults {
7888
public static final field $stable I
7989
public static final field INSTANCE Lme/zhanghai/compose/preference/MultiSelectListPreferenceDefaults;
@@ -87,6 +97,18 @@ public final class me/zhanghai/compose/preference/MultiSelectListPreferenceKt {
8797
public static synthetic fun multiSelectListPreference$default (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;Ljava/util/Set;Ljava/util/List;Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function5;ILjava/lang/Object;)V
8898
}
8999

100+
public final class me/zhanghai/compose/preference/MutableMapPreferences : me/zhanghai/compose/preference/MutablePreferences {
101+
public static final field $stable I
102+
public fun <init> ()V
103+
public fun <init> (Ljava/util/Map;)V
104+
public synthetic fun <init> (Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
105+
public fun asMap ()Ljava/util/Map;
106+
public fun clear ()V
107+
public fun get (Ljava/lang/String;)Ljava/lang/Object;
108+
public fun set (Ljava/lang/String;Ljava/lang/Object;)V
109+
public fun toMutablePreferences ()Lme/zhanghai/compose/preference/MutablePreferences;
110+
}
111+
90112
public abstract interface class me/zhanghai/compose/preference/MutablePreferences : me/zhanghai/compose/preference/Preferences {
91113
public abstract fun clear ()V
92114
public fun minusAssign (Ljava/lang/String;)V

preference/src/commonMain/kotlin/Preferences.kt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,6 @@ public interface Preferences {
2626
public fun toMutablePreferences(): MutablePreferences
2727
}
2828

29-
internal class MapPreferences(private val map: Map<String, Any> = emptyMap()) : Preferences {
30-
@Suppress("UNCHECKED_CAST") override fun <T> get(key: String): T? = map[key] as T?
31-
32-
override fun asMap(): Map<String, Any> = map
33-
34-
override fun toMutablePreferences(): MutablePreferences =
35-
MapMutablePreferences(map.toMutableMap())
36-
}
37-
3829
public interface MutablePreferences : Preferences {
3930
public operator fun <T> set(key: String, value: T?)
4031

@@ -49,14 +40,23 @@ public interface MutablePreferences : Preferences {
4940
public fun clear()
5041
}
5142

52-
internal class MapMutablePreferences(private val map: MutableMap<String, Any> = mutableMapOf()) :
43+
public class MapPreferences(private val map: Map<String, Any> = emptyMap()) : Preferences {
44+
@Suppress("UNCHECKED_CAST") override fun <T> get(key: String): T? = map[key] as T?
45+
46+
override fun asMap(): Map<String, Any> = map
47+
48+
override fun toMutablePreferences(): MutablePreferences =
49+
MutableMapPreferences(map.toMutableMap())
50+
}
51+
52+
public class MutableMapPreferences(private val map: MutableMap<String, Any> = mutableMapOf()) :
5353
MutablePreferences {
5454
@Suppress("UNCHECKED_CAST") override fun <T> get(key: String): T? = map[key] as T?
5555

5656
override fun asMap(): Map<String, Any> = map
5757

5858
override fun toMutablePreferences(): MutablePreferences =
59-
MapMutablePreferences(map.toMutableMap())
59+
MutableMapPreferences(map.toMutableMap())
6060

6161
override fun <T> set(key: String, value: T?) {
6262
if (value != null) {

0 commit comments

Comments
 (0)