fully switched to navigation components

This commit is contained in:
X1nto 2020-04-19 21:21:40 +04:00
parent 7efd6fe747
commit 0f4202acb3
27 changed files with 406 additions and 337 deletions

View File

@ -4,6 +4,8 @@
package="com.vanced.manager">
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
@ -26,16 +28,6 @@
android:name=".ui.MainActivity"
android:label="@string/app_name" />
<activity
android:name=".ui.VancedInstallActivity"
android:parentActivityName=".ui.MainActivity"
android:label="@string/app_name" />
<activity
android:name=".ui.AboutActivity"
android:label="@string/app_name"
android:parentActivityName=".ui.MainActivity" />
<meta-data
android:name="preloaded_fonts"
android:resource="@array/preloaded_fonts" />

View File

@ -1,36 +0,0 @@
package com.vanced.manager.ui
import android.net.Uri
import android.os.Bundle
import android.widget.TextView
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.content.ContextCompat
import com.google.android.material.appbar.MaterialToolbar
import com.vanced.manager.R
import com.vanced.manager.ui.core.ThemeActivity
import com.vanced.manager.ui.fragments.AboutFragment
import com.vanced.manager.ui.fragments.VancedThemeSelectionFragment
class AboutActivity : ThemeActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_about)
val toolbar : MaterialToolbar = findViewById(R.id.about_toolbar)
toolbar.setNavigationIcon(R.drawable.ic_keyboard_backspace_black_24dp)
setSupportActionBar(toolbar)
toolbar.setNavigationOnClickListener {
finish()
}
supportActionBar!!.title = getString(R.string.title_about)
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
supportFragmentManager
.beginTransaction()
.setCustomAnimations(android.R.anim.fade_in, R.animator.fragment_exit)
.replace(R.id.frame_layout_about, AboutFragment())
.commit()
}
}

View File

@ -1,10 +1,11 @@
package com.vanced.manager.ui
import android.content.Intent
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.view.View
import androidx.appcompat.app.AlertDialog
import androidx.core.view.forEach
import androidx.navigation.NavDestination
import androidx.navigation.findNavController
import androidx.navigation.ui.setupWithNavController
import com.google.android.material.appbar.MaterialToolbar
@ -14,11 +15,14 @@ import com.vanced.manager.ui.core.ThemeActivity
class MainActivity : ThemeActivity() {
private var isParent = true
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar: MaterialToolbar = findViewById(R.id.home_toolbar)
setSupportActionBar(toolbar)
val prefs = getSharedPreferences("prefs", MODE_PRIVATE)
@ -34,11 +38,11 @@ class MainActivity : ThemeActivity() {
navBar.setOnNavigationItemSelectedListener{ item ->
when (item.itemId) {
R.id.navigation_home -> {
navHost.navigate(R.id.action_settingsFragment_to_homeFragment)
navHost.navigate(R.id.action_homeFragment)
return@setOnNavigationItemSelectedListener true
}
R.id.navigation_settings -> {
navHost.navigate(R.id.action_homeFragment_to_settingsFragment)
navHost.navigate(R.id.action_settingsFragment)
return@setOnNavigationItemSelectedListener true
}
}
@ -47,21 +51,46 @@ class MainActivity : ThemeActivity() {
navBar.setOnNavigationItemReselectedListener {
}
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.toolbar_menu, menu)
return super .onCreateOptionsMenu(menu)
}
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(!isParent)
navBar.menu.forEach {
if (it.itemId == currfrag.id) {
it.isChecked = true
}
}
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
R.id.about -> {
val intent = Intent(this, AboutActivity::class.java)
startActivity(intent)
true
}
else -> {
super.onOptionsItemSelected(item)
}
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)
}
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
}
}

View File

@ -1,33 +0,0 @@
package com.vanced.manager.ui
import android.os.Bundle
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentTransaction
import com.google.android.material.appbar.MaterialToolbar
import com.vanced.manager.R
import com.vanced.manager.ui.core.ThemeActivity
import com.vanced.manager.ui.fragments.VancedThemeSelectionFragment
class VancedInstallActivity : ThemeActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_vanced_install)
val toolbar : MaterialToolbar = findViewById(R.id.vanced_install_toolbar)
toolbar.setNavigationIcon(R.drawable.ic_keyboard_backspace_black_24dp)
setSupportActionBar(toolbar)
toolbar.setNavigationOnClickListener {
finish()
}
supportActionBar!!.title = "Install"
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
supportFragmentManager
.beginTransaction()
.setCustomAnimations(android.R.anim.fade_in, R.animator.fragment_exit)
.replace(R.id.vanced_install_frame, VancedThemeSelectionFragment())
.commit()
}
}

View File

@ -1,11 +1,10 @@
package com.vanced.manager.ui.fragments
import android.os.Bundle
import android.view.*
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.navigation.fragment.findNavController
import com.vanced.manager.R
import com.vanced.manager.ui.core.BaseFragment
@ -15,6 +14,11 @@ import com.vanced.manager.ui.core.BaseFragment
*/
class AboutFragment : BaseFragment() {
override fun onStart() {
super.onStart()
activity?.title = getString(R.string.title_about)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@ -37,4 +41,5 @@ class AboutFragment : BaseFragment() {
}
}
}

View File

@ -3,18 +3,16 @@ package com.vanced.manager.ui.fragments
import android.content.ComponentName
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.content.pm.PackageManager
import android.content.Intent
import android.view.*
import androidx.navigation.findNavController
import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
import com.vanced.manager.adapter.SectionPageAdapter
import com.vanced.manager.R
import com.vanced.manager.ui.VancedInstallActivity
import com.vanced.manager.ui.core.BaseFragment
class HomeFragment : BaseFragment() {
@ -25,6 +23,7 @@ class HomeFragment : BaseFragment() {
override fun onStart() {
super.onStart()
activity?.title = getString(R.string.title_home)
setHasOptionsMenu(true)
}
override fun onCreateView(
@ -34,15 +33,6 @@ class HomeFragment : BaseFragment() {
return inflater.inflate(R.layout.fragment_home, container, false)
}
private fun isPackageInstalled(packageName: String, packageManager: PackageManager): Boolean {
return try {
packageManager.getPackageInfo(packageName, 0)
true
} catch (e: PackageManager.NameNotFoundException) {
false
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
@ -77,8 +67,7 @@ class HomeFragment : BaseFragment() {
val vancedStatus = pm?.let { isPackageInstalled("com.vanced.android.youtube", it)}
vancedinstallbtn.setOnClickListener{
val intent = Intent(activity, VancedInstallActivity::class.java)
startActivity(intent)
view.findNavController().navigate(R.id.toInstallThemeFragment)
}
microginstallbtn.setOnClickListener {
@ -131,5 +120,23 @@ class HomeFragment : BaseFragment() {
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.toolbar_menu, menu)
}
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
R.id.about -> view?.findNavController()?.navigate(R.id.toAboutFragment)
else -> null
}?.let { true } ?: super.onOptionsItemSelected(item)
private fun isPackageInstalled(packageName: String, packageManager: PackageManager): Boolean {
return try {
packageManager.getPackageInfo(packageName, 0)
true
} catch (e: PackageManager.NameNotFoundException) {
false
}
}
}

View File

@ -0,0 +1,32 @@
package com.vanced.manager.ui.fragments
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import com.vanced.manager.R
class SecretSettingsFragment : Fragment() {
override fun onStart() {
super.onStart()
activity?.title = getString(R.string.title_settings)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return TextView(activity).apply {
setText(R.string.title_settings)
}
}
}

View File

@ -2,18 +2,21 @@ package com.vanced.manager.ui.fragments
import android.content.res.Configuration
import android.os.Bundle
import android.view.View
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import androidx.navigation.findNavController
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.vanced.manager.R
import com.vanced.manager.ui.MainActivity
class SettingsFragment : PreferenceFragmentCompat() {
override fun onStart() {
super.onStart()
activity?.title = getString(R.string.title_settings)
setHasOptionsMenu(true)
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
@ -54,4 +57,13 @@ class SettingsFragment : PreferenceFragmentCompat() {
}
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.secret_settings_menu, menu)
}
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
R.id.secret_settings -> view?.findNavController()?.navigate(R.id.toSecretSettingsFragment)
else -> null
}?.let { true } ?: super.onOptionsItemSelected(item)
}

View File

@ -15,12 +15,6 @@ import com.vanced.manager.R
*/
class UpdateCheckFragment : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return super.onCreateDialog(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?

View File

@ -6,11 +6,18 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import androidx.navigation.findNavController
import com.vanced.manager.R
import kotlinx.android.synthetic.main.fragment_vanced_language_selection.view.*
class VancedLanguageSelectionFragment : Fragment() {
override fun onStart() {
super.onStart()
activity?.title = getString(R.string.title_install)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@ -25,7 +32,7 @@ class VancedLanguageSelectionFragment : Fragment() {
val finishButton = getView()?.findViewById(R.id.vanced_install_finish) as Button
finishButton.setOnClickListener {
activity?.finish()
view.findNavController().navigate(R.id.action_installTo_homeFragment)
}
fragmentManager

View File

@ -8,10 +8,16 @@ import android.view.ViewGroup
import android.widget.Button
import android.widget.TextView
import androidx.fragment.app.FragmentManager
import androidx.navigation.findNavController
import com.vanced.manager.R
class VancedThemeSelectionFragment : Fragment() {
override fun onStart() {
super.onStart()
activity?.title = getString(R.string.title_install)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@ -26,11 +32,7 @@ class VancedThemeSelectionFragment : Fragment() {
val nextButton = getView()?.findViewById(R.id.vanced_next_to_variant) as Button
nextButton.setOnClickListener{
fragmentManager
?.beginTransaction()
?.setCustomAnimations(R.animator.fragment_enter, R.animator.fragment_exit)
?.replace(R.id.vanced_install_frame, VancedVariantSelectionFragment())
?.commit()
view.findNavController().navigate(R.id.toInstallVariantFragment)
}
}

View File

@ -6,10 +6,17 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import androidx.navigation.findNavController
import androidx.navigation.fragment.findNavController
import com.vanced.manager.R
class VancedVariantSelectionFragment : Fragment() {
override fun onStart() {
super.onStart()
activity?.title = getString(R.string.title_install)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@ -24,11 +31,7 @@ class VancedVariantSelectionFragment : Fragment() {
val nextButton = getView()?.findViewById(R.id.vanced_next_to_language) as Button
nextButton.setOnClickListener{
fragmentManager
?.beginTransaction()
?.setCustomAnimations(R.animator.fragment_enter, R.animator.fragment_exit)
?.replace(R.id.vanced_install_frame, VancedLanguageSelectionFragment())
?.commit()
view.findNavController().navigate(R.id.toInstallLanguageFragment)
}
}
}

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="500"
android:propertyName="x"
android:valueFrom="-1000"
android:valueTo="0"
android:valueType="floatType" />
</set>

View File

@ -5,7 +5,7 @@
android:duration="500"
android:propertyName="x"
android:valueFrom="0"
android:valueTo="-1200"
android:valueTo="-1000"
android:valueType="floatType" />
</set>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="500"
android:propertyName="x"
android:valueFrom="0"
android:valueTo="1000"
android:valueType="floatType" />
</set>

View File

@ -0,0 +1,10 @@
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?attr/colorSurface"
android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/>
</vector>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.core.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"

View File

@ -1,73 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
app:cardCornerRadius="@dimen/eightdp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="12dp"
app:cardBackgroundColor="?colorSurfaceVariant"
app:cardElevation="0dp"
app:cardPreventCornerOverlap="true">
<com.google.android.material.card.MaterialCardView
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:cardCornerRadius="@dimen/eightdp"
app:cardBackgroundColor="?colorSurfaceVariant"
app:cardElevation="0dp"
app:cardPreventCornerOverlap="true">
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
<TextView
android:id="@+id/install_language_title"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
android:textSize="18sp"
android:textAlignment="center"
android:textColor="?attr/colorOnSurfaceVariant"
android:fontFamily="@font/exo_bold"
android:text="@string/choose_preferred_language" />
<TextView
android:id="@+id/install_language_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:textSize="20sp"
android:fontFamily="@font/exo_bold"
android:text="Choose your preferred language for Vanced"
app:layout_constraintEnd_toEndOf="parent"/>
<TextView
android:id="@+id/install_language_note"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/install_language_title"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:textSize="13sp"
android:fontFamily="@font/exo_semibold"
android:text="@string/choose_preferred_language_note" />
<TextView
android:id="@+id/install_language_note"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/install_language_title"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:textSize="15sp"
android:fontFamily="@font/exo_semibold"
android:text="Note: if you install anything other than English, English will still be installed as an additional language" />
<FrameLayout
android:id="@+id/language_choose_frame"
android:layout_width="match_parent"
android:layout_height="360dp"
android:layout_marginTop="4dp"
app:layout_constraintTop_toBottomOf="@id/install_language_note"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<FrameLayout
android:id="@+id/language_choose_frame"
android:layout_width="match_parent"
android:layout_height="360dp"
android:layout_marginTop="4dp"
app:layout_constraintTop_toBottomOf="@id/install_language_note"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.button.MaterialButton
android:id="@+id/vanced_install_finish"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/language_choose_frame"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="6dp"
android:text="@string/finish"
android:textAllCaps="false"
app:icon="@drawable/ic_done_black_24dp"
app:iconGravity="end"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/vanced_install_finish"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/language_choose_frame"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="10dp"
android:text="Finish"
android:textAllCaps="false"
app:icon="@drawable/ic_done_black_24dp"
app:iconGravity="end"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>

View File

@ -1,77 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
app:cardCornerRadius="@dimen/eightdp"
app:cardBackgroundColor="?colorSurfaceVariant"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="12dp"
app:cardElevation="0dp"
app:cardPreventCornerOverlap="true">
<com.google.android.material.card.MaterialCardView
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:cardCornerRadius="@dimen/eightdp"
app:cardBackgroundColor="?colorSurfaceVariant"
app:cardElevation="0dp"
app:cardPreventCornerOverlap="true">
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
<TextView
android:id="@+id/install_theme_title"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
android:textSize="18sp"
android:textAlignment="center"
android:textColor="?attr/colorOnSurfaceVariant"
android:fontFamily="@font/exo_bold"
android:text="@string/choose_preferred_theme" />
<TextView
android:id="@+id/install_theme_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:textSize="20sp"
android:fontFamily="@font/exo_bold"
android:text="Choose your preferred theme for Vanced"
app:layout_constraintEnd_toEndOf="parent"/>
<RadioGroup
android:id="@+id/vanced_theme_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/install_theme_title"
app:layout_constraintStart_toStartOf="parent"
android:checkedButton="@id/button_light_dark">
<RadioGroup
android:id="@+id/vanced_theme_buttons"
<com.google.android.material.radiobutton.MaterialRadioButton
android:id="@+id/button_light_dark"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/install_theme_title"
app:layout_constraintStart_toStartOf="parent"
android:checkedButton="@id/button_light_dark">
android:textSize="18sp"
android:text="Light + Dark"
android:fontFamily="@font/exo_semibold"/>
<com.google.android.material.radiobutton.MaterialRadioButton
android:id="@+id/button_light_dark"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="Light + Dark"
android:fontFamily="@font/exo_semibold"/>
<com.google.android.material.radiobutton.MaterialRadioButton
android:id="@+id/button_light_black"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:fontFamily="@font/exo_semibold"
android:text="Light + Black"/>
</RadioGroup>
<com.google.android.material.button.MaterialButton
android:id="@+id/vanced_next_to_variant"
android:layout_width="wrap_content"
<com.google.android.material.radiobutton.MaterialRadioButton
android:id="@+id/button_light_black"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vanced_theme_buttons"
android:layout_marginEnd="10dp"
android:text="Next"
android:textAllCaps="false"
app:icon="@drawable/ic_keyboard_next"
app:iconGravity="end"/>
android:textSize="18sp"
android:fontFamily="@font/exo_semibold"
android:text="Light + Black"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</RadioGroup>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.button.MaterialButton
android:id="@+id/vanced_next_to_variant"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vanced_theme_buttons"
android:layout_marginEnd="6dp"
android:text="@string/next"
android:textAllCaps="false"
app:icon="@drawable/ic_keyboard_next"
app:iconGravity="end"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,76 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="12dp"
app:cardCornerRadius="@dimen/eightdp"
app:cardBackgroundColor="?colorSurfaceVariant"
app:cardElevation="0dp"
app:cardPreventCornerOverlap="true">
<com.google.android.material.card.MaterialCardView
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:cardCornerRadius="@dimen/eightdp"
app:cardBackgroundColor="?colorSurfaceVariant"
app:cardElevation="0dp"
app:cardPreventCornerOverlap="true">
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
<TextView
android:id="@+id/install_theme_title"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
android:textColor="?attr/colorOnSurfaceVariant"
android:textAlignment="center"
android:textSize="18sp"
android:fontFamily="@font/exo_bold"
android:text="@string/choose_preferred_variant" />
<TextView
android:id="@+id/install_theme_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:textSize="20sp"
android:fontFamily="@font/exo_bold"
android:text="Choose your preferred variant for Vanced"
app:layout_constraintEnd_toEndOf="parent"/>
<RadioGroup
android:id="@+id/vanced_variant_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checkedButton="@id/button_nonroot"
app:layout_constraintTop_toBottomOf="@id/install_theme_title"
app:layout_constraintStart_toStartOf="parent">
<RadioGroup
android:id="@+id/vanced_variant_buttons"
<com.google.android.material.radiobutton.MaterialRadioButton
android:id="@+id/button_nonroot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checkedButton="@id/button_nonroot"
app:layout_constraintTop_toBottomOf="@id/install_theme_title"
app:layout_constraintStart_toStartOf="parent">
android:fontFamily="@font/exo_semibold"
android:text="non-root"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:id="@+id/button_nonroot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="non-root"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:id="@+id/button_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:textSize="18sp"
android:text="root"/>
</RadioGroup>
<com.google.android.material.button.MaterialButton
android:id="@+id/vanced_next_to_language"
android:layout_width="wrap_content"
<com.google.android.material.radiobutton.MaterialRadioButton
android:id="@+id/button_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vanced_variant_buttons"
android:layout_marginEnd="10dp"
android:text="Next"
android:textAllCaps="false"
app:icon="@drawable/ic_keyboard_next"
app:iconGravity="end"/>
android:fontFamily="@font/exo_semibold"
android:textSize="18sp"
android:text="root"/>
</RadioGroup>
<com.google.android.material.button.MaterialButton
android:id="@+id/vanced_next_to_language"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/vanced_variant_buttons"
android:layout_marginEnd="6dp"
android:text="@string/next"
android:textAllCaps="false"
app:icon="@drawable/ic_keyboard_next"
app:iconGravity="end"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/secret_settings"
android:title="Secret Settings"
android:icon="@drawable/ic_secret_settings_black_24dp"
app:showAsAction="always"
tools:ignore="HardcodedText" />
</menu>

View File

@ -23,10 +23,10 @@
<action
android:id="@+id/toInstallThemeFragment"
app:destination="@id/install_theme_fragment"
app:enterAnim="@anim/fragment_fade_enter"
app:exitAnim="@animator/fragment_exit"
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
app:enterAnim="@animator/fragment_enter_right"
app:exitAnim="@animator/fragment_exit_left"
app:popEnterAnim="@animator/fragment_enter_left"
app:popExitAnim="@animator/fragment_exit_right" />
</fragment>
@ -36,8 +36,8 @@
android:label="@string/title_settings">
<action
android:id="@+id/toAboutFragment"
app:destination="@id/about_fragment"
android:id="@+id/toSecretSettingsFragment"
app:destination="@id/secret_settings_fragment"
app:enterAnim="@anim/fragment_fade_enter"
app:exitAnim="@anim/fragment_fade_exit"
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
@ -60,10 +60,10 @@
<action
android:id="@+id/toInstallVariantFragment"
app:destination="@id/install_variant_fragment"
app:enterAnim="@animator/fragment_enter"
app:exitAnim="@animator/fragment_exit"
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
app:enterAnim="@animator/fragment_enter_right"
app:exitAnim="@animator/fragment_exit_left"
app:popEnterAnim="@animator/fragment_enter_left"
app:popExitAnim="@animator/fragment_exit_right" />
</fragment>
@ -76,10 +76,10 @@
<action
android:id="@+id/toInstallLanguageFragment"
app:destination="@id/install_language_fragment"
app:enterAnim="@animator/fragment_enter"
app:exitAnim="@animator/fragment_exit"
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
app:enterAnim="@animator/fragment_enter_right"
app:exitAnim="@animator/fragment_exit_left"
app:popEnterAnim="@animator/fragment_enter_left"
app:popExitAnim="@animator/fragment_exit_right" />
</fragment>
@ -87,23 +87,44 @@
android:id="@+id/install_language_fragment"
android:name="com.vanced.manager.ui.fragments.VancedLanguageSelectionFragment"
android:label="@string/title_install"
tools:layout="@layout/fragment_vanced_language_selection" />
tools:layout="@layout/fragment_vanced_language_selection" >
<action
android:id="@+id/action_installTo_homeFragment"
app:destination="@id/home_fragment"
app:enterAnim="@animator/fragment_enter_left"
app:exitAnim="@animator/fragment_exit_right"
app:popEnterAnim="@animator/fragment_enter_right"
app:popExitAnim="@animator/fragment_exit_left"
app:popUpTo="@id/home_fragment"
app:popUpToInclusive="true"/>
</fragment>
<fragment
android:id="@+id/secret_settings_fragment"
android:name="com.vanced.manager.ui.fragments.SecretSettingsFragment"
android:label="@string/title_install" />
<action
android:id="@+id/action_homeFragment_to_settingsFragment"
android:id="@+id/action_settingsFragment"
app:destination="@id/settings_fragment"
app:enterAnim="@anim/nav_default_enter_anim"
app:exitAnim="@anim/nav_default_exit_anim"
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
app:popExitAnim="@anim/nav_default_pop_exit_anim"
app:popUpTo="@id/settings_fragment"
app:popUpToInclusive="true"/>
<action
android:id="@+id/action_settingsFragment_to_homeFragment"
android:id="@+id/action_homeFragment"
app:destination="@id/home_fragment"
app:enterAnim="@anim/nav_default_enter_anim"
app:exitAnim="@anim/nav_default_exit_anim"
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
app:popExitAnim="@anim/nav_default_pop_exit_anim"
app:popUpTo="@id/home_fragment"
app:popUpToInclusive="true"/>
</navigation>

View File

@ -17,7 +17,7 @@
<item name="colorError">#CC0047</item>
<item name="colorOnError">#F9F9F9</item>
<item name="colorOnSurface">#444444</item>
<item name="colorOnSurfaceVariant">#e8e8e8</item>
<item name="colorOnSurfaceVariant">#FFFFFF</item>
<item name="colorDisabled">#808080</item>
<item name="colorDisabledVariant">#66808080</item>
<item name="iconColor">?colorPrimaryVariant</item>

View File

@ -39,7 +39,13 @@
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language_note">Note: if you install anything other than English, English will still be installed as an additional language</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="choose_preferred_variant">Choose your preferred variant for Vanced</string>
<string name="finish">Finish</string>
<string name="next">Next</string>
<string name="title_install">Install</string>
</resources>
</resources>

View File

@ -17,9 +17,9 @@
<item name="colorError">#CC0047</item>
<item name="colorOnError">#F9F9F9</item>
<item name="colorOnSurface">#444444</item>
<item name="colorOnSurfaceVariant">#BF444444</item>
<item name="colorOnSurfaceVariant">#C3131313</item>
<item name="colorDisabled">#808080</item>
<item name="colorDisabledVariant">#66808080</item>
<item name="colorDisabledVariant">#000000</item>
<item name="iconColor">?colorPrimaryVariant</item>
<item name="toolbarIconColor">#111111</item>