bug squashes
This commit is contained in:
parent
a8ffbf5053
commit
4178c778bc
5 changed files with 57 additions and 15 deletions
|
|
@ -21,6 +21,7 @@ import android.widget.CheckBox
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
|
import androidx.constraintlayout.widget.ConstraintLayout
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.core.view.forEach
|
import androidx.core.view.forEach
|
||||||
|
|
@ -187,8 +188,9 @@ class MainActivity : BaseActivity() {
|
||||||
fun hideBottomNavigation(){
|
fun hideBottomNavigation(){
|
||||||
if(navigationView is NavigationBarView){
|
if(navigationView is NavigationBarView){
|
||||||
if (navigationView is BottomNavigationView){
|
if (navigationView is BottomNavigationView){
|
||||||
findViewById<FragmentContainerView>(R.id.frame_layout).updateLayoutParams {
|
findViewById<FragmentContainerView>(R.id.frame_layout).updateLayoutParams<ConstraintLayout.LayoutParams> {
|
||||||
this.height = LayoutParams.MATCH_PARENT
|
bottomToTop = ConstraintLayout.LayoutParams.UNSET
|
||||||
|
bottomToBottom = ConstraintLayout.LayoutParams.PARENT_ID
|
||||||
}
|
}
|
||||||
navigationView.animate()?.translationY(navigationView.height.toFloat())?.setDuration(300)?.withEndAction {
|
navigationView.animate()?.translationY(navigationView.height.toFloat())?.setDuration(300)?.withEndAction {
|
||||||
navigationView.visibility = View.GONE
|
navigationView.visibility = View.GONE
|
||||||
|
|
@ -207,8 +209,9 @@ class MainActivity : BaseActivity() {
|
||||||
fun showBottomNavigation(){
|
fun showBottomNavigation(){
|
||||||
if(navigationView is NavigationBarView){
|
if(navigationView is NavigationBarView){
|
||||||
if (navigationView is BottomNavigationView){
|
if (navigationView is BottomNavigationView){
|
||||||
findViewById<FragmentContainerView>(R.id.frame_layout).updateLayoutParams {
|
findViewById<FragmentContainerView>(R.id.frame_layout).updateLayoutParams<ConstraintLayout.LayoutParams> {
|
||||||
this.height = 0
|
bottomToTop = R.id.bottomNavigationView
|
||||||
|
bottomToBottom = ConstraintLayout.LayoutParams.UNSET
|
||||||
}
|
}
|
||||||
navigationView.animate()?.translationY(0F)?.setDuration(300)?.withEndAction {
|
navigationView.animate()?.translationY(0F)?.setDuration(300)?.withEndAction {
|
||||||
navigationView.visibility = View.VISIBLE
|
navigationView.visibility = View.VISIBLE
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import androidx.appcompat.view.ActionMode
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
import androidx.recyclerview.widget.ItemTouchHelper
|
import androidx.recyclerview.widget.ItemTouchHelper
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
|
@ -95,10 +96,15 @@ class ErroredDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickL
|
||||||
|
|
||||||
override fun onActionButtonClick(itemID: Long) {
|
override fun onActionButtonClick(itemID: Long) {
|
||||||
val item = items.find { it.id == itemID } ?: return
|
val item = items.find { it.id == itemID } ?: return
|
||||||
val file = fileUtil.getLogFile(requireContext(), item)
|
val logFile = fileUtil.getLogFile(requireContext(), item)
|
||||||
val intent = Intent(requireContext(), DownloadLogFragment::class.java)
|
if (logFile.exists()) {
|
||||||
intent.putExtra("logpath", file.absolutePath)
|
val bundle = Bundle()
|
||||||
startActivity(intent)
|
bundle.putString("logpath", logFile.absolutePath)
|
||||||
|
findNavController().navigate(
|
||||||
|
R.id.downloadLogFragment,
|
||||||
|
bundle
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCardClick(itemID: Long) {
|
override fun onCardClick(itemID: Long) {
|
||||||
|
|
|
||||||
|
|
@ -292,7 +292,11 @@ class InfoUtil(private val context: Context) {
|
||||||
try {
|
try {
|
||||||
val id = obj.getString("videoId")
|
val id = obj.getString("videoId")
|
||||||
val title = obj.getString("title").toString()
|
val title = obj.getString("title").toString()
|
||||||
|
title.replace("'s", "'")
|
||||||
|
title.replace("&", "&")
|
||||||
val author = obj.getString("author").toString()
|
val author = obj.getString("author").toString()
|
||||||
|
author.replace("'s", "'")
|
||||||
|
author.replace("&", "&")
|
||||||
|
|
||||||
if (author.isBlank()) throw Exception()
|
if (author.isBlank()) throw Exception()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -147,6 +147,24 @@ class NotificationUtil(var context: Context) {
|
||||||
notificationManager.notify(DOWNLOAD_RESUME_NOTIFICATION_ID, notificationBuilder.build())
|
notificationManager.notify(DOWNLOAD_RESUME_NOTIFICATION_ID, notificationBuilder.build())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun createUpdatingItemNotification(channel: String){
|
||||||
|
val notificationBuilder = getBuilder(channel)
|
||||||
|
|
||||||
|
notificationBuilder
|
||||||
|
.setContentTitle(context.getString(R.string.updating_download_data))
|
||||||
|
.setSmallIcon(android.R.drawable.stat_sys_download)
|
||||||
|
.setLargeIcon(
|
||||||
|
BitmapFactory.decodeResource(
|
||||||
|
context.resources,
|
||||||
|
android.R.drawable.stat_sys_download
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
|
||||||
|
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
|
||||||
|
.clearActions()
|
||||||
|
notificationManager.notify(DOWNLOAD_UPDATING_NOTIFICATION_ID, notificationBuilder.build())
|
||||||
|
}
|
||||||
|
|
||||||
fun createDownloadFinished(title: String?,
|
fun createDownloadFinished(title: String?,
|
||||||
filepath: String?,
|
filepath: String?,
|
||||||
channel: String
|
channel: String
|
||||||
|
|
@ -271,6 +289,7 @@ class NotificationUtil(var context: Context) {
|
||||||
const val DOWNLOAD_FINISHED_CHANNEL_ID = "3"
|
const val DOWNLOAD_FINISHED_CHANNEL_ID = "3"
|
||||||
const val DOWNLOAD_FINISHED_NOTIFICATION_ID = 3
|
const val DOWNLOAD_FINISHED_NOTIFICATION_ID = 3
|
||||||
const val DOWNLOAD_RESUME_NOTIFICATION_ID = 4
|
const val DOWNLOAD_RESUME_NOTIFICATION_ID = 4
|
||||||
|
const val DOWNLOAD_UPDATING_NOTIFICATION_ID = 5
|
||||||
private const val PROGRESS_MAX = 100
|
private const val PROGRESS_MAX = 100
|
||||||
private const val PROGRESS_CURR = 0
|
private const val PROGRESS_CURR = 0
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,10 +66,15 @@ class DownloadWorker(
|
||||||
runBlocking{
|
runBlocking{
|
||||||
repository.setDownloadStatus(downloadItem, DownloadRepository.Status.Active)
|
repository.setDownloadStatus(downloadItem, DownloadRepository.Status.Active)
|
||||||
}
|
}
|
||||||
|
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
|
||||||
|
|
||||||
CoroutineScope(Dispatchers.IO).launch {
|
if (sharedPreferences.getBoolean("log_downloads", false)){
|
||||||
//update item if its incomplete
|
updateDownloadItem(downloadItem, infoUtil, dao, resultDao, true, notificationUtil)
|
||||||
updateDownloadItem(downloadItem, infoUtil, dao, resultDao)
|
}else{
|
||||||
|
CoroutineScope(Dispatchers.IO).launch {
|
||||||
|
//update item if its incomplete
|
||||||
|
updateDownloadItem(downloadItem, infoUtil, dao, resultDao, false, notificationUtil)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val intent = Intent(context, MainActivity::class.java)
|
val intent = Intent(context, MainActivity::class.java)
|
||||||
|
|
@ -88,7 +93,6 @@ class DownloadWorker(
|
||||||
tempFileDir.delete()
|
tempFileDir.delete()
|
||||||
tempFileDir.mkdirs()
|
tempFileDir.mkdirs()
|
||||||
|
|
||||||
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
|
|
||||||
val aria2 = sharedPreferences.getBoolean("aria2", false)
|
val aria2 = sharedPreferences.getBoolean("aria2", false)
|
||||||
if (aria2) {
|
if (aria2) {
|
||||||
request.addOption("--downloader", "libaria2c.so")
|
request.addOption("--downloader", "libaria2c.so")
|
||||||
|
|
@ -153,6 +157,11 @@ class DownloadWorker(
|
||||||
request.addOption("--cookies", cookiesFile.absolutePath)
|
request.addOption("--cookies", cookiesFile.absolutePath)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val proxy = sharedPreferences.getString("proxy", "")
|
||||||
|
if (proxy!!.isNotBlank()){
|
||||||
|
request.addOption("--proxy", proxy)
|
||||||
|
}
|
||||||
|
|
||||||
val keepCache = sharedPreferences.getBoolean("keep_cache", false)
|
val keepCache = sharedPreferences.getBoolean("keep_cache", false)
|
||||||
if(keepCache){
|
if(keepCache){
|
||||||
request.addOption("--part")
|
request.addOption("--part")
|
||||||
|
|
@ -333,7 +342,7 @@ class DownloadWorker(
|
||||||
NotificationUtil.DOWNLOAD_FINISHED_CHANNEL_ID
|
NotificationUtil.DOWNLOAD_FINISHED_CHANNEL_ID
|
||||||
)
|
)
|
||||||
|
|
||||||
if (updateDownloadItem(downloadItem, infoUtil, dao, resultDao)){
|
if (updateDownloadItem(downloadItem, infoUtil, dao, resultDao, false, notificationUtil)){
|
||||||
runCatching {
|
runCatching {
|
||||||
setProgressAsync(workDataOf("progress" to 100, "output" to "Creating Result Items", "id" to downloadItem.id, "log" to false))
|
setProgressAsync(workDataOf("progress" to 100, "output" to "Creating Result Items", "id" to downloadItem.id, "log" to false))
|
||||||
runBlocking {
|
runBlocking {
|
||||||
|
|
@ -390,10 +399,10 @@ class DownloadWorker(
|
||||||
return Result.success()
|
return Result.success()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateDownloadItem(downloadItem: DownloadItem, infoUtil: InfoUtil, dao: DownloadDao, resultDao: ResultDao) : Boolean {
|
private fun updateDownloadItem(downloadItem: DownloadItem, infoUtil: InfoUtil, dao: DownloadDao, resultDao: ResultDao, logDownloads: Boolean, notificationUtil: NotificationUtil) : Boolean {
|
||||||
var wasQuickDownloaded = false
|
var wasQuickDownloaded = false
|
||||||
if (downloadItem.title.isEmpty() || downloadItem.author.isEmpty() || downloadItem.thumb.isEmpty()){
|
if (downloadItem.title.isEmpty() || downloadItem.author.isEmpty() || downloadItem.thumb.isEmpty()){
|
||||||
|
if (logDownloads) notificationUtil.createUpdatingItemNotification(NotificationUtil.DOWNLOAD_SERVICE_CHANNEL_ID)
|
||||||
runCatching {
|
runCatching {
|
||||||
setProgressAsync(workDataOf("progress" to 0, "output" to context.getString(R.string.updating_download_data), "id" to downloadItem.id, "log" to false))
|
setProgressAsync(workDataOf("progress" to 0, "output" to context.getString(R.string.updating_download_data), "id" to downloadItem.id, "log" to false))
|
||||||
val info = infoUtil.getMissingInfo(downloadItem.url)
|
val info = infoUtil.getMissingInfo(downloadItem.url)
|
||||||
|
|
@ -407,6 +416,7 @@ class DownloadWorker(
|
||||||
dao.update(downloadItem)
|
dao.update(downloadItem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (logDownloads) notificationUtil.cancelDownloadNotification(NotificationUtil.DOWNLOAD_UPDATING_NOTIFICATION_ID)
|
||||||
}
|
}
|
||||||
return wasQuickDownloaded
|
return wasQuickDownloaded
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue