added terminate app button

This commit is contained in:
deniscerri 2023-03-25 16:27:46 +01:00
parent 660cab7702
commit 506929b453
No known key found for this signature in database
GPG key ID: 95C43D517D830350
8 changed files with 39 additions and 24 deletions

View file

@ -13,38 +13,26 @@ import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.util.Log
import android.view.MenuItem
import android.view.View
import android.view.WindowInsets
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.fragment.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
import com.deniscerri.ytdlnis.database.viewmodel.ResultViewModel
import com.deniscerri.ytdlnis.databinding.ActivityMainBinding
import com.deniscerri.ytdlnis.ui.HomeFragment
import com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity
import com.deniscerri.ytdlnis.ui.downloads.HistoryFragment
import com.deniscerri.ytdlnis.ui.more.MoreFragment
import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity
import com.deniscerri.ytdlnis.util.UpdateUtil
import com.google.android.material.appbar.MaterialToolbar
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import java.io.BufferedReader
import java.io.File
import java.io.InputStreamReader

View file

@ -79,7 +79,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
private var resultsList: List<ResultItem?>? = null
private var selectedObjects: ArrayList<ResultItem>? = null
private var fileUtil: FileUtil? = null
private var firstBoot = true
private var quickLaunchSheet = false
private var sharedPreferences: SharedPreferences? = null
private var _binding : FragmentHomeBinding? = null
@ -93,6 +93,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
fragmentView = inflater.inflate(R.layout.fragment_home, container, false)
activity = getActivity()
mainActivity = activity as MainActivity?
quickLaunchSheet = false
return fragmentView
}
@ -147,14 +148,14 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi
}
}else if (resultViewModel.itemCount.value!! == 1){
if (sharedPreferences!!.getBoolean("download_card", true)){
if(it.size == 1 && !firstBoot && parentFragmentManager.findFragmentByTag("downloadSingleSheet") == null){
if(it.size == 1 && quickLaunchSheet && parentFragmentManager.findFragmentByTag("downloadSingleSheet") == null){
showSingleDownloadSheet(it[0], DownloadViewModel.Type.valueOf(sharedPreferences!!.getString("preferred_download_type", "video")!!))
}
}
}else{
downloadAllFabCoordinator!!.visibility = GONE
}
firstBoot = false
quickLaunchSheet = true
}
resultViewModel.loadingItems.observe(viewLifecycleOwner){

View file

@ -18,6 +18,7 @@ import com.deniscerri.ytdlnis.databinding.FragmentHomeBinding
import com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity
import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogListActivity
import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity
import kotlin.system.exitProcess
class MoreFragment : Fragment() {
private lateinit var mainSharedPreferences: SharedPreferences
@ -25,6 +26,7 @@ class MoreFragment : Fragment() {
private lateinit var logs: TextView
private lateinit var commandTemplates: TextView
private lateinit var downloadQueue: TextView
private lateinit var terminateApp: TextView
private lateinit var settings: TextView
private lateinit var mainActivity: MainActivity
override fun onCreateView(
@ -44,10 +46,18 @@ class MoreFragment : Fragment() {
logs = view.findViewById(R.id.logs)
commandTemplates = view.findViewById(R.id.command_templates)
downloadQueue = view.findViewById(R.id.download_queue)
terminateApp = view.findViewById(R.id.terminate)
settings = view.findViewById(R.id.settings)
val navHostFragment = parentFragmentManager.findFragmentById(R.id.frame_layout)
if (mainSharedPreferences.getBoolean("log_downloads", false)) {
logs.visibility = View.VISIBLE
}else {
logs.visibility = View.GONE
}
terminal.setOnClickListener {
val intent = Intent(context, TerminalActivity::class.java)
startActivity(intent)
@ -68,6 +78,10 @@ class MoreFragment : Fragment() {
startActivity(intent)
}
terminateApp.setOnClickListener {
exitProcess(0)
}
settings.setOnClickListener {
val intent = Intent(context, SettingsActivity::class.java)
startActivity(intent)
@ -79,13 +93,4 @@ class MoreFragment : Fragment() {
const val TAG = "MoreFragment"
}
override fun onResume() {
super.onResume()
if (mainSharedPreferences.getBoolean("log_downloads", false)) {
logs.visibility = View.VISIBLE
}else {
logs.visibility = View.GONE
}
}
}

View file

@ -0,0 +1,5 @@
<vector android:height="24dp"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="?android:colorAccent" android:pathData="M13,3h-2v10h2L13,3zM17.83,5.17l-1.42,1.42C17.99,7.86 19,9.81 19,12c0,3.87 -3.13,7 -7,7s-7,-3.13 -7,-7c0,-2.19 1.01,-4.14 2.58,-5.42L6.17,5.17C4.23,6.82 3,9.26 3,12c0,4.97 4.03,9 9,9s9,-4.03 9,-9c0,-2.74 -1.23,-5.18 -3.17,-6.83z"/>
</vector>

View file

@ -34,6 +34,7 @@
app:layout_constraintHorizontal_weight="0.3"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:background="?attr/colorSurfaceVariant"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="H,16:9"
app:layout_constraintEnd_toStartOf="@+id/download_item_data"

View file

@ -69,6 +69,19 @@
android:paddingHorizontal="15dp"
app:drawableLeftCompat="@drawable/ic_concurrent_downloads" />
<TextView
android:id="@+id/terminate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="35dp"
android:textSize="16sp"
android:paddingVertical="15dp"
android:text="@string/kill_app"
android:textStyle="bold"
android:paddingHorizontal="15dp"
app:drawableLeftCompat="@drawable/ic_power" />
<View style="@style/Divider.Horizontal" />
<TextView

View file

@ -176,4 +176,5 @@
<string name="link_you_copied">Linku i kopjuar</string>
<string name="restrict_filenames">Limito Titujt</string>
<string name="restrict_filenames_summary">Limito emrin e skedarit me vetëm me karakteret ASCII, dhe shmag \"&amp;\" dhe hapësirat në emrin e skedarit</string>
<string name="kill_app">Ndalo Aplikacionin</string>
</resources>

View file

@ -183,4 +183,5 @@
<string name="link_you_copied">Link you copied</string>
<string name="restrict_filenames">Restrict Filenames</string>
<string name="restrict_filenames_summary"><![CDATA[Restrict filenames to only ASCII characters, and avoid \"&\" and spaces in filenames]]></string>
<string name="kill_app">Terminate App</string>
</resources>