first step
This commit is contained in:
parent
b76890e320
commit
8a3a2d62db
9 changed files with 150 additions and 12 deletions
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="asgardius.page.s3manager">
|
package="asgardius.page.s3manager" >
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission
|
<uses-permission
|
||||||
|
@ -19,14 +19,17 @@
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.AsgardiusS3Manager"
|
android:theme="@style/Theme.AsgardiusS3Manager"
|
||||||
tools:targetApi="31">
|
tools:targetApi="31" >
|
||||||
|
<activity
|
||||||
|
android:name=".ObjectPolicy"
|
||||||
|
android:exported="false" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".BucketPolicy"
|
android:name=".BucketPolicy"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".CorsConfig"
|
android:name=".CorsConfig"
|
||||||
android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize|screenLayout|uiMode|keyboardHidden"
|
android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize|screenLayout|uiMode|keyboardHidden"
|
||||||
android:exported="false">
|
android:exported="false" >
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.app.lib_name"
|
android:name="android.app.lib_name"
|
||||||
android:value="" />
|
android:value="" />
|
||||||
|
@ -35,7 +38,7 @@
|
||||||
android:name=".Settings"
|
android:name=".Settings"
|
||||||
android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize|screenLayout|uiMode|keyboardHidden"
|
android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize|screenLayout|uiMode|keyboardHidden"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:label="@string/settings">
|
android:label="@string/settings" >
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.app.lib_name"
|
android:name="android.app.lib_name"
|
||||||
android:value="" />
|
android:value="" />
|
||||||
|
@ -43,7 +46,7 @@
|
||||||
<activity
|
<activity
|
||||||
android:name=".ObjectInfo"
|
android:name=".ObjectInfo"
|
||||||
android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize|screenLayout|uiMode|keyboardHidden"
|
android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize|screenLayout|uiMode|keyboardHidden"
|
||||||
android:exported="false">
|
android:exported="false" >
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.app.lib_name"
|
android:name="android.app.lib_name"
|
||||||
android:value="" />
|
android:value="" />
|
||||||
|
@ -105,7 +108,7 @@
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize|screenLayout|uiMode|keyboardHidden"
|
android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize|screenLayout|uiMode|keyboardHidden"
|
||||||
android:exported="true">
|
android:exported="true" >
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ import com.amazonaws.services.s3.AmazonS3Client;
|
||||||
import com.amazonaws.services.s3.S3ClientOptions;
|
import com.amazonaws.services.s3.S3ClientOptions;
|
||||||
|
|
||||||
public class BucketPolicy extends AppCompatActivity {
|
public class BucketPolicy extends AppCompatActivity {
|
||||||
String username, password, endpoint, bucket, location, title;
|
String username, password, endpoint, bucket, location;
|
||||||
Region region;
|
Region region;
|
||||||
S3ClientOptions s3ClientOptions;
|
S3ClientOptions s3ClientOptions;
|
||||||
AWSCredentials myCredentials;
|
AWSCredentials myCredentials;
|
||||||
|
@ -34,7 +34,6 @@ public class BucketPolicy extends AppCompatActivity {
|
||||||
simpleProgressBar = (ProgressBar) findViewById(R.id.simpleProgressBar);
|
simpleProgressBar = (ProgressBar) findViewById(R.id.simpleProgressBar);
|
||||||
permission = (TextView) findViewById(R.id.permission);
|
permission = (TextView) findViewById(R.id.permission);
|
||||||
endpoint = getIntent().getStringExtra("endpoint");
|
endpoint = getIntent().getStringExtra("endpoint");
|
||||||
title = getIntent().getStringExtra("title");
|
|
||||||
username = getIntent().getStringExtra("username");
|
username = getIntent().getStringExtra("username");
|
||||||
password = getIntent().getStringExtra("password");
|
password = getIntent().getStringExtra("password");
|
||||||
bucket = getIntent().getStringExtra("bucket");
|
bucket = getIntent().getStringExtra("bucket");
|
||||||
|
|
|
@ -190,7 +190,7 @@ public class BucketSelect extends AppCompatActivity {
|
||||||
} else if (menuItem.getTitle() == getResources().getString(R.string.cors_config)) {
|
} else if (menuItem.getTitle() == getResources().getString(R.string.cors_config)) {
|
||||||
corsConfig(Name.get(position).toString());
|
corsConfig(Name.get(position).toString());
|
||||||
} else if (menuItem.getTitle() == getResources().getString(R.string.bucket_policy)) {
|
} else if (menuItem.getTitle() == getResources().getString(R.string.bucket_policy)) {
|
||||||
aclConfig(Name.get(position).toString());
|
policyConfig(Name.get(position).toString());
|
||||||
} else if (menuItem.getTitle() == getResources().getString(R.string.file_del)) {
|
} else if (menuItem.getTitle() == getResources().getString(R.string.file_del)) {
|
||||||
//Toast.makeText(BucketSelect.this, getResources().getString(R.string.pending_feature), Toast.LENGTH_SHORT).show();
|
//Toast.makeText(BucketSelect.this, getResources().getString(R.string.pending_feature), Toast.LENGTH_SHORT).show();
|
||||||
delete(prefix + Name.get(position).toString());
|
delete(prefix + Name.get(position).toString());
|
||||||
|
@ -390,7 +390,7 @@ public class BucketSelect extends AppCompatActivity {
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void aclConfig(String bucket) {
|
private void policyConfig(String bucket) {
|
||||||
Intent intent = new Intent(this, BucketPolicy.class);
|
Intent intent = new Intent(this, BucketPolicy.class);
|
||||||
intent.putExtra("endpoint", endpoint);
|
intent.putExtra("endpoint", endpoint);
|
||||||
intent.putExtra("username", username);
|
intent.putExtra("username", username);
|
||||||
|
|
|
@ -24,7 +24,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class CorsConfig extends AppCompatActivity {
|
public class CorsConfig extends AppCompatActivity {
|
||||||
String username, password, endpoint, bucket, location, title;
|
String username, password, endpoint, bucket, location;
|
||||||
URI pdfendpoint;
|
URI pdfendpoint;
|
||||||
Region region;
|
Region region;
|
||||||
S3ClientOptions s3ClientOptions;
|
S3ClientOptions s3ClientOptions;
|
||||||
|
@ -44,7 +44,6 @@ public class CorsConfig extends AppCompatActivity {
|
||||||
setContentView(R.layout.activity_cors_config);
|
setContentView(R.layout.activity_cors_config);
|
||||||
simpleProgressBar = (ProgressBar) findViewById(R.id.simpleProgressBar);
|
simpleProgressBar = (ProgressBar) findViewById(R.id.simpleProgressBar);
|
||||||
endpoint = getIntent().getStringExtra("endpoint");
|
endpoint = getIntent().getStringExtra("endpoint");
|
||||||
title = getIntent().getStringExtra("title");
|
|
||||||
username = getIntent().getStringExtra("username");
|
username = getIntent().getStringExtra("username");
|
||||||
password = getIntent().getStringExtra("password");
|
password = getIntent().getStringExtra("password");
|
||||||
bucket = getIntent().getStringExtra("bucket");
|
bucket = getIntent().getStringExtra("bucket");
|
||||||
|
|
57
app/src/main/java/asgardius/page/s3manager/ObjectPolicy.java
Normal file
57
app/src/main/java/asgardius/page/s3manager/ObjectPolicy.java
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
package asgardius.page.s3manager;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.ProgressBar;
|
||||||
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.amazonaws.auth.AWSCredentials;
|
||||||
|
import com.amazonaws.auth.BasicAWSCredentials;
|
||||||
|
import com.amazonaws.regions.Region;
|
||||||
|
import com.amazonaws.services.s3.AmazonS3;
|
||||||
|
import com.amazonaws.services.s3.AmazonS3Client;
|
||||||
|
import com.amazonaws.services.s3.S3ClientOptions;
|
||||||
|
|
||||||
|
public class ObjectPolicy extends AppCompatActivity {
|
||||||
|
String username, password, endpoint, bucket, location, filename, title;
|
||||||
|
Region region;
|
||||||
|
S3ClientOptions s3ClientOptions;
|
||||||
|
AWSCredentials myCredentials;
|
||||||
|
AmazonS3 s3client;
|
||||||
|
boolean style;
|
||||||
|
ProgressBar simpleProgressBar;
|
||||||
|
TextView permission;
|
||||||
|
Button setpublic, setprivate;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
setContentView(R.layout.activity_object_policy);
|
||||||
|
simpleProgressBar = (ProgressBar) findViewById(R.id.simpleProgressBar);
|
||||||
|
permission = (TextView) findViewById(R.id.permission);
|
||||||
|
endpoint = getIntent().getStringExtra("endpoint");
|
||||||
|
filename = getIntent().getStringExtra("filename");
|
||||||
|
username = getIntent().getStringExtra("username");
|
||||||
|
password = getIntent().getStringExtra("password");
|
||||||
|
bucket = getIntent().getStringExtra("bucket");
|
||||||
|
title = getIntent().getStringExtra("title");
|
||||||
|
style = getIntent().getBooleanExtra("style", false);
|
||||||
|
location = getIntent().getStringExtra("region");
|
||||||
|
getSupportActionBar().setTitle(title);
|
||||||
|
region = Region.getRegion(location);
|
||||||
|
s3ClientOptions = S3ClientOptions.builder().build();
|
||||||
|
myCredentials = new BasicAWSCredentials(username, password);
|
||||||
|
try {
|
||||||
|
s3client = new AmazonS3Client(myCredentials, region);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
s3client.setEndpoint(endpoint);
|
||||||
|
s3ClientOptions.setPathStyleAccess(style);
|
||||||
|
s3client.setS3ClientOptions(s3ClientOptions);
|
||||||
|
setprivate = (Button)findViewById(R.id.set_private);
|
||||||
|
setpublic = (Button)findViewById(R.id.set_public);
|
||||||
|
}
|
||||||
|
}
|
|
@ -396,6 +396,8 @@ public class ObjectSelect extends AppCompatActivity {
|
||||||
} else if (menuItem.getTitle() == getResources().getString(R.string.download_folder)) {
|
} else if (menuItem.getTitle() == getResources().getString(R.string.download_folder)) {
|
||||||
//Toast.makeText(ObjectSelect.this, getResources().getString(R.string.pending_feature), Toast.LENGTH_SHORT).show();
|
//Toast.makeText(ObjectSelect.this, getResources().getString(R.string.pending_feature), Toast.LENGTH_SHORT).show();
|
||||||
download(Name.get(position).toString(), true);
|
download(Name.get(position).toString(), true);
|
||||||
|
} else if (menuItem.getTitle() == getResources().getString(R.string.bucket_policy)) {
|
||||||
|
policyConfig(prefix + Name.get(position).toString(), Name.get(position).toString());
|
||||||
} else if (menuItem.getTitle() == getResources().getString(R.string.create_link)) {
|
} else if (menuItem.getTitle() == getResources().getString(R.string.create_link)) {
|
||||||
share( Name.get(position).toString(), Img.get(position).equals(R.drawable.audiofile) || Img.get(position).equals(R.drawable.videofile));
|
share( Name.get(position).toString(), Img.get(position).equals(R.drawable.audiofile) || Img.get(position).equals(R.drawable.videofile));
|
||||||
} else if (menuItem.getTitle() == getResources().getString(R.string.object_info)) {
|
} else if (menuItem.getTitle() == getResources().getString(R.string.object_info)) {
|
||||||
|
@ -428,6 +430,8 @@ public class ObjectSelect extends AppCompatActivity {
|
||||||
if (menuItem.getTitle() == getResources().getString(R.string.download_file)) {
|
if (menuItem.getTitle() == getResources().getString(R.string.download_file)) {
|
||||||
//Toast.makeText(ObjectSelect.this, getResources().getString(R.string.pending_feature), Toast.LENGTH_SHORT).show();
|
//Toast.makeText(ObjectSelect.this, getResources().getString(R.string.pending_feature), Toast.LENGTH_SHORT).show();
|
||||||
download(Name.get(position).toString(), false);
|
download(Name.get(position).toString(), false);
|
||||||
|
} else if (menuItem.getTitle() == getResources().getString(R.string.bucket_policy)) {
|
||||||
|
policyConfig(prefix + Name.get(position).toString(), Name.get(position).toString());
|
||||||
} else if (menuItem.getTitle() == getResources().getString(R.string.upload_file_here)) {
|
} else if (menuItem.getTitle() == getResources().getString(R.string.upload_file_here)) {
|
||||||
//Toast.makeText(ObjectSelect.this, getResources().getString(R.string.pending_feature), Toast.LENGTH_SHORT).show();
|
//Toast.makeText(ObjectSelect.this, getResources().getString(R.string.pending_feature), Toast.LENGTH_SHORT).show();
|
||||||
upload(false);
|
upload(false);
|
||||||
|
@ -732,6 +736,20 @@ public class ObjectSelect extends AppCompatActivity {
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void policyConfig(String filename, String title) {
|
||||||
|
Intent intent = new Intent(this, ObjectPolicy.class);
|
||||||
|
intent.putExtra("endpoint", endpoint);
|
||||||
|
intent.putExtra("username", username);
|
||||||
|
intent.putExtra("password", password);
|
||||||
|
intent.putExtra("bucket", bucket);
|
||||||
|
intent.putExtra("filename", filename);
|
||||||
|
intent.putExtra("region", location);
|
||||||
|
intent.putExtra("style", style);
|
||||||
|
intent.putExtra("title", title);
|
||||||
|
intent.putExtra("pdfendpoint", pdfendpoint);
|
||||||
|
startActivity(intent);
|
||||||
|
}
|
||||||
|
|
||||||
public void copyName (String name) {
|
public void copyName (String name) {
|
||||||
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
|
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
|
||||||
ClipData clip;
|
ClipData clip;
|
||||||
|
|
54
app/src/main/res/layout/activity_object_policy.xml
Normal file
54
app/src/main/res/layout/activity_object_policy.xml
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:context=".ObjectPolicy">
|
||||||
|
|
||||||
|
<androidx.core.widget.NestedScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
tools:ignore="MissingConstraints">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/permission"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textAlignment="center"
|
||||||
|
android:textSize="25sp"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/set_public"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="70dp"
|
||||||
|
android:text="@string/set_public_bucket"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/set_private"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="70dp"
|
||||||
|
android:text="@string/set_private_bucket"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/simpleProgressBar"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="fill_parent"
|
||||||
|
android:max="100"
|
||||||
|
android:progress="50"
|
||||||
|
android:padding="20dp"
|
||||||
|
tools:ignore="MissingConstraints"
|
||||||
|
android:indeterminate="true" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -25,6 +25,10 @@
|
||||||
android:id="@+id/copy_name"
|
android:id="@+id/copy_name"
|
||||||
android:title="@string/copy_name" />
|
android:title="@string/copy_name" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/acl_config"
|
||||||
|
android:title="@string/bucket_policy" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/deletefolder"
|
android:id="@+id/deletefolder"
|
||||||
android:title="@string/file_del" />
|
android:title="@string/file_del" />
|
||||||
|
|
|
@ -25,6 +25,10 @@
|
||||||
android:id="@+id/copy_name"
|
android:id="@+id/copy_name"
|
||||||
android:title="@string/copy_name" />
|
android:title="@string/copy_name" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/acl_config"
|
||||||
|
android:title="@string/bucket_policy" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/deletefile"
|
android:id="@+id/deletefile"
|
||||||
android:title="@string/file_del" />
|
android:title="@string/file_del" />
|
||||||
|
|
Loading…
Reference in a new issue