diff --git a/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt index 6f2af847..08da739d 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt @@ -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 diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt index 31dab221..eea8b7d6 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/HomeFragment.kt @@ -79,7 +79,7 @@ class HomeFragment : Fragment(), HomeAdapter.OnItemClickListener, View.OnClickLi private var resultsList: List? = null private var selectedObjects: ArrayList? = 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){ diff --git a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/MoreFragment.kt b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/MoreFragment.kt index 2a02adee..a47d2743 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/ui/more/MoreFragment.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/ui/more/MoreFragment.kt @@ -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 - } - - } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_power.xml b/app/src/main/res/drawable/ic_power.xml new file mode 100644 index 00000000..81cf7b9b --- /dev/null +++ b/app/src/main/res/drawable/ic_power.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/download_card.xml b/app/src/main/res/layout/download_card.xml index 030dde5b..acf9bf2e 100644 --- a/app/src/main/res/layout/download_card.xml +++ b/app/src/main/res/layout/download_card.xml @@ -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" diff --git a/app/src/main/res/layout/fragment_more.xml b/app/src/main/res/layout/fragment_more.xml index 7eb55f5d..24333c35 100644 --- a/app/src/main/res/layout/fragment_more.xml +++ b/app/src/main/res/layout/fragment_more.xml @@ -69,6 +69,19 @@ android:paddingHorizontal="15dp" app:drawableLeftCompat="@drawable/ic_concurrent_downloads" /> + + + Linku i kopjuar Limito Titujt Limito emrin e skedarit me vetëm me karakteret ASCII, dhe shmag \"&\" dhe hapësirat në emrin e skedarit + Ndalo Aplikacionin \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 31fcb7f0..6beb7417 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -183,4 +183,5 @@ Link you copied Restrict Filenames + Terminate App \ No newline at end of file