diff --git a/app/build.gradle b/app/build.gradle
index 9bb293e..53c125c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,15 +1,16 @@
plugins {
id 'com.android.application'
id 'kotlin-android'
+ id 'kotlin-parcelize'
}
android {
- compileSdk 30
+ compileSdk 31
defaultConfig {
applicationId "com.itis.androidlabproject"
minSdk 23
- targetSdk 30
+ targetSdk 31
versionCode 1
versionName "1.0"
@@ -37,12 +38,13 @@ android {
dependencies {
- implementation 'androidx.core:core-ktx:1.6.0'
- implementation 'androidx.appcompat:appcompat:1.3.1'
+ implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
- implementation 'android.arch.navigation:navigation-fragment:2.3.5'
- implementation 'android.arch.navigation:navigation-ui:2.3.5'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
+ implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
+ implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
+ implementation "androidx.media:media:1.2.0"
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 69ebd0a..d122c6a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,5 +1,6 @@
@@ -18,6 +19,10 @@
+
diff --git a/app/src/main/aidl/com/itis/androidlabproject/IMyMusicInterface.aidl b/app/src/main/aidl/com/itis/androidlabproject/IMyMusicInterface.aidl
new file mode 100644
index 0000000..e35eb81
--- /dev/null
+++ b/app/src/main/aidl/com/itis/androidlabproject/IMyMusicInterface.aidl
@@ -0,0 +1,16 @@
+// IMyMusicInterface.aidl
+package com.itis.androidlabproject;
+
+// Declare any non-default types here with import statements
+
+interface IMyMusicInterface {
+ /**
+ * Demonstrates some basic types that you can use as parameters
+ * and return values in AIDL.
+ */
+ void playPreviousTrack();
+ void playNextTrack();
+ void pauseTrack();
+ void playTrack();
+ void setTrack(int id);
+}
diff --git a/app/src/main/java/com/itis/androidlabproject/MainActivity.kt b/app/src/main/java/com/itis/androidlabproject/MainActivity.kt
deleted file mode 100644
index d85e6eb..0000000
--- a/app/src/main/java/com/itis/androidlabproject/MainActivity.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.itis.androidlabproject
-
-import androidx.appcompat.app.AppCompatActivity
-import android.os.Bundle
-
-class MainActivity : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/itis/androidlabproject/adapter/TrackHolder.kt b/app/src/main/java/com/itis/androidlabproject/adapter/TrackHolder.kt
new file mode 100644
index 0000000..146607b
--- /dev/null
+++ b/app/src/main/java/com/itis/androidlabproject/adapter/TrackHolder.kt
@@ -0,0 +1,46 @@
+package com.itis.androidlabproject.adapter
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.itis.androidlabproject.databinding.TrackListItemBinding
+import com.itis.androidlabproject.models.Track
+
+class TrackHolder(
+ private val binding: TrackListItemBinding,
+ private val itemClick: (Int) -> (Unit)
+) : RecyclerView.ViewHolder(binding.root) {
+
+ private var trackToDisplay: Track? = null
+
+
+ init {
+ itemView.setOnClickListener {
+ trackToDisplay?.also {
+ itemClick(it.id)
+ }
+ }
+ }
+
+ fun bind(track: Track) {
+ trackToDisplay = track
+ with(binding) {
+ trackListItemTitle.text = track.title
+ trackListItemAuthor.text = track.author
+ trackListItemCover.setImageResource(track.cover)
+ }
+ }
+
+ companion object {
+ fun create(
+ parent: ViewGroup,
+ itemClick: (Int) -> Unit
+ ) = TrackHolder(
+ TrackListItemBinding.inflate(
+ LayoutInflater.from(parent.context),
+ parent,
+ false
+ ), itemClick
+ )
+ }
+}
diff --git a/app/src/main/java/com/itis/androidlabproject/adapter/TrackListAdapter.kt b/app/src/main/java/com/itis/androidlabproject/adapter/TrackListAdapter.kt
new file mode 100644
index 0000000..ad36cf6
--- /dev/null
+++ b/app/src/main/java/com/itis/androidlabproject/adapter/TrackListAdapter.kt
@@ -0,0 +1,21 @@
+package com.itis.androidlabproject.adapter
+
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.itis.androidlabproject.models.Track
+
+class TrackListAdapter(
+ private val trackList: ArrayList