MehranCode
user_3807706754
kotlin
2 years ago
7.2 kB
2
Indexable
package com.app.tiktokdownloader.fragment import android.os.Build import android.os.Bundle import android.view.View import android.widget.SeekBar import androidx.fragment.app.viewModels import androidx.lifecycle.Observer import com.app.tiktokdownloader.R import com.app.tiktokdownloader.db.BatchViewModel import com.app.tiktokdownloader.databinding.FragmentDownloadBinding import com.app.tiktokdownloader.inappsub.InAppSubscription import com.app.tiktokdownloader.mobileads.admob.AdMobBanner import com.app.tiktokdownloader.mobileads.admob.AdMobRewarded import com.app.tiktokdownloader.ui.KBottomDialogFragment import com.app.tiktokdownloader.utils.D import com.app.tiktokdownloader.utils.makeToast import com.app.tiktokdownloader.utils.materialdialog.KMaterialProgress import com.app.tiktokdownloader.utils.visible import com.app.tiktokdownloader.volley.JSONPostRequest import dagger.hilt.android.AndroidEntryPoint import com.app.tiktokdownloader.mobileads.admobads.AdMobBannerAd import com.app.tiktokdownloader.utils.materialdialog.KMaterialDialog @AndroidEntryPoint class DownloadFragment() : KBottomDialogFragment<FragmentDownloadBinding>(), View.OnClickListener { val TAG = "downloadFragment" private val batchVM: BatchViewModel by viewModels() private var listener: BatchDownloadListener? = null private var videoCount: Int = 50 // private lateinit var inAppSubs: InAppSubscription // private lateinit var adMobRewarded: AdMobRewarded // private lateinit var progress: KMaterialProgress constructor(listener: BatchDownloadListener) : this() { this.listener = listener } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // progress = KMaterialProgress(requireActivity()) // inAppSubs = InAppSubscription(requireActivity()) // adMobRewarded = AdMobRewarded(requireContext()) // binding.lytBannerAd.visible(!inAppSubs.isSubscribed) // if (!inAppSubs.isSubscribed) { // AdMobBanner(requireContext()).load("banner_download", binding.lytBannerAd) // } initViews() } // private fun getRewardAdListener(): AdMobRewarded.RewardedAdListener { // return object : AdMobRewarded.RewardedAdListener { // override fun onLoad(successful: Boolean) { // D(TAG, "onLoad() > SUCCESSFUL => $successful") // progress.dismiss() // adMobRewarded.showAd(requireActivity()) // } // // override fun onAdShow(successful: Boolean, rewardPoints: Int, type: String?) { // if (successful) { // D(TAG, "onAdShow() > SUCCESSFUL => $successful") // val batchName: String = binding.editTextBatchName.text.toString() // listener?.onBatchDownload(batchName, videoCount) // dismiss() // } // } // } // } private fun initViews() { binding.slider.progress = 50 binding.slider.max = 1000 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { binding.slider.min = 10 } binding.slider.incrementProgressBy(10) binding.textViewVideoCount.text = videoCount.toString() binding.editTextBatchName.setText("${System.currentTimeMillis()}") binding.slider.setOnSeekBarChangeListener(seekBarListener { p1 -> val minProgress = 10 var progress = if (p1 < minProgress) minProgress else p1 progress /= 10 progress *= 10 videoCount = progress binding.textViewVideoCount.text = videoCount.toString() }) binding.matBtnStartBatch.setOnClickListener(this) binding.matBtnBack.setOnClickListener(this) binding.matBtnDownloadSingle.setOnClickListener(this) // requireActivity().showSoftKeyboard(requireActivity(), binding.editTextBatchName) } override fun onClick(v: View?) { when (v?.id) { R.id.matBtnStartBatch -> { if (batchVM.hasActiveBatch()) { requireActivity().makeToast("Already Batch Running") return } startNewBatch() } R.id.matBtnBack -> { dismiss() } R.id.matBtnDownloadSingle -> { val url = binding.editTextUrl.text.toString() if (!url.contains("https://")) { requireActivity().makeToast("Invalid URL") return } fetchAndDownloadVideo(url) } } } private fun startNewBatch() { val batchName = binding.editTextBatchName.text.toString() if (batchName.isEmpty()) { requireActivity().makeToast("Enter Batch Name") return } // if (inAppSubs.isSubscribed) { // listener?.onBatchDownload(batchName, videoCount) // dismiss() // return // } val title = "TikTok Without Limit" val msg = "Do you want to download batch wihtout limit?" val primaryText = "Go PRO" val negativeText = "Watch Ad" val listener = KMaterialDialog.DialogClickListener { primary, dialog1 -> dialog1.dismiss() if (primary) { requireActivity().makeToast("GO PRO") } else { // progress.show() // adMobRewarded.load("rewarded_download") // adMobRewarded.setListener(getRewardAdListener()) } } KMaterialDialog(requireActivity()) .createDialog(title, msg, primaryText, negativeText, listener).show() } private fun fetchAndDownloadVideo(url: String) { val progress = KMaterialProgress(requireActivity()) progress.show() batchVM.downloadVideo(url) batchVM.onDownloadVideo().observe(requireActivity()) { progress.dismiss() when (it) { 0 -> requireActivity().makeToast("Something went wrong.") 1 -> requireActivity().makeToast("Download started") 2 -> requireActivity().makeToast("Download completed") } } } private fun seekBarListener(listener: (progress: Int) -> Unit): SeekBar.OnSeekBarChangeListener { return object : SeekBar.OnSeekBarChangeListener { override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { listener.invoke(progress) } override fun onStartTrackingTouch(seekBar: SeekBar?) { } override fun onStopTrackingTouch(seekBar: SeekBar?) { } } } interface BatchDownloadListener { fun onBatchDownload(title: String, count: Int) } override fun getViewBinding(): FragmentDownloadBinding { return FragmentDownloadBinding.inflate(layoutInflater) } override fun getBottomStyle(): BottomStyle { return BottomStyle.FULL } }
Editor is loading...