Compare commits
9 commits
Author | SHA1 | Date | |
---|---|---|---|
0c59f14fd5 | |||
6a84adfc13 | |||
4c1b1cbbcf | |||
27d415a8d2 | |||
19d6e682b8 | |||
f5447f84b6 | |||
34d176efe1 | |||
7149bd22fc | |||
b47a7c8ab6 |
30 changed files with 353 additions and 112 deletions
10
.idea/deploymentTargetSelector.xml
Normal file
10
.idea/deploymentTargetSelector.xml
Normal 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>
|
|
@ -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
11
.idea/migrations.xml
Normal 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>
|
|
@ -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
252
.idea/other.xml
Normal 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>
|
|
@ -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>
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package asgardius.page.s3music;
|
package asgardius.page.s3musicmk2;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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;
|
|
@ -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;
|
|
@ -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;
|
|
@ -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;
|
|
@ -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;
|
|
@ -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("/");
|
|
@ -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;
|
|
@ -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;
|
|
@ -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;
|
|
@ -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 {
|
||||||
|
|
|
@ -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.
|
|
@ -1,4 +1,4 @@
|
||||||
package asgardius.page.s3music;
|
package asgardius.page.s3musicmk2;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package asgardius.page.s3music;
|
package asgardius.page.s3musicmk2;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package asgardius.page.s3music;
|
package asgardius.page.s3musicmk2;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
2
fastlane/metadata/android/en-US/changelogs/12.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/12.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
* Dependencies upgraded
|
||||||
|
* Fixed large file list being truncate
|
|
@ -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 |
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue