The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

139 lines
3.5KB

  1. package com.juce;
  2. import android.content.ContentProvider;
  3. import android.content.ContentValues;
  4. import android.content.res.AssetFileDescriptor;
  5. import android.content.res.Resources;
  6. import android.database.Cursor;
  7. import android.database.MatrixCursor;
  8. import android.net.Uri;
  9. import android.os.FileObserver;
  10. import android.os.ParcelFileDescriptor;
  11. import java.lang.String;
  12. public final class SharingContentProvider extends ContentProvider
  13. {
  14. private Object lock = new Object();
  15. private native void contentSharerFileObserverEvent (long host, int event, String path);
  16. private native Cursor contentSharerQuery (Uri uri, String[] projection, String selection,
  17. String[] selectionArgs, String sortOrder);
  18. private native void contentSharerCursorClosed (long host);
  19. private native AssetFileDescriptor contentSharerOpenFile (Uri uri, String mode);
  20. private native String[] contentSharerGetStreamTypes (Uri uri, String mimeTypeFilter);
  21. public final class ProviderFileObserver extends FileObserver
  22. {
  23. public ProviderFileObserver (long hostToUse, String path, int mask)
  24. {
  25. super (path, mask);
  26. host = hostToUse;
  27. }
  28. public void onEvent (int event, String path)
  29. {
  30. contentSharerFileObserverEvent (host, event, path);
  31. }
  32. private long host;
  33. }
  34. public final class ProviderCursor extends MatrixCursor
  35. {
  36. ProviderCursor (long hostToUse, String[] columnNames)
  37. {
  38. super (columnNames);
  39. host = hostToUse;
  40. }
  41. @Override
  42. public void close()
  43. {
  44. super.close();
  45. contentSharerCursorClosed (host);
  46. }
  47. private long host;
  48. }
  49. @Override
  50. public boolean onCreate()
  51. {
  52. return true;
  53. }
  54. @Override
  55. public Cursor query (Uri url, String[] projection, String selection,
  56. String[] selectionArgs, String sortOrder)
  57. {
  58. synchronized (lock)
  59. {
  60. return contentSharerQuery (url, projection, selection, selectionArgs, sortOrder);
  61. }
  62. }
  63. @Override
  64. public Uri insert (Uri uri, ContentValues values)
  65. {
  66. return null;
  67. }
  68. @Override
  69. public int update (Uri uri, ContentValues values, String selection,
  70. String[] selectionArgs)
  71. {
  72. return 0;
  73. }
  74. @Override
  75. public int delete (Uri uri, String selection, String[] selectionArgs)
  76. {
  77. return 0;
  78. }
  79. @Override
  80. public String getType (Uri uri)
  81. {
  82. return null;
  83. }
  84. @Override
  85. public AssetFileDescriptor openAssetFile (Uri uri, String mode)
  86. {
  87. synchronized (lock)
  88. {
  89. return contentSharerOpenFile (uri, mode);
  90. }
  91. }
  92. @Override
  93. public ParcelFileDescriptor openFile (Uri uri, String mode)
  94. {
  95. synchronized (lock)
  96. {
  97. AssetFileDescriptor result = contentSharerOpenFile (uri, mode);
  98. if (result != null)
  99. return result.getParcelFileDescriptor();
  100. return null;
  101. }
  102. }
  103. $$ContentProviderApi11
  104. @Override
  105. public String[] getStreamTypes (Uri uri, String mimeTypeFilter)
  106. {
  107. synchronized (lock)
  108. {
  109. return contentSharerGetStreamTypes (uri, mimeTypeFilter);
  110. }
  111. }
  112. ContentProviderApi11$$
  113. }