Compare commits

...

11 Commits

Author SHA1 Message Date
lionel
7ce4b9830b Fix text/plain mime 2022-11-30 11:58:09 +01:00
lionel
6a460b2952 Fix upload mms again 2022-03-25 16:26:37 +01:00
lionel
6a1ed20e07 READ_EXTERNAL_STORAGE for android Q 2022-03-25 16:09:19 +01:00
lionel
96540f4a50 Merge branch 'foregroundService' 2022-02-25 19:01:12 +01:00
lionel
211fd26dca Heritage Transfer ServerFile 2022-02-23 11:19:04 +01:00
lionel
92e9c35584 TransferFile
- unification class TransferFile
- MediaStore Android 11 Q download support
2022-02-22 15:15:08 +01:00
lionel
3df644e6a8 Thumbnail support 2022-02-19 04:53:31 +01:00
toto
5444d765e7 Update Gradle 7.0.2 to 7.1.1 2022-02-08 16:47:11 +01:00
toto
38eff704cd Partial Fix for Download with MediaStore 2022-02-08 16:46:23 +01:00
lionel
057038cca7 Fix upload MMS without file name and size 2022-02-07 23:41:03 +01:00
lionel
cba7fc2555 Java 11 networkSecurityConfig
- upgrading gradle to Java 11
 - fix CleartextTraffic with networkSecurityConfig
 - fix port empty
2021-10-08 20:09:52 +02:00
4 changed files with 66 additions and 20 deletions

View File

@ -227,7 +227,7 @@ public class MainActivity extends AppCompatActivity {
public static final int REQUEST_ID_READ_EXTERNAL_STORAGE = 2001;
private boolean checkAndRequestPermissions() {
private boolean checkAndRequestPermissions() {
if (ContextCompat.checkSelfPermission(
this, Manifest.permission.READ_EXTERNAL_STORAGE) ==

View File

@ -1,8 +1,10 @@
package com.localtransfer;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
@ -10,6 +12,8 @@ import android.view.MenuItem;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;
@ -49,14 +53,22 @@ public class SettingsActivity extends AppCompatActivity {
SwitchPreference shared;
shared = findPreference("use_shared_storage");
if(shared.isChecked())
directory.setVisible(true);
if(shared.isChecked()) {
if(checkAndRequestPermissions())
directory.setVisible(true);
else
shared.setChecked(false);
}
else
directory.setVisible(false);
shared.setOnPreferenceClickListener(preference -> {
if(shared.isChecked())
directory.setVisible(true);
if(shared.isChecked()) {
if(checkAndRequestPermissions())
directory.setVisible(true);
else
shared.setChecked(false);
}
else
directory.setVisible(false);
return false;
@ -71,6 +83,35 @@ public class SettingsActivity extends AppCompatActivity {
});
}
private boolean checkAndRequestPermissions() {
if (ContextCompat.checkSelfPermission(
getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) ==
PackageManager.PERMISSION_GRANTED) {
Log.d("READ_EXTERNAL_STORAGE", "already granted");
return true;
}
else {
ActivityCompat.requestPermissions(getActivity(), new String[] {android.Manifest.permission.READ_EXTERNAL_STORAGE}, MainActivity.REQUEST_ID_READ_EXTERNAL_STORAGE);
}
return false;
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[],
int[] grantResults) {
switch (requestCode) {
case MainActivity.REQUEST_ID_READ_EXTERNAL_STORAGE:
if (grantResults.length > 0 &&
grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.d("READ_EXTERNAL_STORAGE", "granted");
} else {
Log.d("READ_EXTERNAL_STORAGE", "No granted");
}
return;
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

View File

@ -28,6 +28,8 @@ public class UploadFile extends Transfer {
public Uri uri;
public String type;
public UploadFile() {
this.id = View.generateViewId();
instances.add(this);
@ -44,9 +46,19 @@ public class UploadFile extends Transfer {
Cursor cursor = activity.getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
file.name = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
file.size = cursor.getLong(cursor.getColumnIndex(OpenableColumns.SIZE));
file.sizeSI = Transfer.humanReadableByteCountBin(file.size);
file.type = activity.getContentResolver().getType(uri);
int col_name = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
if (col_name != -1)
file.name = cursor.getString(col_name);
if(file.name == null)
file.name = file.type.split("/")[0] + "_" + new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()) + "." + file.type.split("/")[1];
int col_size = cursor.getColumnIndex(OpenableColumns.SIZE);
if (col_name != -1) {
file.size = cursor.getLong(col_size);
file.sizeSI = Transfer.humanReadableByteCountBin(file.size);
}
file.AddTransfer();
}
@ -116,15 +128,7 @@ public class UploadFile extends Transfer {
Cursor cursor = activity.getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
String type = activity.getContentResolver().getType(uri);
String fileName = null;
int col_name = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
if (col_name != -1)
fileName = cursor.getString(col_name);
if(fileName == null)
fileName = type.split("/")[0] + "_" + new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()) + "." + type.split("/")[1];
String fileNameUTF8 = new String(fileName.getBytes(), StandardCharsets.ISO_8859_1);
String fileNameUTF8 = new String(name.getBytes(), StandardCharsets.ISO_8859_1);
url = new URL(protocol, host, port, root + "/upload.php");
@ -152,6 +156,7 @@ public class UploadFile extends Transfer {
InputStream in = activity.getContentResolver().openInputStream(uri);
size = in.available();
sizeSI = Transfer.humanReadableByteCountBin(size);
while ((bufferLength = in.read(buffer)) > 0) {
request.write(buffer, 0, bufferLength);
@ -168,7 +173,7 @@ public class UploadFile extends Transfer {
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
message = "File " + fileName + " successful upload";
message = "File " + name + " successful upload";
state = Transfer.STATE_SUCCESS;
progressEnd();
}

View File

@ -300,7 +300,7 @@ public class DownloadFragment extends Fragment {
DownloadFile dl = (DownloadFile) DownloadFile.getFileById(id);
if(dl.type.equals("text/plain")) {
if(dl.mime.equals("text/plain")) {
String text = null;
try {
InputStream is = getActivity().getContentResolver().openInputStream(dl.uri);
@ -321,7 +321,7 @@ public class DownloadFragment extends Fragment {
try {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType(dl.type);
intent.setType(dl.mime);
intent.putExtra(Intent.EXTRA_TEXT, text);
startActivity(Intent.createChooser(intent, getString(R.string.share_title)));
} catch (ActivityNotFoundException e) {