2020-04-03 16:40:54 +00:00
package com.vanced.manager.ui
2020-03-16 15:41:57 +00:00
import android.os.Bundle
2020-04-05 18:07:26 +00:00
import android.view.MenuItem
2020-04-19 17:21:40 +00:00
import android.view.View
2020-03-28 13:29:48 +00:00
import androidx.appcompat.app.AlertDialog
2020-04-19 17:21:40 +00:00
import androidx.core.view.forEach
import androidx.navigation.NavDestination
2020-04-14 20:54:42 +00:00
import androidx.navigation.findNavController
import androidx.navigation.ui.setupWithNavController
2020-04-07 12:48:13 +00:00
import com.google.android.material.appbar.MaterialToolbar
2020-04-15 13:35:15 +00:00
import com.google.android.material.bottomnavigation.BottomNavigationView
2020-04-03 16:40:54 +00:00
import com.vanced.manager.R
2020-04-07 12:48:13 +00:00
import com.vanced.manager.ui.core.ThemeActivity
2020-03-16 15:41:57 +00:00
2020-04-07 12:48:13 +00:00
class MainActivity : ThemeActivity ( ) {
2020-03-16 15:41:57 +00:00
2020-04-19 17:21:40 +00:00
private var isParent = true
2020-03-16 15:41:57 +00:00
override fun onCreate ( savedInstanceState : Bundle ? ) {
2020-04-10 12:45:09 +00:00
super . onCreate ( savedInstanceState )
2020-03-16 15:41:57 +00:00
setContentView ( R . layout . activity _main )
2020-03-18 18:10:54 +00:00
2020-04-12 12:00:14 +00:00
val toolbar : MaterialToolbar = findViewById ( R . id . home _toolbar )
2020-04-19 17:21:40 +00:00
2020-04-05 18:07:26 +00:00
setSupportActionBar ( toolbar )
2020-03-28 13:29:48 +00:00
val prefs = getSharedPreferences ( " prefs " , MODE _PRIVATE )
val firstStart = prefs . getBoolean ( " firstStart " , true )
if ( firstStart ) {
2020-04-05 18:08:21 +00:00
showSecurityDialog ( )
2020-03-28 13:29:48 +00:00
}
2020-04-14 20:54:42 +00:00
val navHost = findNavController ( R . id . bottom _nav _host )
val navBar = findViewById < BottomNavigationView > ( R . id . bottom _nav )
navBar . setupWithNavController ( navHost )
2020-04-12 20:09:17 +00:00
2020-04-14 20:54:42 +00:00
navBar . setOnNavigationItemSelectedListener { item ->
2020-04-13 21:07:19 +00:00
when ( item . itemId ) {
R . id . navigation _home -> {
2020-04-19 17:21:40 +00:00
navHost . navigate ( R . id . action _homeFragment )
2020-04-15 13:35:15 +00:00
return @setOnNavigationItemSelectedListener true
2020-04-13 21:07:19 +00:00
}
R . id . navigation _settings -> {
2020-04-19 17:21:40 +00:00
navHost . navigate ( R . id . action _settingsFragment )
2020-04-15 13:35:15 +00:00
return @setOnNavigationItemSelectedListener true
2020-04-13 21:07:19 +00:00
}
}
false
}
2020-04-14 20:54:42 +00:00
navBar . setOnNavigationItemReselectedListener {
2020-03-18 18:10:54 +00:00
}
2020-04-05 18:07:26 +00:00
2020-04-19 17:21:40 +00:00
navHost . addOnDestinationChangedListener { _ , currfrag : NavDestination , _ ->
when ( currfrag . id ) {
R . id . home _fragment , R . id . settings _fragment -> navBar . visibility = View . VISIBLE
else -> navBar . visibility = View . INVISIBLE
}
isParent = when ( currfrag . id ) {
R . id . home _fragment , R . id . settings _fragment -> true
else -> false
}
setDisplayHomeAsUpEnabled ( !is Parent )
navBar . menu . forEach {
if ( it . itemId == currfrag . id ) {
it . isChecked = true
}
}
}
2020-04-05 18:07:26 +00:00
}
2020-04-19 17:21:40 +00:00
override fun onOptionsItemSelected ( item : MenuItem ) : Boolean {
when ( item . itemId ) {
android . R . id . home -> {
findNavController ( R . id . bottom _nav _host ) . navigate ( R . id . action _homeFragment )
}
else -> super . onOptionsItemSelected ( item )
2020-04-05 18:07:26 +00:00
}
2020-04-19 17:21:40 +00:00
return true
}
private fun setDisplayHomeAsUpEnabled ( isNeeded : Boolean ) {
val toolbar : MaterialToolbar = findViewById ( R . id . home _toolbar )
when {
isNeeded -> toolbar . setNavigationIcon ( R . drawable . ic _keyboard _backspace _black _24dp )
else -> toolbar . navigationIcon = null
2020-04-05 18:07:26 +00:00
}
}
2020-04-05 18:08:21 +00:00
private fun showSecurityDialog ( ) {
2020-03-28 13:29:48 +00:00
AlertDialog . Builder ( this )
2020-04-03 16:40:54 +00:00
. setTitle ( " Welcome! " )
2020-04-05 18:07:26 +00:00
. setMessage ( " Before we implement a proper security system to check whether app was modified or not, please be sure that you downloaded manager from vanced.app/github " )
2020-03-28 13:29:48 +00:00
. setPositiveButton ( " close "
2020-04-09 17:31:13 +00:00
) { dialog , _ -> dialog . dismiss ( ) }
2020-03-28 13:29:48 +00:00
. create ( ) . show ( )
val prefs = getSharedPreferences ( " prefs " , MODE _PRIVATE )
val editor = prefs . edit ( )
editor . putBoolean ( " firstStart " , false )
editor . apply ( )
}
2020-04-12 12:00:14 +00:00
2020-03-16 15:41:57 +00:00
}