AndroidByteArrayCallback.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * Copyright (c) 2021 Vuplex Inc. All rights reserved.
  3. *
  4. * Licensed under the Vuplex Commercial Software Library License, you may
  5. * not use this file except in compliance with the License. You may obtain
  6. * a copy of the License at
  7. *
  8. * https://vuplex.com/commercial-library-license
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #if UNITY_ANDROID && !UNITY_EDITOR
  17. using System;
  18. using UnityEngine;
  19. namespace Vuplex.WebView {
  20. class AndroidByteArrayCallback : AndroidJavaProxy {
  21. public AndroidByteArrayCallback(Action<byte[]> callback) : base("com.vuplex.webview.ByteArrayCallback") {
  22. _callback = callback;
  23. }
  24. public void callback(AndroidJavaObject result) {
  25. AndroidJavaObject byteArrayObject = result.Get<AndroidJavaObject>("value");
  26. var bytes = Utils.ConvertAndroidByteArray(byteArrayObject);
  27. byteArrayObject.Dispose();
  28. _callback(bytes);
  29. // Setting the callback to null is necessary in order to avoid a memory leak.
  30. _callback = null;
  31. }
  32. Action<byte[]> _callback;
  33. }
  34. }
  35. #endif // UNITY_ANDROID && !UNITY_EDITOR