Skip to content

Commit b26e6f8

Browse files
committed
Working on Activity, WindowManager, Display and DisplayMetrics.
1 parent 3f129a1 commit b26e6f8

File tree

4 files changed

+346
-61
lines changed

4 files changed

+346
-61
lines changed

Sources/AppCompatActivity.swift

Lines changed: 116 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,28 @@ open class SwiftSupportAppCompatActivity: AndroidContextWrapper {
5454
}
5555
}
5656

57+
public var windowManager: AndroidWindowManager? {
58+
get {
59+
return getWindowManager()
60+
}
61+
}
62+
63+
public var hasNavBar: Bool {
64+
get {
65+
return hasNavBarJavaMethod()
66+
}
67+
}
68+
69+
public var statusBarHeightPixels: Int {
70+
get {
71+
return getStatusBarHeightPixels()
72+
}
73+
}
74+
5775
// MARK: - Listener
5876

5977
open func onCreate(savedInstanceState: Android.OS.Bundle?) {
60-
78+
6179
NSLog("\(type(of: self)) \(#function)")
6280
}
6381

@@ -170,11 +188,11 @@ open class SwiftSupportAppCompatActivity: AndroidContextWrapper {
170188
withJavaObject {
171189

172190
let __return = JNIMethod.CallBooleanMethod(object: $0,
173-
methodName: "isFinishing",
174-
methodSig: "()Z",
175-
methodCache: &SwiftActivityJNICache.MethodID.isFinishing,
176-
args: &__args,
177-
locals: &__locals)
191+
methodName: "isFinishing",
192+
methodSig: "()Z",
193+
methodCache: &SwiftActivityJNICache.MethodID.isFinishing,
194+
args: &__args,
195+
locals: &__locals)
178196

179197
result = __return != jboolean(JNI_FALSE)
180198
}
@@ -269,11 +287,11 @@ open class SwiftSupportAppCompatActivity: AndroidContextWrapper {
269287
withJavaObject {
270288

271289
let __return = JNIMethod.CallObjectMethod(object: $0,
272-
methodName: "getResources",
273-
methodSig: "()Landroid/content/res/Resources;",
274-
methodCache: &SwiftActivityJNICache.MethodID.getResources,
275-
args: &__args,
276-
locals: &__locals)
290+
methodName: "getResources",
291+
methodSig: "()Landroid/content/res/Resources;",
292+
methodCache: &SwiftActivityJNICache.MethodID.getResources,
293+
args: &__args,
294+
locals: &__locals)
277295

278296
defer { JNI.DeleteLocalRef(__return) }
279297

@@ -363,7 +381,7 @@ open class SwiftSupportAppCompatActivity: AndroidContextWrapper {
363381
var __locals = [jobject]()
364382

365383
var __args = [jvalue]( repeating: jvalue(), count: 1 )
366-
384+
367385
let __return = JNIMethod.CallFloatMethod(
368386
object: javaObject,
369387
methodName: "getDensity",
@@ -433,6 +451,60 @@ open class SwiftSupportAppCompatActivity: AndroidContextWrapper {
433451
args: &__args,
434452
locals: &__locals )
435453
}
454+
455+
@inline(__always)
456+
private func getWindowManager() -> AndroidWindowManager? {
457+
458+
var __locals = [jobject]()
459+
460+
var __args = [jvalue]( repeating: jvalue(), count: 1 )
461+
462+
let __return = JNIMethod.CallObjectMethod(
463+
object: javaObject,
464+
methodName: "getWindowManager",
465+
methodSig: "()Landroid/view/WindowManager;",
466+
methodCache: &SwiftActivityJNICache.MethodID.getWindowManager,
467+
args: &__args,
468+
locals: &__locals )
469+
470+
return __return != nil ? AndroidWindowManager(javaObject: __return) : nil
471+
}
472+
473+
@inline(__always)
474+
private func getStatusBarHeightPixels() -> Int {
475+
476+
var __locals = [jobject]()
477+
478+
var __args = [jvalue]( repeating: jvalue(), count: 1 )
479+
480+
let __return = JNIMethod.CallIntMethod(
481+
object: javaObject,
482+
methodName: "getStatusBarHeightPixels",
483+
methodSig: "()I",
484+
methodCache: &SwiftActivityJNICache.MethodID.getStatusBarHeightPixels,
485+
args: &__args,
486+
locals: &__locals )
487+
488+
return Int(__return)
489+
}
490+
491+
@inline(__always)
492+
private func hasNavBarJavaMethod() -> Bool {
493+
494+
var __locals = [jobject]()
495+
496+
var __args = [jvalue]( repeating: jvalue(), count: 1 )
497+
498+
let __return = JNIMethod.CallBooleanMethod(
499+
object: javaObject,
500+
methodName: "hasNavBar",
501+
methodSig: "()Z",
502+
methodCache: &SwiftActivityJNICache.MethodID.hasNavBar,
503+
args: &__args,
504+
locals: &__locals )
505+
506+
return jboolean(__return) != JNI_FALSE
507+
}
436508
}
437509

438510
extension SwiftSupportAppCompatActivity: JNIListener { }
@@ -543,6 +615,9 @@ fileprivate extension SwiftSupport.App.AppCompatActivity {
543615
static var getResources: jmethodID?
544616
static var getSupportFragmentManager: jmethodID?
545617
static var runOnMainThread: jmethodID?
618+
static var getWindowManager: jmethodID?
619+
static var getStatusBarHeightPixels: jmethodID?
620+
static var hasNavBar: jmethodID?
546621
}
547622
}
548623
}
@@ -557,9 +632,9 @@ internal func SwiftAndroidMainActivity() -> SwiftSupportAppCompatActivity.Type
557632

558633
@_silgen_name("Java_org_pureswift_swiftandroidsupport_app_SwiftAppCompatActivity_onCreateNative")
559634
public func SwiftSupportAppCompatActivity_onCreate( _ __env: UnsafeMutablePointer<JNIEnv?>,
560-
_ __this: jobject?,
561-
_ __swiftObject: jlong,
562-
_ __savedInstanceState: jobject?) -> () {
635+
_ __this: jobject?,
636+
_ __swiftObject: jlong,
637+
_ __savedInstanceState: jobject?) -> () {
563638

564639
let bundle = __savedInstanceState != nil ? Android.OS.Bundle(javaObject: __savedInstanceState) : nil
565640

@@ -570,18 +645,18 @@ public func SwiftSupportAppCompatActivity_onCreate( _ __env: UnsafeMutablePointe
570645

571646
@_silgen_name("Java_org_pureswift_swiftandroidsupport_app_SwiftAppCompatActivity_onStartNative")
572647
public func SwiftSupportAppCompatActivity_onStart( _ __env: UnsafeMutablePointer<JNIEnv?>,
573-
_ __this: jobject?,
574-
_ __swiftObject: jlong) -> () {
575-
648+
_ __this: jobject?,
649+
_ __swiftObject: jlong) -> () {
650+
576651
let activity = SwiftSupportAppCompatActivity.swiftObject(from: __swiftObject)
577652

578653
activity?.onStart()
579654
}
580655

581656
@_silgen_name("Java_org_pureswift_swiftandroidsupport_app_SwiftAppCompatActivity_onResumeNative")
582657
public func SwiftSupportAppCompatActivity_onResume( _ __env: UnsafeMutablePointer<JNIEnv?>,
583-
_ __this: jobject?,
584-
_ __swiftObject: jlong) -> () {
658+
_ __this: jobject?,
659+
_ __swiftObject: jlong) -> () {
585660

586661
let activity = SwiftSupportAppCompatActivity.swiftObject(from: __swiftObject)
587662

@@ -590,8 +665,8 @@ public func SwiftSupportAppCompatActivity_onResume( _ __env: UnsafeMutablePointe
590665

591666
@_silgen_name("Java_org_pureswift_swiftandroidsupport_app_SwiftAppCompatActivity_onPauseNative")
592667
public func SwiftSupportAppCompatActivity_onPause( _ __env: UnsafeMutablePointer<JNIEnv?>,
593-
_ __this: jobject?,
594-
_ __swiftObject: jlong) -> () {
668+
_ __this: jobject?,
669+
_ __swiftObject: jlong) -> () {
595670

596671
let activity = SwiftSupportAppCompatActivity.swiftObject(from: __swiftObject)
597672

@@ -600,8 +675,8 @@ public func SwiftSupportAppCompatActivity_onPause( _ __env: UnsafeMutablePointer
600675

601676
@_silgen_name("Java_org_pureswift_swiftandroidsupport_app_SwiftAppCompatActivity_onRestartNative")
602677
public func SwiftSupportAppCompatActivity_onRestart( _ __env: UnsafeMutablePointer<JNIEnv?>,
603-
_ __this: jobject?,
604-
_ __swiftObject: jlong) -> () {
678+
_ __this: jobject?,
679+
_ __swiftObject: jlong) -> () {
605680

606681
let activity = SwiftSupportAppCompatActivity.swiftObject(from: __swiftObject)
607682

@@ -610,8 +685,8 @@ public func SwiftSupportAppCompatActivity_onRestart( _ __env: UnsafeMutablePoint
610685

611686
@_silgen_name("Java_org_pureswift_swiftandroidsupport_app_SwiftAppCompatActivity_onStopNative")
612687
public func SwiftSupportAppCompatActivity_onStop( _ __env: UnsafeMutablePointer<JNIEnv?>,
613-
_ __this: jobject?,
614-
_ __swiftObject: jlong) -> () {
688+
_ __this: jobject?,
689+
_ __swiftObject: jlong) -> () {
615690

616691
let activity = SwiftSupportAppCompatActivity.swiftObject(from: __swiftObject)
617692

@@ -620,8 +695,8 @@ public func SwiftSupportAppCompatActivity_onStop( _ __env: UnsafeMutablePointer<
620695

621696
@_silgen_name("Java_org_pureswift_swiftandroidsupport_app_SwiftAppCompatActivity_onDestroyNative")
622697
public func SwiftSupportAppCompatActivity_onDestroy( _ __env: UnsafeMutablePointer<JNIEnv?>,
623-
_ __this: jobject?,
624-
_ __swiftObject: jlong) -> () {
698+
_ __this: jobject?,
699+
_ __swiftObject: jlong) -> () {
625700

626701
let activity = SwiftSupportAppCompatActivity.swiftObject(from: __swiftObject)
627702

@@ -630,11 +705,11 @@ public func SwiftSupportAppCompatActivity_onDestroy( _ __env: UnsafeMutablePoint
630705

631706
@_silgen_name("Java_org_pureswift_swiftandroidsupport_app_SwiftAppCompatActivity_onActivityResultNative")
632707
public func SwiftSupportAppCompatActivity_onActivityResultNative( _ __env: UnsafeMutablePointer<JNIEnv?>,
633-
_ __this: jobject?,
634-
_ __swiftObject: jlong,
635-
_ __requestCode: jint,
636-
_ __resultCode: jint,
637-
_ __data: jobject?) -> () {
708+
_ __this: jobject?,
709+
_ __swiftObject: jlong,
710+
_ __requestCode: jint,
711+
_ __resultCode: jint,
712+
_ __data: jobject?) -> () {
638713

639714
let requestCode = Int(__requestCode)
640715

@@ -649,11 +724,11 @@ public func SwiftSupportAppCompatActivity_onActivityResultNative( _ __env: Unsaf
649724

650725
@_silgen_name("Java_org_pureswift_swiftandroidsupport_app_SwiftAppCompatActivity_onRequestPermissionsResultNative")
651726
public func SwiftSupportAppCompatActivity_onRequestPermissionsResultNative( _ __env: UnsafeMutablePointer<JNIEnv?>,
652-
_ __this: jobject?,
653-
_ __swiftObject: jlong,
654-
_ __requestCode: jint,
655-
_ __permissions: jobject,
656-
_ __grantResults: jobject) -> () {
727+
_ __this: jobject?,
728+
_ __swiftObject: jlong,
729+
_ __requestCode: jint,
730+
_ __permissions: jobject,
731+
_ __grantResults: jobject) -> () {
657732

658733
let requestCode = Int(__requestCode)
659734

@@ -668,10 +743,11 @@ public func SwiftSupportAppCompatActivity_onRequestPermissionsResultNative( _ __
668743

669744
@_silgen_name("Java_org_pureswift_swiftandroidsupport_app_SwiftAppCompatActivity_finalizeNative")
670745
public func SwiftSupportAppCompatActivity_finalize( _ __env: UnsafeMutablePointer<JNIEnv?>,
671-
_ __this: jobject?,
672-
_ __swiftObject: jlong) -> () {
746+
_ __this: jobject?,
747+
_ __swiftObject: jlong) -> () {
673748

674749
SwiftSupportAppCompatActivity.release(swiftObject: __swiftObject )
675750

676751
NSLog("native \(#function)")
677752
}
753+

0 commit comments

Comments
 (0)