package cgeo.geocaching.files;
import cgeo.geocaching.network.Network;
import cgeo.geocaching.utils.DisposableHandler;
import cgeo.geocaching.utils.Log;
import android.content.ContentResolver;
import android.net.Uri;
import android.os.Handler;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
class ImportGpxZipAttachmentThread extends AbstractImportGpxZipThread {
private final Uri uri;
private final ContentResolver contentResolver;
ImportGpxZipAttachmentThread(final Uri uri, final ContentResolver contentResolver, final int listId, final Handler importStepHandler, final DisposableHandler progressHandler) {
super(listId, importStepHandler, progressHandler);
this.uri = uri;
this.contentResolver = contentResolver;
Log.i("Import zipped GPX from uri: " + uri);
}
@Override
protected InputStream getInputStream() throws IOException {
try {
return contentResolver.openInputStream(uri);
} catch (final FileNotFoundException e) {
// for http links, we may need to download the content ourselves, if it has no mime type announced by the browser
if (uri.toString().startsWith("http")) {
return Network.getResponseStream(Network.getRequest(uri.toString()));
}
}
Log.e("GpxZip import cannot resolve " + uri);
return null;
}
}