removed unimplemented components

This commit is contained in:
Denis Çerri 2023-01-05 11:53:37 +01:00
parent 94bb83cbe7
commit 6c644b9d7e
No known key found for this signature in database
GPG key ID: 96B3554AF5B193EE
6 changed files with 0 additions and 233 deletions

View file

@ -1,43 +0,0 @@
package com.deniscerri.ytdlnis.database
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import com.deniscerri.ytdlnis.database.dao.HistoryDao
import com.deniscerri.ytdlnis.database.dao.ResultDao
import com.deniscerri.ytdlnis.database.models.HistoryItem
import com.deniscerri.ytdlnis.database.models.ResultItem
@Database(
entities = [ResultItem::class, HistoryItem::class],
version = 7,
autoMigrations = []
)
abstract class DBManager : RoomDatabase(){
abstract val resultDao : ResultDao
abstract val historyDao : HistoryDao
companion object {
@Volatile
private var instance : DBManager? = null
fun getInstance(context: Context) : DBManager {
if (instance == null){
synchronized(this){
instance = buildDatabase(context)
}
}
return instance!!
}
private fun buildDatabase(context: Context) : DBManager {
return Room.databaseBuilder(
context.applicationContext,
DBManager::class.java, "ytdlnis_db"
)
.build();
}
}
}

View file

@ -1,90 +0,0 @@
package com.deniscerri.ytdlnis.database.dao
import androidx.room.*
import com.deniscerri.ytdlnis.database.models.HistoryItem
import com.deniscerri.ytdlnis.util.FileUtil
@Dao
interface HistoryDao {
@Query("SELECT * FROM history WHERE title LIKE '%'||:query||'%' AND type LIKE '%'||:format||'%' AND website LIKE '%'||:site||'%' ORDER BY " +
"CASE WHEN :sort = 'ASC' THEN id END ASC," +
"CASE WHEN :sort = 'DESC' THEN id END DESC," +
"CASE WHEN :sort = '' THEN id END DESC ")
suspend fun getHistory(query : String, format : String, site : String, sort : String) : List<HistoryItem>
@Query("SELECT * FROM history WHERE url=:url AND type=:type LIMIT 1")
suspend fun getHistoryItemByURLAndType(url: String, type: String) : HistoryItem
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun addToHistory(results: ArrayList<HistoryItem>)
@Query("DELETE FROM history")
suspend fun clearHistory()
@Query("DELETE FROM history where id=:id")
suspend fun deleteItem(id: Int)
@Transaction
suspend fun clearDeletedHistory(){
val fileUtil = FileUtil()
val items : List<HistoryItem> = getHistory("","","","")
items.forEach { item ->
if (!fileUtil.exists(item.downloadPath)){
clearHistoryItem(item, false)
}
}
}
@Transaction
suspend fun clearDownloadingHistory(){
val items : List<HistoryItem> = getHistory("","","","")
items.forEach { item ->
if (item.isQueuedDownload == 1){
clearHistoryItem(item, false)
}
}
}
@Query("DELETE FROM history WHERE id > (SELECT MIN(h.id) FROM history h WHERE h.url = history.url AND h.type = history.type)")
suspend fun clearDuplicates()
@Query("UPDATE results SET downloadedAudio=0, downloadedVideo=0 WHERE downloadedAudio=1 OR downloadedVideo=1")
suspend fun removeAllDownloadStatusesFromResults()
@Query("UPDATE results SET downloadedAudio=0 WHERE downloadedAudio=1 AND url=:url")
suspend fun removeAudioDownloadStatusFromOneResult(url: String)
@Query("UPDATE results SET downloadedVideo=0 WHERE downloadedVideo=1 AND url=:url")
suspend fun removeVideoDownloadStatusFromOneResult(url: String)
@Transaction
suspend fun clearDuplicateHistory(){
clearDuplicates()
removeAllDownloadStatusesFromResults()
}
@Transaction
suspend fun clearHistoryItem(video: HistoryItem, delete_file : Boolean){
if (delete_file){
val fileUtil = FileUtil()
fileUtil.deleteFile(video.downloadPath)
}
deleteItem(video.id)
when(video.type){
"audio" -> removeAudioDownloadStatusFromOneResult(video.url)
"video" -> removeVideoDownloadStatusFromOneResult(video.url)
}
}
@Update
suspend fun updateHistoryItem(item: HistoryItem)
@Transaction
suspend fun checkDownloaded(url: String, type: String) : Boolean {
val historyItem = getHistoryItemByURLAndType(url, type)
val fileUtil = FileUtil()
return fileUtil.exists(historyItem.downloadPath)
}
}

View file

@ -1,21 +0,0 @@
package com.deniscerri.ytdlnis.database.dao
import androidx.room.*
import com.deniscerri.ytdlnis.database.models.ResultItem
import com.deniscerri.ytdlnis.util.FileUtil
@Dao
interface ResultDao {
@Query("SELECT * FROM results")
suspend fun getResults() : List<ResultItem>
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun addToResults(results: ArrayList<ResultItem>)
@Update(onConflict = OnConflictStrategy.REPLACE)
suspend fun updateResult(item: ResultItem)
@Query("DELETE FROM results")
suspend fun clearResults()
}

View file

@ -1,20 +0,0 @@
package com.deniscerri.ytdlnis.database.models
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "history")
data class HistoryItem(
@PrimaryKey(autoGenerate = true)
val id: Int,
val url: String,
val title: String,
val author: String,
val duration: String,
val thumb: String,
val type: String,
val time: String,
val downloadPath: String,
val website: String,
val isQueuedDownload: Int
)

View file

@ -1,23 +0,0 @@
package com.deniscerri.ytdlnis.database.models
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "results")
data class ResultItem(
@PrimaryKey(autoGenerate = true)
val id: Int,
val videoId: String,
val url: String,
val title: String,
val author: String,
val duration: String,
val thumb: String,
val downloadedAudio: Int,
val downloadedVideo: Int,
val isPlaylistItem: Int,
val website: String,
val downloadingAudio: Int,
val downloadingVideo: Int,
val playlistTitle: String
)

View file

@ -1,36 +0,0 @@
package com.deniscerri.ytdlnis.util;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import androidx.annotation.NonNull;
import androidx.work.ForegroundInfo;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import com.deniscerri.ytdlnis.MainActivity;
import com.deniscerri.ytdlnis.database.Video;
import java.util.ArrayList;
import kotlin.random.Random;
public class DownloadWorker extends Worker {
private Context context;
private WorkerParameters workerParams;
public DownloadWorker(
@NonNull Context appContext,
@NonNull WorkerParameters workerParams) {
super(appContext, workerParams);
this.context = appContext;
this.workerParams = workerParams;
}
@NonNull
@Override
public Result doWork() {
//TODO
return Result.success();
}
}