@ -6,6 +6,7 @@ import android.util.Log;
import android.os.Bundle ;
import android.os.ParcelFileDescriptor ;
import android.net.Uri ;
import android.app.Activity ;
import org.qtproject.qt5.android.bindings.QtActivity ;
@ -14,16 +15,13 @@ class FileClass
public static native void openUri ( String uri ) ;
}
public class OpenFileActivity extends QtActivity {
@Override
public void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState ) ;
final Intent bundleIntent = getIntent ( ) ;
if ( bundleIntent = = null )
public class OpenFileActivity extends QtActivity
{
private void displayUri ( Uri uri )
{
if ( uri = = null )
return ;
final String action = bundleIntent . getAction ( ) ;
Uri uri = bundleIntent . getData ( ) ;
if ( ! uri . getScheme ( ) . equals ( "file" ) ) {
try {
ContentResolver resolver = getBaseContext ( ) . getContentResolver ( ) ;
@ -33,11 +31,49 @@ public class OpenFileActivity extends QtActivity {
e . printStackTrace ( ) ;
//TODO: emit warning that couldn't be opened
Log . v ( "Okular" , "failed to open" ) ;
Log . e ( "Okular" , "failed to open" ) ;
return ;
}
}
Log . e ( "Okular" , "opening url: " + uri . toString ( ) ) ;
FileClass . openUri ( uri . toString ( ) ) ;
}
@Override
public void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState ) ;
final Intent bundleIntent = getIntent ( ) ;
if ( bundleIntent = = null )
return ;
final String action = bundleIntent . getAction ( ) ;
Log . v ( "Okular" , "Starting action: " + action ) ;
if ( action = = "android.intent.action.VIEW" ) {
displayUri ( bundleIntent . getData ( ) ) ;
}
}
private static int OpenDocumentRequest = 42 ;
public static void openFile ( Activity context , String title , String mimes )
{
Intent intent = new Intent ( ) ;
intent . setAction ( Intent . ACTION_GET_CONTENT ) ;
intent . setType ( "application/pdf" ) ;
Log . v ( "Okular" , "opening: " + mimes ) ;
intent . putExtra ( Intent . EXTRA_MIME_TYPES , mimes . split ( ";" ) ) ;
context . startActivityForResult ( intent , OpenDocumentRequest ) ;
}
@Override
public void onActivityResult ( int requestCode , int resultCode , Intent intent ) {
Log . v ( "Okular" , "Activity Result: " + String . valueOf ( requestCode ) + " with code: " + String . valueOf ( resultCode ) ) ;
if ( requestCode = = OpenDocumentRequest ) {
Uri uri = intent . getData ( ) ;
Log . v ( "Okular" , "Opening document: " + uri . toString ( ) ) ;
displayUri ( uri ) ;
}
}
}