Skip to content

Commit 56a5072

Browse files
committed
Wrapping Drawable Utils.
1 parent 733dabf commit 56a5072

File tree

2 files changed

+147
-0
lines changed

2 files changed

+147
-0
lines changed

Sources/DrawableCompat.swift

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
//
2+
// DrawableCompat.swift
3+
// Android
4+
//
5+
// Created by Marco Estrella on 8/29/18.
6+
//
7+
8+
import Foundation
9+
import java_swift
10+
import JNI
11+
12+
public extension Android.Graphics.Drawable {
13+
14+
public typealias DrawableCompat = AndroidDrawableCompat
15+
}
16+
17+
open class AndroidDrawableCompat: JavaObject {
18+
19+
public required init(javaObject: jobject?) {
20+
super.init(javaObject: javaObject)
21+
}
22+
23+
public convenience init?( casting object: JavaObject, _ file: StaticString = #file, _ line: Int = #line ) {
24+
self.init( javaObject: nil )
25+
object.withJavaObject {
26+
self.javaObject = $0
27+
}
28+
}
29+
}
30+
31+
public extension AndroidDrawableCompat {
32+
33+
public static func wrap(drawable: AndroidGraphicsDrawableDrawable) -> AndroidGraphicsDrawableDrawable? {
34+
35+
var __locals = [jobject]()
36+
37+
var __args = [jvalue]( repeating: jvalue(), count: 1 )
38+
39+
__args[0] = JNIType.toJava(value: drawable, locals: &__locals)
40+
41+
let __return = JNIMethod.CallStaticObjectMethod(className: JNICache.className,
42+
classCache: &JNICache.jniClass,
43+
methodName: "wrap",
44+
methodSig: "(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;",
45+
methodCache: &JNICache.MethodID.wrap,
46+
args: &__args,
47+
locals: &__locals )
48+
49+
return __return != nil ? AndroidGraphicsDrawableDrawable(javaObject: __return) : nil
50+
}
51+
}
52+
53+
internal extension AndroidDrawableCompat {
54+
55+
/// JNI Cache
56+
struct JNICache {
57+
58+
static let classSignature = Android.Graphics.Drawable.className(["DrawableCompat"])
59+
60+
/// JNI Java class name
61+
static let className = classSignature.rawValue
62+
63+
/// JNI Java class
64+
static var jniClass: jclass?
65+
66+
/// JNI Method ID cache
67+
struct MethodID {
68+
69+
static var wrap: jmethodID?
70+
}
71+
}
72+
}

Sources/VectorDrawableCompat.swift

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
//
2+
// VectorDrawableCompat.swift
3+
// Android
4+
//
5+
// Created by Marco Estrella on 8/29/18.
6+
//
7+
8+
import Foundation
9+
import java_swift
10+
import JNI
11+
12+
public extension Android.Graphics.Drawable {
13+
14+
public typealias VectorDrawableCompat = AndroidVectorDrawableCompat
15+
}
16+
17+
public class AndroidVectorDrawableCompat: JavaObject {
18+
19+
public required init(javaObject: jobject?) {
20+
super.init(javaObject: javaObject)
21+
}
22+
23+
public convenience init?( casting object: JavaObject, _ file: StaticString = #file, _ line: Int = #line ) {
24+
self.init( javaObject: nil )
25+
object.withJavaObject {
26+
self.javaObject = $0
27+
}
28+
}
29+
}
30+
31+
public extension AndroidVectorDrawableCompat {
32+
33+
public static func create(res: AndroidContentResResources, resId: Int, theme: JavaObject) -> AndroidVectorDrawableCompat? {
34+
35+
var __locals = [jobject]()
36+
37+
var __args = [jvalue]( repeating: jvalue(), count: 3 )
38+
39+
__args[0] = JNIType.toJava(value: res, locals: &__locals)
40+
__args[1] = jvalue(i: jint(resId))
41+
__args[2] = JNIType.toJava(value: theme, locals: &__locals)
42+
43+
let __return = JNIMethod.CallStaticObjectMethod(className: JNICache.className,
44+
classCache: &JNICache.jniClass,
45+
methodName: "create",
46+
methodSig: "(Landroid/content/res/Resources;ILandroid/content/res/Resources$Theme;)Landroid/support/graphics/drawable/VectorDrawableCompat;",
47+
methodCache: &JNICache.MethodID.create,
48+
args: &__args,
49+
locals: &__locals )
50+
51+
return __return != nil ? AndroidVectorDrawableCompat(javaObject: __return) : nil
52+
}
53+
54+
}
55+
56+
internal extension AndroidVectorDrawableCompat {
57+
58+
/// JNI Cache
59+
struct JNICache {
60+
61+
static let classSignature = Android.Graphics.Drawable.className(["VectorDrawableCompat"])
62+
63+
/// JNI Java class name
64+
static let className = classSignature.rawValue
65+
66+
/// JNI Java class
67+
static var jniClass: jclass?
68+
69+
/// JNI Method ID cache
70+
struct MethodID {
71+
72+
static var create: jmethodID?
73+
}
74+
}
75+
}

0 commit comments

Comments
 (0)