Compare commits

..

9 commits
0.2.0 ... main

Author SHA1 Message Date
0c59f14fd5 new release 2024-08-20 10:06:15 -07:00
6a84adfc13 update readme 2024-08-10 11:44:17 -07:00
4c1b1cbbcf test release 2024-08-10 11:07:17 -07:00
27d415a8d2 test release 2024-08-10 11:04:40 -07:00
19d6e682b8 update images 2024-08-10 07:30:02 -07:00
f5447f84b6 deprecation 2024-01-29 08:42:13 -07:00
34d176efe1 new release 2023-12-07 05:44:20 -07:00
7149bd22fc update readme 2023-10-18 16:47:36 -07:00
b47a7c8ab6 update readme 2023-10-18 16:45:18 -07:00
30 changed files with 353 additions and 112 deletions

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetSelector">
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
</SelectionState>
</selectionStates>
</component>
</project>

View file

@ -4,16 +4,26 @@
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
<option name="testRunner" value="GRADLE" /> <option name="externalProjectPath" value="/data/2/asgardius/StudioProjects/s3music" />
<option name="distributionType" value="DEFAULT_WRAPPED" /> <option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="JDK" />
<option name="modules"> <option name="modules">
<set> <set>
<option value="$PROJECT_DIR$" /> <option value="/data/2/asgardius/StudioProjects/s3music" />
<option value="$PROJECT_DIR$/app" /> <option value="/data/2/asgardius/StudioProjects/s3music/app" />
</set> </set>
</option> </option>
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings>
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="/data/2/asgardius/StudioProjects/s3music" />
<option value="/data/2/asgardius/StudioProjects/s3music/app" />
</set>
</option>
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings> </GradleProjectSettings>
</option> </option>
</component> </component>

11
.idea/migrations.xml Normal file
View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="/data/2/asgardius/StudioProjects/s3music" />
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

View file

@ -27,7 +27,7 @@
</map> </map>
</option> </option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

252
.idea/other.xml Normal file
View file

@ -0,0 +1,252 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="direct_access_persist.xml">
<option name="deviceSelectionList">
<list>
<PersistentDeviceSelectionData>
<option name="api" value="27" />
<option name="brand" value="DOCOMO" />
<option name="codename" value="F01L" />
<option name="id" value="F01L" />
<option name="manufacturer" value="FUJITSU" />
<option name="name" value="F-01L" />
<option name="screenDensity" value="360" />
<option name="screenX" value="720" />
<option name="screenY" value="1280" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="28" />
<option name="brand" value="DOCOMO" />
<option name="codename" value="SH-01L" />
<option name="id" value="SH-01L" />
<option name="manufacturer" value="SHARP" />
<option name="name" value="AQUOS sense2 SH-01L" />
<option name="screenDensity" value="480" />
<option name="screenX" value="1080" />
<option name="screenY" value="2160" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="31" />
<option name="brand" value="samsung" />
<option name="codename" value="a51" />
<option name="id" value="a51" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy A51" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="google" />
<option name="codename" value="akita" />
<option name="id" value="akita" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 8a" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="samsung" />
<option name="codename" value="b0q" />
<option name="id" value="b0q" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S22 Ultra" />
<option name="screenDensity" value="600" />
<option name="screenX" value="1440" />
<option name="screenY" value="3088" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="32" />
<option name="brand" value="google" />
<option name="codename" value="bluejay" />
<option name="id" value="bluejay" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 6a" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="29" />
<option name="brand" value="samsung" />
<option name="codename" value="crownqlteue" />
<option name="id" value="crownqlteue" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Note9" />
<option name="screenDensity" value="420" />
<option name="screenX" value="2220" />
<option name="screenY" value="1080" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="samsung" />
<option name="codename" value="dm3q" />
<option name="id" value="dm3q" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S23 Ultra" />
<option name="screenDensity" value="600" />
<option name="screenX" value="1440" />
<option name="screenY" value="3088" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="google" />
<option name="codename" value="felix" />
<option name="id" value="felix" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel Fold" />
<option name="screenDensity" value="420" />
<option name="screenX" value="2208" />
<option name="screenY" value="1840" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="google" />
<option name="codename" value="felix_camera" />
<option name="id" value="felix_camera" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel Fold (Camera-enabled)" />
<option name="screenDensity" value="420" />
<option name="screenX" value="2208" />
<option name="screenY" value="1840" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="samsung" />
<option name="codename" value="gts8uwifi" />
<option name="id" value="gts8uwifi" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Tab S8 Ultra" />
<option name="screenDensity" value="320" />
<option name="screenX" value="1848" />
<option name="screenY" value="2960" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="google" />
<option name="codename" value="husky" />
<option name="id" value="husky" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 8 Pro" />
<option name="screenDensity" value="390" />
<option name="screenX" value="1008" />
<option name="screenY" value="2244" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="30" />
<option name="brand" value="motorola" />
<option name="codename" value="java" />
<option name="id" value="java" />
<option name="manufacturer" value="Motorola" />
<option name="name" value="G20" />
<option name="screenDensity" value="280" />
<option name="screenX" value="720" />
<option name="screenY" value="1600" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="google" />
<option name="codename" value="lynx" />
<option name="id" value="lynx" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 7a" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="31" />
<option name="brand" value="google" />
<option name="codename" value="oriole" />
<option name="id" value="oriole" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 6" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="google" />
<option name="codename" value="panther" />
<option name="id" value="panther" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 7" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="samsung" />
<option name="codename" value="q5q" />
<option name="id" value="q5q" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Z Fold5" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1812" />
<option name="screenY" value="2176" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="30" />
<option name="brand" value="google" />
<option name="codename" value="r11" />
<option name="id" value="r11" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel Watch" />
<option name="screenDensity" value="320" />
<option name="screenX" value="384" />
<option name="screenY" value="384" />
<option name="type" value="WEAR_OS" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="30" />
<option name="brand" value="google" />
<option name="codename" value="redfin" />
<option name="id" value="redfin" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 5" />
<option name="screenDensity" value="440" />
<option name="screenX" value="1080" />
<option name="screenY" value="2340" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="google" />
<option name="codename" value="shiba" />
<option name="id" value="shiba" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 8" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="google" />
<option name="codename" value="tangorpro" />
<option name="id" value="tangorpro" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel Tablet" />
<option name="screenDensity" value="320" />
<option name="screenX" value="1600" />
<option name="screenY" value="2560" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="29" />
<option name="brand" value="samsung" />
<option name="codename" value="x1q" />
<option name="id" value="x1q" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S20" />
<option name="screenDensity" value="480" />
<option name="screenX" value="1440" />
<option name="screenY" value="3200" />
</PersistentDeviceSelectionData>
</list>
</option>
</component>
</project>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="VcsDirectoryMappings"> <component name="VcsDirectoryMappings">
<mapping directory="/data/2/asgardius/StudioProjects/s3music" vcs="Git" />
<mapping directory="$PROJECT_DIR$" vcs="Git" /> <mapping directory="$PROJECT_DIR$" vcs="Git" />
</component> </component>
</project> </project>

View file

@ -15,13 +15,9 @@ This app is based on Asgardius S3 Manager
This app is a work in progress, so it have some bugs that need to be fixed This app is a work in progress, so it have some bugs that need to be fixed
[<img src="app-store-badges/fdroid.png"
alt="Get it on F-Droid"
height="80">](https://f-droid.org/packages/asgardius.page.s3music/)
[<img src="app-store-badges/play-store.png" [<img src="app-store-badges/play-store.png"
alt="Get it on Google Play" alt="Get it on Google Play"
height="80">](https://play.google.com/store/apps/details?id=asgardius.page.s3music) height="80">](https://play.google.com/store/apps/details?id=asgardius.page.s3musicmk2)
F-droid release may take a few days to get updated [More info here](https://www.f-droid.org/en/docs/FAQ_-_App_Developers/#ive-published-a-new-release-why-is-it-not-in-the-repository) F-droid release may take a few days to get updated [More info here](https://www.f-droid.org/en/docs/FAQ_-_App_Developers/#ive-published-a-new-release-why-is-it-not-in-the-repository)
@ -29,7 +25,7 @@ F-droid release may take a few days to get updated [More info here](https://www.
You can get help at https://forum.asgardius.company/t/s3-manager You can get help at https://forum.asgardius.company/t/s3-manager
You can find app documentation at https://wiki.asgardius.company/shelves/asgardius-s3-manager-english (english) or https://wiki.asgardius.company/shelves/asgardius-s3-manager-espanol (spanish) You can find app documentation at https://wiki-en.asgardius.company/index.php?title=Asgardius_S3_Manager_Documentation (english) or https://wiki-es.asgardius.company/index.php?title=Documentacion_Asgardius_S3_Manager (spanish)
Supported languages Supported languages

View file

@ -6,11 +6,11 @@ android {
compileSdk 33 compileSdk 33
defaultConfig { defaultConfig {
applicationId "asgardius.page.s3music" applicationId "asgardius.page.s3musicmk2"
minSdk 21 minSdk 21
targetSdk 33 targetSdk 34
versionCode 11 versionCode 2
versionName "0.2.0" versionName "0.3.1"
setProperty("archivesBaseName", "s3-music-$versionName") setProperty("archivesBaseName", "s3-music-$versionName")
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@ -29,7 +29,7 @@ android {
buildFeatures { buildFeatures {
viewBinding true viewBinding true
} }
namespace 'asgardius.page.s3music' namespace 'asgardius.page.s3musicmk2'
} }
dependencies { dependencies {
@ -37,13 +37,13 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.8.0' implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
def exoplayer_version = "2.18.7" def exoplayer_version = "2.19.1"
implementation "com.google.android.exoplayer:exoplayer:$exoplayer_version" implementation "com.google.android.exoplayer:exoplayer:$exoplayer_version"
implementation "com.google.android.exoplayer:extension-mediasession:$exoplayer_version" implementation "com.google.android.exoplayer:extension-mediasession:$exoplayer_version"
implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation"com.otaliastudios:zoomlayout:1.9.0" implementation"com.otaliastudios:zoomlayout:1.9.0"
// BEGIN AWS DEPENDENCIES // BEGIN AWS DEPENDENCIES
def aws_version = "2.71.0" def aws_version = "2.76.1"
implementation "com.amazonaws:aws-android-sdk-s3:$aws_version" implementation "com.amazonaws:aws-android-sdk-s3:$aws_version"
implementation ("com.amazonaws:aws-android-sdk-mobile-client:$aws_version") { transitive = true } implementation ("com.amazonaws:aws-android-sdk-mobile-client:$aws_version") { transitive = true }
// END AWS DEPENDENCIES // END AWS DEPENDENCIES

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.content.Context; import android.content.Context;

View file

@ -9,8 +9,8 @@
<H3>Created by Page Asgardius</H3> <H3>Created by Page Asgardius</H3>
<H3>Libraries used in this app</H3> <H3>Libraries used in this app</H3>
<ul> <ul>
<li>Amazon Web Services SDK 2.71.0</li> <li>Amazon Web Services SDK 2.76.1</li>
<li>ExoPlayer 2.18.7</li> <li>ExoPlayer 2.19.1</li>
<li>Adwaita Icon Theme for GNOME 43</li> <li>Adwaita Icon Theme for GNOME 43</li>
<li>Font Awesome icons</li> <li>Font Awesome icons</li>
</ul> </ul>

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.content.Intent; import android.content.Intent;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.content.Context; import android.content.Context;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
@ -16,13 +16,11 @@ import com.amazonaws.regions.Region;
import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.S3ClientOptions; import com.amazonaws.services.s3.S3ClientOptions;
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
import com.amazonaws.services.s3.model.ListObjectsRequest; import com.amazonaws.services.s3.model.ListObjectsRequest;
import com.amazonaws.services.s3.model.ObjectListing; import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.S3ObjectSummary; import com.amazonaws.services.s3.model.S3ObjectSummary;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
@ -117,19 +115,6 @@ public class ObjectSelect extends AppCompatActivity {
//i++; //i++;
} }
while (result.isTruncated()) {
result = s3client.listNextBatchOfObjects (result);
od = result.getCommonPrefixes();
for (String os : od) {
filename = os.split("/");
if (filename.length == treelevel+1) {
object.add(filename[treelevel]+"/");
}
//i++;
}
}
//This get file list //This get file list
List<S3ObjectSummary> ob = result.getObjectSummaries(); List<S3ObjectSummary> ob = result.getObjectSummaries();
for (S3ObjectSummary os : ob) { for (S3ObjectSummary os : ob) {
@ -143,8 +128,23 @@ public class ObjectSelect extends AppCompatActivity {
//i++; //i++;
} }
//Get next batch
while (result.isTruncated()) { while (result.isTruncated()) {
result = s3client.listNextBatchOfObjects (result); result = s3client.listNextBatchOfObjects (result);
//This get folder list
od = result.getCommonPrefixes();
for (String os : od) {
filename = os.split("/");
if (filename.length == treelevel+1) {
object.add(filename[treelevel]+"/");
}
//i++;
}
//This get file list
ob = result.getObjectSummaries(); ob = result.getObjectSummaries();
for (S3ObjectSummary os : ob) { for (S3ObjectSummary os : ob) {
filename = os.getKey().split("/"); filename = os.getKey().split("/");

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest; import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.content.Context; import android.content.Context;
import android.view.GestureDetector; import android.view.GestureDetector;

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.content.Context; import android.content.Context;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Intent; import android.content.Intent;
@ -19,7 +19,7 @@ import com.google.android.material.switchmaterial.SwitchMaterial;
import java.io.File; import java.io.File;
import asgardius.page.s3music.databinding.ActivitySettingsBinding; import asgardius.page.s3musicmk2.databinding.ActivitySettingsBinding;
public class Settings extends AppCompatActivity { public class Settings extends AppCompatActivity {

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import android.app.NotificationChannel; import android.app.NotificationChannel;
import android.app.NotificationManager; import android.app.NotificationManager;
@ -212,19 +212,8 @@ public class VideoPlayer extends AppCompatActivity {
playerNotificationManager.setPlayer(player); playerNotificationManager.setPlayer(player);
if (isplaylist) { if (isplaylist) {
for (int i = 0; i < queue.size(); i++) { for (int i = 0; i < queue.size(); i++) {
if (names.get(i).endsWith(".m3u8")) {
MediaItem mediaItem = MediaItem.fromUri(URLify(queue.get(i))); MediaItem mediaItem = MediaItem.fromUri(URLify(queue.get(i)));
player.addMediaItem(mediaItem); player.addMediaItem(mediaItem);
} else {
mediaSource = new ProgressiveMediaSource.Factory(
new CacheDataSource.Factory()
.setCache(simpleCache)
.setUpstreamDataSourceFactory(new DefaultHttpDataSource.Factory()
.setUserAgent("S3 Manager"))
.setFlags(CacheDataSource.FLAG_IGNORE_CACHE_ON_ERROR)
).createMediaSource(MediaItem.fromUri(URLify(queue.get(i))));
player.addMediaSource(mediaSource);
}
} }
getSupportActionBar().setTitle(names.get(player.getCurrentMediaItemIndex())); getSupportActionBar().setTitle(names.get(player.getCurrentMediaItemIndex()));
player.prepare(); player.prepare();
@ -234,19 +223,8 @@ public class VideoPlayer extends AppCompatActivity {
System.out.println("Playing m3u file"); System.out.println("Playing m3u file");
} }
} else { } else {
if (title.endsWith(".m3u8")) {
MediaItem mediaItem = MediaItem.fromUri(URLify(videoURL)); MediaItem mediaItem = MediaItem.fromUri(URLify(videoURL));
player.setMediaItem(mediaItem); player.setMediaItem(mediaItem);
} else {
mediaSource = new ProgressiveMediaSource.Factory(
new CacheDataSource.Factory()
.setCache(simpleCache)
.setUpstreamDataSourceFactory(new DefaultHttpDataSource.Factory()
.setUserAgent("S3 Manager"))
.setFlags(CacheDataSource.FLAG_IGNORE_CACHE_ON_ERROR)
).createMediaSource(MediaItem.fromUri(URLify(videoURL)));
player.setMediaSource(mediaSource);
}
player.prepare(); player.prepare();
} }
// Start the playback. // Start the playback.
@ -380,36 +358,14 @@ public class VideoPlayer extends AppCompatActivity {
if (isplaylist) { if (isplaylist) {
player.clearMediaItems(); player.clearMediaItems();
for (int i = 0; i < queue.size(); i++) { for (int i = 0; i < queue.size(); i++) {
if (names.get(i).endsWith(".m3u8")) {
MediaItem mediaItem = MediaItem.fromUri(queue.get(i)); MediaItem mediaItem = MediaItem.fromUri(queue.get(i));
player.addMediaItem(mediaItem); player.addMediaItem(mediaItem);
} else {
mediaSource = new ProgressiveMediaSource.Factory(
new CacheDataSource.Factory()
.setCache(simpleCache)
.setUpstreamDataSourceFactory(new DefaultHttpDataSource.Factory()
.setUserAgent("S3 Manager"))
.setFlags(CacheDataSource.FLAG_IGNORE_CACHE_ON_ERROR)
).createMediaSource(MediaItem.fromUri(Uri.parse(queue.get(i))));
player.addMediaSource(mediaSource);
}
} }
player.prepare(); player.prepare();
player.seekTo(names.indexOf(title), 0); player.seekTo(names.indexOf(title), 0);
} else { } else {
if (title.endsWith(".m3u8")) {
MediaItem mediaItem = MediaItem.fromUri(videoURL); MediaItem mediaItem = MediaItem.fromUri(videoURL);
player.setMediaItem(mediaItem); player.setMediaItem(mediaItem);
} else {
mediaSource = new ProgressiveMediaSource.Factory(
new CacheDataSource.Factory()
.setCache(simpleCache)
.setUpstreamDataSourceFactory(new DefaultHttpDataSource.Factory()
.setUserAgent("S3 Manager"))
.setFlags(CacheDataSource.FLAG_IGNORE_CACHE_ON_ERROR)
).createMediaSource(MediaItem.fromUri(Uri.parse(videoURL)));
player.setMediaSource(mediaSource);
}
player.prepare(); player.prepare();
} }
// Start the playback. // Start the playback.

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;

View file

@ -20,7 +20,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/videocache" android:text="@string/videocache"
android:textAlignment="center" android:textAlignment="center"
android:textSize="25sp"/> android:textSize="25sp"
android:visibility="gone" />
<EditText <EditText
android:id="@+id/videocache" android:id="@+id/videocache"
@ -29,13 +30,15 @@
android:focusable="true" android:focusable="true"
android:hint="@string/videocache" android:hint="@string/videocache"
android:inputType="number" android:inputType="number"
android:textColorHint="?attr/colorOnSecondary"/> android:textColorHint="?attr/colorOnSecondary"
android:visibility="gone" />
<Button <Button
android:id="@+id/clearcache" android:id="@+id/clearcache"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="70dp" android:layout_height="70dp"
android:text="@string/clearcache" /> android:text="@string/clearcache"
android:visibility="gone" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -1,4 +1,4 @@
package asgardius.page.s3music; package asgardius.page.s3musicmk2;
import org.junit.Test; import org.junit.Test;

View file

@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins { plugins {
id 'com.android.application' version '8.0.2' apply false id 'com.android.application' version '8.5.2' apply false
id 'com.android.library' version '8.0.2' apply false id 'com.android.library' version '8.5.2' apply false
} }
task clean(type: Delete) { task clean(type: Delete) {

View file

@ -0,0 +1,2 @@
* Dependencies upgraded
* Fixed large file list being truncate

View file

@ -39,6 +39,6 @@ Known not supported providers
<li>Oracle Cloud (compatibility issues with S3v4)</li> <li>Oracle Cloud (compatibility issues with S3v4)</li>
You can find app documentation at https://wiki.asgardius.company/shelves/asgardius-s3-manager-english (english) or https://wiki.asgardius.company/shelves/asgardius-s3-manager-espanol (spanish) You can find app documentation at https://wiki-en.asgardius.company/index.php?title=Asgardius_S3_Manager_Documentation (english) or https://wiki-es.asgardius.company/index.php?title=Documentacion_Asgardius_S3_Manager (spanish)
You can use MinIO or Garage to have a FOSS selfhosted server to use with this app You can use MinIO or Garage to have a FOSS selfhosted server to use with this app

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View file

@ -1,6 +1,6 @@
#Sat Aug 27 12:12:23 MST 2022 #Sat Aug 27 12:12:23 MST 2022
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME