Download kann nun ausgewählt werden ob Datei erneut herunter geladen werden soll, wenn bereits vorhanden.
Es wird nun ein Fehler angezeigt wenn der Download fehl schlug. Wenn die App keine schreibrechte hat, fragt sie nach welchen. Ordner von Modulename zu FU-Modulename umbenant
This commit is contained in:
@@ -1,12 +1,15 @@
|
||||
package de.sebse.fuplanner.fragments.moddetails;
|
||||
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
@@ -92,20 +95,44 @@ public class ModDetailResourceFragment extends Fragment {
|
||||
// if (!node.isExpand())
|
||||
// adapter.collapseBrotherNode(node);
|
||||
} else {
|
||||
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
|
||||
Resource.File file = (Resource.File) node.getContent();
|
||||
alertDialogBuilder
|
||||
.setTitle(file.getTitle())
|
||||
.setMessage(
|
||||
getResources().getString(R.string.creator_name, file.getAuthor()) + "\n" +
|
||||
getResources().getString(R.string.last_modified_on, UtilsDate.getModifiedDateTime(context, file.getModifiedDate()))
|
||||
)
|
||||
.setCancelable(true)
|
||||
.setNeutralButton(R.string.close, (dialog, id) -> dialog.cancel())
|
||||
.setPositiveButton(R.string.download, (dialog, id) -> download(file));
|
||||
KVV kvv = ((MainActivity) getActivity()).getKVV();
|
||||
kvv.getModule(mItemPos, (Modules.Module module) -> {
|
||||
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
|
||||
Resource.File file = (Resource.File) node.getContent();
|
||||
String ordnername = "FU-"+module.title;
|
||||
File f = new File(Environment.getExternalStoragePublicDirectory(
|
||||
Environment.DIRECTORY_DOWNLOADS)+"/"+ordnername+"/"+file.getTitle());
|
||||
if (f.exists()) {//prüffen ob bereits herunter geladen
|
||||
alertDialogBuilder
|
||||
.setTitle(file.getTitle())
|
||||
.setMessage(
|
||||
getResources().getString(R.string.creator_name, file.getAuthor()) + "\n" +
|
||||
getResources().getString(R.string.last_modified_on, UtilsDate.getModifiedDateTime(context, file.getModifiedDate()))
|
||||
)
|
||||
.setCancelable(true)
|
||||
.setNeutralButton(R.string.close, (dialog, id) -> dialog.cancel())
|
||||
.setNegativeButton(R.string.openFile, (dialog, id) -> download(file, ordnername, false))
|
||||
.setPositiveButton(R.string.download, (dialog, id) -> download(file, ordnername, true));
|
||||
AlertDialog alertDialog = alertDialogBuilder.create();
|
||||
alertDialog.show();
|
||||
}
|
||||
else {
|
||||
alertDialogBuilder
|
||||
.setTitle(file.getTitle())
|
||||
.setMessage(
|
||||
getResources().getString(R.string.creator_name, file.getAuthor()) + "\n" +
|
||||
getResources().getString(R.string.last_modified_on, UtilsDate.getModifiedDateTime(context, file.getModifiedDate()))
|
||||
)
|
||||
.setCancelable(true)
|
||||
.setNeutralButton(R.string.close, (dialog, id) -> dialog.cancel())
|
||||
.setPositiveButton(R.string.download, (dialog, id) -> download(file, ordnername, true));
|
||||
AlertDialog alertDialog = alertDialogBuilder.create();
|
||||
alertDialog.show();
|
||||
}
|
||||
|
||||
AlertDialog alertDialog = alertDialogBuilder.create();
|
||||
alertDialog.show();
|
||||
}, error -> {
|
||||
log.e(error);
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -131,27 +158,55 @@ public class ModDetailResourceFragment extends Fragment {
|
||||
return view;
|
||||
}
|
||||
|
||||
private void download(Resource.File file){
|
||||
private void download(Resource.File file, String modul, boolean downloadNew){
|
||||
KVV kvv = ((MainActivity) getActivity()).getKVV();
|
||||
kvv.getModule(mItemPos, (Modules.Module module) -> {
|
||||
kvv.getResourceFile(success1 -> {
|
||||
if (success1.equals("")){//Datei wurde nicht heruntergeladen
|
||||
log.d("ResourceFile Datei nicht vorhanden");
|
||||
//todo Nutzer Info senden?
|
||||
}else {
|
||||
fileOpen(new File(success1));
|
||||
}
|
||||
}, error -> {
|
||||
|
||||
log.e(error);
|
||||
}, file.getTitle(), file.getUrl(), module.title );
|
||||
}, error -> {
|
||||
log.e(error);
|
||||
});
|
||||
//log.d("ResourceFile berchtigungen: "+ isExternalStorageWritable());
|
||||
ActivityCompat.requestPermissions(ModDetailResourceFragment.super.getActivity(),
|
||||
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
||||
1);
|
||||
|
||||
if(isExternalStorageWritable()){
|
||||
kvv.getResourceFile(success1 -> {
|
||||
if (success1.equals("")){//Datei wurde nicht heruntergeladen
|
||||
log.d("ResourceFile Datei nicht vorhanden");
|
||||
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
|
||||
alertDialogBuilder
|
||||
.setTitle(R.string.ErrorFileDownload)
|
||||
.setMessage(
|
||||
R.string.ErrorFileDownloadText
|
||||
)
|
||||
.setCancelable(true)
|
||||
.setNeutralButton(R.string.close, (dialog, id) -> dialog.cancel());
|
||||
AlertDialog alertDialog = alertDialogBuilder.create();
|
||||
alertDialog.show();
|
||||
}else {
|
||||
fileOpen(new File(success1));
|
||||
}
|
||||
}, error -> {
|
||||
|
||||
log.e(error);
|
||||
}, file.getTitle(), file.getUrl(), modul, downloadNew );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* Checks if external storage is available for read and write */
|
||||
public boolean isExternalStorageWritable() {
|
||||
String state = Environment.getExternalStorageState();
|
||||
//log.d("ResourceFile Environment.getExternalStorageState()"+state);
|
||||
//log.d("ResourceFile Environment.MEDIA_MOUNTED"+Environment.MEDIA_MOUNTED);
|
||||
if (Environment.MEDIA_MOUNTED.equals(state)) {
|
||||
return true;
|
||||
}
|
||||
log.d("Dateisystem: kein schreiben möglich");
|
||||
return false;
|
||||
}
|
||||
|
||||
private void fileOpen(File url){
|
||||
|
||||
@@ -137,8 +137,8 @@ public class KVV {
|
||||
getModulePart(modules -> modules.getResources(module, saveOnCallback(modules, callback, forceRefresh), errorOnCallback(error), forceRefresh));
|
||||
}
|
||||
|
||||
public void getResourceFile(final NetworkCallback<String> callback, final NetworkErrorCallback error, String filename, String url, String moduleName){
|
||||
getModulePart(modules -> modules.getResourceFile(callback, errorOnCallback(error),filename, url, moduleName));
|
||||
public void getResourceFile(final NetworkCallback<String> callback, final NetworkErrorCallback error, String filename, String url, String moduleName, boolean downloadNew){
|
||||
getModulePart(modules -> modules.getResourceFile(callback, errorOnCallback(error),filename, url, moduleName, downloadNew));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -36,6 +36,8 @@ import de.sebse.fuplanner.tools.network.NetworkError;
|
||||
import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
|
||||
import de.sebse.fuplanner.tools.network.Result;
|
||||
|
||||
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
|
||||
|
||||
/**
|
||||
* Created by sebastian on 29.10.17.
|
||||
*/
|
||||
@@ -519,13 +521,13 @@ class KVVModuleList extends HTTPService {
|
||||
|
||||
}
|
||||
|
||||
public void getResourceFile( final NetworkCallback<String> callback, final NetworkErrorCallback errorCallback, String Filename, String url, String moduleName) {
|
||||
|
||||
public void getResourceFile( final NetworkCallback<String> callback, final NetworkErrorCallback errorCallback, String Filename, String url, String moduleName, boolean downloadNew) {
|
||||
//log.d("ResourceFile schreibrechte", WRITE_EXTERNAL_STORAGE);
|
||||
//queueModuleDetails.add(module.getID(), () -> {
|
||||
if (isExternalStorageReadable()){
|
||||
File f = new File(Environment.getExternalStoragePublicDirectory(
|
||||
Environment.DIRECTORY_DOWNLOADS)+"/"+moduleName+"/"+Filename);
|
||||
if (f.exists()) {//prüffen ob bereits herunter gelagen...
|
||||
if (f.exists() && !downloadNew) {//prüffen ob bereits herunter gelagen und nicht erneut heruntergeladen werden...
|
||||
callback.onResponse(f.getPath());
|
||||
log.d("ResourceFile laden aus Speicher");
|
||||
return;
|
||||
@@ -545,19 +547,25 @@ class KVVModuleList extends HTTPService {
|
||||
get(url, token.getCookies(), response ->{
|
||||
final String[] pfad = {""};
|
||||
|
||||
|
||||
if (response.getParsed()==null)
|
||||
if (response.getBytes()==null){
|
||||
log.d("ResourceFile neu einlogen");
|
||||
testLogin(token, token -> {
|
||||
if (isExternalStorageWritable()) {
|
||||
pfad[0] = saveFileInDownloads(Filename, response, moduleName);
|
||||
callback.onResponse(pfad[0]);
|
||||
get(url, token.getCookies(), response2 ->{//probiern die Datei erneut zu laden
|
||||
log.d("ResourceFile: response2",response2.getParsed());
|
||||
pfad[0] = saveFileInDownloads(Filename, response2, moduleName);
|
||||
log.d("ResourceFile: pfad[0] 2",pfad[0]);
|
||||
callback.onResponse(pfad[0]);
|
||||
log.d("ResourceFile: ", token);
|
||||
}, error -> errorCallback.onError(new NetworkError(101705, error.networkResponse.statusCode, "Cannot get File!")));
|
||||
} else {
|
||||
errorCallback.onError(new NetworkError(101703, 403, "Exgternal storage not writeable!"));
|
||||
}
|
||||
}, errorCallback);
|
||||
}
|
||||
else if (isExternalStorageWritable()) {
|
||||
pfad[0] = saveFileInDownloads(Filename, response, moduleName);
|
||||
log.d("ResourceFile: ", token);
|
||||
//log.d("ResourceFile: ", token);
|
||||
callback.onResponse(pfad[0]);
|
||||
} else {
|
||||
errorCallback.onError(new NetworkError(101704, 403, "Exgternal storage not writeable!"));
|
||||
|
||||
@@ -58,4 +58,7 @@
|
||||
<string name="creator_name">Erstellt von: %1$s</string>
|
||||
<string name="last_modified_on">Letzte Änderung: %1$s</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="openFile">Datei Öffnen</string>
|
||||
<string name="ErrorFileDownload">Download Fehler</string>
|
||||
<string name="ErrorFileDownloadText">Beim herunterladen der Datei ist ein fehler aufgetreten. Prüfen Sie bitte ob sie mit dem Internet Verbunden sind und ob Sie der APP zugriff auf den speicher gewert haben.</string>
|
||||
</resources>
|
||||
@@ -65,4 +65,7 @@
|
||||
<string name="creator_name">Created by: %1$s</string>
|
||||
<string name="last_modified_on">Last Modified: %1$s</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="openFile">Open File</string>
|
||||
<string name="ErrorFileDownload">Download Error</string>
|
||||
<string name="ErrorFileDownloadText">An error occurred while downloading the file. Please check if you are connected to the internet and if you have used the app to access the memory.</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user