diff --git a/app/src/main/java/com/example/myapplication/MainActivity.kt b/app/src/main/java/com/example/myapplication/MainActivity.kt index 5e7058e..2824658 100644 --- a/app/src/main/java/com/example/myapplication/MainActivity.kt +++ b/app/src/main/java/com/example/myapplication/MainActivity.kt @@ -6,7 +6,6 @@ import android.content.Intent import android.content.pm.PackageManager import android.media.MediaMetadataRetriever import android.net.Uri -import android.os.Build import android.os.Bundle import android.os.Handler import android.os.Looper @@ -30,7 +29,6 @@ import com.example.myapplication.ui.completed.CompletedAdapter import com.example.myapplication.ui.completed.CompletedItem import com.example.myapplication.ui.compressing.CompressingAdapter import com.example.myapplication.ui.compressing.CompressingItem -import com.example.myapplication.ui.settings.SettingsFragment import com.example.myapplication.ui.settings.SettingsViewModel import com.google.android.material.bottomnavigation.BottomNavigationView import java.io.File @@ -152,11 +150,11 @@ class MainActivity : AppCompatActivity() { Log.i("ethan",command) val session = FFmpegKit.executeAsync(command) { compressingItems.remove(item) - adapter.refreshList(this) + completedAdapter.refreshList(this) handler.post { Toast.makeText(this, "Finished converting $fileName", Toast.LENGTH_SHORT).show() - adapter.notifyDataSetChanged() + compressingAdapter.notifyDataSetChanged() } } @@ -165,7 +163,7 @@ class MainActivity : AppCompatActivity() { Log.i("Tag", session.output) - adapter.notifyDataSetChanged() + compressingAdapter.notifyDataSetChanged() }else{ Toast.makeText(applicationContext,"File is less than target size",Toast.LENGTH_LONG).show() } diff --git a/app/src/main/java/com/example/myapplication/ui/completed/CompletedAdapter.kt b/app/src/main/java/com/example/myapplication/ui/completed/CompletedAdapter.kt index 8bd35c7..43fcbe8 100644 --- a/app/src/main/java/com/example/myapplication/ui/completed/CompletedAdapter.kt +++ b/app/src/main/java/com/example/myapplication/ui/completed/CompletedAdapter.kt @@ -1,6 +1,7 @@ package com.example.myapplication.ui.completed import android.annotation.SuppressLint +import android.app.AlertDialog import android.content.Context import android.content.Intent import android.net.Uri @@ -20,7 +21,8 @@ class CompletedAdapter(private val mCompletedList: MutableList): inner class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) { val filename: TextView = itemView.findViewById(R.id.compressed_filename) val date: TextView = itemView.findViewById(R.id.compressed_date) - var shareButton: ImageButton = itemView.findViewById(R.id.compressed_share) + val shareButton: ImageButton = itemView.findViewById(R.id.compressed_share) + val deleteButton: ImageButton = itemView.findViewById(R.id.compressed_delete) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { @@ -33,12 +35,30 @@ class CompletedAdapter(private val mCompletedList: MutableList): holder.filename.text = compressingItem.filename holder.date.text = compressingItem.date.toString() holder.shareButton.setOnClickListener { shareFile(holder.itemView.context, compressingItem.uri) } + holder.deleteButton.setOnClickListener { deleteFile(holder.itemView.context, compressingItem.uri) } } + @SuppressLint("NotifyDataSetChanged") + private fun deleteFile(context: Context?, uri: Uri) { + val policy = VmPolicy.Builder().build() + StrictMode.setVmPolicy(policy) // this is a hack to allow the file to be deleted + + AlertDialog.Builder(context) + .setTitle("Delete file") + .setMessage("Are you sure you want to delete this file?") + .setPositiveButton("Yes") { _, _ -> + val file = java.io.File(uri.path!!) + file.delete() + refreshList(context!!) + } + .setNegativeButton("No") { _, _ -> } + .show() + } + private fun shareFile(context: Context?, uri: Uri) { - val builder = VmPolicy.Builder() - StrictMode.setVmPolicy(builder.build()) // this is a hack to allow sharing files from the app + val policy = VmPolicy.Builder().build() + StrictMode.setVmPolicy(policy) // this is a hack to allow sharing files from the app val intent = Intent(Intent.ACTION_SEND) @@ -57,7 +77,7 @@ class CompletedAdapter(private val mCompletedList: MutableList): mCompletedList.clear() context.getExternalFilesDir(null)?.listFiles()?.forEach { if (it.name.endsWith(".mp4")) { - val completedItem = CompletedItem(it.name, Date(it.lastModified()), ImageButton(context), Uri.fromFile(it)) + val completedItem = CompletedItem(it.name, Date(it.lastModified()), ImageButton(context), ImageButton(context), Uri.fromFile(it)) mCompletedList.add(completedItem) } } diff --git a/app/src/main/java/com/example/myapplication/ui/completed/CompletedFragment.kt b/app/src/main/java/com/example/myapplication/ui/completed/CompletedFragment.kt index 28ac761..58b39c4 100644 --- a/app/src/main/java/com/example/myapplication/ui/completed/CompletedFragment.kt +++ b/app/src/main/java/com/example/myapplication/ui/completed/CompletedFragment.kt @@ -26,8 +26,6 @@ class CompletedFragment : Fragment() { container: ViewGroup?, savedInstanceState: Bundle? ): View { - val dashboardViewModel = ViewModelProvider(this).get(CompletedViewModel::class.java) - _binding = FragmentCompletedBinding.inflate(inflater, container, false) val root: View = binding.root @@ -36,10 +34,6 @@ class CompletedFragment : Fragment() { completedRecycler?.layoutManager = LinearLayoutManager(binding.root.context) MainActivity.completedAdapter.refreshList(binding.root.context) - - dashboardViewModel.text.observe(viewLifecycleOwner) { - //do nothing - } return binding.root } diff --git a/app/src/main/java/com/example/myapplication/ui/completed/CompletedItem.kt b/app/src/main/java/com/example/myapplication/ui/completed/CompletedItem.kt index d1c5cef..ffb9825 100644 --- a/app/src/main/java/com/example/myapplication/ui/completed/CompletedItem.kt +++ b/app/src/main/java/com/example/myapplication/ui/completed/CompletedItem.kt @@ -4,4 +4,4 @@ import android.net.Uri import android.widget.ImageButton import java.util.* -data class CompletedItem(val filename: String, val date: Date, val button: ImageButton, val uri: Uri) \ No newline at end of file +data class CompletedItem(val filename: String, val date: Date, val shareButton: ImageButton, val deleteButton: ImageButton, val uri: Uri) \ No newline at end of file diff --git a/app/src/main/java/com/example/myapplication/ui/completed/CompletedViewModel.kt b/app/src/main/java/com/example/myapplication/ui/completed/CompletedViewModel.kt deleted file mode 100644 index 700f82a..0000000 --- a/app/src/main/java/com/example/myapplication/ui/completed/CompletedViewModel.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.myapplication.ui.completed - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel - -class CompletedViewModel : ViewModel() { - - private val _text = MutableLiveData().apply { - value = "This is completed Fragment" - } - val text: LiveData = _text -} \ No newline at end of file diff --git a/app/src/main/java/com/example/myapplication/ui/compressing/CompressingFragment.kt b/app/src/main/java/com/example/myapplication/ui/compressing/CompressingFragment.kt index a082d6c..e5929b3 100644 --- a/app/src/main/java/com/example/myapplication/ui/compressing/CompressingFragment.kt +++ b/app/src/main/java/com/example/myapplication/ui/compressing/CompressingFragment.kt @@ -23,8 +23,6 @@ class CompressingFragment : Fragment() { private val binding get() = _binding!! override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { - ViewModelProvider(this)[CompressingViewModel::class.java] - _binding = FragmentCompressingBinding.inflate(inflater, container, false) @@ -32,9 +30,6 @@ class CompressingFragment : Fragment() { compressingRecycler?.adapter = MainActivity.compressingAdapter compressingRecycler?.layoutManager = LinearLayoutManager(binding.root.context) - - - return binding.root } diff --git a/app/src/main/java/com/example/myapplication/ui/compressing/CompressingViewModel.kt b/app/src/main/java/com/example/myapplication/ui/compressing/CompressingViewModel.kt deleted file mode 100644 index 3e329fc..0000000 --- a/app/src/main/java/com/example/myapplication/ui/compressing/CompressingViewModel.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.example.myapplication.ui.compressing - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel - -class CompressingViewModel : ViewModel() { - - private val _text = MutableLiveData().apply { - value = "This is compressing Fragment" - } - val text: LiveData = _text -} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..ef36649 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/item_compressed.xml b/app/src/main/res/layout/item_compressed.xml index a353f85..9fee8c1 100644 --- a/app/src/main/res/layout/item_compressed.xml +++ b/app/src/main/res/layout/item_compressed.xml @@ -5,9 +5,9 @@ android:layout_height="wrap_content"> + android:contentDescription="@string/share_button" + app:srcCompat="@drawable/ic_share" /> + + \ 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 9310b8f..b53b477 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,5 +12,6 @@ Enter Size in MB Files Youtube - Share Button + Share + Delete \ No newline at end of file