diff --git a/README.md b/README.md
index dc82f5a..8c0539e 100644
--- a/README.md
+++ b/README.md
@@ -20,6 +20,8 @@ Current feature list
* File download
* pdf file reader using user provided pdf.js server
* file sharing links
+* get object info
+* get bucket info
Planned feature list
diff --git a/app/build.gradle b/app/build.gradle
index b094678..0c24d0b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@ android {
applicationId "asgardius.page.s3manager"
minSdk 24
targetSdk 33
- versionCode 14
- versionName "0.1.12"
+ versionCode 15
+ versionName "0.1.13"
setProperty("archivesBaseName", "s3-manager-$versionName")
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/app/src/main/java/asgardius/page/s3manager/Share.java b/app/src/main/java/asgardius/page/s3manager/Share.java
index 9f46d39..d46e657 100644
--- a/app/src/main/java/asgardius/page/s3manager/Share.java
+++ b/app/src/main/java/asgardius/page/s3manager/Share.java
@@ -31,7 +31,7 @@ public class Share extends AppCompatActivity {
Calendar mycal;
EditText datepick, monthpick, yearpick, hourpick, minutepick;
int date, month, year, hour, minute;
- Button share;
+ Button share, external;
public static String URLify(String str) {
str = str.trim();
@@ -73,6 +73,7 @@ public class Share extends AppCompatActivity {
hourpick = (EditText)findViewById(R.id.Hour);
minutepick = (EditText)findViewById(R.id.Minute);
share = (Button)findViewById(R.id.share);
+ external = (Button)findViewById(R.id.open_in);
endpoint = getIntent().getStringExtra("endpoint");
username = getIntent().getStringExtra("username");
password = getIntent().getStringExtra("password");
@@ -97,31 +98,55 @@ public class Share extends AppCompatActivity {
public void onClick(View view) {
//buttonaction
try {
- date = Integer.parseInt(datepick.getText().toString());
- month = Integer.parseInt(monthpick.getText().toString());
- year = Integer.parseInt(yearpick.getText().toString());
- hour = Integer.parseInt(hourpick.getText().toString());
- minute = Integer.parseInt(minutepick.getText().toString());
- mycal.set(Calendar.YEAR, year);
- mycal.set(Calendar.MONTH, month-1);
- mycal.set(Calendar.DATE, date);
- mycal.set(Calendar.HOUR, hour);
- mycal.set(Calendar.MINUTE, minute);
- mycal.set(Calendar.SECOND, 0);
- Date expiration = mycal.getTime();
- //System.out.println(expiration);
- GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket, object).withExpiration(expiration);
- URL objectURL = s3client.generatePresignedUrl(request);
- //System.out.println(URLify(objectURL.toString()));
- Intent shareIntent = new Intent(Intent.ACTION_SEND);
- shareIntent.setType("text/plain");
- shareIntent.putExtra(Intent.EXTRA_TEXT, URLify(objectURL.toString()));
- startActivity(Intent.createChooser(shareIntent, "choose one"));
+ if (datepick.getText().toString().equals("") || monthpick.getText().toString().equals("") ||
+ yearpick.getText().toString().equals("") || hourpick.getText().toString().equals("") ||
+ minutepick.getText().toString().equals("")) {
+ Toast.makeText(getApplicationContext(),getResources().getString(R.string.null_expiration_date), Toast.LENGTH_SHORT).show();
+ } else {
+ date = Integer.parseInt(datepick.getText().toString());
+ month = Integer.parseInt(monthpick.getText().toString());
+ year = Integer.parseInt(yearpick.getText().toString());
+ hour = Integer.parseInt(hourpick.getText().toString());
+ minute = Integer.parseInt(minutepick.getText().toString());
+ mycal.set(Calendar.YEAR, year);
+ mycal.set(Calendar.MONTH, month-1);
+ mycal.set(Calendar.DATE, date);
+ mycal.set(Calendar.HOUR, hour);
+ mycal.set(Calendar.MINUTE, minute);
+ mycal.set(Calendar.SECOND, 0);
+ Date expiration = mycal.getTime();
+ //System.out.println(expiration);
+ GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket, object).withExpiration(expiration);
+ URL objectURL = s3client.generatePresignedUrl(request);
+ //System.out.println(URLify(objectURL.toString()));
+ Intent shareIntent = new Intent(Intent.ACTION_SEND);
+ shareIntent.setType("text/plain");
+ shareIntent.putExtra(Intent.EXTRA_TEXT, URLify(objectURL.toString()));
+ startActivity(Intent.createChooser(shareIntent, "choose one"));
+ }
} catch (Exception e) {
Toast.makeText(getApplicationContext(),getResources().getString(R.string.invalid_expiration_date), Toast.LENGTH_SHORT).show();
}
}
});
+ external.setOnClickListener(new View.OnClickListener(){
+ @Override
+ public void onClick(View view) {
+ //buttonaction
+ try {
+ GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket, object);
+ URL objectURL = s3client.generatePresignedUrl(request);
+ //System.out.println(URLify(objectURL.toString()));
+ Intent shareIntent = new Intent(Intent.ACTION_SEND);
+ shareIntent.setType("text/plain");
+ shareIntent.putExtra(Intent.EXTRA_TEXT, URLify(objectURL.toString()));
+ startActivity(Intent.createChooser(shareIntent, "choose one"));
+ } catch (Exception e) {
+ Toast.makeText(getApplicationContext(),getResources().getString(R.string.invalid_expiration_date), Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_share.xml b/app/src/main/res/layout/activity_share.xml
index 45ed03d..aba7813 100644
--- a/app/src/main/res/layout/activity_share.xml
+++ b/app/src/main/res/layout/activity_share.xml
@@ -115,6 +115,14 @@
android:text="@string/file_share"
tools:ignore="MissingConstraints" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 28cc5e3..0eecf51 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -82,5 +82,6 @@
Abir en
Tamaño de la carpeta
Tamaño del bucket
- archivos
+ Archivos
+ Debe establecer una fecha de expiración para compartir archivos
\ 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 b5b23aa..e0b8061 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -18,6 +18,7 @@
YYYY
Create file link
Expiration date must be at most 7 days
+ You must set an expiration date to share files
Local database is corrupted. Please reinstall this app
This feature is not implemented yet
Set new bucket name
@@ -44,7 +45,7 @@
File Size
Folder Size
Bucket Size
- files
+ Files
Create new bucket
Bucket created successfully
Upload file in current folder