mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-24 01:54:22 +00:00
Reworked and modernised Android exporter and removed old deprecated Android ant exporter
This commit is contained in:
parent
0117aace01
commit
ec0485388d
15 changed files with 1352 additions and 1830 deletions
|
|
@ -55,6 +55,7 @@ import android.text.InputType;
|
|||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import java.lang.Runnable;
|
||||
import java.lang.reflect.*;
|
||||
import java.util.*;
|
||||
import java.io.*;
|
||||
import java.net.URL;
|
||||
|
|
@ -62,8 +63,6 @@ import java.net.HttpURLConnection;
|
|||
import android.media.AudioManager;
|
||||
import android.media.MediaScannerConnection;
|
||||
import android.media.MediaScannerConnection.MediaScannerConnectionClient;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.Manifest;
|
||||
$$JuceAndroidMidiImports$$ // If you get an error here, you need to re-save your project with the Projucer!
|
||||
|
||||
|
|
@ -120,7 +119,7 @@ public class JuceAppActivity extends Activity
|
|||
|
||||
public boolean isPermissionGranted (int permissionID)
|
||||
{
|
||||
return ContextCompat.checkSelfPermission (this, getAndroidPermissionName (permissionID)) == PackageManager.PERMISSION_GRANTED;
|
||||
return getApplicationContext().checkCallingOrSelfPermission (getAndroidPermissionName (permissionID)) == PackageManager.PERMISSION_GRANTED;
|
||||
}
|
||||
|
||||
private Map<Integer, Long> permissionCallbackPtrMap;
|
||||
|
|
@ -129,11 +128,11 @@ public class JuceAppActivity extends Activity
|
|||
{
|
||||
String permissionName = getAndroidPermissionName (permissionID);
|
||||
|
||||
if (ContextCompat.checkSelfPermission (this, permissionName) != PackageManager.PERMISSION_GRANTED)
|
||||
if (getApplicationContext().checkCallingOrSelfPermission (permissionName) != PackageManager.PERMISSION_GRANTED)
|
||||
{
|
||||
// remember callbackPtr, request permissions, and let onRequestPermissionResult call callback asynchronously
|
||||
permissionCallbackPtrMap.put (permissionID, ptrToCallback);
|
||||
ActivityCompat.requestPermissions (this, new String[]{permissionName}, permissionID);
|
||||
requestPermissionsCompat (new String[]{permissionName}, permissionID);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -299,6 +298,27 @@ public class JuceAppActivity extends Activity
|
|||
catch (java.lang.reflect.InvocationTargetException e) {}
|
||||
}
|
||||
|
||||
void requestPermissionsCompat (String[] permissions, int requestCode)
|
||||
{
|
||||
Method requestPermissionsMethod = null;
|
||||
try
|
||||
{
|
||||
requestPermissionsMethod = this.getClass().getMethod ("requestPermissions",
|
||||
String[].class, int.class);
|
||||
}
|
||||
catch (SecurityException e) { return; }
|
||||
catch (NoSuchMethodException e) { return; }
|
||||
if (requestPermissionsMethod == null) return;
|
||||
|
||||
try
|
||||
{
|
||||
requestPermissionsMethod.invoke (this, permissions, requestCode);
|
||||
}
|
||||
catch (java.lang.IllegalArgumentException e) {}
|
||||
catch (java.lang.IllegalAccessException e) {}
|
||||
catch (java.lang.reflect.InvocationTargetException e) {}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
private native void launchApp (String appFile, String appDataDir);
|
||||
private native void quitApp();
|
||||
|
|
@ -735,6 +755,26 @@ public class JuceAppActivity extends Activity
|
|||
|
||||
public void setViewName (String newName) {}
|
||||
|
||||
public void setSystemUiVisibilityCompat (int visibility)
|
||||
{
|
||||
Method systemUIVisibilityMethod = null;
|
||||
try
|
||||
{
|
||||
systemUIVisibilityMethod = this.getClass().getMethod ("setSystemUiVisibility", int.class);
|
||||
}
|
||||
catch (SecurityException e) { return; }
|
||||
catch (NoSuchMethodException e) { return; }
|
||||
if (systemUIVisibilityMethod == null) return;
|
||||
|
||||
try
|
||||
{
|
||||
systemUIVisibilityMethod.invoke (this, visibility);
|
||||
}
|
||||
catch (java.lang.IllegalArgumentException e) {}
|
||||
catch (java.lang.IllegalAccessException e) {}
|
||||
catch (java.lang.reflect.InvocationTargetException e) {}
|
||||
}
|
||||
|
||||
public boolean isVisible() { return getVisibility() == VISIBLE; }
|
||||
public void setVisible (boolean b) { setVisibility (b ? VISIBLE : INVISIBLE); }
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue