123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package epson.provider;
- import android.content.ContentValues;
- import android.content.Context;
- import android.content.pm.ProviderInfo;
- import android.database.Cursor;
- import android.net.Uri;
- import android.os.ParcelFileDescriptor;
- import androidx.core.content.FileProvider;
- import java.io.File;
- import java.io.FileNotFoundException;
- public abstract class IAFileProvider extends FileProvider {
- private static String mAuthority;
- public boolean onCreate() {
- return true;
- }
- public void attachInfo(Context context, ProviderInfo providerInfo) {
- super.attachInfo(context, providerInfo);
- mAuthority = providerInfo.authority;
- }
- public ParcelFileDescriptor openFile(Uri uri, String str) throws FileNotFoundException {
- if (checkUriPath(uri)) {
- return super.openFile(uri, str);
- }
- throw new FileNotFoundException();
- }
- public static Uri getUriForFile(Context context, File file) throws FileNotFoundException {
- return getUriForFile(context, mAuthority, file);
- }
- public String getType(Uri uri) {
- if (!checkUriPath(uri)) {
- return null;
- }
- return super.getType(uri);
- }
- public Cursor query(Uri uri, String[] strArr, String str, String[] strArr2, String str2) {
- if (!checkUriPath(uri)) {
- return null;
- }
- return super.query(uri, strArr, str, strArr2, str2);
- }
- static boolean checkUriPath(Uri uri) {
- if (uri == null) {
- return true;
- }
- String path = uri.getPath();
- if (path.contains("/../") || path.endsWith("/..")) {
- return false;
- }
- return true;
- }
- public Uri insert(Uri uri, ContentValues contentValues) {
- throw new UnsupportedOperationException("No external insert");
- }
- public int delete(Uri uri, String str, String[] strArr) {
- throw new UnsupportedOperationException("No external delete");
- }
- public int update(Uri uri, ContentValues contentValues, String str, String[] strArr) {
- throw new UnsupportedOperationException("No external updates");
- }
- }
|