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.BroadcastReceiver
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.Intent
|
|
|
|
import android.content.IntentFilter
|
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-06-04 07:35:26 +00:00
|
|
|
import androidx.databinding.DataBindingUtil
|
2020-05-27 16:37:03 +00:00
|
|
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
2020-04-19 17:21:40 +00:00
|
|
|
import androidx.navigation.NavDestination
|
2020-04-14 20:54:42 +00:00
|
|
|
import androidx.navigation.findNavController
|
2020-04-22 09:41:18 +00:00
|
|
|
import androidx.navigation.ui.AppBarConfiguration
|
2020-04-14 20:54:42 +00:00
|
|
|
import androidx.navigation.ui.setupWithNavController
|
2020-04-03 16:40:54 +00:00
|
|
|
import com.vanced.manager.R
|
2020-04-25 17:40:24 +00:00
|
|
|
import com.vanced.manager.core.Main
|
2020-06-04 07:35:26 +00:00
|
|
|
import com.vanced.manager.databinding.ActivityMainBinding
|
2020-06-19 15:48:14 +00:00
|
|
|
import com.vanced.manager.ui.dialogs.DialogContainer.installAlertBuilder
|
|
|
|
import com.vanced.manager.ui.dialogs.DialogContainer.launchVanced
|
2020-06-22 13:32:18 +00:00
|
|
|
import com.vanced.manager.ui.dialogs.DialogContainer.regularPackageInstalled
|
2020-06-19 15:48:14 +00:00
|
|
|
import com.vanced.manager.utils.ThemeHelper.setFinalTheme
|
2020-03-16 15:41:57 +00:00
|
|
|
|
2020-04-25 17:40:24 +00:00
|
|
|
class MainActivity : Main() {
|
2020-03-16 15:41:57 +00:00
|
|
|
|
2020-06-04 07:35:26 +00:00
|
|
|
private lateinit var binding: ActivityMainBinding
|
2020-07-04 13:44:28 +00:00
|
|
|
private val navHost by lazy { findNavController(R.id.bottom_nav_host) }
|
|
|
|
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
|
2020-05-27 16:37:03 +00:00
|
|
|
|
|
|
|
private val broadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() {
|
|
|
|
override fun onReceive(context: Context, intent: Intent) {
|
2020-05-30 17:43:47 +00:00
|
|
|
when (intent.action) {
|
2020-06-22 12:11:57 +00:00
|
|
|
INSTALL_COMPLETED -> {
|
|
|
|
if (intent.getStringExtra("package") == "split")
|
|
|
|
launchVanced(this@MainActivity)
|
|
|
|
else
|
2020-07-02 10:23:12 +00:00
|
|
|
regularPackageInstalled(getString(R.string.successfully_installed, "MicroG"), this@MainActivity)
|
2020-06-21 19:24:14 +00:00
|
|
|
}
|
2020-06-22 15:17:58 +00:00
|
|
|
INSTALL_FAILED -> installAlertBuilder(intent.getStringExtra("errorMsg") as String, this@MainActivity)
|
2020-06-22 17:28:45 +00:00
|
|
|
APP_UNINSTALLED -> {
|
|
|
|
restartActivity()
|
|
|
|
Log.d("VMpm", "test")
|
|
|
|
}
|
2020-07-02 18:13:16 +00:00
|
|
|
APP_NOT_UNINSTALLED -> installAlertBuilder(getString(R.string.failed_uninstall, intent.getStringExtra("pkgName")), this@MainActivity)
|
2020-05-27 16:37:03 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-07-04 13:44:28 +00:00
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
|
setFinalTheme(this)
|
|
|
|
super.onCreate(savedInstanceState)
|
|
|
|
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
|
|
|
|
|
|
|
|
with(binding) {
|
|
|
|
lifecycleOwner = this@MainActivity
|
|
|
|
setSupportActionBar(homeToolbar)
|
|
|
|
val appBarConfiguration = AppBarConfiguration(navHost.graph)
|
|
|
|
homeToolbar.setupWithNavController(navHost, appBarConfiguration)
|
|
|
|
}
|
|
|
|
|
|
|
|
navHost.addOnDestinationChangedListener { _, currFrag: NavDestination, _ ->
|
2020-07-04 15:35:23 +00:00
|
|
|
setDisplayHomeAsUpEnabled(currFrag.id != R.id.home_fragment)
|
2020-07-04 13:44:28 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-05-27 16:37:03 +00:00
|
|
|
override fun onPause() {
|
|
|
|
super.onPause()
|
2020-07-04 13:44:28 +00:00
|
|
|
localBroadcastManager.unregisterReceiver(broadcastReceiver)
|
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-05-27 17:43:21 +00:00
|
|
|
registerReceivers()
|
2020-04-05 18:07:26 +00:00
|
|
|
}
|
|
|
|
|
2020-04-19 17:21:40 +00:00
|
|
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
2020-04-24 16:10:29 +00:00
|
|
|
val navHost = findNavController(R.id.bottom_nav_host)
|
2020-04-19 17:21:40 +00:00
|
|
|
when (item.itemId) {
|
|
|
|
android.R.id.home -> {
|
2020-04-24 16:10:29 +00:00
|
|
|
onBackPressed()
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
R.id.toolbar_about -> {
|
|
|
|
navHost.navigate(R.id.toAboutFragment)
|
|
|
|
return true
|
|
|
|
}
|
2020-04-27 21:18:19 +00:00
|
|
|
R.id.toolbar_settings -> {
|
|
|
|
navHost.navigate(R.id.action_settingsFragment)
|
|
|
|
return true
|
|
|
|
}
|
2020-07-04 13:44:28 +00:00
|
|
|
R.id.dev_settings -> {
|
2020-06-27 15:03:59 +00:00
|
|
|
navHost.navigate(R.id.toDevSettingsFragment)
|
2020-04-24 16:10:29 +00:00
|
|
|
return true
|
2020-04-19 17:21:40 +00:00
|
|
|
}
|
|
|
|
else -> super.onOptionsItemSelected(item)
|
2020-04-05 18:07:26 +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-04-19 17:21:40 +00:00
|
|
|
private fun setDisplayHomeAsUpEnabled(isNeeded: Boolean) {
|
2020-07-04 13:44:28 +00:00
|
|
|
binding.homeToolbar.navigationIcon = if (isNeeded) getDrawable(R.drawable.ic_keyboard_backspace_black_24dp) else null
|
|
|
|
|
2020-04-05 18:07:26 +00:00
|
|
|
}
|
2020-05-27 16:37:03 +00:00
|
|
|
|
2020-05-27 17:43:21 +00:00
|
|
|
private fun registerReceivers() {
|
2020-06-22 17:28:45 +00:00
|
|
|
val intentFilter = IntentFilter()
|
|
|
|
intentFilter.addAction(INSTALL_COMPLETED)
|
|
|
|
intentFilter.addAction(INSTALL_FAILED)
|
|
|
|
intentFilter.addAction(APP_UNINSTALLED)
|
|
|
|
intentFilter.addAction(APP_NOT_UNINSTALLED)
|
2020-07-04 13:44:28 +00:00
|
|
|
localBroadcastManager.registerReceiver(broadcastReceiver, intentFilter)
|
2020-05-27 17:43:21 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2020-06-22 13:32:18 +00:00
|
|
|
fun restartActivity() {
|
2020-06-22 15:42:46 +00:00
|
|
|
startActivity(Intent(this@MainActivity, MainActivity::class.java))
|
2020-06-22 17:52:01 +00:00
|
|
|
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
|
2020-06-22 12:11:57 +00:00
|
|
|
finish()
|
|
|
|
}
|
|
|
|
|
2020-05-27 16:37:03 +00:00
|
|
|
companion object {
|
2020-07-04 13:44:28 +00:00
|
|
|
const val INSTALL_COMPLETED = "install_completed"
|
|
|
|
const val INSTALL_FAILED = "install_failed"
|
|
|
|
const val APP_UNINSTALLED = "app_uninstalled"
|
|
|
|
const val APP_NOT_UNINSTALLED = "app_not_installed"
|
2020-05-27 16:37:03 +00:00
|
|
|
}
|
2020-03-16 15:41:57 +00:00
|
|
|
}
|