page search music

WORK-LDE
Lucas Delanier 2 years ago
parent 74b50aae81
commit 687d80812a

@ -9,6 +9,9 @@
<excludeFolder url="file://$MODULE_DIR$/Sources/justMUSIC/.pub" /> <excludeFolder url="file://$MODULE_DIR$/Sources/justMUSIC/.pub" />
<excludeFolder url="file://$MODULE_DIR$/Sources/justMUSIC/.dart_tool" /> <excludeFolder url="file://$MODULE_DIR$/Sources/justMUSIC/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/Sources/justMUSIC/build" /> <excludeFolder url="file://$MODULE_DIR$/Sources/justMUSIC/build" />
<excludeFolder url="file://$MODULE_DIR$/Sources/justmusic/.pub" />
<excludeFolder url="file://$MODULE_DIR$/Sources/justmusic/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/Sources/justmusic/build" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />

@ -9,6 +9,55 @@
</list> </list>
</value> </value>
</entry> </entry>
<entry key="audioplayers">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers-4.1.0/lib" />
</list>
</value>
</entry>
<entry key="audioplayers_android">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_android-3.0.2/lib" />
</list>
</value>
</entry>
<entry key="audioplayers_darwin">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_darwin-4.1.0/lib" />
</list>
</value>
</entry>
<entry key="audioplayers_linux">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_linux-2.1.0/lib" />
</list>
</value>
</entry>
<entry key="audioplayers_platform_interface">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_platform_interface-5.0.1/lib" />
</list>
</value>
</entry>
<entry key="audioplayers_web">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_web-3.1.0/lib" />
</list>
</value>
</entry>
<entry key="audioplayers_windows">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_windows-2.0.2/lib" />
</list>
</value>
</entry>
<entry key="auto_size_text"> <entry key="auto_size_text">
<value> <value>
<list> <list>
@ -86,6 +135,13 @@
</list> </list>
</value> </value>
</entry> </entry>
<entry key="file">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/file-6.1.4/lib" />
</list>
</value>
</entry>
<entry key="flutter"> <entry key="flutter">
<value> <value>
<list> <list>
@ -93,6 +149,13 @@
</list> </list>
</value> </value>
</entry> </entry>
<entry key="flutter_animated_play_button">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_animated_play_button-0.3.0/lib" />
</list>
</value>
</entry>
<entry key="flutter_lints"> <entry key="flutter_lints">
<value> <value>
<list> <list>
@ -121,6 +184,13 @@
</list> </list>
</value> </value>
</entry> </entry>
<entry key="flutter_web_plugins">
<value>
<list>
<option value="$PROJECT_DIR$/../../../../../src/flutter/packages/flutter_web_plugins/lib" />
</list>
</value>
</entry>
<entry key="font_awesome_flutter"> <entry key="font_awesome_flutter">
<value> <value>
<list> <list>
@ -163,6 +233,20 @@
</list> </list>
</value> </value>
</entry> </entry>
<entry key="ionicons">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/ionicons-0.2.2/lib" />
</list>
</value>
</entry>
<entry key="js">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/js-0.6.4/lib" />
</list>
</value>
</entry>
<entry key="lints"> <entry key="lints">
<value> <value>
<list> <list>
@ -303,6 +387,13 @@
</list> </list>
</value> </value>
</entry> </entry>
<entry key="synchronized">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/synchronized-3.1.0/lib" />
</list>
</value>
</entry>
<entry key="term_glyph"> <entry key="term_glyph">
<value> <value>
<list> <list>
@ -331,6 +422,13 @@
</list> </list>
</value> </value>
</entry> </entry>
<entry key="uuid">
<value>
<list>
<option value="$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/uuid-3.0.7/lib" />
</list>
</value>
</entry>
<entry key="vector_math"> <entry key="vector_math">
<value> <value>
<list> <list>
@ -363,6 +461,13 @@
</properties> </properties>
<CLASSES> <CLASSES>
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/async-2.9.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/async-2.9.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers-4.1.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_android-3.0.2/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_darwin-4.1.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_linux-2.1.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_platform_interface-5.0.1/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_web-3.1.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/audioplayers_windows-2.0.2/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/auto_size_text-3.0.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/auto_size_text-3.0.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/characters-1.2.1/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/characters-1.2.1/lib" />
@ -374,6 +479,8 @@
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/custom_draggable_widget-0.0.2/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/custom_draggable_widget-0.0.2/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/fake_async-1.3.1/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/fake_async-1.3.1/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/ffi-2.0.2/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/ffi-2.0.2/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/file-6.1.4/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_animated_play_button-0.3.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_lints-2.0.2/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_lints-2.0.2/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_screenutil-5.7.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_screenutil-5.7.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_signin_button-2.0.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_signin_button-2.0.0/lib" />
@ -383,6 +490,8 @@
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/gradient_borders-1.0.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/gradient_borders-1.0.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/http-0.13.5/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/http-0.13.5/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/http_parser-4.0.2/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/http_parser-4.0.2/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/ionicons-0.2.2/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/js-0.6.4/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/lints-2.0.1/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/lints-2.0.1/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/matcher-0.12.12/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/matcher-0.12.12/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/material_color_utilities-0.1.5/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/material_color_utilities-0.1.5/lib" />
@ -402,10 +511,12 @@
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/string_scanner-1.1.1/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/string_scanner-1.1.1/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/synchronized-3.1.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/term_glyph-1.2.1/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/term_glyph-1.2.1/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/test_api-0.4.12/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/test_api-0.4.12/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/text_scroll-0.2.0/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/text_scroll-0.2.0/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/typed_data-1.3.2/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/typed_data-1.3.2/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/uuid-3.0.7/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/vector_math-2.1.2/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/vector_math-2.1.2/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-4.1.4/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/win32-4.1.4/lib" />
<root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/xdg_directories-1.0.1/lib" /> <root url="file://$USER_HOME$/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/xdg_directories-1.0.1/lib" />
@ -413,6 +524,7 @@
<root url="file://$PROJECT_DIR$/../../../../../src/flutter/bin/cache/pkg/sky_engine/lib" /> <root url="file://$PROJECT_DIR$/../../../../../src/flutter/bin/cache/pkg/sky_engine/lib" />
<root url="file://$PROJECT_DIR$/../../../../../src/flutter/packages/flutter/lib" /> <root url="file://$PROJECT_DIR$/../../../../../src/flutter/packages/flutter/lib" />
<root url="file://$PROJECT_DIR$/../../../../../src/flutter/packages/flutter_test/lib" /> <root url="file://$PROJECT_DIR$/../../../../../src/flutter/packages/flutter_test/lib" />
<root url="file://$PROJECT_DIR$/../../../../../src/flutter/packages/flutter_web_plugins/lib" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES /> <SOURCES />

@ -21,6 +21,18 @@ migration:
- platform: ios - platform: ios
create_revision: 18a827f3933c19f51862dde3fa472197683249d6 create_revision: 18a827f3933c19f51862dde3fa472197683249d6
base_revision: 18a827f3933c19f51862dde3fa472197683249d6 base_revision: 18a827f3933c19f51862dde3fa472197683249d6
- platform: linux
create_revision: 18a827f3933c19f51862dde3fa472197683249d6
base_revision: 18a827f3933c19f51862dde3fa472197683249d6
- platform: macos
create_revision: 18a827f3933c19f51862dde3fa472197683249d6
base_revision: 18a827f3933c19f51862dde3fa472197683249d6
- platform: web
create_revision: 18a827f3933c19f51862dde3fa472197683249d6
base_revision: 18a827f3933c19f51862dde3fa472197683249d6
- platform: windows
create_revision: 18a827f3933c19f51862dde3fa472197683249d6
base_revision: 18a827f3933c19f51862dde3fa472197683249d6
# User provided section # User provided section

@ -1,13 +0,0 @@
gradle-wrapper.jar
/.gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
key.properties
**/*.keystore
**/*.jks

@ -1,71 +0,0 @@
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.justmusic"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
minSdkVersion flutter.minSdkVersion
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}
flutter {
source '../..'
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

@ -1,8 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.justmusic">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

@ -1,34 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.justmusic">
<application
android:label="justmusic"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
</manifest>

@ -1,6 +0,0 @@
package com.example.justmusic
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

@ -1,8 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.justmusic">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

@ -1,31 +0,0 @@
buildscript {
ext.kotlin_version = '1.6.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}

@ -1,3 +0,0 @@
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true

@ -1,5 +0,0 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip

@ -1,11 +0,0 @@
include ':app'
def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()
assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

@ -1,3 +1,4 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/Material.dart'; import 'package:flutter/Material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
@ -16,6 +17,7 @@ class _EditablePostComponentState extends State<EditablePostComponent> {
return ClipRRect( return ClipRRect(
borderRadius: BorderRadius.circular(25), borderRadius: BorderRadius.circular(25),
child: Container( child: Container(
constraints: BoxConstraints(maxWidth: 400),
width: double.infinity, width: double.infinity,
color: warningBttnColor, color: warningBttnColor,
child: Column( child: Column(
@ -32,7 +34,7 @@ class _EditablePostComponentState extends State<EditablePostComponent> {
child: ClipRRect( child: ClipRRect(
borderRadius: BorderRadius.circular(18), borderRadius: BorderRadius.circular(18),
// implement image // implement image
child: Image( child: const Image(
image: AssetImage("assets/images/exemple_cover.png"), image: AssetImage("assets/images/exemple_cover.png"),
fit: BoxFit.cover, fit: BoxFit.cover,
width: double.infinity, width: double.infinity,
@ -41,25 +43,31 @@ class _EditablePostComponentState extends State<EditablePostComponent> {
), ),
), ),
Padding( Padding(
padding: EdgeInsets.fromLTRB(15.sp, 25.sp, 15.sp, 25.sp), padding: EdgeInsets.fromLTRB(15, 25, 15, 25),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text("France, Lyon", AutoSizeText(
"France, Lyon",
style: GoogleFonts.plusJakartaSans( style: GoogleFonts.plusJakartaSans(
color: Colors.white, fontSize: 13.sp)), color: Colors.white, fontSize: 13.sp),
maxFontSize: 20,
),
Image( Image(
image: AssetImage("assets/images/camera_icon.png"), image: AssetImage("assets/images/camera_icon.png"),
width: 30, width: 30,
), ),
Text("10 Juil. 2023", AutoSizeText(
"10 Juil. 2023",
style: GoogleFonts.plusJakartaSans( style: GoogleFonts.plusJakartaSans(
color: Colors.white, fontSize: 13.sp)), color: Colors.white, fontSize: 13.sp),
maxFontSize: 20,
),
], ],
), ),
), ),
Padding( Padding(
padding: EdgeInsets.fromLTRB(15.sp, 0, 10.sp, 25.sp), padding: EdgeInsets.fromLTRB(15, 0, 10, 25),
child: SizedBox( child: SizedBox(
width: double.infinity, width: double.infinity,
child: TextFormField( child: TextFormField(
@ -68,13 +76,13 @@ class _EditablePostComponentState extends State<EditablePostComponent> {
cursorColor: primaryColor, cursorColor: primaryColor,
style: GoogleFonts.plusJakartaSans( style: GoogleFonts.plusJakartaSans(
color: Colors.white, color: Colors.white,
fontSize: 13.sp, fontSize: 13,
fontWeight: FontWeight.w300), fontWeight: FontWeight.w300),
maxLines: 4, maxLines: 4,
maxLength: 120, maxLength: 120,
decoration: InputDecoration( decoration: InputDecoration(
counterStyle: GoogleFonts.plusJakartaSans( counterStyle: GoogleFonts.plusJakartaSans(
color: grayText, fontSize: 9.sp), color: grayText, fontSize: 9),
focusedBorder: const OutlineInputBorder( focusedBorder: const OutlineInputBorder(
borderSide: borderSide:
BorderSide(width: 0, color: Colors.transparent), BorderSide(width: 0, color: Colors.transparent),
@ -93,7 +101,7 @@ class _EditablePostComponentState extends State<EditablePostComponent> {
hintText: 'Description...', hintText: 'Description...',
hintStyle: GoogleFonts.plusJakartaSans( hintStyle: GoogleFonts.plusJakartaSans(
color: grayText, color: grayText,
fontSize: 13.sp, fontSize: 13,
fontWeight: FontWeight.w300), fontWeight: FontWeight.w300),
), ),
), ),

@ -0,0 +1,71 @@
import 'package:flutter/Material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:justmusic/components/play_button_component.dart';
import 'package:justmusic/values/constants.dart';
class MusicListComponent extends StatelessWidget {
const MusicListComponent({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
padding: const EdgeInsets.only(bottom: 14),
child: Row(
children: [
const ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(5)),
child: Image(
image: AssetImage("assets/images/exemple_cover.png"),
width: 60,
height: 60,
),
),
const SizedBox(
width: 10,
),
Expanded(
flex: 10,
child: Wrap(
alignment: WrapAlignment.center,
direction: Axis.vertical,
runSpacing: 3,
spacing: 3,
children: [
Wrap(
verticalDirection: VerticalDirection.up,
spacing: 5,
runSpacing: 8,
runAlignment: WrapAlignment.end,
alignment: WrapAlignment.end,
children: [
Text(
"A.C. Milan",
overflow: TextOverflow.ellipsis,
style: GoogleFonts.plusJakartaSans(
fontSize: 16,
color: Colors.white,
fontWeight: FontWeight.w700),
),
Icon(
Icons.explicit,
color: Colors.grey.withOpacity(0.7),
size: 17,
)
],
),
Text(
"Booba",
overflow: TextOverflow.ellipsis,
style: GoogleFonts.plusJakartaSans(
color: Colors.grey, fontWeight: FontWeight.w400),
)
],
),
),
Spacer(),
PlayButtonComponent()
],
),
);
}
}

@ -0,0 +1,67 @@
import 'package:audioplayers/audioplayers.dart';
import 'package:flutter/Material.dart';
import 'package:flutter_animated_play_button/flutter_animated_play_button.dart';
import 'package:ionicons/ionicons.dart';
import 'package:justmusic/values/constants.dart';
class PlayButtonComponent extends StatefulWidget {
const PlayButtonComponent({Key? key}) : super(key: key);
@override
State<PlayButtonComponent> createState() => _PlayButtonComponentState();
}
class _PlayButtonComponentState extends State<PlayButtonComponent> {
bool isPlaying = true;
final player = AudioPlayer();
void switchStatePlaying() {
setState(() {
isPlaying = !isPlaying;
});
stopSong();
}
@override
void initState() {
player.onPlayerComplete.listen((event) {
switchStatePlaying();
});
super.initState();
}
@override
Widget build(BuildContext context) {
if (!isPlaying) {
playSong();
} else {}
return isPlaying
? GestureDetector(
onTap: switchStatePlaying,
child: Icon(
Ionicons.play_circle_outline,
color: Colors.grey.withOpacity(0.3),
size: 30,
),
)
: GestureDetector(
onTap: switchStatePlaying,
child: Container(
width: 30,
height: 30,
child: AnimatedPlayButton(
stopped: false,
color: Colors.grey.withOpacity(0.3),
onPressed: () {},
),
));
}
Future<void> playSong() async {
await player.play(UrlSource(
'https://p.scdn.co/mp3-preview/d38052978a79adced2187cd8b6497bb10bedc452?cid=eb2aab666a43490f82eef0bb064d363f'));
}
Future<void> stopSong() async {
await player.stop();
}
}

@ -8,6 +8,7 @@ class PostButtonComponent extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
constraints: BoxConstraints(maxWidth: 400),
decoration: BoxDecoration( decoration: BoxDecoration(
gradient: LinearGradient(colors: [ gradient: LinearGradient(colors: [
Color(0xFF141414), Color(0xFF141414),
@ -15,7 +16,7 @@ class PostButtonComponent extends StatelessWidget {
Color(0xFF141414) Color(0xFF141414)
]), ]),
borderRadius: BorderRadius.circular(10000)), borderRadius: BorderRadius.circular(10000)),
padding: EdgeInsets.symmetric(vertical: 25.sp), padding: EdgeInsets.symmetric(vertical: 25),
width: double.infinity, width: double.infinity,
child: Align( child: Align(
child: Text( child: Text(
@ -24,7 +25,7 @@ class PostButtonComponent extends StatelessWidget {
color: Color(0xFF474747), color: Color(0xFF474747),
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
fontStyle: FontStyle.italic, fontStyle: FontStyle.italic,
fontSize: 24.sp), fontSize: 24),
), ),
), ),
); );

@ -1,12 +1,13 @@
import 'package:flutter/Material.dart'; import 'package:flutter/Material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import '../values/constants.dart'; import '../values/constants.dart';
class SearchBarComponent extends StatefulWidget { class SearchBarComponent extends StatefulWidget {
final String? text; final String? text;
const SearchBarComponent({Key? key, this.text}) : super(key: key); final VoidCallback? callback;
const SearchBarComponent({Key? key, this.text, this.callback})
: super(key: key);
@override @override
State<SearchBarComponent> createState() => _SearchBarComponentState(); State<SearchBarComponent> createState() => _SearchBarComponentState();
@ -15,18 +16,21 @@ class SearchBarComponent extends StatefulWidget {
class _SearchBarComponentState extends State<SearchBarComponent> { class _SearchBarComponentState extends State<SearchBarComponent> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ClipRRect( return GestureDetector(
onTap: widget.callback,
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(20)), borderRadius: BorderRadius.all(Radius.circular(20)),
child: Container( child: Container(
constraints: BoxConstraints(maxWidth: 600),
color: searchBarColor, color: searchBarColor,
width: double.infinity, width: double.infinity,
padding: padding: EdgeInsets.fromLTRB(defaultPadding, 16, defaultPadding, 16),
EdgeInsets.fromLTRB(defaultPadding, 16.sp, defaultPadding, 16.sp),
child: Text( child: Text(
widget.text ?? "Chercher une musique...", widget.text ?? "Chercher une musique...",
style: GoogleFonts.plusJakartaSans(color: Colors.white), style: GoogleFonts.plusJakartaSans(color: Colors.white),
), ),
), ),
),
); );
} }
} }

@ -1,5 +1,8 @@
import 'dart:ui';
import 'package:flutter/Material.dart'; import 'package:flutter/Material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:justmusic/screens/search_song_screen.dart';
import '../components/editable_post_component.dart'; import '../components/editable_post_component.dart';
import '../components/post_button_component.dart'; import '../components/post_button_component.dart';
@ -13,16 +16,59 @@ class PostScreen extends StatefulWidget {
State<PostScreen> createState() => _PostScreenState(); State<PostScreen> createState() => _PostScreenState();
} }
class _PostScreenState extends State<PostScreen> { class _PostScreenState extends State<PostScreen>
with SingleTickerProviderStateMixin {
final scrollController = ScrollController(); final scrollController = ScrollController();
late AnimationController _controller;
late Animation<double> _animation;
@override
void initState() {
_controller = AnimationController(
vsync: this,
duration: const Duration(milliseconds: 400),
);
_animation = Tween<double>(begin: 0.0, end: 400.0).animate(
CurvedAnimation(
parent: _controller,
curve: Curves.easeOut,
),
);
super.initState();
}
void openDetailPost() {
showModalBottomSheet(
transitionAnimationController: _controller,
barrierColor: Colors.black.withOpacity(0.7),
backgroundColor: Colors.transparent,
elevation: 1,
constraints: const BoxConstraints(
maxWidth: 600,
),
isScrollControlled: true,
context: context,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(20), topRight: Radius.circular(20))),
builder: ((context) {
return const ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(20), topRight: Radius.circular(20)),
child: SearchSongScreen());
}),
);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
resizeToAvoidBottomInset: true, resizeToAvoidBottomInset: true,
backgroundColor: bgColor, backgroundColor: bgColor,
body: Container( body: Container(
padding: EdgeInsets.only( padding:
left: defaultPadding, top: defaultPadding, right: defaultPadding), const EdgeInsets.only(left: defaultPadding, right: defaultPadding),
width: double.infinity, width: double.infinity,
height: double.infinity, height: double.infinity,
decoration: const BoxDecoration( decoration: const BoxDecoration(
@ -32,8 +78,11 @@ class _PostScreenState extends State<PostScreen> {
), ),
), ),
child: Stack( child: Stack(
alignment: Alignment.topCenter,
children: [ children: [
SingleChildScrollView( ScrollConfiguration(
behavior: ScrollBehavior().copyWith(scrollbars: false),
child: SingleChildScrollView(
controller: scrollController, controller: scrollController,
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
@ -43,18 +92,25 @@ class _PostScreenState extends State<PostScreen> {
), ),
EditablePostComponent(), EditablePostComponent(),
SizedBox( SizedBox(
height: 40.sp, height: 40.h,
), ),
PostButtonComponent(), PostButtonComponent(),
SizedBox( SizedBox(
height: 40.sp, height: 40.h,
), ),
], ],
), ),
), ),
SearchBarComponent(), ),
Padding(
padding: EdgeInsets.only(top: defaultPadding),
child: SearchBarComponent(
callback: openDetailPost,
),
),
], ],
)), ),
),
); );
} }
} }

@ -0,0 +1,134 @@
import 'dart:ui';
import 'package:flutter/Material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import '../components/music_list_component.dart';
import '../values/constants.dart';
class SearchSongScreen extends StatefulWidget {
const SearchSongScreen({Key? key}) : super(key: key);
@override
State<SearchSongScreen> createState() => _SearchSongScreenState();
}
class _SearchSongScreenState extends State<SearchSongScreen> {
Future<void> resetFullScreen() async {
await SystemChannels.platform.invokeMethod<void>(
'SystemChrome.restoreSystemUIOverlays',
);
}
@override
Widget build(BuildContext context) {
double screenHeight = MediaQuery.of(context).size.height;
return GestureDetector(
onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
resetFullScreen();
}
},
child: BackdropFilter(
filter: ImageFilter.blur(
sigmaX: 25.0,
sigmaY: 25.0,
),
child: Container(
color: bgAppBar.withOpacity(0.5),
height: screenHeight - 50,
padding: const EdgeInsets.only(
top: 10, left: defaultPadding, right: defaultPadding),
child: Column(
children: [
Align(
child: Container(
width: 60,
height: 5,
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.3),
borderRadius: BorderRadius.circular(20))),
),
const SizedBox(
height: 10,
),
Padding(
padding: const EdgeInsets.only(bottom: 10),
child: SizedBox(
height: 40,
child: TextFormField(
keyboardAppearance: Brightness.dark,
onEditingComplete: resetFullScreen,
validator: (value) {
if (value == null || value.isEmpty) {
return 'TODO';
}
return null;
},
cursorColor: Colors.white,
keyboardType: TextInputType.text,
style: GoogleFonts.plusJakartaSans(color: grayText),
decoration: InputDecoration(
prefixIcon: const Icon(
Icons.search,
color: grayColor,
),
focusedBorder: const OutlineInputBorder(
borderSide:
BorderSide(width: 1, color: grayColor),
borderRadius:
BorderRadius.all(Radius.circular(10))),
contentPadding: const EdgeInsets.only(
top: 0,
bottom: 0,
left: defaultPadding,
right: defaultPadding),
fillColor: searchBarColor,
filled: true,
focusColor: grayText,
enabledBorder: const OutlineInputBorder(
borderSide:
BorderSide(width: 1, color: grayColor),
borderRadius:
BorderRadius.all(Radius.circular(10))),
hintText: 'Chercher un son',
hintStyle:
GoogleFonts.plusJakartaSans(color: grayColor)),
),
),
),
Expanded(
child: ScrollConfiguration(
behavior: ScrollBehavior().copyWith(scrollbars: false),
child: SingleChildScrollView(
child: Column(
children: const [
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
MusicListComponent(),
],
),
),
))
],
),
),
));
}
}

@ -8,6 +8,55 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.9.0" version: "2.9.0"
audioplayers:
dependency: "direct main"
description:
name: audioplayers
url: "https://pub.dartlang.org"
source: hosted
version: "4.1.0"
audioplayers_android:
dependency: transitive
description:
name: audioplayers_android
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.2"
audioplayers_darwin:
dependency: transitive
description:
name: audioplayers_darwin
url: "https://pub.dartlang.org"
source: hosted
version: "4.1.0"
audioplayers_linux:
dependency: transitive
description:
name: audioplayers_linux
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
audioplayers_platform_interface:
dependency: transitive
description:
name: audioplayers_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.1"
audioplayers_web:
dependency: transitive
description:
name: audioplayers_web
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.0"
audioplayers_windows:
dependency: transitive
description:
name: audioplayers_windows
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
auto_size_text: auto_size_text:
dependency: "direct main" dependency: "direct main"
description: description:
@ -85,11 +134,25 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.2" version: "2.0.2"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
source: hosted
version: "6.1.4"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_animated_play_button:
dependency: "direct main"
description:
name: flutter_animated_play_button
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.0"
flutter_lints: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -116,6 +179,11 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
font_awesome_flutter: font_awesome_flutter:
dependency: transitive dependency: transitive
description: description:
@ -158,6 +226,20 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.0.2" version: "4.0.2"
ionicons:
dependency: "direct main"
description:
name: ionicons
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.2"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.4"
lints: lints:
dependency: transitive dependency: transitive
description: description:
@ -296,6 +378,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.1" version: "1.1.1"
synchronized:
dependency: transitive
description:
name: synchronized
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
@ -324,6 +413,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.3.2" version: "1.3.2"
uuid:
dependency: transitive
description:
name: uuid
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.7"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:

@ -49,6 +49,9 @@ dependencies:
zoom_tap_animation: ^1.1.0 zoom_tap_animation: ^1.1.0
custom_draggable_widget: ^0.0.2 custom_draggable_widget: ^0.0.2
modal_bottom_sheet: ^2.1.2 modal_bottom_sheet: ^2.1.2
flutter_animated_play_button: ^0.3.0
audioplayers: ^4.1.0
ionicons: ^0.2.2
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:

Loading…
Cancel
Save