diff --git a/.idea/misc.xml b/.idea/misc.xml index 22346e9..8f6b629 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -9,6 +9,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index aeb75d8..836c6e2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,6 +15,9 @@ android:supportsRtl="true" android:theme="@style/Theme.AsgardiusS3Manager" tools:targetApi="31"> + diff --git a/app/src/main/java/asgardius/page/s3manager/ObjectSelect.java b/app/src/main/java/asgardius/page/s3manager/ObjectSelect.java index d643671..690ad20 100644 --- a/app/src/main/java/asgardius/page/s3manager/ObjectSelect.java +++ b/app/src/main/java/asgardius/page/s3manager/ObjectSelect.java @@ -126,6 +126,9 @@ public class ObjectSelect extends AppCompatActivity { || Name.get(i).toString().endsWith(".webm") || Name.get(i).toString().endsWith(".m4v")) { Img.add(R.drawable.videofile); } + else if (Name.get(i).toString().endsWith(".htm") || Name.get(i).toString().endsWith(".html")) { + Img.add(R.drawable.webpage); + } else { Img.add(R.drawable.unknownfile); } @@ -181,7 +184,12 @@ public class ObjectSelect extends AppCompatActivity { if (Img.get(position).equals(R.drawable.folder)) { //go to subfolder explorer(Name.get(position).toString()); - } else if (Img.get(position).equals(R.drawable.audiofile) || Img.get(position).equals(R.drawable.videofile)) { + } else if (Img.get(position).equals(R.drawable.webpage)) { + //load media file + GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket, prefix + Name.get(position).toString()); + URL objectURL = s3client.generatePresignedUrl(request); + webbrowser(objectURL.toString()); + } else if (Img.get(position).equals(R.drawable.audiofile) || Img.get(position).equals(R.drawable.videofile)) { //load media file GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket, prefix + Name.get(position).toString()); URL objectURL = s3client.generatePresignedUrl(request); @@ -206,6 +214,14 @@ public class ObjectSelect extends AppCompatActivity { } + private void webbrowser (String url) { + + Intent intent = new Intent(this, WebBrowser.class); + intent.putExtra("web_url", url); + startActivity(intent); + + } + private void explorer(String object) { Intent intent = new Intent(this, ObjectSelect.class); diff --git a/app/src/main/java/asgardius/page/s3manager/WebBrowser.java b/app/src/main/java/asgardius/page/s3manager/WebBrowser.java new file mode 100644 index 0000000..4fe4339 --- /dev/null +++ b/app/src/main/java/asgardius/page/s3manager/WebBrowser.java @@ -0,0 +1,30 @@ +package asgardius.page.s3manager; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; +import android.webkit.WebView; +import android.webkit.WebViewClient; + +public class WebBrowser extends AppCompatActivity { + + private WebView npw; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_web_browser); + String webURL = getIntent().getStringExtra("web_url"); + //This initializes webview object + npw =(WebView)findViewById(R.id.webview); + npw.setWebViewClient(new MyBrowser()); + npw.loadUrl(webURL); + } + + private class MyBrowser extends WebViewClient { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + view.loadUrl(url); + return true; + } + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/webpage.png b/app/src/main/res/drawable/webpage.png new file mode 100644 index 0000000..d3479ef Binary files /dev/null and b/app/src/main/res/drawable/webpage.png differ diff --git a/app/src/main/res/layout/activity_web_browser.xml b/app/src/main/res/layout/activity_web_browser.xml new file mode 100644 index 0000000..408dd98 --- /dev/null +++ b/app/src/main/res/layout/activity_web_browser.xml @@ -0,0 +1,14 @@ + + + + + + \ 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 f42b578..3a48468 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -16,7 +16,7 @@ Connections without SSL are not allowed Endpoint URL must start with https:// File Explorer Test - Unsupported media file + Unsupported file type Video Test Cannot retrieve media file Invalid media file