diff --git a/app/src/main/java/com/vanced/manager/core/Main.kt b/app/src/main/java/com/vanced/manager/core/Main.kt index b3c44862..489debda 100644 --- a/app/src/main/java/com/vanced/manager/core/Main.kt +++ b/app/src/main/java/com/vanced/manager/core/Main.kt @@ -12,6 +12,7 @@ import com.dezlum.codelabs.getjson.GetJson import com.vanced.manager.R import com.vanced.manager.core.base.BaseActivity import zlc.season.rxdownload4.file +import java.io.File // This activity will NOT be used in manifest // since MainActivity will extend it @@ -21,7 +22,6 @@ open class Main: BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE) + ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) diff --git a/app/src/main/java/com/vanced/manager/core/base/BaseFragment.kt b/app/src/main/java/com/vanced/manager/core/base/BaseFragment.kt index f5aa6242..cb4b7c8d 100644 --- a/app/src/main/java/com/vanced/manager/core/base/BaseFragment.kt +++ b/app/src/main/java/com/vanced/manager/core/base/BaseFragment.kt @@ -1,10 +1,24 @@ package com.vanced.manager.core.base +import android.annotation.SuppressLint import android.content.pm.PackageManager import android.net.Uri +import android.os.Environment +import android.view.View +import android.widget.ProgressBar +import android.widget.Toast import androidx.browser.customtabs.CustomTabsIntent import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment +import androidx.navigation.findNavController +import com.vanced.manager.R +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.rxkotlin.subscribeBy +import kotlinx.android.synthetic.main.activity_main.* +import zlc.season.rxdownload4.download +import zlc.season.rxdownload4.file +import zlc.season.rxdownload4.task.Task +import zlc.season.rxdownload4.utils.getFileNameFromUrl open class BaseFragment : Fragment() { @@ -24,4 +38,61 @@ open class BaseFragment : Fragment() { } } + @SuppressLint("CheckResult") + fun downloadSplit(apk: String, apkVar: String, isInstalling: Boolean, loadBar: ProgressBar, navigate: Int) { + val baseurl = "https://x1nto.github.io/VancedFiles/Splits/" + val url: String = + when(apk) { + "theme" -> baseurl + "Theme/" + apkVar + ".apk" + "lang" -> baseurl + "Language/split_config." + apkVar + ".apk" + "arch" -> baseurl + "Config/config." + apkVar + ".apk" + else -> return + } + + if (url.file().exists()) + url.file().delete() + + activity?.filesDir?.path?.let { + Task(url = url, saveName = getFileNameFromUrl(url), savePath = it) + .download() + .observeOn(AndroidSchedulers.mainThread()) + .subscribeBy( + onNext = { progress -> + loadBar.visibility = View.VISIBLE + loadBar.progress = progress.percent().toInt() + }, + onComplete = { + if (isInstalling) { + //So we should implement installation here. + //That will be done later + } + view?.findNavController()?.navigate(navigate) + }, + onError = { throwable -> + Toast.makeText(requireContext(), throwable.toString(), Toast.LENGTH_SHORT).show() + } + + ) + } + + } + fun downloadEn() { + val url = "https://x1nto.github.io/VancedFiles/Splits/Language/split_config.en.apk" + activity?.filesDir?.path?.let { + Task(url = url, saveName = getFileNameFromUrl(url), savePath = it) + .download() + .observeOn(AndroidSchedulers.mainThread()) + .subscribeBy( + onNext = { + }, + onComplete = { + }, + onError = { throwable -> + Toast.makeText(requireContext(), throwable.toString(), Toast.LENGTH_SHORT).show() + } + + ) + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/vanced/manager/core/fragments/Home.kt b/app/src/main/java/com/vanced/manager/core/fragments/Home.kt index 136c0342..2ba8915d 100644 --- a/app/src/main/java/com/vanced/manager/core/fragments/Home.kt +++ b/app/src/main/java/com/vanced/manager/core/fragments/Home.kt @@ -52,7 +52,7 @@ open class Home : BaseFragment() { val microgStatus = pm?.let { isPackageInstalled("com.mgoogle.android.gms", it) } val vancedStatus = pm?.let { isPackageInstalled("com.vanced.android.youtube", it) } - val vancedLatestTxt = view.findViewById(R.id.vanced_latest_version) + /*val vancedLatestTxt = view.findViewById(R.id.vanced_latest_version) val microgLatestTxt = view.findViewById(R.id.microg_latest_version) if (GetJson().isConnected(requireContext())) { @@ -64,7 +64,7 @@ open class Home : BaseFragment() { } else { vancedLatestTxt.text = getString(R.string.unavailable) microgLatestTxt.text = getString(R.string.unavailable) - } + }*/ vancedinstallbtn.setOnClickListener { view.findNavController().navigate(R.id.toInstallThemeFragment) diff --git a/app/src/main/java/com/vanced/manager/core/fragments/LanguageInstall.kt b/app/src/main/java/com/vanced/manager/core/fragments/LanguageInstall.kt index 6528ded2..6bd3efb9 100644 --- a/app/src/main/java/com/vanced/manager/core/fragments/LanguageInstall.kt +++ b/app/src/main/java/com/vanced/manager/core/fragments/LanguageInstall.kt @@ -3,20 +3,25 @@ package com.vanced.manager.core.fragments import android.os.Bundle import android.view.View import android.widget.Button -import androidx.fragment.app.Fragment -import androidx.navigation.findNavController +import android.widget.ProgressBar +import android.widget.RadioGroup import com.vanced.manager.R -import com.vanced.manager.ui.fragments.LanguageScrollviewFragment +import com.vanced.manager.core.base.BaseFragment -open class LanguageInstall : Fragment() { +open class LanguageInstall : BaseFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - val finishButton = getView()?.findViewById(R.id.vanced_install_finish) as Button + val finishButton = view.findViewById