2020-04-03 16:40:54 +00:00
|
|
|
package com.vanced.manager.ui
|
2020-03-16 15:41:57 +00:00
|
|
|
|
2020-07-02 10:23:12 +00:00
|
|
|
import android.content.Context
|
2020-03-16 15:41:57 +00:00
|
|
|
import android.os.Bundle
|
2020-06-22 17:28:45 +00:00
|
|
|
import android.util.Log
|
2020-04-05 18:07:26 +00:00
|
|
|
import android.view.MenuItem
|
2020-07-06 14:29:27 +00:00
|
|
|
import androidx.appcompat.app.AppCompatActivity
|
2020-06-04 07:35:26 +00:00
|
|
|
import androidx.databinding.DataBindingUtil
|
2020-08-26 12:29:05 +00:00
|
|
|
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
2020-07-06 11:38:00 +00:00
|
|
|
import com.crowdin.platform.Crowdin
|
|
|
|
import com.crowdin.platform.LoadingStateListener
|
2020-08-26 11:09:34 +00:00
|
|
|
import com.google.android.material.tabs.TabLayout
|
2020-09-06 10:33:04 +00:00
|
|
|
import com.google.android.material.tabs.TabLayoutMediator
|
2020-08-06 07:46:07 +00:00
|
|
|
import com.google.firebase.messaging.FirebaseMessaging
|
2020-04-03 16:40:54 +00:00
|
|
|
import com.vanced.manager.R
|
2020-09-06 10:33:04 +00:00
|
|
|
import com.vanced.manager.adapter.SectionVariantAdapter
|
2020-06-04 07:35:26 +00:00
|
|
|
import com.vanced.manager.databinding.ActivityMainBinding
|
2020-07-06 14:29:27 +00:00
|
|
|
import com.vanced.manager.ui.dialogs.DialogContainer
|
|
|
|
import com.vanced.manager.ui.fragments.UpdateCheckFragment
|
2020-08-08 20:21:08 +00:00
|
|
|
import com.vanced.manager.utils.AppUtils.installing
|
2020-07-06 14:29:27 +00:00
|
|
|
import com.vanced.manager.utils.InternetTools
|
|
|
|
import com.vanced.manager.utils.PackageHelper
|
2020-06-19 15:48:14 +00:00
|
|
|
import com.vanced.manager.utils.ThemeHelper.setFinalTheme
|
2020-08-07 19:24:35 +00:00
|
|
|
import kotlinx.coroutines.CoroutineScope
|
|
|
|
import kotlinx.coroutines.Dispatchers
|
2020-07-11 21:43:43 +00:00
|
|
|
import kotlinx.coroutines.launch
|
2020-03-16 15:41:57 +00:00
|
|
|
|
2020-07-06 14:29:27 +00:00
|
|
|
class MainActivity : AppCompatActivity() {
|
2020-03-16 15:41:57 +00:00
|
|
|
|
2020-06-04 07:35:26 +00:00
|
|
|
private lateinit var binding: ActivityMainBinding
|
2020-08-27 10:50:43 +00:00
|
|
|
|
2020-07-06 11:38:00 +00:00
|
|
|
private val loadingObserver = object : LoadingStateListener {
|
|
|
|
val tag = "VMLocalisation"
|
|
|
|
override fun onDataChanged() {
|
|
|
|
Log.d(tag, "Loaded data")
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onFailure(throwable: Throwable) {
|
|
|
|
Log.d(tag, "Failed to load data")
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2020-08-31 16:12:20 +00:00
|
|
|
|
2020-08-26 12:29:05 +00:00
|
|
|
private val tabListener = object : TabLayout.OnTabSelectedListener {
|
|
|
|
|
|
|
|
override fun onTabSelected(tab: TabLayout.Tab) {
|
2020-08-31 16:12:20 +00:00
|
|
|
getDefaultSharedPreferences(this@MainActivity).edit().putString("vanced_variant",
|
2020-08-26 12:29:05 +00:00
|
|
|
when (tab.position) {
|
2020-09-12 16:18:05 +00:00
|
|
|
1 -> "root"
|
2020-08-31 16:12:20 +00:00
|
|
|
else -> "nonroot"
|
2020-08-26 12:29:05 +00:00
|
|
|
}
|
2020-09-04 19:14:43 +00:00
|
|
|
).apply()
|
2020-08-26 12:29:05 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onTabUnselected(tab: TabLayout.Tab) {
|
2020-08-31 16:12:20 +00:00
|
|
|
return
|
2020-08-26 12:29:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
override fun onTabReselected(tab: TabLayout.Tab) {
|
2020-08-31 16:12:20 +00:00
|
|
|
return
|
2020-08-26 12:29:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2020-07-04 13:44:28 +00:00
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
|
setFinalTheme(this)
|
|
|
|
super.onCreate(savedInstanceState)
|
2020-09-04 19:14:43 +00:00
|
|
|
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
|
|
|
|
|
2020-07-04 13:44:28 +00:00
|
|
|
with(binding) {
|
|
|
|
lifecycleOwner = this@MainActivity
|
|
|
|
setSupportActionBar(homeToolbar)
|
2020-08-26 12:29:05 +00:00
|
|
|
mainViewpager.adapter = SectionVariantAdapter(this@MainActivity)
|
2020-08-31 16:12:20 +00:00
|
|
|
mainViewpager.setUserInputEnabled(false)
|
2020-08-26 11:09:34 +00:00
|
|
|
TabLayoutMediator(mainTablayout, mainViewpager) { tab, position ->
|
2020-09-04 19:14:43 +00:00
|
|
|
tab.text = if (position == 1) "root" else "nonroot"
|
2020-08-26 11:09:34 +00:00
|
|
|
}.attach()
|
2020-09-04 19:14:43 +00:00
|
|
|
|
|
|
|
mainTablayout.getTabAt(
|
|
|
|
if (getDefaultSharedPreferences(this@MainActivity).getString("vanced_variant", "nonroot") == "root")
|
|
|
|
1
|
|
|
|
else
|
|
|
|
0
|
|
|
|
)?.select()
|
|
|
|
|
2020-07-04 13:44:28 +00:00
|
|
|
}
|
|
|
|
|
2020-07-06 14:29:27 +00:00
|
|
|
initDialogs()
|
|
|
|
|
2020-07-04 13:44:28 +00:00
|
|
|
}
|
|
|
|
|
2020-05-27 16:37:03 +00:00
|
|
|
override fun onPause() {
|
|
|
|
super.onPause()
|
2020-07-06 11:38:00 +00:00
|
|
|
Crowdin.unregisterDataLoadingObserver(loadingObserver)
|
2020-08-31 16:12:20 +00:00
|
|
|
binding.mainTablayout.removeOnTabSelectedListener(tabListener)
|
2020-05-27 16:37:03 +00:00
|
|
|
}
|
2020-04-19 17:21:40 +00:00
|
|
|
|
2020-05-27 16:37:03 +00:00
|
|
|
override fun onResume() {
|
2020-06-19 15:48:14 +00:00
|
|
|
setFinalTheme(this)
|
2020-05-27 16:37:03 +00:00
|
|
|
super.onResume()
|
2020-08-06 07:46:07 +00:00
|
|
|
Crowdin.registerDataLoadingObserver(loadingObserver)
|
2020-08-31 16:12:20 +00:00
|
|
|
binding.mainTablayout.addOnTabSelectedListener(tabListener)
|
2020-04-05 18:07:26 +00:00
|
|
|
}
|
|
|
|
|
2020-04-19 17:21:40 +00:00
|
|
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
2020-08-08 20:21:08 +00:00
|
|
|
if (installing) {
|
2020-08-06 07:46:07 +00:00
|
|
|
return false
|
2020-08-06 17:17:40 +00:00
|
|
|
}
|
2020-08-06 07:46:07 +00:00
|
|
|
when (item.itemId) {
|
|
|
|
android.R.id.home -> {
|
2020-09-04 19:14:43 +00:00
|
|
|
return false
|
2020-04-19 17:21:40 +00:00
|
|
|
}
|
2020-08-06 07:46:07 +00:00
|
|
|
R.id.toolbar_about -> {
|
2020-08-27 10:50:43 +00:00
|
|
|
return false
|
2020-08-06 07:46:07 +00:00
|
|
|
}
|
|
|
|
R.id.toolbar_settings -> {
|
2020-08-27 10:50:43 +00:00
|
|
|
return false
|
2020-08-06 07:46:07 +00:00
|
|
|
}
|
|
|
|
R.id.dev_settings -> {
|
2020-08-27 10:50:43 +00:00
|
|
|
return false
|
2020-08-06 07:46:07 +00:00
|
|
|
}
|
|
|
|
else -> super.onOptionsItemSelected(item)
|
2020-04-05 18:07:26 +00:00
|
|
|
}
|
2020-08-06 07:46:07 +00:00
|
|
|
|
2020-04-24 16:10:29 +00:00
|
|
|
return false
|
2020-04-19 17:21:40 +00:00
|
|
|
}
|
2020-05-14 06:27:07 +00:00
|
|
|
|
2020-07-06 11:38:00 +00:00
|
|
|
override fun attachBaseContext(newBase: Context) {
|
|
|
|
super.attachBaseContext(Crowdin.wrapContext(newBase))
|
2020-04-05 18:07:26 +00:00
|
|
|
}
|
2020-05-27 16:37:03 +00:00
|
|
|
|
2020-07-06 14:29:27 +00:00
|
|
|
private fun initDialogs() {
|
2020-08-26 12:29:05 +00:00
|
|
|
val prefs = getDefaultSharedPreferences(this)
|
2020-07-06 14:29:27 +00:00
|
|
|
val variant = prefs.getString("vanced_variant", "nonroot")
|
|
|
|
val showRootDialog = prefs.getBoolean("show_root_dialog", true)
|
|
|
|
|
|
|
|
when {
|
2020-08-06 07:46:07 +00:00
|
|
|
prefs.getBoolean("firstStart", true) -> {
|
|
|
|
DialogContainer.showSecurityDialog(this)
|
|
|
|
with(FirebaseMessaging.getInstance()) {
|
|
|
|
subscribeToTopic("Vanced-Update")
|
|
|
|
subscribeToTopic("MicroG-Update")
|
|
|
|
}
|
|
|
|
}
|
2020-07-06 14:29:27 +00:00
|
|
|
!prefs.getBoolean("statement", true) -> DialogContainer.statementFalse(this)
|
|
|
|
variant == "root" -> {
|
|
|
|
if (PackageHelper.getPackageVersionName(
|
|
|
|
"com.google.android.youtube",
|
|
|
|
packageManager
|
|
|
|
) == "14.21.54")
|
|
|
|
DialogContainer.basicDialog(
|
|
|
|
getString(R.string.hold_on),
|
|
|
|
getString(R.string.magisk_vanced),
|
|
|
|
this
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
checkUpdates()
|
|
|
|
}
|
|
|
|
|
|
|
|
private fun checkUpdates() {
|
2020-08-08 20:21:08 +00:00
|
|
|
CoroutineScope(Dispatchers.Main).launch {
|
2020-08-07 19:24:35 +00:00
|
|
|
if (InternetTools.isUpdateAvailable()) {
|
2020-08-08 20:21:08 +00:00
|
|
|
UpdateCheckFragment().show(supportFragmentManager, "UpdateCheck")
|
2020-07-11 21:43:43 +00:00
|
|
|
}
|
2020-07-06 14:29:27 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-03-16 15:41:57 +00:00
|
|
|
}
|