Skip to content
This repository has been archived by the owner on Mar 15, 2022. It is now read-only.

Commit

Permalink
Merge pull request #47 from YTVanced/dev
Browse files Browse the repository at this point in the history
Update 1.0.2
  • Loading branch information
KevinX8 committed Jul 2, 2020
2 parents eb1c76d + 98a1866 commit 7f20d6f
Show file tree
Hide file tree
Showing 28 changed files with 234 additions and 288 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ android {
applicationId "com.vanced.manager"
minSdkVersion 21
targetSdkVersion 29
versionCode 9
versionName "1.0.1"
versionCode 10
versionName "1.0.2"

vectorDrawables.useSupportLibrary = true
}
Expand Down
5 changes: 4 additions & 1 deletion app/src/main/java/com/vanced/manager/core/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@ class App: Application() {

override fun onCreate() {
super.onCreate()
checkUpdates()
//checkUpdates()
PRDownloader.initialize(applicationContext)
createNotifChannel(this)
}

/*
private fun checkUpdates() {
val checkPrefs = PreferenceManager.getDefaultSharedPreferences(this).getBoolean("auto_check_update", true)
if (checkPrefs) {
Expand All @@ -28,4 +29,6 @@ class App: Application() {
}
}
*/

}
32 changes: 27 additions & 5 deletions app/src/main/java/com/vanced/manager/core/Main.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,18 @@ package com.vanced.manager.core
import android.annotation.SuppressLint
import android.content.Context
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.PreferenceManager
import com.dezlum.codelabs.getjson.GetJson
import com.vanced.manager.R
import com.vanced.manager.ui.dialogs.DialogContainer.basicDialog
import com.vanced.manager.ui.dialogs.DialogContainer.showRootDialog
import com.vanced.manager.ui.dialogs.DialogContainer.showSecurityDialog
import com.vanced.manager.ui.dialogs.DialogContainer.statementFalse
import com.vanced.manager.ui.fragments.UpdateCheckFragment
import com.vanced.manager.utils.InternetTools.isUpdateAvailable
import com.vanced.manager.utils.PackageHelper.getPackageVersionName

// This activity will NOT be used in manifest
// since MainActivity will extend it
Expand All @@ -18,17 +25,23 @@ open class Main: AppCompatActivity() {
super.onCreate(savedInstanceState)

val prefs = PreferenceManager.getDefaultSharedPreferences(this)
val firstStart = prefs.getBoolean("firstStart", true)
val falseStatement = prefs.getBoolean("statement", true)
val variant = prefs.getString("vanced_variant", "nonroot")
val showRootDialog = prefs.getBoolean("show_root_dialog", true)

when {
firstStart -> showSecurityDialog(this)
!falseStatement -> statementFalse(this)
variant == "root" && showRootDialog -> showRootDialog(this)
prefs.getBoolean("firstStart", true) -> showSecurityDialog(this)
!prefs.getBoolean("statement", true) -> statementFalse(this)
variant == "root" -> {
if (showRootDialog)
showRootDialog(this)

if (getPackageVersionName("com.google.android.youtube", packageManager) == "14.21.54")
basicDialog(getString(R.string.hold_on), getString(R.string.magisk_vanced), this)
}
}

checkUpdates()

}

override fun onPause() {
Expand All @@ -38,4 +51,13 @@ open class Main: AppCompatActivity() {
super.onPause()
}

private fun checkUpdates() {
if (GetJson().isConnected(this) && isUpdateAvailable()) {
val fm = supportFragmentManager
UpdateCheckFragment().show(fm, "UpdateCheck")
} else {
Toast.makeText(this, getString(R.string.update_notfound), Toast.LENGTH_SHORT).show()
}
}

}
22 changes: 7 additions & 15 deletions app/src/main/java/com/vanced/manager/core/fragments/Home.kt
Original file line number Diff line number Diff line change
Expand Up @@ -81,22 +81,14 @@ open class Home : BaseFragment(), View.OnClickListener {
view?.findNavController()?.navigate(R.id.toInstallThemeFragment)
}
} else {
Toast.makeText(
activity,
"Please wait until installation finishes",
Toast.LENGTH_SHORT
).show()
Toast.makeText(activity, activity?.getString(R.string.installation_wait), Toast.LENGTH_SHORT).show()
}
}
R.id.microg_installbtn -> {
if (!isMicrogDownloading!!) {
try {
activity?.startService(Intent(activity, MicrogDownloadService::class.java))
} catch (e: Exception) {
Toast.makeText(activity, "Unable to start installation", Toast.LENGTH_SHORT).show()
}
activity?.startService(Intent(activity, MicrogDownloadService::class.java))
} else {
Toast.makeText(activity, "Please wait until installation finishes", Toast.LENGTH_SHORT).show()
Toast.makeText(activity, activity?.getString(R.string.installation_wait), Toast.LENGTH_SHORT).show()
}
}
R.id.microg_uninstallbtn -> activity?.let { uninstallApk("com.mgoogle.android.gms", it) }
Expand All @@ -105,10 +97,9 @@ open class Home : BaseFragment(), View.OnClickListener {
R.id.root_switch ->
if (Shell.rootAccess()) {
writeToVariantPref("root", R.anim.slide_in_right, R.anim.slide_out_left)
}
else {
} else {
writeToVariantPref("nonroot", R.anim.slide_in_left, R.anim.slide_out_right)
Toast.makeText(activity, "Root access not granted", Toast.LENGTH_SHORT).show()
Toast.makeText(activity, activity?.getString(R.string.root_not_granted), Toast.LENGTH_SHORT).show()
}
}
}
Expand All @@ -120,7 +111,8 @@ open class Home : BaseFragment(), View.OnClickListener {
startActivity(Intent(activity, MainActivity::class.java))
activity?.overridePendingTransition(animIn, animOut)
activity?.finish()
} else Log.d("VMvariant", "$variant is already selected")
} else
Log.d("VMVariant", "$variant is already selected")
}

}
2 changes: 1 addition & 1 deletion app/src/main/java/com/vanced/manager/ui/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class MainActivity : Main() {
restartActivity()
Log.d("VMpm", "test")
}
APP_NOT_UNINSTALLED -> installAlertBuilder(getString(R.string.failed_uninstall) + intent.getStringExtra("pkgName"), this@MainActivity)
APP_NOT_UNINSTALLED -> installAlertBuilder(getString(R.string.failed_uninstall, intent.getStringExtra("pkgName")), this@MainActivity)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,15 @@ object DialogContainer {
.show()
}

fun basicDialog(title: String, msg: String, activity: Activity) {
AlertDialog.Builder(activity)
.setTitle(title)
.setMessage(msg)
.setPositiveButton(activity.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
.create()
.show()
}

fun launchVanced(activity: MainActivity) {
val intent = Intent()
intent.component =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import com.vanced.manager.adapter.SectionPageRootAdapter
import com.vanced.manager.core.fragments.Home
import com.vanced.manager.databinding.FragmentHomeBinding
import com.vanced.manager.ui.viewmodels.HomeViewModel
import com.vanced.manager.utils.PackageHelper.installApp

class HomeFragment : Home() {

Expand Down Expand Up @@ -92,7 +91,7 @@ class HomeFragment : Home() {
when (intent.action) {
MICROG_DOWNLOADED -> {
view?.findViewById<ProgressBar>(R.id.microg_installing)?.visibility = View.VISIBLE
activity?.let { installApp(it, it.filesDir.path + "/microg.apk", "com.mgoogle.android.gms") }
//activity?.let { installApp(it, it.filesDir.path + "/microg.apk", "com.mgoogle.android.gms") }
}
VANCED_DOWNLOADED -> {
view?.findViewById<ProgressBar>(R.id.vanced_installing)?.visibility = View.VISIBLE
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package com.vanced.manager.ui.fragments

import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
Expand All @@ -11,6 +14,7 @@ import android.widget.Button
import android.widget.ProgressBar
import android.widget.TextView
import android.widget.Toast
import androidx.core.content.FileProvider
import androidx.fragment.app.DialogFragment
import com.dezlum.codelabs.getjson.GetJson
import com.downloader.Error
Expand All @@ -19,7 +23,7 @@ import com.downloader.PRDownloader
import com.google.android.material.button.MaterialButton
import com.vanced.manager.R
import com.vanced.manager.utils.InternetTools.isUpdateAvailable
import com.vanced.manager.utils.PackageHelper.installApp
import java.io.File

class UpdateCheckFragment : DialogFragment() {

Expand Down Expand Up @@ -60,7 +64,7 @@ class UpdateCheckFragment : DialogFragment() {
}

private fun upgradeManager() {
val dwnldUrl = "https://github.com/VancedManager/releases/latest/download/manager.apk"
val dwnldUrl = GetJson().AsJSONObject("https://x1nto.github.io/VancedFiles/manager.json").get("url").asString
val loadBar = view?.findViewById<ProgressBar>(R.id.update_center_progressbar)

PRDownloader.download(dwnldUrl, activity?.filesDir?.path, "manager.apk")
Expand All @@ -74,10 +78,18 @@ class UpdateCheckFragment : DialogFragment() {
.start(object : OnDownloadListener{
override fun onDownloadComplete() {
activity?.let {
installApp(
it,
it.filesDir.path + "/manager.apk",
"com.vanced.manager")
val apk = File("${activity?.filesDir?.path}/manager.apk")
val uri =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
FileProvider.getUriForFile(activity!!, "${activity?.packageName}.provider", apk)
else
Uri.fromFile(apk)

val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(uri, "application/vnd.android.package-archive")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
startActivity(intent)
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.vanced.manager.utils

import android.app.Activity
import android.content.Context
import android.net.Uri
import androidx.browser.customtabs.CustomTabsIntent
Expand Down
35 changes: 5 additions & 30 deletions app/src/main/java/com/vanced/manager/utils/PackageHelper.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,9 @@ package com.vanced.manager.utils

import android.app.Activity
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.content.pm.PackageInstaller.SessionParams
import android.content.pm.PackageManager
import com.vanced.manager.core.installer.AppInstallerService
import com.vanced.manager.core.installer.AppUninstallerService
import java.io.FileInputStream
import java.io.IOException
import java.io.InputStream

object PackageHelper {

Expand All @@ -23,30 +17,11 @@ object PackageHelper {
}
}

@Throws(IOException::class)
fun installApp(
context: Context,
path: String,
pkg: String?
) {
val callbackIntent = Intent(context.applicationContext, AppInstallerService::class.java)
val pendingIntent = PendingIntent.getService(context.applicationContext, 0, callbackIntent, 0)
val packageInstaller = context.packageManager.packageInstaller
val params = SessionParams(SessionParams.MODE_FULL_INSTALL)
params.setAppPackageName(pkg)
val sessionId = packageInstaller.createSession(params)
val session = packageInstaller.openSession(sessionId)
val inputStream: InputStream = FileInputStream(path)
val outputStream = session.openWrite("install", 0, -1)
val buffer = ByteArray(65536)
var c: Int
while (inputStream.read(buffer).also { c = it } != -1) {
outputStream.write(buffer, 0, c)
}
session.fsync(outputStream)
inputStream.close()
outputStream.close()
session.commit(pendingIntent.intentSender)
fun getPackageVersionName(packageName: String, packageManager: PackageManager): String {
return if (isPackageInstalled(packageName, packageManager))
packageManager.getPackageInfo(packageName, 0).versionName
else
""
}

fun uninstallApk(pkg: String, activity: Activity) {
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/res/layout/fragment_chosen_preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:layout_gravity="center">

<com.google.android.material.button.MaterialButton
android:id="@+id/chosen_prefs_close"
Expand Down
23 changes: 12 additions & 11 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
<string name="title_home">Startseite</string>
<string name="title_install">Installieren</string>
<string name="title_settings">Einstellungen</string>
<string name="button_dismiss">Schließen</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">%1$s wird heruntergeladen</string>
Expand All @@ -18,21 +17,23 @@
<string name="install">Installieren</string>
<string name="installing_app">%1$s wird installiert</string>
<string name="installation_aborted">Operation fehlgeschlagen, da der Nutzer sie abgebrochen hat</string>
<string name="installation_blocked">Operation fehlgeschlagen, da der Nutzer Installation nicht gestattet hat</string>
<string name="installation_blocked">Operation fehlgeschlagen, da der Nutzer die Installation nicht gestattet hat</string>
<string name="installation_conflict">Operation fehlgeschlagen, da die App mit einer bereits installierten App im Konflikt steht</string>
<string name="installation_failed">Operation aus einem unbekannten Grund fehlgeschlagen</string>
<string name="installation_failed">Operation aus einem unbekannten Grund fehlgeschlagen. Bitte trete unserem Telegram Chat oder Discord Server bei, um Support zu erhalten.</string>
<string name="installation_incompatible">Operation fehlgeschlagen, da die App inkompatibel mit deinem Gerät ist</string>
<string name="installation_invalid">Operation fehlgeschlagen, da die apks Dateien defekt sind</string>
<string name="installation_signature">Unerwarteter Fehler während der Installation aufgetreten. Hast du die Signatur-Verifikation deaktiviert?</string>
<string name="installation_miui">Unerwarteter Fehler während der Installation aufgetreten. Hast du die MiUI-Optimisierungen deaktiviert?</string>
<string name="installation_storage">Operation fehlgeschlagen, da ein Storage-Fehler aufgetreten ist. Warte, wie ist das überhaupt möglich?</string>
<string name="installation_miui">Unerwarteter Fehler während der Installation aufgetreten. Hast du die MIUI-Optimisierungen deaktiviert?</string>
<string name="installation_storage">Operation fehlgeschlagen, da ein Storage-Fehler aufgetreten ist.</string>
<string name="installation_wait">Bitte warte, bis die Installation abgeschlossen ist</string>
<string name="button_reinstall">Neu installieren</string>
<string name="version_installed">Installiert:</string>
<string name="latest">Neueste:</string>
<string name="loading">Lädt...</string>
<string name="successfully_installed">%1$s erfolgreich installiert</string>
<string name="network_error">Keine Netzwerkverbindung verfügbar</string>
<string name="no_microg">Kein MicroG!</string>
<string name="root_not_granted">Root-Zugriff nicht erteilt</string>
<string name="unavailable">Nicht verfügbar</string>
<string name="update">Update</string>
<string name="useful_links">Nützliche Links</string>
Expand Down Expand Up @@ -65,19 +66,21 @@
<string name="update_found">Update gefunden!</string>
<string name="update_notfound">Keine neuen Updates</string>
<!-- Dialogs -->
<string name="button_dismiss">Schließen</string>
<string name="guide">Guide</string>
<string name="hold_on">Warte!</string>
<string name="miui_one_title">MIUI-Nutzer erkannt!</string>
<string name="miui_one">Hey! Du scheinst ein MIUI-Nutzer zu sein. Damit Vanced Manager richtig funktioniert musst du diese in den Entwicklereinstellungen deines Gerätes deaktivieren.\nSolltest du jedoch auf einem 20.2.20 Betriebssystem sein, das auf xiaomi.eu basiert ist, kannst du diese Warnung ignorieren.</string>
<string name="magisk_vanced">Du nutzt die Magisk-Version von Vanced. Diese ist nicht mehr unterstützt und es ist nicht möglich, sie zu updaten. Bitte entferne sie erst, indem du das Magisk-Modul entfernst.</string>
<string name="miui_one_title">MIUI erkannt!</string>
<string name="miui_one">Hey! Du scheinst ein MIUI-Nutzer zu sein. Damit Vanced Manager richtig funktioniert musst du die MIUI-Optimisierungen in den Entwicklereinstellungen deines Gerätes deaktivieren. (Du kannst diese Warnung ignorieren, solltest du ein 20.2.20 Betriebssystem haben, das auf xiaomi.eu basiert ist)</string>
<string name="error">Fehler</string>
<string name="security_context">Bitte stelle sicher, dass du die App von vanced.app, dem Vanced Discord Server oder GitHub heruntergeldaden hast.</string>
<string name="success">Erfolg!</string>
<string name="vanced_installed">Vanced wurde erfolgreich installiert. Möchtest du es sofort öffnen?</string>
<string name="vanced_installed">Vanced wurde erfolgreich installiert. Jetzt öffnen?</string>
<string name="launch">Öffnen</string>
<string name="welcome">Willkommen</string>
<!-- Install Page -->
<string name="choose_preferred_language">Wähle deine bevorzugte Sprache für Vanced</string>
<string name="choose_preferred_language_note">Beachte: Solltest du eine andere Sprache als Englisch installieren, wird Englisch trotzdem als zusätzliche Sprache installiert.</string>
<string name="choose_preferred_language_note">Beachte: Englisch wird immer als zusätzliche Sprache installiert</string>
<string name="choose_preferred_theme">Wähle dein bevorzugtes Theme für Vanced</string>
<string name="disable_signature">Root-Modus erkannt! Um Vanced erfolgreich zu installieren, stelle sicher, dass du die Signatur-Verifikation deaktiviert hast.</string>
<string name="finish">Abschließen</string>
Expand All @@ -88,6 +91,4 @@
<string name="manager_dev">Manager-Entwickler</string>
<string name="sources">Quellen</string>
<string name="vanced_team">Vanced Team</string>
<!-- Home Page -->
<!-- About Page -->
</resources>
Loading

0 comments on commit 7f20d6f

Please sign in to comment.