Refactoring

pull/214/head
M66B 9 months ago
parent cef79942f4
commit b94e461e6c

@ -577,7 +577,7 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
Helper.copy(is, new FileOutputStream(file));
return FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID, file);
return FileProviderEx.getUri(this, BuildConfig.APPLICATION_ID, file);
} catch (Throwable ex) {
Log.w(ex);
return uri;

@ -6359,7 +6359,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
Helper.copy(source, target);
return FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, target);
return FileProviderEx.getUri(context, BuildConfig.APPLICATION_ID, target);
}
@Override
@ -7246,7 +7246,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
if (attachments != null)
for (EntityAttachment attachment : attachments) {
File file = attachment.getFile(context);
Uri uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file);
Uri uri = FileProviderEx.getUri(context, BuildConfig.APPLICATION_ID, file, attachment.name);
uris.add(uri);
}

@ -165,10 +165,7 @@ public class EntityAttachment {
Uri getUri(Context context) {
File file = getFile(context);
if (TextUtils.isEmpty(name))
return FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file);
else
return FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file, name);
return FileProviderEx.getUri(context, BuildConfig.APPLICATION_ID, file, name);
}
File getFile(Context context) {

@ -22,11 +22,14 @@ package eu.faircode.email;
import android.content.Context;
import android.content.pm.ProviderInfo;
import android.net.Uri;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.FileProvider;
import java.io.File;
public class FileProviderEx extends FileProvider {
// https://android-review.googlesource.com/c/platform/frameworks/support/+/1978527
public FileProviderEx() {
@ -69,6 +72,19 @@ public class FileProviderEx extends FileProvider {
}
}
public static Uri getUri(@NonNull Context context, @NonNull String authority, @NonNull File file) {
return getUri(context, authority, file, null);
}
public static Uri getUri(@NonNull Context context, @NonNull String authority, @NonNull File file, @NonNull String name) {
Uri uri;
if (TextUtils.isEmpty(name))
uri = getUriForFile(context, authority, file);
else
uri = getUriForFile(context, authority, file, name);
return uri;
}
@Override
public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
throw new UnsupportedOperationException("No external updates");

@ -3574,7 +3574,7 @@ public class FragmentCompose extends FragmentBase {
File dir = Helper.ensureExists(new File(context.getFilesDir(), "photo"));
File file = new File(dir, working + "_" + new Date().getTime() + ".jpg");
try {
photoURI = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file);
photoURI = FileProviderEx.getUri(context, BuildConfig.APPLICATION_ID, file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(intent, REQUEST_TAKE_PHOTO);
} catch (Throwable ex) {

@ -293,7 +293,7 @@ public class FragmentDialogForwardRaw extends FragmentDialogBase {
for (long id : ids) {
EntityLog.log(context, "Sending raw id=" + id);
File file = EntityMessage.getRawFile(context, id);
Uri uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file);
Uri uri = FileProviderEx.getUri(context, BuildConfig.APPLICATION_ID, file);
uris.add(uri);
}

@ -997,7 +997,7 @@ public class Helper {
static void share(Context context, File file, String type, String name) {
// https://developer.android.com/reference/androidx/core/content/FileProvider
Uri uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file);
Uri uri = FileProviderEx.getUri(context, BuildConfig.APPLICATION_ID, file, name);
share(context, uri, type, name);
}

@ -2407,7 +2407,7 @@ public class HtmlHelper {
if (attachment != null && attachment.available) {
File file = attachment.getFile(context);
if (local) {
Uri uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file);
Uri uri = FileProviderEx.getUri(context, BuildConfig.APPLICATION_ID, file, attachment.name);
img.attr("src", uri.toString());
Log.i("Inline image uri=" + uri);
} else {

Loading…
Cancel
Save