some adjustments

This commit is contained in:
X1nto 2020-07-15 18:52:31 +04:00
parent 2272c21dd8
commit db2cb4e04b
10 changed files with 69 additions and 82 deletions

View File

@ -58,6 +58,7 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
// AndroidX
implementation 'androidx.activity:activity:1.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.browser:browser:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
@ -76,7 +77,6 @@ dependencies {
implementation 'com.crowdin.platform:mobile-sdk:1.1.4'
implementation 'com.github.topjohnwu.libsu:core:2.5.1'
implementation 'com.mindorks.android:prdownloader:0.6.0'
implementation 'com.squareup.okhttp3:okhttp:4.7.2'
implementation 'com.beust:klaxon:5.0.1'
//core

View File

@ -7,8 +7,9 @@
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name=".core.App"

View File

@ -5,6 +5,8 @@ import com.crowdin.platform.Crowdin
import com.crowdin.platform.CrowdinConfig
import com.crowdin.platform.data.remote.NetworkType
import com.downloader.PRDownloader
import com.vanced.manager.utils.AppUtils.isPermissionGranted
import com.vanced.manager.utils.AppUtils.requestPermission
import com.vanced.manager.utils.NotificationHelper.createNotifChannel
class App: Application() {
@ -19,6 +21,9 @@ class App: Application() {
.withDistributionHash("36c51aed3180a4f43073d28j4s6")
.withNetworkType(NetworkType.WIFI)
.build())
if (!isPermissionGranted(this))
requestPermission()
}
/*

View File

@ -6,26 +6,17 @@ import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.net.Uri
import android.os.IBinder
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.preference.PreferenceManager
import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.OnStartOrResumeListener
import com.downloader.PRDownloader
import com.vanced.manager.R
import com.vanced.manager.core.installer.AppInstaller
import com.vanced.manager.ui.fragments.HomeFragment
import com.vanced.manager.utils.DownloadHelper.download
import com.vanced.manager.utils.InternetTools.baseUrl
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
import com.vanced.manager.utils.InternetTools.getObjectFromJson
import com.vanced.manager.utils.NotificationHelper
import com.vanced.manager.utils.NotificationHelper.cancelNotif
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import java.io.File
class MicrogDownloadService: Service() {
@ -43,18 +34,11 @@ class MicrogDownloadService: Service() {
runBlocking {
launch {
//val prefs = getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val apkUrl = getObjectFromJson(
val url = getObjectFromJson(
"${PreferenceManager.getDefaultSharedPreferences(context)
.getString("install_url", baseUrl)}/microg.json", "url")
val request = DownloadManager.Request(Uri.parse(apkUrl))
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI)
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE)
request.setTitle(getString(R.string.downloading_file, "MicroG"))
request.setDestinationUri(Uri.fromFile(File("${filesDir.path}/microg.apk")))
val downloadManager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
downloadId = downloadManager.enqueue(request)
downloadId = download(url, "apk", "microg.apk", this@MicrogDownloadService)
}
}
/*

View File

@ -6,28 +6,20 @@ import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.net.Uri
import android.os.Build
import android.os.IBinder
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.preference.PreferenceManager
import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.OnStartOrResumeListener
import com.downloader.PRDownloader
import com.vanced.manager.R
import com.vanced.manager.core.installer.RootSplitInstallerService
import com.vanced.manager.core.installer.SplitInstaller
import com.vanced.manager.ui.fragments.HomeFragment
import com.vanced.manager.utils.DownloadHelper.download
import com.vanced.manager.utils.InternetTools.baseUrl
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
import com.vanced.manager.utils.InternetTools.getObjectFromJson
import com.vanced.manager.utils.NotificationHelper.cancelNotif
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
import com.vanced.manager.utils.NotificationHelper.displayDownloadNotif
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import java.io.File
class VancedDownloadService: Service() {
@ -52,8 +44,7 @@ class VancedDownloadService: Service() {
val vancedVer = getObjectFromJson("$baseUrl/vanced.json", "version")
val prefs = getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val variant = PreferenceManager.getDefaultSharedPreferences(context)
.getString("vanced_variant", "nonroot")
val variant = PreferenceManager.getDefaultSharedPreferences(context).getString("vanced_variant", "nonroot")
val lang = prefs?.getString("lang", "en")
val theme = prefs?.getString("theme", "dark")
val arch =
@ -72,22 +63,7 @@ class VancedDownloadService: Service() {
}
apkType = type
val request = DownloadManager.Request(Uri.parse(url))
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI)
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE)
request.setTitle(getString(R.string.downloading_file, "MicroG"))
request.setDestinationUri(
Uri.fromFile(
File(
"${filesDir.path}/${getFileNameFromUrl(
url
)}"
)
)
)
val downloadManager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
downloadId = downloadManager.enqueue(request)
downloadId = download(url, "apks", getFileNameFromUrl(url), this@VancedDownloadService)
}
}
/*

View File

@ -17,20 +17,11 @@ import androidx.navigation.ui.setupWithNavController
import androidx.preference.PreferenceManager
import com.crowdin.platform.Crowdin
import com.crowdin.platform.LoadingStateListener
import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.PRDownloader
import com.vanced.manager.R
import com.vanced.manager.core.installer.AppInstaller
import com.vanced.manager.databinding.ActivityMainBinding
import com.vanced.manager.ui.dialogs.DialogContainer
import com.vanced.manager.ui.dialogs.DialogContainer.installAlertBuilder
import com.vanced.manager.ui.dialogs.DialogContainer.launchVanced
import com.vanced.manager.ui.dialogs.DialogContainer.regularPackageInstalled
import com.vanced.manager.ui.fragments.HomeFragment
import com.vanced.manager.ui.fragments.UpdateCheckFragment
import com.vanced.manager.utils.InternetTools
import com.vanced.manager.utils.NotificationHelper
import com.vanced.manager.utils.PackageHelper
import com.vanced.manager.utils.ThemeHelper.setFinalTheme
import kotlinx.coroutines.launch
@ -47,13 +38,13 @@ class MainActivity : AppCompatActivity() {
when (intent.action) {
INSTALL_COMPLETED -> {
if (intent.getStringExtra("package") == "split")
launchVanced(this@MainActivity)
DialogContainer.launchVanced(this@MainActivity)
else
regularPackageInstalled(getString(R.string.successfully_installed, "MicroG"), this@MainActivity)
DialogContainer.regularPackageInstalled(getString(R.string.successfully_installed, "MicroG"), this@MainActivity)
}
INSTALL_FAILED -> installAlertBuilder(intent.getStringExtra("errorMsg") as String, this@MainActivity)
INSTALL_FAILED -> DialogContainer.installAlertBuilder(intent.getStringExtra("errorMsg") as String, this@MainActivity)
APP_UNINSTALLED -> restartActivity()
APP_NOT_UNINSTALLED -> installAlertBuilder(getString(R.string.failed_uninstall, intent.getStringExtra("pkgName")), this@MainActivity)
APP_NOT_UNINSTALLED -> DialogContainer.installAlertBuilder(getString(R.string.failed_uninstall, intent.getStringExtra("pkgName")), this@MainActivity)
}
}
}

View File

@ -31,12 +31,13 @@ class URLChangeFragment : DialogFragment() {
val prefs = PreferenceManager.getDefaultSharedPreferences(activity)
urlField.hint = prefs.getString("install_url", baseUrl)
view.findViewById<MaterialButton>(R.id.url_save).setOnClickListener {
if (urlField.text.endsWith("/"))
prefs.edit().putString("install_url", urlField.text.removeSuffix("/").toString()).apply()
if (!urlField.text.startsWith("https://"))
prefs.edit().putString("install_url", "https://${urlField.text}").apply()
val finalUrl =
if (!urlField.text.startsWith("https://"))
"https://${urlField.text}".removeSuffix("/")
else
urlField.text.removeSuffix("/").toString()
prefs.edit().putString("install_url", finalUrl).apply()
dismiss()
}
view.findViewById<MaterialButton>(R.id.url_reset).setOnClickListener {

View File

@ -3,7 +3,6 @@ package com.vanced.manager.ui.fragments
import android.app.DownloadManager
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Context.DOWNLOAD_SERVICE
import android.content.Intent
import android.content.IntentFilter
import android.graphics.Color
@ -18,11 +17,9 @@ import android.widget.Button
import android.widget.TextView
import androidx.core.content.FileProvider
import androidx.fragment.app.DialogFragment
import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.PRDownloader
import com.google.android.material.button.MaterialButton
import com.vanced.manager.R
import com.vanced.manager.utils.DownloadHelper.download
import com.vanced.manager.utils.InternetTools
import com.vanced.manager.utils.InternetTools.isUpdateAvailable
import kotlinx.coroutines.launch
@ -76,17 +73,8 @@ class UpdateCheckFragment : DialogFragment() {
private fun upgradeManager() {
runBlocking {
launch {
val dwnldUrl = InternetTools.getObjectFromJson("https://x1nto.github.io/VancedFiles/manager.json", "url")
//val loadBar = view?.findViewById<ProgressBar>(R.id.update_center_progressbar)
val request = DownloadManager.Request(Uri.parse(dwnldUrl))
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI)
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE)
request.setTitle(activity?.getString(R.string.downloading_file, "Manager"))
request.setDestinationUri(Uri.fromFile(File("${activity?.filesDir?.path}/manager.apk")))
val downloadManager = activity?.getSystemService(DOWNLOAD_SERVICE) as DownloadManager
downloadId = downloadManager.enqueue(request)
val url = InternetTools.getObjectFromJson("https://x1nto.github.io/VancedFiles/manager.json", "url")
downloadId = activity?.let { download(url, "apk", "manager.apk", it) }!!
}
}
}

View File

@ -0,0 +1,19 @@
package com.vanced.manager.utils
import android.content.Context
import android.content.pm.PackageManager
import androidx.core.content.ContextCompat.checkSelfPermission
object AppUtils {
fun requestPermission(context: Context) {
val requestPermissionLauncher = registerForActivityResult()
}
fun isPermissionGranted(context: Context): Boolean {
//Check Storage Permissions
return checkSelfPermission(context, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED
}
}

View File

@ -0,0 +1,22 @@
package com.vanced.manager.utils
import android.app.DownloadManager
import android.content.Context
import android.net.Uri
import com.vanced.manager.R
object DownloadHelper {
fun download(url: String, dir: String, child: String, context: Context): Long {
val request = DownloadManager.Request(Uri.parse(url)).apply {
setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI)
setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE)
setTitle(context.getString(R.string.downloading_file, child))
setDestinationInExternalPublicDir(context.getExternalFilesDir(dir)?.path, child)
}
val downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
return downloadManager.enqueue(request)
}
}