diff --git a/app/src/dummy/java/eu/faircode/email/FFSend.java b/app/src/dummy/java/eu/faircode/email/FFSend.java index 4471c6e1c0..19a8b1e651 100644 --- a/app/src/dummy/java/eu/faircode/email/FFSend.java +++ b/app/src/dummy/java/eu/faircode/email/FFSend.java @@ -5,6 +5,8 @@ import androidx.documentfile.provider.DocumentFile; import java.io.InputStream; public class FFSend { + static final int FF_DEFAULT_DLIMIT = 0; + static final int FF_DEFAULT_TLIMIT = 0; static final String FF_DEFAULT_SERVER = ""; static final String FF_INSTANCES = ""; diff --git a/app/src/extra/java/eu/faircode/email/FFSend.java b/app/src/extra/java/eu/faircode/email/FFSend.java index 6a0867417a..b5665dab47 100644 --- a/app/src/extra/java/eu/faircode/email/FFSend.java +++ b/app/src/extra/java/eu/faircode/email/FFSend.java @@ -49,6 +49,8 @@ public class FFSend { --data '{"owner_token": "..."}' */ + static final int FF_DEFAULT_DLIMIT = 10; + static final int FF_DEFAULT_TLIMIT = 36; // hours static final String FF_DEFAULT_SERVER = "https://send.vis.ee/"; static final String FF_INSTANCES = "https://github.com/timvisee/send-instances/"; diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogInsertLink.java b/app/src/main/java/eu/faircode/email/FragmentDialogInsertLink.java index 6face586e3..275e776d6d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogInsertLink.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogInsertLink.java @@ -45,6 +45,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; +import androidx.constraintlayout.widget.Group; import androidx.documentfile.provider.DocumentFile; import androidx.preference.PreferenceManager; @@ -63,6 +64,8 @@ public class FragmentDialogInsertLink extends FragmentDialogBase { private EditText etTitle; private Button btnUpload; private ProgressBar pbUpload; + private EditText etDlimit; + private EditText etTlimit; private static final int METADATA_CONNECT_TIMEOUT = 10 * 1000; // milliseconds private static final int METADATA_READ_TIMEOUT = 15 * 1000; // milliseconds @@ -91,6 +94,9 @@ public class FragmentDialogInsertLink extends FragmentDialogBase { final ProgressBar pbWait = view.findViewById(R.id.pbWait); btnUpload = view.findViewById(R.id.btnUpload); pbUpload = view.findViewById(R.id.pbUpload); + etDlimit = view.findViewById(R.id.etDlimit); + etTlimit = view.findViewById(R.id.etTlimit); + Group grpUpload = view.findViewById(R.id.grpUpload); etLink.addTextChangedListener(new TextWatcher() { @Override @@ -257,9 +263,12 @@ public class FragmentDialogInsertLink extends FragmentDialogBase { etTitle.setText(savedInstanceState.getString("fair:text")); } - btnUpload.setVisibility(BuildConfig.PLAY_STORE_RELEASE ? View.GONE : View.VISIBLE); + etDlimit.setHint(Integer.toString(FFSend.FF_DEFAULT_DLIMIT)); + etTlimit.setHint(Integer.toString(FFSend.FF_DEFAULT_TLIMIT)); + pbWait.setVisibility(View.GONE); pbUpload.setVisibility(View.GONE); + grpUpload.setVisibility(BuildConfig.PLAY_STORE_RELEASE ? View.GONE : View.VISIBLE); return new AlertDialog.Builder(context) .setView(view) @@ -300,23 +309,32 @@ public class FragmentDialogInsertLink extends FragmentDialogBase { private void onFFSend(Uri uri) { Bundle args = new Bundle(); args.putParcelable("uri", uri); + args.putString("dlimit", etDlimit.getText().toString()); + args.putString("tlimit", etTlimit.getText().toString()); new SimpleTask() { @Override protected void onPreExecute(Bundle args) { btnUpload.setEnabled(false); + etDlimit.setEnabled(false); + etTlimit.setEnabled(false); pbUpload.setVisibility(View.VISIBLE); } @Override protected void onPostExecute(Bundle args) { btnUpload.setEnabled(true); + etDlimit.setEnabled(true); + etTlimit.setEnabled(true); pbUpload.setVisibility(View.GONE); } @Override protected String onExecute(Context context, Bundle args) throws Throwable { Uri uri = args.getParcelable("uri"); + String _dlimit = args.getString("dlimit"); + String _tlimit = args.getString("tlimit"); + if (uri == null) throw new FileNotFoundException("uri"); @@ -327,6 +345,9 @@ public class FragmentDialogInsertLink extends FragmentDialogBase { if (dfile == null) throw new FileNotFoundException("dfile"); + int dlimit = (TextUtils.isEmpty(_dlimit) ? FFSend.FF_DEFAULT_DLIMIT : Integer.parseInt(_dlimit)); + int tlimit = (TextUtils.isEmpty(_tlimit) ? FFSend.FF_DEFAULT_TLIMIT : Integer.parseInt(_tlimit)); + args.putString("title", dfile.getName()); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); @@ -334,7 +355,7 @@ public class FragmentDialogInsertLink extends FragmentDialogBase { ContentResolver resolver = context.getContentResolver(); try (InputStream is = resolver.openInputStream(uri)) { - return FFSend.upload(is, dfile, 10, 60 * 60, server); + return FFSend.upload(is, dfile, dlimit, tlimit * 60 * 60, server); } } diff --git a/app/src/main/res/layout/dialog_insert_link.xml b/app/src/main/res/layout/dialog_insert_link.xml index 66c4ae2132..7e3ae81415 100644 --- a/app/src/main/res/layout/dialog_insert_link.xml +++ b/app/src/main/res/layout/dialog_insert_link.xml @@ -138,5 +138,57 @@ app:layout_constraintBottom_toBottomOf="@id/btnUpload" app:layout_constraintStart_toEndOf="@id/btnUpload" app:layout_constraintTop_toTopOf="@id/btnUpload" /> + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eeda891649..d724aae65f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1420,6 +1420,8 @@ Fetch title This will fetch the title at the entered address FFSend + Download limit (count) + Time limit (hours) Add image Insert