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:support-v4:28.0.0'
implementation 'com.android.support:design:28.0.0' implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3' 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:ealvatag:0.4.2'
implementation 'com.ealva:ealvalog:0.3.0' implementation 'com.ealva:ealvalog:0.3.0'
implementation 'com.ealva:ealvalog-core:0.3.0' implementation 'com.ealva:ealvalog-core:0.3.0'
@@ -1,21 +1,25 @@
package com.example.mear 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.graphics.BitmapFactory
import android.media.MediaPlayer import android.media.MediaPlayer
import android.os.Bundle import android.os.Bundle
import android.os.Environment import android.os.Environment
import android.support.design.widget.Snackbar
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import java.lang.Exception import java.lang.Exception
import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.content_main.* import kotlinx.android.synthetic.main.content_main.*
import kotlinx.coroutines.selects.select
import kotlin.io.* import kotlin.io.*
import kotlin.random.Random 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.MusicFiles
import com.example.mear.management.TrackManager import com.example.mear.management.TrackManager
import com.example.mear.models.Track import com.example.mear.models.Track
@@ -173,13 +177,65 @@ class MainActivity : AppCompatActivity() {
return allSongs!! return allSongs!!
} }
private fun loadTracks(allSongs: MutableList<String>) { private fun loadTracks(allSongs: MutableList<String>) {
val trackMgr = TrackManager(allSongs!!) var trackMgr = TrackManager(allSongs!!)
trackMgr.configureTracks() 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) 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 TrackPayer: MediaPlayer? = null
private var allTracks: MutableList<Track>? = null private var allTracks: MutableList<Track>? = null
private var currentSong: Int? = 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 package com.example.mear.management
import android.os.Environment
import java.io.File import java.io.File
import java.lang.Exception import java.lang.Exception
import kotlin.io.* import kotlin.io.*
@@ -19,25 +18,22 @@ class MusicFiles (val demoPath: File) {
val listOfFiles = folder.listFiles() val listOfFiles = folder.listFiles()
for (i in listOfFiles) { for (i in listOfFiles) {
if (allSongs!!.count() < musicSongLimit) { for (j in i.listFiles()) {
for (j in i.listFiles()) { if (j.absolutePath.toString().contains("zip")) {
if (j.absolutePath.toString().contains("zip")) { }
println("zip file") for (k in j.listFiles()) {
} if (k.absolutePath.toString().contains("mp3")) {
for (k in j.listFiles()) { if (count < musicSongLimit) {
println("What's good?")
if (k.absolutePath.toString().contains("mp3")) {
allSongs!!.add(k.absolutePath.toString()) allSongs!!.add(k.absolutePath.toString())
count++ count++
} else { }
println("Stranger") else
{
break
} }
} }
} }
} }
else {
break
}
} }
songCount = count songCount = count
} }
@@ -49,5 +45,5 @@ class MusicFiles (val demoPath: File) {
var allSongs: MutableList<String>?= null var allSongs: MutableList<String>?= null
var songCount: Int? = null var songCount: Int? = null
val musicSongLimit = 50 val musicSongLimit = 120
} }
@@ -1,17 +1,10 @@
package com.example.mear.management package com.example.mear.management
import android.graphics.Bitmap
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.media.MediaMetadataRetriever import android.media.MediaMetadataRetriever
import java.io.File
import java.lang.Exception 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 import com.example.mear.models.Track
class TrackManager(val allSongPath: List<String>) { 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 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) { 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"
}
} }