diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h index 65ea1936d5..8defbee0c9 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h @@ -887,7 +887,7 @@ private: if (m->getID() == moduleID) { auto javaFolder = m->getFolder().getChildFile ("native").getChildFile ("javaopt"); - addModuleJavaFolderToSourceSet (javaSourceSets, javaFolder.getChildFile("app")); + addModuleJavaFolderToSourceSet (javaSourceSets, javaFolder.getChildFile ("app")); return; } } @@ -902,13 +902,14 @@ private: { auto javaFolder = module->getFolder().getChildFile ("native").getChildFile ("javacore"); - addModuleJavaFolderToSourceSet (javaSourceSets, javaFolder.getChildFile("init")); + addModuleJavaFolderToSourceSet (javaSourceSets, javaFolder.getChildFile ("init")); if (! isLibrary()) - addModuleJavaFolderToSourceSet (javaSourceSets, javaFolder.getChildFile("app")); + addModuleJavaFolderToSourceSet (javaSourceSets, javaFolder.getChildFile ("app")); } - if (project.getEnabledModules().isModuleEnabled ("juce_gui_basics") && getActivityClassString() == getDefaultActivityClass()) + if (project.getEnabledModules().isModuleEnabled ("juce_gui_basics") + && (getActivityClassString() == getDefaultActivityClass() || isContentSharingEnabled())) addOptJavaFolderToSourceSetsForModule (javaSourceSets, modules, "juce_gui_basics"); if (areRemoteNotificationsEnabled()) @@ -1225,6 +1226,8 @@ private: bool isInAppBillingEnabled() const { return androidInAppBillingPermission.get(); } + bool isContentSharingEnabled() const { return androidEnableContentSharing.get(); } + String getJNIActivityClassName() const { return getActivityClassString().replaceCharacter ('.', '/'); @@ -1777,14 +1780,14 @@ private: void createProviderElement (XmlElement& application) const { - if (androidEnableContentSharing.get()) + if (isContentSharingEnabled()) { auto* provider = application.createNewChildElement ("provider"); provider->setAttribute ("android:name", "com.roli.juce.JuceSharingContentProvider"); provider->setAttribute ("android:authorities", project.getBundleIdentifierString().toLowerCase() + ".sharingcontentprovider"); provider->setAttribute ("android:grantUriPermissions", "true"); - provider->setAttribute ("android:exported", "false"); + provider->setAttribute ("android:exported", "true"); } } diff --git a/modules/juce_core/native/java/README.txt b/modules/juce_core/native/java/README.txt index d7cf93cc91..eb1381d308 100644 --- a/modules/juce_core/native/java/README.txt +++ b/modules/juce_core/native/java/README.txt @@ -23,8 +23,7 @@ the folder created in step 2 so you can debug your Java code this way. build/intermediates/javac/release_Release/compileRelease_ReleaseJavaWithJavac/classes. Inside of that folder, you will find all your Java byte-code compiled classes. Remove any classes that you are not interested in (typically you'll find -Java.class, JuceApp.class and JuceSharingContentProvider.class which you will -probably want to remove). +Java.class and JuceApp.class which you will probably want to remove). 6. Inside of build/intermediates/javac/release_Release/compileRelease_ReleaseJavaWithJavac/classes execute the following dx command: diff --git a/modules/juce_gui_basics/native/java/app/com/roli/juce/JuceContentProviderCursor.java b/modules/juce_gui_basics/native/java/app/com/roli/juce/JuceContentProviderCursor.java new file mode 100644 index 0000000000..11bd5142f5 --- /dev/null +++ b/modules/juce_gui_basics/native/java/app/com/roli/juce/JuceContentProviderCursor.java @@ -0,0 +1,28 @@ +package com.roli.juce; + +import android.database.Cursor; +import android.database.MatrixCursor; + +import java.lang.String; + +public final class JuceContentProviderCursor extends MatrixCursor +{ + public JuceContentProviderCursor (long hostToUse, String[] columnNames) + { + super (columnNames); + + host = hostToUse; + } + + @Override + public void close () + { + super.close (); + + contentSharerCursorClosed (host); + } + + private native void contentSharerCursorClosed (long host); + + private long host; +} diff --git a/modules/juce_gui_basics/native/java/app/com/roli/juce/JuceContentProviderFileObserver.java b/modules/juce_gui_basics/native/java/app/com/roli/juce/JuceContentProviderFileObserver.java new file mode 100644 index 0000000000..7628fcb9d9 --- /dev/null +++ b/modules/juce_gui_basics/native/java/app/com/roli/juce/JuceContentProviderFileObserver.java @@ -0,0 +1,24 @@ +package com.roli.juce; + +import android.os.FileObserver; + +import java.lang.String; + +public final class JuceContentProviderFileObserver extends FileObserver +{ + public JuceContentProviderFileObserver (long hostToUse, String path, int mask) + { + super (path, mask); + + host = hostToUse; + } + + public void onEvent (int event, String path) + { + contentSharerFileObserverEvent (host, event, path); + } + + private long host; + + private native void contentSharerFileObserverEvent (long host, int event, String path); +} diff --git a/modules/juce_gui_basics/native/javaopt/app/com/roli/juce/JuceActivity.java b/modules/juce_gui_basics/native/javaopt/app/com/roli/juce/JuceActivity.java index c8db5f74aa..e94f70ffee 100644 --- a/modules/juce_gui_basics/native/javaopt/app/com/roli/juce/JuceActivity.java +++ b/modules/juce_gui_basics/native/javaopt/app/com/roli/juce/JuceActivity.java @@ -1,20 +1,20 @@ -package com.roli.juce; - -import android.app.Activity; -import android.content.Intent; - -//============================================================================== -public class JuceActivity extends Activity -{ - //============================================================================== - private native void appNewIntent (Intent intent); - - @Override - protected void onNewIntent (Intent intent) - { - super.onNewIntent(intent); - setIntent(intent); - - appNewIntent (intent); - } -} \ No newline at end of file +package com.roli.juce; + +import android.app.Activity; +import android.content.Intent; + +//============================================================================== +public class JuceActivity extends Activity +{ + //============================================================================== + private native void appNewIntent (Intent intent); + + @Override + protected void onNewIntent (Intent intent) + { + super.onNewIntent(intent); + setIntent(intent); + + appNewIntent (intent); + } +} diff --git a/modules/juce_gui_basics/native/javacore/app/com/roli/juce/JuceSharingContentProvider.java b/modules/juce_gui_basics/native/javaopt/app/com/roli/juce/JuceSharingContentProvider.java similarity index 63% rename from modules/juce_gui_basics/native/javacore/app/com/roli/juce/JuceSharingContentProvider.java rename to modules/juce_gui_basics/native/javaopt/app/com/roli/juce/JuceSharingContentProvider.java index bcf0718aa9..53df963445 100644 --- a/modules/juce_gui_basics/native/javacore/app/com/roli/juce/JuceSharingContentProvider.java +++ b/modules/juce_gui_basics/native/javaopt/app/com/roli/juce/JuceSharingContentProvider.java @@ -16,52 +16,10 @@ public final class JuceSharingContentProvider extends ContentProvider { private Object lock = new Object (); - private native Cursor contentSharerQuery (Uri uri, String[] projection, String selection, - String[] selectionArgs, String sortOrder); + private native Cursor contentSharerQuery (Uri uri, String[] projection); private native AssetFileDescriptor contentSharerOpenFile (Uri uri, String mode); private native String[] contentSharerGetStreamTypes (Uri uri, String mimeTypeFilter); - public final class ProviderFileObserver extends FileObserver - { - public ProviderFileObserver (long hostToUse, String path, int mask) - { - super (path, mask); - - host = hostToUse; - } - - public void onEvent (int event, String path) - { - contentSharerFileObserverEvent (host, event, path); - } - - private long host; - - private native void contentSharerFileObserverEvent (long host, int event, String path); - } - - public final class ProviderCursor extends MatrixCursor - { - ProviderCursor (long hostToUse, String[] columnNames) - { - super (columnNames); - - host = hostToUse; - } - - @Override - public void close () - { - super.close (); - - contentSharerCursorClosed (host); - } - - private native void contentSharerCursorClosed (long host); - - private long host; - } - @Override public boolean onCreate () { @@ -74,7 +32,7 @@ public final class JuceSharingContentProvider extends ContentProvider { synchronized (lock) { - return contentSharerQuery (url, projection, selection, selectionArgs, sortOrder); + return contentSharerQuery (url, projection); } } diff --git a/modules/juce_gui_basics/native/juce_android_ContentSharer.cpp b/modules/juce_gui_basics/native/juce_android_ContentSharer.cpp index 6773956c44..2e9bac8e67 100644 --- a/modules/juce_gui_basics/native/juce_android_ContentSharer.cpp +++ b/modules/juce_gui_basics/native/juce_android_ContentSharer.cpp @@ -27,60 +27,30 @@ namespace juce { //============================================================================== -// This byte-code is generated from native/javacore/app/com/roli/juce/JuceSharingContentProvider.java with min sdk version 16 +// This byte-code is generated from native/java/app/com/roli/juce/JuceContentProviderCursor.java with min sdk version 16 // See juce_core/native/java/README.txt on how to generate this byte-code. -static const uint8 javaJuceSharingContentProvider[] = -{31,139,8,8,96,160,247,93,0,3,74,97,118,97,68,101,120,66,121,116,101,67,111,100,101,46,100,101,120,0,149,151,93,108,20,85,20, -199,207,157,153,157,253,236,178,91,170,20,145,178,229,83,80,216,242,165,96,5,11,45,72,183,91,139,161,52,218,190,56,221,157,148, -129,221,153,101,102,118,133,23,2,106,162,209,196,24,125,64,19,73,48,33,106,140,15,36,26,227,131,49,152,24,163,241,65,77,148,248, -160,209,152,152,24,193,68,227,131,6,37,241,127,63,118,219,173,197,232,194,111,238,185,231,156,123,238,185,231,222,153,206, -148,237,19,137,190,173,219,105,239,208,216,231,67,47,106,177,200,154,39,135,207,172,189,226,63,113,230,173,189,99,175,63,244, -123,185,131,168,70,68,39,38,182,117,146,250,157,79,17,141,146,212,223,4,46,48,34,110,252,3,109,4,237,103,26,209,82,222,71,171, -163,189,132,203,80,156,40,103,16,125,111,18,253,4,126,6,191,129,107,224,58,232,137,18,245,130,53,96,3,216,2,14,131,6,120,25,188, -11,190,1,191,128,100,140,104,19,112,192,235,224,50,184,6,110,193,28,187,192,3,192,6,117,240,52,120,6,60,15,206,130,115,224, -101,240,10,120,3,188,9,222,6,159,128,175,192,183,224,42,136,38,136,214,129,33,48,5,60,240,8,56,5,206,130,87,193,69,240,54,120, -31,124,12,62,5,95,130,31,192,21,240,43,248,19,24,73,162,197,96,57,88,5,242,224,78,176,27,12,131,7,65,9,56,224,56,56,9,78,129, -199,192,83,0,101,37,148,142,16,138,208,37,148,159,176,45,148,6,139,64,6,100,73,238,193,98,208,165,246,229,102,176,4,116,147, -220,143,91,193,106,176,134,228,190,240,223,195,168,189,166,228,10,228,152,154,235,4,100,148,65,236,231,105,165,71,233,233,89,200, -248,47,108,252,23,83,50,247,143,170,60,94,48,229,92,205,3,179,92,201,231,249,62,43,249,53,200,43,148,124,17,242,42,37,191,11, -121,165,146,63,130,220,171,228,47,32,231,148,252,181,41,215,177,120,78,14,93,42,135,4,170,181,85,212,42,69,247,137,122,201,126, -82,245,83,168,214,157,196,215,28,19,99,13,172,176,143,248,154,22,137,190,9,253,58,17,51,45,250,9,81,105,222,74,125,2,255,214, -171,120,36,218,36,109,16,109,156,238,17,241,101,220,20,42,113,187,104,53,186,67,180,58,109,20,45,163,77,202,190,89,180,81,218, -34,90,131,182,171,252,250,213,184,93,162,53,105,183,26,191,71,237,253,1,177,231,49,149,151,172,185,169,106,193,247,171,15,157, -109,50,61,113,94,178,170,70,77,251,0,236,35,202,158,82,118,109,142,253,32,236,211,202,206,245,157,144,187,83,179,114,111,74, -158,201,13,41,238,31,17,250,231,146,114,142,41,198,168,150,211,104,128,38,53,126,66,117,120,242,179,118,46,41,207,137,151,209, -225,127,8,91,89,235,139,146,198,210,34,119,83,248,92,104,197,208,97,53,104,32,50,169,105,136,17,129,149,231,117,49,41,215,121, -8,241,107,227,113,210,54,167,17,139,137,92,222,73,202,181,214,50,60,183,149,168,79,45,195,207,253,84,198,16,59,25,17,167,154, -232,189,164,90,7,246,155,199,229,249,125,152,148,117,24,239,53,104,57,171,245,165,104,139,145,162,30,150,197,222,247,176,117, -34,183,152,152,39,78,186,170,212,103,173,56,89,68,150,119,211,229,57,58,77,100,133,103,86,83,151,153,157,239,251,121,243,117, -252,203,124,166,26,115,37,41,239,233,241,45,24,163,241,49,131,145,20,237,128,159,155,225,51,165,88,143,150,101,157,184,222,118, -189,3,215,117,76,222,227,89,17,167,19,126,188,202,140,174,183,205,221,48,121,5,111,60,119,68,172,33,158,154,173,89,206,160,182, -223,29,243,250,59,230,245,121,55,138,168,89,220,161,186,144,179,226,94,213,148,28,17,109,151,208,102,91,122,93,84,47,218,58, -151,89,209,231,232,170,205,170,216,252,126,202,42,61,151,155,177,179,202,175,139,204,123,28,215,9,119,19,27,38,99,184,88,44,82, -132,95,139,196,10,180,162,80,47,217,135,142,88,190,227,206,12,122,110,104,187,225,65,223,107,56,101,219,223,116,212,106,88, -196,138,164,193,85,231,254,102,81,252,168,183,104,185,101,223,115,202,249,146,28,146,159,55,180,159,86,220,200,101,194,170,212, -237,160,159,214,255,195,193,183,131,252,158,32,176,195,253,78,197,30,178,131,146,239,212,66,15,177,150,182,92,203,86,104,77, -91,129,157,31,172,251,129,215,54,77,203,52,106,133,190,115,162,233,144,109,57,184,118,152,63,236,59,115,195,121,65,158,207,53, -54,29,216,126,131,103,221,59,215,116,208,242,75,118,101,126,50,59,139,37,175,154,247,189,138,147,63,138,210,229,111,92,191,213, -77,161,153,203,189,255,127,104,123,122,27,254,115,128,126,90,89,44,91,149,134,115,44,111,185,174,23,90,161,227,185,249,125,110, -169,226,5,220,187,98,5,216,131,158,5,124,134,93,23,25,75,123,239,2,246,81,187,58,173,28,248,54,118,22,249,41,201,87,44,119, -38,63,54,125,212,46,133,237,186,67,33,207,174,159,210,237,197,160,174,133,86,72,108,130,244,137,97,156,184,137,2,25,19,5,33,225, -236,77,20,113,112,39,138,5,28,92,126,29,38,54,73,139,167,22,152,37,105,149,74,118,16,236,175,88,51,1,69,248,98,109,74,150, -188,74,189,234,222,111,85,237,128,150,170,195,198,171,214,204,101,144,187,149,169,167,205,52,55,173,125,13,168,105,89,155,253, -62,59,196,164,182,85,29,63,89,67,220,155,218,140,99,53,219,229,1,168,179,77,253,64,221,246,79,146,89,182,43,118,104,83,196,22, -97,151,204,216,225,66,39,141,210,51,237,83,68,209,231,18,25,71,188,32,164,56,191,142,123,135,177,66,211,113,145,104,72,70,197, -43,29,35,163,106,5,199,40,93,117,170,54,119,71,212,16,149,53,170,94,25,67,93,84,129,98,158,59,136,184,200,33,234,185,114,113, -29,30,82,110,221,124,240,104,174,192,168,89,225,17,74,212,124,143,239,45,14,0,69,142,203,101,224,118,173,87,144,71,128,229,72, -75,71,75,220,227,163,254,113,212,54,28,243,203,124,246,240,136,19,144,201,175,171,251,200,172,215,202,124,118,189,238,59,252, -82,161,72,131,63,21,200,20,77,64,155,244,3,219,215,71,211,27,119,109,164,187,40,154,222,53,73,203,140,3,219,7,118,72,213,42,173, -111,32,154,158,196,147,24,38,178,244,194,208,190,104,154,30,99,90,97,39,20,14,205,176,2,250,227,90,97,20,205,16,156,168,170, -21,238,22,166,134,20,138,58,254,116,108,156,26,193,147,119,36,50,178,103,104,223,126,97,157,50,10,163,34,150,214,193,70,186,83, -90,90,91,107,100,239,94,114,75,83,88,166,45,98,35,183,106,221,137,238,36,105,26,195,159,238,103,115,145,211,167,141,75,49,237, -81,141,76,246,93,140,171,53,174,142,157,57,109,60,30,103,80,39,216,133,56,49,35,110,104,73,232,46,9,93,147,69,236,199,56,99,127, -129,139,9,198,62,0,95,129,171,224,124,146,177,31,193,75,41,249,110,75,234,89,222,108,155,223,30,252,57,223,252,254,208,105, -246,27,196,160,217,239,16,222,54,191,69,76,154,253,30,209,51,82,230,127,207,88,78,190,75,15,64,54,115,82,207,223,161,88,70,190, -103,139,119,228,156,156,151,127,191,232,202,159,191,243,24,57,57,31,127,47,34,53,86,188,123,101,100,174,252,91,233,111,138,244, -241,33,100,13,0,0,0,0}; +static const uint8 javaJuceContentProviderCursor[] = +{ 31,139,8,8,138,122,94,94,0,3,74,117,99,101,67,111,110,116,101,110,116,80,114,111,118,105,100,101,114,67,117,114,115,111,114,46,100,101,120,0,117,147,177,111,211,64,20,198,223,157,157,148,150,52,184,144,1,6,32,160,46,29,138,43,209,178,132,34,80,144,42, +89,6,85,10,164,82,59,93,109,211,184,77,124,145,237,68,17,98,0,4,91,6,6,38,38,64,133,153,255,0,33,133,255,131,137,149,133,177,3,223,229,206,37,18,194,210,207,247,222,229,189,239,157,206,95,194,104,180,176,118,115,131,142,7,95,175,127,216,250,229,236,28, +61,169,85,222,124,219,126,234,140,155,159,157,142,184,107,17,245,137,104,212,94,63,79,230,121,207,137,28,210,251,37,240,5,216,96,2,24,248,109,246,79,76,190,140,215,9,184,15,222,129,143,224,19,248,14,126,130,37,232,213,192,69,112,25,92,3,183,192,38,240, +64,4,142,192,144,107,61,203,204,83,51,230,205,106,153,179,149,77,252,10,133,115,38,30,35,62,99,226,183,136,33,67,139,211,179,233,46,165,185,64,106,159,79,115,126,154,51,170,152,124,201,212,21,191,171,103,108,130,18,78,163,194,103,92,207,239,215,137,238, +209,46,238,171,138,9,122,202,107,174,207,42,29,134,218,22,42,250,107,232,98,213,127,116,237,105,110,83,249,118,156,196,249,29,98,30,93,241,6,65,212,148,73,30,37,249,118,42,135,113,24,165,205,65,154,201,244,198,161,24,10,186,234,139,36,76,101,28,186,161, +200,197,190,200,34,247,129,200,211,120,164,139,26,180,226,7,178,231,166,178,27,187,135,144,114,255,171,215,32,214,38,222,246,200,106,123,62,2,159,46,236,249,106,134,219,21,201,129,219,130,104,114,208,160,82,208,149,89,68,103,3,217,29,244,146,135,162, +23,101,116,41,208,130,173,142,72,11,185,166,42,11,201,238,200,44,167,121,245,126,36,31,163,209,206,59,113,70,21,126,174,50,87,221,92,165,26,97,217,197,69,112,92,14,127,241,220,158,112,254,146,147,197,126,240,69,115,55,108,102,45,188,199,103,252,87,120, +98,98,214,89,31,22,94,44,207,248,145,213,117,191,242,36,115,254,122,134,215,181,190,242,169,101,106,212,119,165,186,238,157,126,115,71,199,234,127,240,7,124,122,243,207,64,3,0,0,0,0 }; + +// This byte-code is generated from native/java/app/com/roli/juce/JuceContentProviderFileObserver.java with min sdk version 16 +// See juce_core/native/java/README.txt on how to generate this byte-code. +static const uint8 javaJuceContentProviderFileObserver[] = +{ 31,139,8,8,123,122,94,94,0,3,74,117,99,101,67,111,110,116,101,110,116,80,114,111,118,105,100,101,114,70,105,108,101,79,98,115,101,114,118,101,114,46,100,101,120,0,133,147,205,107,19,65,24,198,223,249,72,98,91,93,210,84,4,17,36,130,130,32,186,145,218, +131,196,10,197,47,18,22,44,166,6,41,120,216,38,75,119,107,186,19,118,215,144,131,5,45,61,148,158,188,244,164,71,65,241,212,163,40,138,136,224,213,91,253,3,60,250,7,120,211,103,118,166,116,61,25,248,205,251,206,251,206,60,59,59,251,164,31,140,39,27,179, +115,116,110,243,212,238,147,208,189,112,245,227,236,183,157,19,103,216,220,215,223,91,251,175,247,249,88,16,13,137,104,220,189,82,35,251,251,193,137,142,147,169,151,193,103,32,117,29,48,112,132,153,121,149,153,121,3,195,121,236,89,68,220,3,239,192,7, +240,9,252,4,127,64,3,253,155,224,14,240,192,61,240,0,60,4,27,96,11,236,128,93,240,2,188,2,111,185,209,231,246,249,37,123,158,138,62,131,157,111,99,193,132,205,159,35,159,180,249,75,228,83,54,127,131,92,64,201,201,181,68,254,142,34,87,53,245,163,121,36, +154,46,68,110,239,66,216,248,197,22,202,80,212,181,61,110,206,50,108,16,45,148,150,113,119,78,222,209,207,123,111,123,157,58,250,75,156,248,101,199,234,201,124,47,179,239,99,114,153,119,14,222,177,124,45,138,163,236,58,177,22,177,54,157,109,63,238,5, +55,84,156,5,113,182,152,168,81,212,15,146,219,209,32,184,187,146,6,201,40,72,46,173,249,35,159,78,122,126,220,79,84,212,119,85,234,22,219,77,114,189,158,90,119,19,53,136,220,53,72,185,255,209,107,82,205,211,146,238,192,143,87,221,78,150,68,241,106,147, +88,151,68,183,229,145,236,182,205,232,181,80,192,112,186,103,164,58,161,159,252,43,116,107,132,50,149,130,60,200,80,165,25,77,232,113,73,221,79,3,146,235,126,250,136,42,42,54,203,228,208,207,66,146,89,24,165,52,37,170,51,211,21,103,254,34,213,184,51, +83,113,150,113,69,156,17,103,207,158,202,239,156,109,226,251,177,95,184,172,99,246,187,176,66,60,240,44,47,248,86,20,188,43,11,254,45,209,161,135,203,116,232,99,86,55,251,181,151,89,213,172,209,30,227,117,163,175,253,45,236,26,237,1,170,155,189,185,63, +170,38,215,255,159,191,29,121,169,41,120,3,0,0,0,0 }; //============================================================================== #define JNI_CLASS_MEMBERS(METHOD, STATICMETHOD, FIELD, STATICFIELD, CALLBACK) \ @@ -127,7 +97,6 @@ public: : owner (ownerToUse), cursor (GlobalRef (LocalRef (env->NewObject (JuceContentProviderCursor, JuceContentProviderCursor.constructor, - contentProvider.get(), reinterpret_cast (this), resultColumns.get())))) { @@ -156,13 +125,13 @@ private: //============================================================================== #define JNI_CLASS_MEMBERS(METHOD, STATICMETHOD, FIELD, STATICFIELD, CALLBACK) \ METHOD (addRow, "addRow", "([Ljava/lang/Object;)V") \ - METHOD (constructor, "", "(Lcom/roli/juce/JuceSharingContentProvider;J[Ljava/lang/String;)V") \ + METHOD (constructor, "", "(J[Ljava/lang/String;)V") \ CALLBACK (contentSharerCursorClosed, "contentSharerCursorClosed", "(J)V") \ - DECLARE_JNI_CLASS (JuceContentProviderCursor, "com/roli/juce/JuceSharingContentProvider$ProviderCursor") + DECLARE_JNI_CLASS_WITH_BYTECODE (JuceContentProviderCursor, "com/roli/juce/JuceContentProviderCursor", 16, javaJuceContentProviderCursor, sizeof (javaJuceContentProviderCursor)) #undef JNI_CLASS_MEMBERS - static void JNICALL contentSharerCursorClosed(JNIEnv*, jobject, jlong host) + static void JNICALL contentSharerCursorClosed (JNIEnv*, jobject, jlong host) { if (auto* myself = reinterpret_cast (host)) myself->cursorClosed(); @@ -190,7 +159,6 @@ public: filepath (filepathToUse), fileObserver (GlobalRef (LocalRef (env->NewObject (JuceContentProviderFileObserver, JuceContentProviderFileObserver.constructor, - contentProvider.get(), reinterpret_cast (this), javaString (filepath).get(), open | access | closeWrite | closeNoWrite)))) @@ -244,12 +212,12 @@ private: //============================================================================== #define JNI_CLASS_MEMBERS(METHOD, STATICMETHOD, FIELD, STATICFIELD, CALLBACK) \ - METHOD (constructor, "", "(Lcom/roli/juce/JuceSharingContentProvider;JLjava/lang/String;I)V") \ + METHOD (constructor, "", "(JLjava/lang/String;I)V") \ METHOD (startWatching, "startWatching", "()V") \ METHOD (stopWatching, "stopWatching", "()V") \ CALLBACK (contentSharerFileObserverEvent, "contentSharerFileObserverEvent", "(JILjava/lang/String;)V") \ - DECLARE_JNI_CLASS (JuceContentProviderFileObserver, "com/roli/juce/JuceSharingContentProvider$ProviderFileObserver") + DECLARE_JNI_CLASS_WITH_BYTECODE (JuceContentProviderFileObserver, "com/roli/juce/JuceContentProviderFileObserver", 16, javaJuceContentProviderFileObserver, sizeof (javaJuceContentProviderFileObserver)) #undef JNI_CLASS_MEMBERS static void JNICALL contentSharerFileObserverEvent (JNIEnv*, jobject /*fileObserver*/, jlong host, int event, jstring path) @@ -550,11 +518,8 @@ public: } jobject query (const LocalRef& contentProvider, const LocalRef& uri, - const LocalRef& projection, const LocalRef& selection, - const LocalRef& selectionArgs, const LocalRef& sortOrder) + const LocalRef& projection) { - ignoreUnused (selection, selectionArgs, sortOrder); - StringArray requestedColumns = javaStringArrayToJuce (projection); StringArray supportedColumns = getSupportedColumns(); @@ -829,26 +794,19 @@ private: //============================================================================== #define JNI_CLASS_MEMBERS(METHOD, STATICMETHOD, FIELD, STATICFIELD, CALLBACK) \ - CALLBACK (contentSharerQuery, "contentSharerQuery", "(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;") \ + CALLBACK (contentSharerQuery, "contentSharerQuery", "(Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;") \ CALLBACK (contentSharerOpenFile, "contentSharerOpenFile", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;") \ CALLBACK (contentSharerGetStreamTypes, "contentSharerGetStreamTypes", "(Landroid/net/Uri;Ljava/lang/String;)[Ljava/lang/String;") \ - - DECLARE_JNI_CLASS_WITH_BYTECODE (JuceSharingContentProvider, "com/roli/juce/JuceSharingContentProvider", 16, javaJuceSharingContentProvider, sizeof (javaJuceSharingContentProvider)) + DECLARE_JNI_CLASS_WITH_MIN_SDK (JuceSharingContentProvider, "com/roli/juce/JuceSharingContentProvider", 16) #undef JNI_CLASS_MEMBERS - static jobject JNICALL contentSharerQuery (JNIEnv*, jobject contentProvider, jobject uri, jobjectArray projection, - jobject selection, jobjectArray selectionArgs, jobject sortOrder) + static jobject JNICALL contentSharerQuery (JNIEnv*, jobject contentProvider, jobject uri, jobjectArray projection) { if (auto *pimpl = (ContentSharer::ContentSharerNativeImpl *) ContentSharer::getInstance ()->pimpl.get ()) return pimpl->query (LocalRef (static_cast (contentProvider)), LocalRef (static_cast (uri)), - LocalRef ( - static_cast (projection)), - LocalRef (static_cast (selection)), - LocalRef ( - static_cast (selectionArgs)), - LocalRef (static_cast (sortOrder))); + LocalRef (static_cast (projection))); return nullptr; }