diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b589d56 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..ae388c2 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..8978d23 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..31eb101 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,41 @@ +plugins { + id 'com.android.application' +} + +android { + namespace 'com.example.audify' + compileSdk 33 + + defaultConfig { + applicationId "com.example.audify" + minSdk 21 + targetSdk 33 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.5.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + implementation 'com.karumi:dexter:6.2.3' + implementation 'com.airbnb.android:lottie:6.1.0' +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/androidTest/java/com/example/audify/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/example/audify/ExampleInstrumentedTest.java new file mode 100644 index 0000000..30c22d0 --- /dev/null +++ b/app/src/androidTest/java/com/example/audify/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.example.audify; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.example.audify", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..68971c8 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000..28c8fa8 Binary files /dev/null and b/app/src/main/ic_launcher-playstore.png differ diff --git a/app/src/main/java/com/example/audify/MainActivity.java b/app/src/main/java/com/example/audify/MainActivity.java new file mode 100644 index 0000000..9afdc28 --- /dev/null +++ b/app/src/main/java/com/example/audify/MainActivity.java @@ -0,0 +1,90 @@ +package com.example.audify; + +import androidx.appcompat.app.AppCompatActivity; + +import android.Manifest; +import android.content.Intent; +import android.os.Bundle; +import android.os.Environment; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import com.karumi.dexter.Dexter; +import com.karumi.dexter.PermissionToken; +import com.karumi.dexter.listener.PermissionDeniedResponse; +import com.karumi.dexter.listener.PermissionGrantedResponse; +import com.karumi.dexter.listener.PermissionRequest; +import com.karumi.dexter.listener.single.PermissionListener; + +import java.io.File; +import java.util.ArrayList; +import java.util.Objects; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + ListView listView; + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + listView = findViewById(R.id.listView); + Dexter.withContext(this) + .withPermission(Manifest.permission.READ_EXTERNAL_STORAGE) + .withListener(new PermissionListener() { + @Override + public void onPermissionGranted(PermissionGrantedResponse permissionGrantedResponse) { + ArrayList mySongs = fetchSongs(Environment.getExternalStorageDirectory()); + String [] items = new String[mySongs.size()]; + for(int i=0;i adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, items); + listView.setAdapter(adapter); + listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView adapterView, View view, int i, long l) { + Intent intent = new Intent(MainActivity.this, PlaySong.class); + String currentSong = listView.getItemAtPosition(i).toString(); + intent.putExtra("songList", mySongs); + intent.putExtra("currentSong", currentSong); + intent.putExtra("position", i); + startActivity(intent); + } + }); + + } + + @Override + public void onPermissionDenied(PermissionDeniedResponse permissionDeniedResponse) { + + } + + @Override + public void onPermissionRationaleShouldBeShown(PermissionRequest permissionRequest, PermissionToken permissionToken) { + permissionToken.continuePermissionRequest(); + } + }) + .check(); + } + public ArrayList fetchSongs(File file){ + ArrayList arrayList = new ArrayList(); + File [] songs = file.listFiles(); + if(songs !=null){ + for(File myFile: songs){ + if(!myFile.isHidden() && myFile.isDirectory()){ + arrayList.addAll(fetchSongs(myFile)); + } + else{ + if(myFile.getName().endsWith(".mp3") && !myFile.getName().startsWith(".")){ + arrayList.add(myFile); + } + } + } + } + return arrayList; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/audify/PlaySong.java b/app/src/main/java/com/example/audify/PlaySong.java new file mode 100644 index 0000000..e32084b --- /dev/null +++ b/app/src/main/java/com/example/audify/PlaySong.java @@ -0,0 +1,149 @@ +package com.example.audify; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.media.MediaPlayer; +import android.net.Uri; +import android.os.Bundle; +import android.view.View; +import android.widget.ImageView; +import android.widget.SeekBar; +import android.widget.TextView; + +import java.io.File; +import java.util.ArrayList; + +public class PlaySong extends AppCompatActivity { + @Override + protected void onDestroy() { + super.onDestroy(); + mediaPlayer.stop(); + mediaPlayer.release(); + updateSeek.interrupt(); + } + TextView textView; + ImageView play, previous, next; + ArrayList songs; + MediaPlayer mediaPlayer; + String textContent; + int i; + SeekBar seekBar; + Thread updateSeek; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_play_song); + textView = findViewById(R.id.textView); + play = findViewById(R.id.play); + previous = findViewById(R.id.previous); + next = findViewById(R.id.next); + seekBar = findViewById(R.id.seekBar); + + Intent intent = getIntent(); + Bundle bundle = intent.getExtras(); + songs = (ArrayList) bundle.getParcelableArrayList("songList"); + textContent = intent.getStringExtra("currentSong"); + textView.setText(textContent); + textView.setSelected(true); + i = intent.getIntExtra("position", 0); + Uri uri = Uri.parse(songs.get(i).toString()); + mediaPlayer = MediaPlayer.create(this, uri); + mediaPlayer.start(); + seekBar.setMax(mediaPlayer.getDuration()); + seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int i, boolean b) { + + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + mediaPlayer.seekTo(seekBar.getProgress()); + } + }); + + updateSeek = new Thread(){ + @Override + public void run() { + int currentPosition = 0; + try{ + while(currentPosition + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/app_bg.png b/app/src/main/res/drawable/app_bg.png new file mode 100644 index 0000000..1c7e96f Binary files /dev/null and b/app/src/main/res/drawable/app_bg.png differ diff --git a/app/src/main/res/drawable/bg1.png b/app/src/main/res/drawable/bg1.png new file mode 100644 index 0000000..60f23b4 Binary files /dev/null and b/app/src/main/res/drawable/bg1.png differ diff --git a/app/src/main/res/drawable/disk.png b/app/src/main/res/drawable/disk.png new file mode 100644 index 0000000..91ae31b Binary files /dev/null and b/app/src/main/res/drawable/disk.png differ diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/next.png b/app/src/main/res/drawable/next.png new file mode 100644 index 0000000..1bdea6f Binary files /dev/null and b/app/src/main/res/drawable/next.png differ diff --git a/app/src/main/res/drawable/pause.png b/app/src/main/res/drawable/pause.png new file mode 100644 index 0000000..15a1b56 Binary files /dev/null and b/app/src/main/res/drawable/pause.png differ diff --git a/app/src/main/res/drawable/play.png b/app/src/main/res/drawable/play.png new file mode 100644 index 0000000..3459460 Binary files /dev/null and b/app/src/main/res/drawable/play.png differ diff --git a/app/src/main/res/drawable/previous.png b/app/src/main/res/drawable/previous.png new file mode 100644 index 0000000..65880ed Binary files /dev/null and b/app/src/main/res/drawable/previous.png differ diff --git a/app/src/main/res/drawable/splashbg.png b/app/src/main/res/drawable/splashbg.png new file mode 100644 index 0000000..3fd969b Binary files /dev/null and b/app/src/main/res/drawable/splashbg.png differ diff --git a/app/src/main/res/font/audiowide.ttf b/app/src/main/res/font/audiowide.ttf new file mode 100644 index 0000000..348817d Binary files /dev/null and b/app/src/main/res/font/audiowide.ttf differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..efbe3d7 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,21 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_play_song.xml b/app/src/main/res/layout/activity_play_song.xml new file mode 100644 index 0000000..147ed8c --- /dev/null +++ b/app/src/main/res/layout/activity_play_song.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_splash_screen.xml b/app/src/main/res/layout/activity_splash_screen.xml new file mode 100644 index 0000000..81afbd7 --- /dev/null +++ b/app/src/main/res/layout/activity_splash_screen.xml @@ -0,0 +1,23 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..036d09b --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000..8317772 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..1054352 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000..46ae557 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000..50a1f58 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..2872d8b Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000..41634b3 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000..b8f44a3 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..9bdad82 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..aa9c16c Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000..af5259d Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..da7ac15 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..04cef7a Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000..fca0095 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..82be72e Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..8d35dc7 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/raw/anim.json b/app/src/main/res/raw/anim.json new file mode 100644 index 0000000..c0d7e4b --- /dev/null +++ b/app/src/main/res/raw/anim.json @@ -0,0 +1 @@ +{"nm":"Music App Loader","ddd":0,"h":1000,"w":1000,"meta":{"g":"LottieFiles AE 0.1.20"},"layers":[{"ty":0,"nm":"Loader","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[877.5,877.5,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[49,49,100],"t":112},{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[40,40,100],"t":122},{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[40,40,100],"t":132},{"o":{"x":0.6,"y":0},"i":{"x":0.833,"y":1},"s":[30,30,100],"t":142},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[30,30,100],"t":162},{"s":[49,49,100],"t":172}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[504,500,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"w":1755,"h":1755,"refId":"comp_0","ind":1}],"v":"5.5.7","fr":60,"op":173,"ip":0,"assets":[{"nm":"","id":"comp_0","layers":[{"ty":4,"nm":"Path 7","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[817.5,889.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[{"ty":0,"mn":"ADBE Glo2","nm":"Glow","ix":1,"en":1,"ef":[{"ty":7,"mn":"ADBE Glo2-0001","nm":"Glow Based On","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"mn":"ADBE Glo2-0002","nm":"Glow Threshold","ix":2,"v":{"a":0,"k":255,"ix":2}},{"ty":0,"mn":"ADBE Glo2-0003","nm":"Glow Radius","ix":3,"v":{"a":0,"k":435,"ix":3}},{"ty":0,"mn":"ADBE Glo2-0004","nm":"Glow Intensity","ix":4,"v":{"a":0,"k":8.8,"ix":4}},{"ty":7,"mn":"ADBE Glo2-0005","nm":"Composite Original","ix":5,"v":{"a":0,"k":1,"ix":5}},{"ty":7,"mn":"ADBE Glo2-0006","nm":"Glow Operation","ix":6,"v":{"a":0,"k":3,"ix":6}},{"ty":7,"mn":"ADBE Glo2-0007","nm":"Glow Colors","ix":7,"v":{"a":0,"k":2,"ix":7}},{"ty":7,"mn":"ADBE Glo2-0008","nm":"Color Looping","ix":8,"v":{"a":0,"k":3,"ix":8}},{"ty":0,"mn":"ADBE Glo2-0009","nm":"Color Loops","ix":9,"v":{"a":0,"k":16.4,"ix":9}},{"ty":0,"mn":"ADBE Glo2-0010","nm":"Color Phase","ix":10,"v":{"a":0,"k":179,"ix":10}},{"ty":0,"mn":"ADBE Glo2-0011","nm":"A & B Midpoint","ix":11,"v":{"a":0,"k":0.638,"ix":11}},{"ty":2,"mn":"ADBE Glo2-0012","nm":"Color A","ix":12,"v":{"a":0,"k":[1,1,1,0],"ix":12}},{"ty":2,"mn":"ADBE Glo2-0013","nm":"Color B","ix":13,"v":{"a":0,"k":[0,0,0,0],"ix":13}},{"ty":7,"mn":"ADBE Glo2-0014","nm":"Glow Dimensions","ix":14,"v":{"a":0,"k":1,"ix":14}}]}],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Path","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[1.4,-17.5],[-21,0.1],[0,19.6],[0,0],[-12.2,3.8],[0,0],[0,-19.6],[0,0],[19.6,-0.2],[-1.6,21.3],[-17.8,0.1]],"o":[[-17.6,-0.1],[-1.7,21.2],[19.6,-0.2],[0,0],[0,-12.8],[0,0],[18.7,-5.8],[0,0],[0,19.6],[-20.9,0.2],[1.4,-17.5],[0,0]],"v":[[-80.939,70.258],[-114.139,103.158],[-78.039,141.958],[-42.439,105.358],[-42.439,-82.442],[-21.939,-110.242],[76.661,-140.642],[114.261,-112.842],[114.261,69.358],[78.661,105.958],[42.561,67.158],[75.761,34.258]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"c":{"a":0,"k":[0.3412,0.8941,1],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[0],"t":32},{"s":[100],"t":110}],"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[0],"t":32},{"s":[100],"t":102}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"c":{"a":0,"k":[0.3412,0.8941,1],"ix":3}}],"ind":1},{"ty":4,"nm":"Path 3","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[797.5,877.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Path","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[1.4,-17.5],[-21,0.1],[0,19.6],[0,0],[-12.2,3.8],[0,0],[0,-19.6],[0,0],[19.6,-0.2],[-1.6,21.3],[-17.8,0.1]],"o":[[-17.6,-0.1],[-1.7,21.2],[19.6,-0.2],[0,0],[0,-12.8],[0,0],[18.7,-5.8],[0,0],[0,19.6],[-20.9,0.2],[1.4,-17.5],[0,0]],"v":[[-80.939,70.258],[-114.139,103.158],[-78.039,141.958],[-42.439,105.358],[-42.439,-82.442],[-21.939,-110.242],[76.661,-140.642],[114.261,-112.842],[114.261,69.358],[78.661,105.958],[42.561,67.158],[75.761,34.258]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":26,"ix":5},"c":{"a":0,"k":[0,0.4157,0.349],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[0],"t":19},{"s":[100],"t":79}],"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":0,"k":0,"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0,0.4157,0.349],"ix":3}}],"ind":2},{"ty":4,"nm":"Path 2","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[797.5,877.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Path","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[1.4,-17.5],[-21,0.1],[0,19.6],[0,0],[-12.2,3.8],[0,0],[0,-19.6],[0,0],[19.6,-0.2],[-1.6,21.3],[-17.8,0.1]],"o":[[-17.6,-0.1],[-1.7,21.2],[19.6,-0.2],[0,0],[0,-12.8],[0,0],[18.7,-5.8],[0,0],[0,19.6],[-20.9,0.2],[1.4,-17.5],[0,0]],"v":[[-80.939,70.258],[-114.139,103.158],[-78.039,141.958],[-42.439,105.358],[-42.439,-82.442],[-21.939,-110.242],[76.661,-140.642],[114.261,-112.842],[114.261,69.358],[78.661,105.958],[42.561,67.158],[75.761,34.258]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":26,"ix":5},"c":{"a":0,"k":[0.0196,0.6392,0.6353],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[0],"t":11},{"s":[100],"t":71}],"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":0,"k":0,"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[0.0196,0.6392,0.6353],"ix":3}}],"ind":3},{"ty":4,"nm":"Path","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[797.5,877.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Path","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[1.4,-17.5],[-21,0.1],[0,19.6],[0,0],[-12.2,3.8],[0,0],[0,-19.6],[0,0],[19.6,-0.2],[-1.6,21.3],[-17.8,0.1]],"o":[[-17.6,-0.1],[-1.7,21.2],[19.6,-0.2],[0,0],[0,-12.8],[0,0],[18.7,-5.8],[0,0],[0,19.6],[-20.9,0.2],[1.4,-17.5],[0,0]],"v":[[-80.939,70.258],[-114.139,103.158],[-78.039,141.958],[-42.439,105.358],[-42.439,-82.442],[-21.939,-110.242],[76.661,-140.642],[114.261,-112.842],[114.261,69.358],[78.661,105.958],[42.561,67.158],[75.761,34.258]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":26,"ix":5},"c":{"a":0,"k":[1,1,1],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[0],"t":4},{"s":[100],"t":64}],"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":0,"k":0,"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[1,1,1],"ix":3}}],"ind":4},{"ty":4,"nm":"Path 8","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[857.5,957.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Path","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[1.4,-17.5],[-21,0.1],[0,19.6],[0,0],[-12.2,3.8],[0,0],[0,-19.6],[0,0],[19.6,-0.2],[-1.6,21.3],[-17.8,0.1]],"o":[[-17.6,-0.1],[-1.7,21.2],[19.6,-0.2],[0,0],[0,-12.8],[0,0],[18.7,-5.8],[0,0],[0,19.6],[-20.9,0.2],[1.4,-17.5],[0,0]],"v":[[-80.939,70.258],[-114.139,103.158],[-78.039,141.958],[-42.439,105.358],[-42.439,-82.442],[-21.939,-110.242],[76.661,-140.642],[114.261,-112.842],[114.261,69.358],[78.661,105.958],[42.561,67.158],[75.761,34.258]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"c":{"a":0,"k":[1,0.7804,0],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[0],"t":4},{"s":[100],"t":50}],"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[0],"t":4},{"s":[100],"t":42}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"c":{"a":0,"k":[1,0.7804,0],"ix":3}}],"ind":5},{"ty":4,"nm":"Path 6","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[857.5,957.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Path","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[1.4,-17.5],[-21,0.1],[0,19.6],[0,0],[-12.2,3.8],[0,0],[0,-19.6],[0,0],[19.6,-0.2],[-1.6,21.3],[-17.8,0.1]],"o":[[-17.6,-0.1],[-1.7,21.2],[19.6,-0.2],[0,0],[0,-12.8],[0,0],[18.7,-5.8],[0,0],[0,19.6],[-20.9,0.2],[1.4,-17.5],[0,0]],"v":[[-80.939,70.258],[-114.139,103.158],[-78.039,141.958],[-42.439,105.358],[-42.439,-82.442],[-21.939,-110.242],[76.661,-140.642],[114.261,-112.842],[114.261,69.358],[78.661,105.958],[42.561,67.158],[75.761,34.258]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"c":{"a":0,"k":[0.5098,0,1],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[300,300],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[0],"t":0},{"s":[100],"t":46}],"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.6,"y":0},"i":{"x":0.4,"y":1},"s":[0],"t":0},{"s":[100],"t":38}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"c":{"a":0,"k":[0.5098,0,1],"ix":3}}],"ind":6}]}]} \ No newline at end of file diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..743ce0e --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..2dbaa63 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #2f2f2f + #FFFFFFFF + #FFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..3f45128 --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FDFDFD + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..10344c8 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Audify + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..a0646c0 --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,11 @@ + + + + +