Working on implementing SQLite Database #16

This commit is contained in:
amazing-username
2019-03-02 19:33:29 -05:00
parent 74fcbd09c9
commit e542bf7dd4
30 changed files with 429 additions and 42 deletions
Binary file not shown.
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko:0.10.8@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-0.10.8.aar/2d4a2b265c8b5772610701d63c623de8/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-0.10.8.aar/2d4a2b265c8b5772610701d63c623de8/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko/0.10.8/eae69a965b0c7aafc34c5f8f5bff789a788f1803/anko-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-appcompat-v7:0.10.8@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-appcompat-v7-0.10.8.aar/85ab029adcfc287b6fbb5233327b8fdc/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-appcompat-v7-0.10.8.aar/85ab029adcfc287b6fbb5233327b8fdc/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-appcompat-v7/0.10.8/15fa7f66bab0a450fc83d80b4a9391e13287db09/anko-appcompat-v7-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-appcompat-v7-commons:0.10.8@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-appcompat-v7-commons-0.10.8.aar/aca363aea423a0b1ba10b4ca4aaa4322/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-appcompat-v7-commons-0.10.8.aar/aca363aea423a0b1ba10b4ca4aaa4322/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-appcompat-v7-commons/0.10.8/3ae43f5caa019f634249ee004aa89704c2998e7e/anko-appcompat-v7-commons-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-appcompat-v7-coroutines:0.10.8@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-appcompat-v7-coroutines-0.10.8.aar/4459eb8af5039b5ab1ff120d37cc7e2f/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-appcompat-v7-coroutines-0.10.8.aar/4459eb8af5039b5ab1ff120d37cc7e2f/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-appcompat-v7-coroutines/0.10.8/5403d88999aa83bfdc782903338822cf0a364d3a/anko-appcompat-v7-coroutines-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -1,11 +0,0 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-common:0.9@jar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-common/0.9/26c6156bea5eb494474c90528240daadf4b067c8/anko-common-0.9.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-common/0.9/6d0d6a5589b9af3153e02c87face01674e2214a/anko-common-0.9-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-commons:0.10.8@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-commons-0.10.8.aar/622be67d5754b62c047d857b53d115fe/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-commons-0.10.8.aar/622be67d5754b62c047d857b53d115fe/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-commons/0.10.8/696efd1161da944d0c30bb9181fbeeda2ea6bb64/anko-commons-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-coroutines:0.10.8@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-coroutines-0.10.8.aar/673772db281351ce02d1b6f3bd235ea4/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-coroutines-0.10.8.aar/673772db281351ce02d1b6f3bd235ea4/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-coroutines/0.10.8/91cfd6a36cd717882e498db2f777328de12a0dbe/anko-coroutines-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-sdk27:0.10.8@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-sdk27-0.10.8.aar/671d383f162df9639c28afa168885907/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-sdk27-0.10.8.aar/671d383f162df9639c28afa168885907/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-sdk27/0.10.8/48053c3985b44bacd3003713b0cfeb7b75cca232/anko-sdk27-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-sdk27-coroutines:0.10.8@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-sdk27-coroutines-0.10.8.aar/ab0e71a0be149526902c94555e57e7df/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-sdk27-coroutines-0.10.8.aar/ab0e71a0be149526902c94555e57e7df/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-sdk27-coroutines/0.10.8/77a3618734ea8367bb0224eaf2a66108b463c3f6/anko-sdk27-coroutines-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-sqlite:0.10.8@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-sqlite-0.10.8.aar/30fd2b494485f8fa1a8e75a36c3cb882/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-sqlite-0.10.8.aar/30fd2b494485f8fa1a8e75a36c3cb882/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-sqlite/0.10.8/5bf3f4c2bc1e657e1e607566be8d9706807b248e/anko-sqlite-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-support-v4:0.10.8@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-support-v4-0.10.8.aar/deea8417c5d67084ec7357c8934a0cd9/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-support-v4-0.10.8.aar/deea8417c5d67084ec7357c8934a0cd9/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-support-v4/0.10.8/d0057281963bf8b85127a0fc954f681244b6f4b7/anko-support-v4-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:anko-support-v4-commons:0.10.8@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-support-v4-commons-0.10.8.aar/65f44123aecbbbe877b5064f0c6346cb/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/anko-support-v4-commons-0.10.8.aar/65f44123aecbbbe877b5064f0c6346cb/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/anko-support-v4-commons/0.10.8/b358dbc75b511cbc20aa7ca162d8ed20295a7d8e/anko-support-v4-commons-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:appcompatV7-base:0.10.8@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompatV7-base-0.10.8.aar/6e7f3bee2f68d7ca8da7603afcd3d356/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompatV7-base-0.10.8.aar/6e7f3bee2f68d7ca8da7603afcd3d356/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/appcompatV7-base/0.10.8/2df511598723f1b4637a50e2c067ebe1dbdc0c77/appcompatV7-base-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:commons-base:0.10.8@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/commons-base-0.10.8.aar/dac1aba4a8783ef08faa3a87a6e2681b/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/commons-base-0.10.8.aar/dac1aba4a8783ef08faa3a87a6e2681b/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/commons-base/0.10.8/a7b9886dd34c114aebcbcd7c492855425b2300e1/commons-base-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:platform-base:0.10.8@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/platform-base-0.10.8.aar/1033682d0686046faaa46caf566b31e4/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/platform-base-0.10.8.aar/1033682d0686046faaa46caf566b31e4/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/platform-base/0.10.8/841013cadd306eaf8e9e926bbcca7d0e20065f57/platform-base-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:sqlite-base:0.10.8@aar">
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/sqlite-base-0.10.8.aar/a38ce0b9324a6b637294007505e34cd6/res" />
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/sqlite-base-0.10.8.aar/a38ce0b9324a6b637294007505e34cd6/jars/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/sqlite-base/0.10.8/a4ecb1c6e6298ac58b271a1dbe1b4d94c78e0d5d/sqlite-base-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,12 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.anko:supportV4-base:0.10.8@aar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/supportV4-base-0.10.8.aar/810a102b358ce7fe3f7cde844e30755f/jars/classes.jar!/" />
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/supportV4-base-0.10.8.aar/810a102b358ce7fe3f7cde844e30755f/res" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/supportV4-base/0.10.8/7b9ca94d2ea897c899316add19f15592a53b526e/supportV4-base-0.10.8-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.kotlinx:kotlinx-coroutines-android:1.0.0@jar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-android/1.0.0/2102040565a29061ab7aaea6ea548ad51eafb11d/kotlinx-coroutines-android-1.0.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-android/1.0.0/b11571ee5deb9c8b47887a79070d0c6c0940a8f6/kotlinx-coroutines-android-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.0@jar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.0.0/a33c4bf7581f71f01d4ed660b09ca199abbb44da/kotlinx-coroutines-core-1.0.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.0.0/25f38c379fd216bf66c638fc5f5b595650c1bd64/kotlinx-coroutines-core-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>
@@ -0,0 +1,11 @@
<component name="libraryTable">
<library name="Gradle: org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.0.0@jar">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-common/1.0.0/5f7551ec1edc068deaa0397100a1f14f32270274/kotlinx-coroutines-core-common-1.0.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-common/1.0.0/fbe00e9f1a3138c7d138fe4e02724366e9e42f24/kotlinx-coroutines-core-common-1.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>
+20 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -29,7 +29,7 @@ dependencies {
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'org.jetbrains.anko:anko-common:0.9'
implementation "org.jetbrains.anko:anko:0.10.8"
implementation 'com.ealva:ealvatag:0.4.2'
implementation 'com.ealva:ealvalog:0.3.0'
implementation 'com.ealva:ealvalog-core:0.3.0'
@@ -1,21 +1,25 @@
package com.example.mear
import android.graphics.Bitmap
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteQuery
import android.graphics.BitmapFactory
import android.media.MediaPlayer
import android.os.Bundle
import android.os.Environment
import android.support.design.widget.Snackbar
import android.support.v7.app.AppCompatActivity;
import java.lang.Exception
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.content_main.*
import kotlinx.coroutines.selects.select
import kotlin.io.*
import kotlin.random.Random
import org.jetbrains.anko.*
import org.jetbrains.anko.db.*
import com.example.mear.management.TrackRepository
import com.example.mear.management.DatabaseManager
import com.example.mear.management.MusicFiles
import com.example.mear.management.TrackManager
import com.example.mear.models.Track
@@ -173,13 +177,65 @@ class MainActivity : AppCompatActivity() {
return allSongs!!
}
private fun loadTracks(allSongs: MutableList<String>) {
val trackMgr = TrackManager(allSongs!!)
var trackMgr = TrackManager(allSongs!!)
trackMgr.configureTracks()
allTracks = trackMgr.allTracks
val allTracks = trackMgr.allTracks
trackMgr = TrackManager( listOf())
this.allTracks = allTracks
databaseInit(allTracks!!)
val obk = TrackRepository(this).getAll()
currentSong = fetchSongIndex(PlayTypes.PlaySong)
}
private fun databaseInit(allTracks: MutableList<Track>) {
/**
database.use {
dropTable("Track")
createTable("Track", true,
"Id" to INTEGER + PRIMARY_KEY + UNIQUE,
"Title" to INTEGER, "Album" to TEXT, "Artist" to TEXT,
"Duration" to INTEGER, "Cover" to BLOB, "SongPath" to TEXT
)
for (songData in allTracks) {
insert("Track",
"id" to songData.id,
"Title" to songData.title,
"Album" to songData.album,
"Artist" to songData.artist,
"Duration" to songData.length,
"Cover" to songData.TrackCover,
"FilePath" to songData.songPath)
}
}
*/
/**
myDB.createTable("Track", true,
"Id" to INTEGER + UNIQUE,
"Title" to TEXT, "Artist" to TEXT, "Album" to TEXT,
"Duration" to INTEGER, "Cover" to BLOB, "SongPath" to TEXT)
*/
TrackRepository(this).delete()
for (songData in allTracks) {
TrackRepository(this).create(songData)
}
}
/**
private fun databaseGetTracks(db: ManagedSQLiteOpenHelper): List<Track> = db.use {
val trackParser = classParser<Track>()
var dbObj = db.readableDatabase
dbObj.use {
select("Track").exec {
val ss = this
val tracks: List<Track> = parseList()
}
}
}
*/
private var TrackPayer: MediaPlayer? = null
private var allTracks: MutableList<Track>? = null
private var currentSong: Int? = null
@@ -0,0 +1,8 @@
package com.example.mear
import android.content.Context
import com.example.mear.management.DatabaseManager
val Context.database: DatabaseManager
get() = DatabaseManager.getInstance(applicationContext)
@@ -0,0 +1,41 @@
package com.example.mear.management
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import org.jetbrains.anko.db.*
import org.jetbrains.anko.db.ManagedSQLiteOpenHelper
class DatabaseManager(ctx: Context): ManagedSQLiteOpenHelper(ctx, "Mear",
null, 1) {
companion object {
private var instance: DatabaseManager? = null
@Synchronized
fun getInstance(ctx: Context): DatabaseManager {
if (instance == null) {
instance = DatabaseManager(ctx.applicationContext)
}
return instance!!
}
}
override fun onCreate(db: SQLiteDatabase?) {
//db!!.dropTable("Track")
db!!.createTable("Track", true,
"Id" to INTEGER + PRIMARY_KEY + UNIQUE,
"Title" to TEXT, "Album" to TEXT, "Artist" to TEXT,
"Cover" to BLOB, "Duration" to INTEGER,
"FilePath" to TEXT)
}
override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
db!!.dropTable("Track")
}
private fun createSettingsTable() {
}
}
@@ -1,6 +1,5 @@
package com.example.mear.management
import android.os.Environment
import java.io.File
import java.lang.Exception
import kotlin.io.*
@@ -19,26 +18,23 @@ class MusicFiles (val demoPath: File) {
val listOfFiles = folder.listFiles()
for (i in listOfFiles) {
if (allSongs!!.count() < musicSongLimit) {
for (j in i.listFiles()) {
if (j.absolutePath.toString().contains("zip")) {
println("zip file")
}
for (k in j.listFiles()) {
println("What's good?")
if (k.absolutePath.toString().contains("mp3")) {
if (count < musicSongLimit) {
allSongs!!.add(k.absolutePath.toString())
count++
} else {
println("Stranger")
}
}
}
}
else {
else
{
break
}
}
}
}
}
songCount = count
}
catch (ex: Exception) {
@@ -49,5 +45,5 @@ class MusicFiles (val demoPath: File) {
var allSongs: MutableList<String>?= null
var songCount: Int? = null
val musicSongLimit = 50
val musicSongLimit = 120
}
@@ -1,17 +1,10 @@
package com.example.mear.management
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.media.MediaMetadataRetriever
import java.io.File
import java.lang.Exception
import ealvatag.audio.AudioFile
import ealvatag.audio.AudioFileIO
import ealvatag.tag.FieldKey
import ealvatag.tag.NullTag
import com.example.mear.models.Track
class TrackManager(val allSongPath: List<String>) {
@@ -0,0 +1,51 @@
package com.example.mear.management
import android.content.Context
import com.example.mear.database
import java.util.ArrayList
import org.jetbrains.anko.db.*
import com.example.mear.management.*
import com.example.mear.models.Track
class TrackRepository(val context: Context) {
fun getAll(): List<Track> = context.database.use {
val tracks = mutableListOf<Track>()
select("Track", "id", "Title")
.parseList(object : MapRowParser<Track>{
override fun parseRow(columns: Map<String, Any?>): Track {
val id = columns.getValue("Id")
val title = columns.getValue("Title")
val track = Track(id.toString().toInt(), title.toString(),"","",0,
ByteArray(0), "")
tracks.add(track)
return track
}
})
tracks
}
fun create(track: Track) = context.database.use {
insert("Track",
"Id" to track.id,
"Title" to track.title,
"Album" to track.album,
"Artist" to track.artist,
"Duration" to track.length,
"SongPath" to track.songPath,
"Cover" to track.TrackCover)
}
fun delete(track: Track) = context.database.use {
delete("Track", whereClause = "id = {$track.id}")
}
fun delete() = context.database.use {
delete("Track")
}
}
@@ -1,5 +1,15 @@
package com.example.mear.models
class Track (val id: Int, val title: String, val artist: String, val album: String,
data class Track (val id: Int, val title: String, val artist: String, val album: String,
val length: Int, val TrackCover: ByteArray, val songPath: String) {
companion object {
//val Track.COLUMN_ID = "id"
val TABLE_NAME = "Track"
val COLUMN_TITLE = "Title"
val COLUMN_ARTIST = "Artist"
val COLUMN_ALBUM = "Album"
val COLUMN_DURATION = "Duration"
val COLUMN_COVER = "Cover"
val COLUMN_SONGPATH = "SongPath"
}
}