@@ -200,18 +200,18 @@ AndroidNotificationIntentData SerializeDeserializeNotification(AndroidNotificati
200
200
201
201
AndroidNotificationIntentData SerializeDeserializeNotification ( AndroidJavaObject builder )
202
202
{
203
- return SerializeDeserializeNotification ( builder , "serializeNotificationCustom" ) ;
203
+ return SerializeDeserializeNotificationWithFunc ( builder , ( u , s , j ) => SerializeNotificationCustom ( u , s , j ) ) ;
204
204
}
205
205
206
- AndroidNotificationIntentData SerializeDeserializeNotification ( AndroidJavaObject builder , string serializeMethod )
206
+ AndroidNotificationIntentData SerializeDeserializeNotificationWithFunc ( AndroidJavaObject builder , Func < AndroidJavaClass , AndroidJavaObject , AndroidJavaObject , bool > serialize )
207
207
{
208
208
var javaNotif = builder . Call < AndroidJavaObject > ( "build" ) ;
209
209
var utilsClass = new AndroidJavaClass ( "com.unity.androidnotifications.UnityNotificationUtilities" ) ;
210
210
AndroidJavaObject serializedBytes ; // use java object, since we don't need the bytes, so don't waste time on marshalling
211
211
using ( var byteStream = new AndroidJavaObject ( "java.io.ByteArrayOutputStream" ) )
212
212
{
213
213
var dataStream = new AndroidJavaObject ( "java.io.DataOutputStream" , byteStream ) ;
214
- var didSerialize = utilsClass . CallStatic < bool > ( serializeMethod , javaNotif , dataStream ) ;
214
+ var didSerialize = serialize ( utilsClass , dataStream , javaNotif ) ;
215
215
Assert . IsTrue ( didSerialize ) ;
216
216
dataStream . Call ( "close" ) ;
217
217
serializedBytes = byteStream . Call < AndroidJavaObject > ( "toByteArray" ) ;
@@ -232,6 +232,30 @@ AndroidNotificationIntentData SerializeDeserializeNotification(AndroidJavaObject
232
232
}
233
233
}
234
234
235
+ static bool SerializeNotificationCustom ( AndroidJavaClass utilsClass , AndroidJavaObject byteStream , AndroidJavaObject javaNotif )
236
+ {
237
+ using ( var dataStream = new AndroidJavaObject ( "java.io.DataOutputStream" , byteStream ) )
238
+ {
239
+ var didSerialize = utilsClass . CallStatic < bool > ( "serializeNotificationCustom" , javaNotif , dataStream ) ;
240
+ dataStream . Call ( "close" ) ;
241
+ return didSerialize ;
242
+ }
243
+ }
244
+
245
+ static bool SerializeNotificationCustom_v0 ( AndroidJavaClass utilsClass , AndroidJavaObject byteStream , AndroidJavaObject javaNotif )
246
+ {
247
+ using ( var dataStream = new AndroidJavaObject ( "java.io.DataOutputStream" , byteStream ) )
248
+ {
249
+ bool didSerialize ;
250
+ using ( var testUtils = new AndroidJavaClass ( "com.unity.androidnotifications.UnityNotificationTestUtils" ) )
251
+ {
252
+ didSerialize = testUtils . CallStatic < bool > ( "serializeNotificationCustom_v0" , javaNotif , dataStream ) ;
253
+ }
254
+ dataStream . Call ( "close" ) ;
255
+ return didSerialize ;
256
+ }
257
+ }
258
+
235
259
void CheckNotificationsMatch ( AndroidNotification original , AndroidNotification other )
236
260
{
237
261
Assert . AreEqual ( original . Title , other . Title ) ;
@@ -567,7 +591,7 @@ public void CanDeserializeCustomSerializedNotification_v0()
567
591
extras . Call ( "putParcelable" , "binder_item" , bitmap ) ;
568
592
569
593
// Serialize like we did in version 0
570
- deserialized = SerializeDeserializeNotification ( builder , "serializeNotificationCustom_v0" ) ;
594
+ deserialized = SerializeDeserializeNotificationWithFunc ( builder , ( u , s , j ) => SerializeNotificationCustom_v0 ( u , s , j ) ) ;
571
595
}
572
596
573
597
Assert . IsNotNull ( deserialized ) ;
0 commit comments