From 771cd4a9376535f0f675ae8340867b952c66bc71 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 9 Jun 2015 16:56:26 +0300 Subject: add basic stuff for downloading files through SAF --- .../java/org/fox/ttcomics2/CommonActivity.java | 3 +- .../main/java/org/fox/ttcomics2/MainActivity.java | 42 ++++++++++++++++++++++ .../src/main/res/menu/activity_main.xml | 8 ++++- 3 files changed, 51 insertions(+), 2 deletions(-) (limited to 'org.fox.ttcomics') diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java index da2198d..b216ceb 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/CommonActivity.java @@ -41,6 +41,7 @@ public class CommonActivity extends ActionBarActivity { protected final static int REQUEST_SHARE = 1; protected static final int REQUEST_VIEWCOMIC = 2; + protected static final int REQUEST_OPEN_FILE = 3; protected SharedPreferences m_prefs; protected SyncClient m_syncClient = new SyncClient(); @@ -312,7 +313,7 @@ public class CommonActivity extends ActionBarActivity { public int getCachedItemCount(String baseDir) { Cursor c = getReadableDb().query("comics_cache", new String[] { "COUNT(*)" }, "path = ?", - new String[] { baseDir }, null, null, null); + new String[] {baseDir }, null, null, null); c.moveToFirst(); int count = c.getInt(0); diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java index bbe1f70..eeb4d5b 100644 --- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java +++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/MainActivity.java @@ -6,8 +6,10 @@ import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; +import android.support.v4.provider.DocumentFile; import android.support.v7.app.ActionBar; import android.support.v7.widget.Toolbar; import android.util.Log; @@ -136,6 +138,16 @@ public class MainActivity extends CommonActivity implements MaterialTabListener public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { + case R.id.menu_open: + if (true) { + Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); + intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.setType("*/*"); + + startActivityForResult(intent, REQUEST_OPEN_FILE); + + } + return true; case android.R.id.home: if (m_baseDirectory.length() > 0) { finish(); @@ -181,8 +193,38 @@ public class MainActivity extends CommonActivity implements MaterialTabListener } } + protected void downloadRemoteFile(DocumentFile file) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setMessage("File will be cached locally. Data charges may apply.") + .setTitle(file.getName()) + .setCancelable(true) + .setPositiveButton("Continue", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + // launch preferences + + } + }) + .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { + if (requestCode == REQUEST_OPEN_FILE && resultCode == Activity.RESULT_OK) { + Uri docUri = intent.getData(); + DocumentFile file = DocumentFile.fromSingleUri(this, docUri); + + Log.d(TAG, "got file=" + file); + + downloadRemoteFile(file); + + } + if (requestCode == REQUEST_VIEWCOMIC && resultCode == Activity.RESULT_OK) { String fileName = intent.getStringExtra("fileName"); Log.d(TAG, "finished viewing comic: " + fileName); diff --git a/org.fox.ttcomics/src/main/res/menu/activity_main.xml b/org.fox.ttcomics/src/main/res/menu/activity_main.xml index 1143a47..da28c3d 100644 --- a/org.fox.ttcomics/src/main/res/menu/activity_main.xml +++ b/org.fox.ttcomics/src/main/res/menu/activity_main.xml @@ -5,7 +5,13 @@ android:title="@string/menu_rescan" android:icon="@drawable/ic_refresh" app:showAsAction="ifRoom" /> --> - + + +