Heritage Transfer ServerFile
This commit is contained in:
parent
92e9c35584
commit
211fd26dca
217
app/src/main/java/com/localtransfer/ServerFile.java
Normal file
217
app/src/main/java/com/localtransfer/ServerFile.java
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
package com.localtransfer;
|
||||||
|
|
||||||
|
import android.content.ContentUris;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.database.Cursor;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.provider.MediaStore;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
|
import com.google.android.material.snackbar.Snackbar;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ServerFile extends Transfer {
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
public String name;
|
||||||
|
|
||||||
|
public String href;
|
||||||
|
|
||||||
|
public String mime;
|
||||||
|
|
||||||
|
public String type;
|
||||||
|
|
||||||
|
public long size;
|
||||||
|
|
||||||
|
public String save_location;
|
||||||
|
|
||||||
|
public Uri uri;
|
||||||
|
|
||||||
|
public Button button;
|
||||||
|
|
||||||
|
public Progress progress;
|
||||||
|
|
||||||
|
private static List<ServerFile> instances = new ArrayList<>();
|
||||||
|
|
||||||
|
public ServerFile(Integer id) {
|
||||||
|
this.id = id;
|
||||||
|
instances.add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List getInstances() {
|
||||||
|
return instances;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ServerFile getFileById(int id) {
|
||||||
|
for (Object obj: instances) {
|
||||||
|
ServerFile p = (ServerFile) obj;
|
||||||
|
if (p.id == id) return p;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean exist(Context context) {
|
||||||
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
|
||||||
|
Cursor cursor = context.getContentResolver().query(MediaStore.Downloads.EXTERNAL_CONTENT_URI, null, null, null, null);
|
||||||
|
while (cursor.moveToNext()) {
|
||||||
|
String MediaStore_File_name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Downloads.DISPLAY_NAME));
|
||||||
|
long MediaStore_File_size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Downloads.SIZE));
|
||||||
|
if(MediaStore_File_name.equals(name) && MediaStore_File_size == size) {
|
||||||
|
int cursor_id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Downloads._ID));
|
||||||
|
uri = ContentUris.withAppendedId(MediaStore.Downloads.EXTERNAL_CONTENT_URI, cursor_id);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
File file = new File(save_location, name);
|
||||||
|
new File(save_location).mkdirs();
|
||||||
|
uri = Uri.fromFile(file);
|
||||||
|
if (file.exists() && file.length() == size)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public InputStream getThumbnail() {
|
||||||
|
InputStream thumbnail = null;
|
||||||
|
URL url;
|
||||||
|
try {
|
||||||
|
String query = URLEncoder.encode(href, StandardCharsets.UTF_8.toString());
|
||||||
|
String serverUrl = root + "/thumbnail.php?file=" + query;
|
||||||
|
url = new URL(protocol, host, port, serverUrl);
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||||
|
conn.setRequestMethod("GET");
|
||||||
|
conn.setConnectTimeout(2000);
|
||||||
|
|
||||||
|
conn.connect();
|
||||||
|
|
||||||
|
thumbnail = conn.getInputStream();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return thumbnail;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void downloadFile() throws IOException {
|
||||||
|
|
||||||
|
URL url = null;
|
||||||
|
HttpURLConnection conn = null;
|
||||||
|
int maxBufferSize = 1 * 1024 * 1024;
|
||||||
|
byte[] buffer = new byte[maxBufferSize];
|
||||||
|
int bufferLength;
|
||||||
|
long loaded = 0;
|
||||||
|
|
||||||
|
String[] parts = href.split("/");
|
||||||
|
String path = "";
|
||||||
|
for(int i=0; i< parts.length - 1; i++) {
|
||||||
|
path = path + parts[i] + "/";
|
||||||
|
}
|
||||||
|
String query = URLEncoder.encode(parts[parts.length - 1], StandardCharsets.UTF_8.toString());
|
||||||
|
url = new URL(protocol, host, port, path + query.replace("+", "%20"));
|
||||||
|
conn = (HttpURLConnection) url.openConnection();
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
conn.setRequestMethod("GET");
|
||||||
|
conn.setConnectTimeout(2000);
|
||||||
|
|
||||||
|
Log.d("URL", url.toString());
|
||||||
|
|
||||||
|
conn.connect();
|
||||||
|
|
||||||
|
int responseCode = conn.getResponseCode();
|
||||||
|
|
||||||
|
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||||
|
|
||||||
|
OutputStream fileOutput = activity.getContentResolver().openOutputStream(uri);
|
||||||
|
InputStream in = conn.getInputStream();
|
||||||
|
|
||||||
|
while ((bufferLength = in.read(buffer)) > 0) {
|
||||||
|
fileOutput.write(buffer, 0, bufferLength);
|
||||||
|
loaded+= (long) bufferLength;
|
||||||
|
progress.loaded = loaded;
|
||||||
|
progress.percent = ((loaded * 100) / size);
|
||||||
|
if(Progress.app_started && progress.button != null)
|
||||||
|
activity.runOnUiThread(() -> progress.button.setText(String.format("Download in progress %d%%", progress.percent)));
|
||||||
|
}
|
||||||
|
fileOutput.close();
|
||||||
|
|
||||||
|
conn.disconnect();
|
||||||
|
|
||||||
|
progress.stopProgress();
|
||||||
|
|
||||||
|
if(progress.button != null) {
|
||||||
|
activity.runOnUiThread(() -> {
|
||||||
|
final LinearLayout layout = (LinearLayout) progress.button.getParent();
|
||||||
|
layout.findViewById(R.id.file_view).setVisibility(LinearLayout.VISIBLE);
|
||||||
|
layout.findViewById(R.id.file_share).setVisibility(LinearLayout.VISIBLE);
|
||||||
|
progress.button.setVisibility(LinearLayout.GONE);
|
||||||
|
progress.button.setEnabled(true);
|
||||||
|
|
||||||
|
progress.button.setText(activity.getString(R.string.file_download));
|
||||||
|
progress.button.setCompoundDrawables(progress.button.getCompoundDrawables()[0], null, null, null);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
activity.runOnUiThread(() -> {
|
||||||
|
String message = "File " + name + " successful download";
|
||||||
|
System.out.println(message);
|
||||||
|
Snackbar.make(activity.findViewById(R.id.view_pager), message, Snackbar.LENGTH_LONG)
|
||||||
|
.setAction("Action", null).show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
String s = conn.getResponseMessage();
|
||||||
|
throw new HttpErrorException("error code: " + responseCode + " " + s);
|
||||||
|
}
|
||||||
|
|
||||||
|
conn.disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String deleteFile() throws IOException {
|
||||||
|
|
||||||
|
URL url = null;
|
||||||
|
HttpURLConnection conn = null;
|
||||||
|
|
||||||
|
String message;
|
||||||
|
|
||||||
|
String query = URLEncoder.encode(name, StandardCharsets.UTF_8.toString());
|
||||||
|
String serverUrl = root + "/delete.php?file=" + query;
|
||||||
|
url = new URL(protocol, host, port, serverUrl);
|
||||||
|
conn = (HttpURLConnection) url.openConnection();
|
||||||
|
conn.setRequestMethod("GET");
|
||||||
|
conn.setConnectTimeout(2000);
|
||||||
|
|
||||||
|
conn.connect();
|
||||||
|
|
||||||
|
int responseCode = conn.getResponseCode();
|
||||||
|
|
||||||
|
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||||
|
|
||||||
|
message = "File " + name + " successful deleted";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
String s = conn.getResponseMessage();
|
||||||
|
throw new HttpErrorException("error code: " + responseCode + " " + s);
|
||||||
|
}
|
||||||
|
|
||||||
|
conn.disconnect();
|
||||||
|
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
}
|
@ -9,6 +9,7 @@ import android.graphics.drawable.Drawable;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.provider.OpenableColumns;
|
import android.provider.OpenableColumns;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.view.animation.Animation;
|
import android.view.animation.Animation;
|
||||||
import android.view.animation.LinearInterpolator;
|
import android.view.animation.LinearInterpolator;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
@ -289,131 +290,6 @@ public class Transfer {
|
|||||||
return fileList;
|
return fileList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static InputStream getThumbnail(String href) {
|
|
||||||
InputStream thumbnail = null;
|
|
||||||
URL url;
|
|
||||||
try {
|
|
||||||
String query = URLEncoder.encode(href, StandardCharsets.UTF_8.toString());
|
|
||||||
String serverUrl = root + "/thumbnail.php?file=" + query;
|
|
||||||
url = new URL(protocol, host, port, serverUrl);
|
|
||||||
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
|
||||||
conn.setRequestMethod("GET");
|
|
||||||
conn.setConnectTimeout(2000);
|
|
||||||
|
|
||||||
conn.connect();
|
|
||||||
|
|
||||||
thumbnail = conn.getInputStream();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return thumbnail;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void downloadFile(TransferFile file) throws IOException {
|
|
||||||
|
|
||||||
URL url = null;
|
|
||||||
HttpURLConnection conn = null;
|
|
||||||
int maxBufferSize = 1 * 1024 * 1024;
|
|
||||||
byte[] buffer = new byte[maxBufferSize];
|
|
||||||
int bufferLength;
|
|
||||||
long loaded = 0;
|
|
||||||
|
|
||||||
String[] parts = file.href.split("/");
|
|
||||||
String path = "";
|
|
||||||
for(int i=0; i< parts.length - 1; i++) {
|
|
||||||
path = path + parts[i] + "/";
|
|
||||||
}
|
|
||||||
String query = URLEncoder.encode(parts[parts.length - 1], StandardCharsets.UTF_8.toString());
|
|
||||||
url = new URL(protocol, host, port, path + query.replace("+", "%20"));
|
|
||||||
conn = (HttpURLConnection) url.openConnection();
|
|
||||||
conn.setDoOutput(true);
|
|
||||||
conn.setRequestMethod("GET");
|
|
||||||
conn.setConnectTimeout(2000);
|
|
||||||
|
|
||||||
Log.d("URL", url.toString());
|
|
||||||
|
|
||||||
conn.connect();
|
|
||||||
|
|
||||||
int responseCode = conn.getResponseCode();
|
|
||||||
|
|
||||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
|
||||||
|
|
||||||
OutputStream fileOutput = activity.getContentResolver().openOutputStream(file.uri);
|
|
||||||
InputStream in = conn.getInputStream();
|
|
||||||
|
|
||||||
while ((bufferLength = in.read(buffer)) > 0) {
|
|
||||||
fileOutput.write(buffer, 0, bufferLength);
|
|
||||||
loaded+= (long) bufferLength;
|
|
||||||
file.progress.loaded = loaded;
|
|
||||||
file.progress.percent = ((loaded * 100) / file.size);
|
|
||||||
if(Progress.app_started && file.progress.button != null)
|
|
||||||
activity.runOnUiThread(() -> file.progress.button.setText(String.format("Download in progress %d%%", file.progress.percent)));
|
|
||||||
}
|
|
||||||
fileOutput.close();
|
|
||||||
|
|
||||||
conn.disconnect();
|
|
||||||
|
|
||||||
file.progress.stopProgress();
|
|
||||||
|
|
||||||
if(file.progress.button != null) {
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
final LinearLayout layout = (LinearLayout) file.progress.button.getParent();
|
|
||||||
layout.findViewById(R.id.file_view).setVisibility(LinearLayout.VISIBLE);
|
|
||||||
layout.findViewById(R.id.file_share).setVisibility(LinearLayout.VISIBLE);
|
|
||||||
file.progress.button.setVisibility(LinearLayout.GONE);
|
|
||||||
file.progress.button.setEnabled(true);
|
|
||||||
|
|
||||||
file.progress.button.setText(activity.getString(R.string.file_download));
|
|
||||||
file.progress.button.setCompoundDrawables(file.progress.button.getCompoundDrawables()[0], null, null, null);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
activity.runOnUiThread(() -> {
|
|
||||||
String message = "File " + file.name + " successful download";
|
|
||||||
System.out.println(message);
|
|
||||||
Snackbar.make(activity.findViewById(R.id.view_pager), message, Snackbar.LENGTH_LONG)
|
|
||||||
.setAction("Action", null).show();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
String s = conn.getResponseMessage();
|
|
||||||
throw new HttpErrorException("error code: " + responseCode + " " + s);
|
|
||||||
}
|
|
||||||
|
|
||||||
conn.disconnect();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String deleteFile(String file) throws IOException {
|
|
||||||
|
|
||||||
URL url = null;
|
|
||||||
HttpURLConnection conn = null;
|
|
||||||
|
|
||||||
String message;
|
|
||||||
|
|
||||||
String query = URLEncoder.encode(file, StandardCharsets.UTF_8.toString());
|
|
||||||
String serverUrl = root + "/delete.php?file=" + query;
|
|
||||||
url = new URL(protocol, host, port, serverUrl);
|
|
||||||
conn = (HttpURLConnection) url.openConnection();
|
|
||||||
conn.setRequestMethod("GET");
|
|
||||||
conn.setConnectTimeout(2000);
|
|
||||||
|
|
||||||
conn.connect();
|
|
||||||
|
|
||||||
int responseCode = conn.getResponseCode();
|
|
||||||
|
|
||||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
|
||||||
|
|
||||||
message = "File " + file + " successful deleted";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
String s = conn.getResponseMessage();
|
|
||||||
throw new HttpErrorException("error code: " + responseCode + " " + s);
|
|
||||||
}
|
|
||||||
|
|
||||||
conn.disconnect();
|
|
||||||
|
|
||||||
return message;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int timeout;
|
private static int timeout;
|
||||||
|
|
||||||
public static void error(final String message, final TextView title, final LinearLayout layout) {
|
public static void error(final String message, final TextView title, final LinearLayout layout) {
|
||||||
@ -422,18 +298,18 @@ public class Transfer {
|
|||||||
|
|
||||||
if (timeout == 0) {
|
if (timeout == 0) {
|
||||||
if (activity != null) {
|
if (activity != null) {
|
||||||
activity.runOnUiThread(new Runnable() {
|
activity.runOnUiThread(() -> {
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
if(layout != null)
|
if(layout != null)
|
||||||
layout.removeAllViews();
|
layout.removeAllViews();
|
||||||
if(title != null) {
|
if(title != null) {
|
||||||
|
title.setTextSize(18);
|
||||||
|
title.setGravity(Gravity.CENTER);
|
||||||
|
title.setHeight(1000);
|
||||||
layout.addView(title);
|
layout.addView(title);
|
||||||
title.setText(message);
|
title.setText(message);
|
||||||
}
|
}
|
||||||
Snackbar.make(activity.findViewById(R.id.view_pager), message, Snackbar.LENGTH_LONG)
|
Snackbar.make(activity.findViewById(R.id.view_pager), message, Snackbar.LENGTH_LONG)
|
||||||
.setAction("Action", null).show();
|
.setAction("Action", null).show();
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
timeout = 1;
|
timeout = 1;
|
||||||
|
@ -1,81 +0,0 @@
|
|||||||
package com.localtransfer;
|
|
||||||
|
|
||||||
import android.content.ContentUris;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.database.Cursor;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.provider.MediaStore;
|
|
||||||
import android.widget.Button;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class TransferFile {
|
|
||||||
|
|
||||||
private Integer id;
|
|
||||||
|
|
||||||
public String name;
|
|
||||||
|
|
||||||
public String href;
|
|
||||||
|
|
||||||
public String mime;
|
|
||||||
|
|
||||||
public String type;
|
|
||||||
|
|
||||||
public long size;
|
|
||||||
|
|
||||||
public String save_location;
|
|
||||||
|
|
||||||
public Uri uri;
|
|
||||||
|
|
||||||
public Button button;
|
|
||||||
|
|
||||||
public Progress progress;
|
|
||||||
|
|
||||||
private static List<TransferFile> instances = new ArrayList<>();
|
|
||||||
|
|
||||||
public TransferFile(Integer id) {
|
|
||||||
this.id = id;
|
|
||||||
instances.add(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List getInstances() {
|
|
||||||
return instances;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TransferFile getDownload(int id) {
|
|
||||||
for (Object obj: instances) {
|
|
||||||
TransferFile p = (TransferFile) obj;
|
|
||||||
if (p.id == id) return p;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean exist(Context context) {
|
|
||||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
|
|
||||||
Cursor cursor = context.getContentResolver().query(MediaStore.Downloads.EXTERNAL_CONTENT_URI, null, null, null, null);
|
|
||||||
while (cursor.moveToNext()) {
|
|
||||||
String MediaStore_File_name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Downloads.DISPLAY_NAME));
|
|
||||||
long MediaStore_File_size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Downloads.SIZE));
|
|
||||||
if(MediaStore_File_name.equals(name) && MediaStore_File_size == size) {
|
|
||||||
int cursor_id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Downloads._ID));
|
|
||||||
uri = ContentUris.withAppendedId(MediaStore.Downloads.EXTERNAL_CONTENT_URI, cursor_id);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
File file = new File(save_location, name);
|
|
||||||
new File(save_location).mkdirs();
|
|
||||||
uri = Uri.fromFile(file);
|
|
||||||
if (file.exists() && file.length() == size)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
@ -30,7 +30,7 @@ import com.google.android.material.snackbar.Snackbar;
|
|||||||
import com.localtransfer.Progress;
|
import com.localtransfer.Progress;
|
||||||
import com.localtransfer.R;
|
import com.localtransfer.R;
|
||||||
import com.localtransfer.Transfer;
|
import com.localtransfer.Transfer;
|
||||||
import com.localtransfer.TransferFile;
|
import com.localtransfer.ServerFile;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
@ -111,10 +111,10 @@ public class DownloadFragment extends Fragment {
|
|||||||
public boolean onContextItemSelected(MenuItem item) {
|
public boolean onContextItemSelected(MenuItem item) {
|
||||||
if (item.getTitle() == "Delete") {
|
if (item.getTitle() == "Delete") {
|
||||||
LinearLayout fileDesc = (LinearLayout) root.findViewById(item.getItemId());
|
LinearLayout fileDesc = (LinearLayout) root.findViewById(item.getItemId());
|
||||||
final String file = String.valueOf(fileDesc.getTag(R.id.ID_FILE_NAME));
|
ServerFile file = ServerFile.getFileById((Integer) fileDesc.getTag(R.id.ID_DOWNLOAD));
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
try {
|
try {
|
||||||
String message = Transfer.deleteFile(file);
|
String message = file.deleteFile();
|
||||||
System.out.println(message);
|
System.out.println(message);
|
||||||
getActivity().runOnUiThread(() ->
|
getActivity().runOnUiThread(() ->
|
||||||
Snackbar.make(getActivity().findViewById(R.id.view_pager), message, Snackbar.LENGTH_LONG)
|
Snackbar.make(getActivity().findViewById(R.id.view_pager), message, Snackbar.LENGTH_LONG)
|
||||||
@ -164,7 +164,7 @@ public class DownloadFragment extends Fragment {
|
|||||||
JSONArray array = new JSONArray(data);
|
JSONArray array = new JSONArray(data);
|
||||||
for (int i = 0; i < array.length(); i++) {
|
for (int i = 0; i < array.length(); i++) {
|
||||||
Integer id = View.generateViewId();
|
Integer id = View.generateViewId();
|
||||||
TransferFile trFile = new TransferFile(id);
|
ServerFile trFile = new ServerFile(id);
|
||||||
|
|
||||||
JSONObject row = array.getJSONObject(i);
|
JSONObject row = array.getJSONObject(i);
|
||||||
trFile.name = row.getString("name");
|
trFile.name = row.getString("name");
|
||||||
@ -192,9 +192,9 @@ public class DownloadFragment extends Fragment {
|
|||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setThumbnail(String href, ImageView image) {
|
private void setThumbnail(ServerFile file, ImageView image) {
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
InputStream thumbnail = Transfer.getThumbnail(href);
|
InputStream thumbnail = file.getThumbnail();
|
||||||
Bitmap bitmap = BitmapFactory.decodeStream(thumbnail);
|
Bitmap bitmap = BitmapFactory.decodeStream(thumbnail);
|
||||||
getActivity().runOnUiThread(() -> {
|
getActivity().runOnUiThread(() -> {
|
||||||
image.setImageBitmap(bitmap);
|
image.setImageBitmap(bitmap);
|
||||||
@ -202,7 +202,7 @@ public class DownloadFragment extends Fragment {
|
|||||||
}).start();
|
}).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showFileList(TransferFile trFile) {
|
private void showFileList(ServerFile trFile) {
|
||||||
|
|
||||||
final LinearLayout main_layout = root.findViewById(R.id.main_layout);
|
final LinearLayout main_layout = root.findViewById(R.id.main_layout);
|
||||||
|
|
||||||
@ -217,8 +217,11 @@ public class DownloadFragment extends Fragment {
|
|||||||
|
|
||||||
fileDesc.setId(View.generateViewId());
|
fileDesc.setId(View.generateViewId());
|
||||||
|
|
||||||
|
registerForContextMenu(fileDesc);
|
||||||
|
|
||||||
file_buttons.setId(trFile.getId());
|
file_buttons.setId(trFile.getId());
|
||||||
file_buttons.setTag(R.id.ID_DOWNLOAD, trFile.getId());
|
file_buttons.setTag(R.id.ID_DOWNLOAD, trFile.getId());
|
||||||
|
fileDesc.setTag(R.id.ID_DOWNLOAD, trFile.getId());
|
||||||
file_buttons.setTag(R.id.ID_FILE_BUTTONS, "FOR VISIBILITY");
|
file_buttons.setTag(R.id.ID_FILE_BUTTONS, "FOR VISIBILITY");
|
||||||
|
|
||||||
trFile.button = file_buttons.findViewById(R.id.file_download);
|
trFile.button = file_buttons.findViewById(R.id.file_download);
|
||||||
@ -228,9 +231,6 @@ public class DownloadFragment extends Fragment {
|
|||||||
else
|
else
|
||||||
trFile.save_location = Environment.getExternalStorageDirectory() + "/" + Transfer.local_storage;
|
trFile.save_location = Environment.getExternalStorageDirectory() + "/" + Transfer.local_storage;
|
||||||
|
|
||||||
registerForContextMenu(fileDesc);
|
|
||||||
fileDesc.setTag(R.id.ID_FILE_NAME, trFile.name);
|
|
||||||
|
|
||||||
viewName.setText(trFile.name);
|
viewName.setText(trFile.name);
|
||||||
viewType.setText(trFile.mime);
|
viewType.setText(trFile.mime);
|
||||||
viewSize.setText(Transfer.humanReadableByteCountBin(trFile.size));
|
viewSize.setText(Transfer.humanReadableByteCountBin(trFile.size));
|
||||||
@ -238,11 +238,11 @@ public class DownloadFragment extends Fragment {
|
|||||||
switch (trFile.type) {
|
switch (trFile.type) {
|
||||||
case "file-image":
|
case "file-image":
|
||||||
image.setImageResource(R.drawable.ic_icon_image);
|
image.setImageResource(R.drawable.ic_icon_image);
|
||||||
setThumbnail(trFile.href, image);
|
setThumbnail(trFile, image);
|
||||||
break;
|
break;
|
||||||
case "file-video":
|
case "file-video":
|
||||||
image.setImageResource(R.drawable.ic_icon_video);
|
image.setImageResource(R.drawable.ic_icon_video);
|
||||||
setThumbnail(trFile.href, image);
|
setThumbnail(trFile, image);
|
||||||
break;
|
break;
|
||||||
case "file-audio":
|
case "file-audio":
|
||||||
image.setImageResource(R.drawable.ic_icon_music);
|
image.setImageResource(R.drawable.ic_icon_music);
|
||||||
@ -317,7 +317,7 @@ public class DownloadFragment extends Fragment {
|
|||||||
anim.setInterpolator(new LinearInterpolator());
|
anim.setInterpolator(new LinearInterpolator());
|
||||||
anim.start();
|
anim.start();
|
||||||
|
|
||||||
TransferFile file = TransferFile.getDownload(id);
|
ServerFile file = ServerFile.getFileById(id);
|
||||||
|
|
||||||
file.progress = new Progress(file.name, file.size, Progress.DOWNLOAD);
|
file.progress = new Progress(file.name, file.size, Progress.DOWNLOAD);
|
||||||
file.progress.button = file.button;
|
file.progress.button = file.button;
|
||||||
@ -332,7 +332,7 @@ public class DownloadFragment extends Fragment {
|
|||||||
|
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
try {
|
try {
|
||||||
Transfer.downloadFile(file);
|
file.downloadFile();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
final String ExceptionName = e.getClass().getSimpleName();
|
final String ExceptionName = e.getClass().getSimpleName();
|
||||||
final String ExceptionMess = e.getMessage();
|
final String ExceptionMess = e.getMessage();
|
||||||
@ -349,7 +349,7 @@ public class DownloadFragment extends Fragment {
|
|||||||
LinearLayout layout = (LinearLayout) v.getParent();
|
LinearLayout layout = (LinearLayout) v.getParent();
|
||||||
final Integer id = (Integer) layout.getTag(R.id.ID_DOWNLOAD);
|
final Integer id = (Integer) layout.getTag(R.id.ID_DOWNLOAD);
|
||||||
|
|
||||||
TransferFile dl = TransferFile.getDownload(id);
|
ServerFile dl = ServerFile.getFileById(id);
|
||||||
|
|
||||||
if(dl.type.equals("text/plain")) {
|
if(dl.type.equals("text/plain")) {
|
||||||
String text = null;
|
String text = null;
|
||||||
@ -398,7 +398,7 @@ public class DownloadFragment extends Fragment {
|
|||||||
LinearLayout layout = (LinearLayout) v.getParent();
|
LinearLayout layout = (LinearLayout) v.getParent();
|
||||||
final Integer id = (Integer) layout.getTag(R.id.ID_DOWNLOAD);
|
final Integer id = (Integer) layout.getTag(R.id.ID_DOWNLOAD);
|
||||||
|
|
||||||
TransferFile dl = TransferFile.getDownload(id);
|
ServerFile dl = ServerFile.getFileById(id);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<item name="ID_DOWNLOAD" type="id" />
|
<item name="ID_DOWNLOAD" type="id" />
|
||||||
<item name="ID_FILE_NAME" type="id" />
|
|
||||||
<item name="ID_FILE_BUTTONS" type="id" />
|
<item name="ID_FILE_BUTTONS" type="id" />
|
||||||
</resources>
|
</resources>
|
Loading…
x
Reference in New Issue
Block a user