@@ -21,44 +21,82 @@ open class RecyclerViewAdapter: RecyclerView.Adapter<RecyclerView.ViewHolder> {
2121extension RecyclerViewAdapter {
2222
2323 @JavaMethod
24- public func onCreateViewHolderSwift( _ viewGroup: ViewGroup ? , _ viewType: Int32 ) -> RecyclerView . ViewHolder ! {
25- callback. onCreateViewHolder ( viewGroup, viewType)
24+ public func onCreateViewHolderSwift( _ viewGroup: ViewGroup ? , _ viewType: Int32 ) -> RecyclerView . ViewHolder ? {
25+ log ( " \( self ) . \( #function) \( viewType) " )
26+ return callback. onCreateViewHolder ? ( viewGroup!, viewType)
2627 }
2728
2829 @JavaMethod
2930 public func onBindViewHolderSwift( _ viewHolder: RecyclerView . ViewHolder ? , _ position: Int32 ) {
30- callback. onBindViewHolder ( viewHolder, position)
31+ log ( " \( self ) . \( #function) \( position) " )
32+ callback. onBindViewHolder ? ( viewHolder!, position)
3133 }
3234
3335 @JavaMethod
3436 public func getItemCountSwift( ) -> Int32 {
35- callback. getItemCount ( )
37+ log ( " \( self ) . \( #function) " )
38+ return callback. getItemCount ( )
39+ }
40+ }
41+
42+ extension RecyclerViewAdapter {
43+
44+ static var logTag : LogTag { " RecyclerViewAdapter " }
45+
46+ static func log( _ string: String ) {
47+ try ? AndroidLogger ( tag: logTag, priority: . debug)
48+ . log ( string)
49+ }
50+
51+ static func logInfo( _ string: String ) {
52+ try ? AndroidLogger ( tag: logTag, priority: . info)
53+ . log ( string)
54+ }
55+
56+ static func logError( _ string: String ) {
57+ try ? AndroidLogger ( tag: logTag, priority: . error)
58+ . log ( string)
59+ }
60+
61+ func log( _ string: String ) {
62+ Self . log ( string)
63+ }
64+
65+ func logError( _ string: String ) {
66+ Self . logError ( string)
3667 }
3768}
3869
3970public extension RecyclerViewAdapter {
4071
41- struct Callback < T > {
72+ struct Callback {
4273
4374 var onCreateViewHolder : ( ( ViewGroup , Int32 ) -> RecyclerView . ViewHolder ) ?
4475
45- var onBindViewHolder : ( ( RecyclerViewAdapter . ViewHolder < T > , Int32 ) -> ( ) ) ?
76+ var onBindViewHolder : ( ( RecyclerView . ViewHolder , Int32 ) -> ( ) ) ?
4677
47- var getItemCount : ( ) -> Int32 = { return 0 }
78+ var getItemCount : ( ) -> Int32
4879
49- public init ( onCreateViewHolder: ( ( ViewGroup , Int32 ) -> RecyclerView . ViewHolder ) ? = nil , onBindViewHolder: ( ( RecyclerView . ViewHolder , Int32 ) -> Void ) ? = nil , getItemCount: @escaping ( ) -> Int32 ) {
80+ public init (
81+ onCreateViewHolder: ( ( ViewGroup , Int32 ) -> RecyclerView . ViewHolder ) ? = nil ,
82+ onBindViewHolder: ( ( RecyclerView . ViewHolder , Int32 ) -> Void ) ? = nil ,
83+ getItemCount: @escaping ( ) -> Int32 = { return 0 }
84+ ) {
5085 self . onCreateViewHolder = onCreateViewHolder
5186 self . onBindViewHolder = onBindViewHolder
5287 self . getItemCount = getItemCount
5388 }
5489 }
90+ }
91+
92+ public extension RecyclerViewAdapter {
5593
5694 convenience init ( _ callback: Callback , environment: JNIEnvironment ? = nil ) {
5795 let swiftObject = SwiftObject ( callback, environment: environment)
5896 self . init ( swiftObject: swiftObject, environment: environment)
5997 }
6098
61- var callback : Callback < T > {
99+ var callback : Callback {
62100 get {
63101 getSwiftObject ( ) . valueObject ( ) . value as! Callback
64102 }
@@ -71,7 +109,7 @@ public extension RecyclerViewAdapter {
71109extension RecyclerViewAdapter {
72110
73111 @JavaClass ( " com.pureswift.swiftandroid.RecyclerViewAdapter$ViewHolder " )
74- open class ViewHolder < T > : RecyclerView . ViewHolder {
112+ open class ViewHolder : RecyclerView . ViewHolder {
75113
76114 @JavaMethod
77115 @_nonoverride public convenience init ( view: AndroidView . View ? , swiftObject: SwiftObject ? , environment: JNIEnvironment ? = nil )
@@ -83,14 +121,14 @@ extension RecyclerViewAdapter {
83121
84122public extension RecyclerViewAdapter . ViewHolder {
85123
86- convenience init ( _ value: T , view: AndroidView . View ? , environment: JNIEnvironment ? = nil ) {
124+ convenience init ( _ value: Any , view: AndroidView . View ? , environment: JNIEnvironment ? = nil ) {
87125 let swiftObject = SwiftObject ( value, environment: environment)
88126 self . init ( view: view, swiftObject: swiftObject, environment: environment)
89127 }
90128
91- var value : T {
129+ var value : Any {
92130 get {
93- getSwiftObject ( ) . valueObject ( ) . value as! T
131+ getSwiftObject ( ) . valueObject ( ) . value
94132 }
95133 set {
96134 getSwiftObject ( ) . valueObject ( ) . value = newValue
0 commit comments