Fix file explore

pull/467/head
Alex Baker 9 years ago
parent 61757e5d80
commit 691c90404c

@ -51,6 +51,7 @@ android {
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
incremental false
} }
buildTypes { buildTypes {
@ -120,7 +121,7 @@ dependencies {
compile 'com.github.rey5137:material:1.2.4' compile 'com.github.rey5137:material:1.2.4'
compile 'com.android.support:multidex:1.0.1' compile 'com.android.support:multidex:1.0.1'
compile 'com.nononsenseapps:filepicker:3.1.0' compile 'com.nononsenseapps:filepicker:4.0.0-beta1'
compile "com.android.support:design:${SUPPORT_VERSION}" compile "com.android.support:design:${SUPPORT_VERSION}"
compile "com.android.support:support-annotations:${SUPPORT_VERSION}" compile "com.android.support:support-annotations:${SUPPORT_VERSION}"
compile 'com.jakewharton.timber:timber:4.3.1' compile 'com.jakewharton.timber:timber:4.3.1'

@ -278,7 +278,7 @@
<provider <provider
android:name="android.support.v4.content.FileProvider" android:name="android.support.v4.content.FileProvider"
android:authorities="org.tasks.files" android:authorities="${applicationId}.provider"
android:exported="false" android:exported="false"
android:grantUriPermissions="true"> android:grantUriPermissions="true">
<meta-data <meta-data

@ -5,9 +5,9 @@ import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import com.todoroo.andlib.utility.DateUtilities; import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.utility.Constants;
import org.tasks.AccountManager; import org.tasks.AccountManager;
import org.tasks.BuildConfig;
import org.tasks.R; import org.tasks.R;
import org.tasks.calendars.AndroidCalendarEvent; import org.tasks.calendars.AndroidCalendarEvent;
import org.tasks.calendars.AndroidCalendarEventAttendee; import org.tasks.calendars.AndroidCalendarEventAttendee;
@ -28,7 +28,7 @@ import static com.google.common.collect.Iterables.any;
public class CalendarAlarmReceiver extends InjectingBroadcastReceiver { public class CalendarAlarmReceiver extends InjectingBroadcastReceiver {
public static final int REQUEST_CODE_CAL_REMINDER = 100; public static final int REQUEST_CODE_CAL_REMINDER = 100;
public static final String BROADCAST_CALENDAR_REMINDER = Constants.PACKAGE + ".CALENDAR_EVENT"; public static final String BROADCAST_CALENDAR_REMINDER = BuildConfig.APPLICATION_ID + ".CALENDAR_EVENT";
@Inject Preferences preferences; @Inject Preferences preferences;
@Inject CalendarEventProvider calendarEventProvider; @Inject CalendarEventProvider calendarEventProvider;

@ -26,6 +26,7 @@ import com.todoroo.astrid.dao.UserActivityDao;
import com.todoroo.astrid.data.Metadata; import com.todoroo.astrid.data.Metadata;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.UserActivity; import com.todoroo.astrid.data.UserActivity;
import com.todoroo.astrid.utility.Constants;
import org.tasks.R; import org.tasks.R;
import org.tasks.files.FileHelper; import org.tasks.files.FileHelper;
@ -143,7 +144,7 @@ public class CommentsController {
view.setOnClickListener(v -> { view.setOnClickListener(v -> {
File file = new File(updateBitmap.getPath()); File file = new File(updateBitmap.getPath());
Uri uri = FileProvider.getUriForFile(activity, "org.tasks.files", file.getAbsoluteFile()); Uri uri = FileProvider.getUriForFile(activity, Constants.FILE_PROVIDER_AUTHORITY, file.getAbsoluteFile());
Intent intent = new Intent(Intent.ACTION_VIEW); Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/*"); intent.setDataAndType(uri, "image/*");
FileHelper.grantReadPermissions(activity, intent, uri); FileHelper.grantReadPermissions(activity, intent, uri);

@ -5,16 +5,11 @@
*/ */
package com.todoroo.astrid.utility; package com.todoroo.astrid.utility;
public final class Constants { import org.tasks.BuildConfig;
// --- general application constants
/** public final class Constants {
* Application Package
*/
public static final String PACKAGE = "org.tasks";
// --- notification id's public static final String FILE_PROVIDER_AUTHORITY = BuildConfig.APPLICATION_ID + ".provider";
/** Notification Manager id for timing */ /** Notification Manager id for timing */
public static final int NOTIFICATION_TIMER = -2; public static final int NOTIFICATION_TIMER = -2;

@ -10,6 +10,8 @@ import android.provider.MediaStore;
import android.support.v4.content.FileProvider; import android.support.v4.content.FileProvider;
import android.widget.Toast; import android.widget.Toast;
import com.todoroo.astrid.utility.Constants;
import org.tasks.R; import org.tasks.R;
import org.tasks.injection.ActivityComponent; import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity; import org.tasks.injection.InjectingAppCompatActivity;
@ -50,7 +52,7 @@ public class CameraActivity extends InjectingAppCompatActivity {
Toast.makeText(this, R.string.external_storage_unavailable, Toast.LENGTH_LONG).show(); Toast.makeText(this, R.string.external_storage_unavailable, Toast.LENGTH_LONG).show();
} else { } else {
final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri uri = FileProvider.getUriForFile(this, "org.tasks.files", output); Uri uri = FileProvider.getUriForFile(this, Constants.FILE_PROVIDER_AUTHORITY, output);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
if (atLeastLollipop()) { if (atLeastLollipop()) {
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

@ -96,7 +96,7 @@ public class FileExplore extends InjectingAppCompatActivity {
if (requestCode == REQUEST_PICKER) { if (requestCode == REQUEST_PICKER) {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
Uri uri = data.getData(); Uri uri = data.getData();
final File file = new File(uri.getPath()); File file = com.nononsenseapps.filepicker.Utils.getFileForUri(uri);
Intent intent = new Intent(); Intent intent = new Intent();
intent.putExtra(directoryMode ? EXTRA_DIRECTORY : EXTRA_FILE, file.getAbsolutePath()); intent.putExtra(directoryMode ? EXTRA_DIRECTORY : EXTRA_FILE, file.getAbsolutePath());
setResult(Activity.RESULT_OK, intent); setResult(Activity.RESULT_OK, intent);

@ -10,6 +10,8 @@ import android.net.Uri;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.support.v4.content.FileProvider; import android.support.v4.content.FileProvider;
import com.todoroo.astrid.utility.Constants;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
@ -32,7 +34,7 @@ public class FileHelper {
public static Intent getReadableActionView(Context context, String path, String type) { public static Intent getReadableActionView(Context context, String path, String type) {
Intent intent = new Intent(Intent.ACTION_VIEW); Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = FileProvider.getUriForFile(context, "org.tasks.files", new File(path)); Uri uri = FileProvider.getUriForFile(context, Constants.FILE_PROVIDER_AUTHORITY, new File(path));
intent.setDataAndType(uri, type); intent.setDataAndType(uri, type);
grantReadPermissions(context, intent, uri); grantReadPermissions(context, intent, uri);
return intent; return intent;

@ -67,7 +67,6 @@ public class BackupPreferences extends InjectingPreferenceActivity {
findPreference(getString(R.string.p_backup_dir)).setOnPreferenceClickListener(p -> { findPreference(getString(R.string.p_backup_dir)).setOnPreferenceClickListener(p -> {
Intent filesDir = new Intent(BackupPreferences.this, FileExplore.class); Intent filesDir = new Intent(BackupPreferences.this, FileExplore.class);
filesDir.putExtra(FileExplore.EXTRA_DIRECTORY_MODE, true); filesDir.putExtra(FileExplore.EXTRA_DIRECTORY_MODE, true);
filesDir.putExtra(FileExplore.EXTRA_START_PATH, getBackupDirectory());
startActivityForResult(filesDir, REQUEST_CODE_BACKUP_DIR); startActivityForResult(filesDir, REQUEST_CODE_BACKUP_DIR);
return true; return true;
}); });

@ -87,7 +87,6 @@ public class MiscellaneousPreferences extends InjectingPreferenceActivity {
findPreference(getString(R.string.p_attachment_dir)).setOnPreferenceClickListener(p -> { findPreference(getString(R.string.p_attachment_dir)).setOnPreferenceClickListener(p -> {
Intent filesDir = new Intent(MiscellaneousPreferences.this, FileExplore.class); Intent filesDir = new Intent(MiscellaneousPreferences.this, FileExplore.class);
filesDir.putExtra(FileExplore.EXTRA_DIRECTORY_MODE, true); filesDir.putExtra(FileExplore.EXTRA_DIRECTORY_MODE, true);
filesDir.putExtra(FileExplore.EXTRA_START_PATH, getAttachmentDirectory());
startActivityForResult(filesDir, REQUEST_CODE_FILES_DIR); startActivityForResult(filesDir, REQUEST_CODE_FILES_DIR);
return true; return true;
}); });

@ -20,6 +20,8 @@
<item name="android:textColorTertiary">@color/text_tertiary</item> <item name="android:textColorTertiary">@color/text_tertiary</item>
<item name="nnf_toolbarTheme">?attr/overlay_theme</item> <item name="nnf_toolbarTheme">?attr/overlay_theme</item>
<item name="nnf_separator_color">@color/nnf_light_separator_color</item> <item name="nnf_separator_color">@color/nnf_light_separator_color</item>
<item name="nnf_save_icon_color">?attr/colorAccent</item>
<item name="nnf_dir_icon_color">?attr/colorAccent</item>
</style> </style>
<style name="TasksOverride" parent="Tasks"> <style name="TasksOverride" parent="Tasks">

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android"> <paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="."/> <root-path name="root" path="." />
</paths> </paths>
Loading…
Cancel
Save