Skip to content

Commit 98079bb

Browse files
authored
Merge pull request #14 from skiptools/userdefaults
Update Userdefaults
2 parents 48e8540 + 58d5bec commit 98079bb

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# SkipAndroidBridge
22

3-
Bridging various Swift functionality to Android for native [Skip](https://skip.tools) apps.
3+
Bridging various Swift functionality to Android for [Skip Fuse](https://skip.tools) apps.
44

5-
Documentation can be found at https://skip.tools/docs/native/.
5+
Documentation can be found at https://skip.tools/docs/modes/.
66

77
## License
88

Sources/SkipAndroidBridge/AndroidUserDefaults.swift

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ open class AndroidUserDefaults : Foundation.UserDefaults {
1111

1212
private let userDefaultsAccess: UserDefaultsAccess
1313

14+
public required init(_ userDefaultsAccess: UserDefaultsAccess) {
15+
self.userDefaultsAccess = userDefaultsAccess
16+
super.init(suiteName: nil)!
17+
}
18+
1419
public convenience init() {
1520
self.init(suiteName: nil)!
1621
}
@@ -176,11 +181,26 @@ open class AndroidUserDefaults : Foundation.UserDefaults {
176181
extension AndroidUserDefaults : @unchecked Sendable {
177182
}
178183

184+
extension AndroidUserDefaults : JObjectProtocol, JConvertible {
185+
public static func fromJavaObject(_ obj: JavaObjectPointer?, options: JConvertibleOptions) -> Self {
186+
return try! Self.init(UserDefaultsAccess(AnyDynamicObject(for: obj!, options: options)))
187+
}
188+
189+
public func toJavaObject(options: JConvertibleOptions) -> JavaObjectPointer? {
190+
return userDefaultsAccess.userDefaults.toJavaObject(options: options)
191+
}
192+
}
193+
179194
#if SKIP
180195

181196
/// This bridged class gives us efficient access to `skip.foundation.UserDefaults` without bridging it to native.
182197
public class UserDefaultsAccess {
183-
private let userDefaults: skip.foundation.UserDefaults
198+
let userDefaults: skip.foundation.UserDefaults
199+
200+
// Fully-qualify the name here so that it bridges to AnyDynamicObject
201+
public init(_ userDefaults: skip.foundation.UserDefaults) {
202+
self.userDefaults = userDefaults
203+
}
184204

185205
public init(suiteName: String?) {
186206
userDefaults = skip.foundation.UserDefaults(suiteName: suiteName)

0 commit comments

Comments
 (0)