11package com.blurr.voice
22
33import android.content.Intent
4+ import android.os.Build
45import android.os.Bundle
56import android.widget.LinearLayout
67import androidx.appcompat.app.AppCompatActivity
@@ -14,6 +15,12 @@ abstract class BaseNavigationActivity : AppCompatActivity() {
1415 HOME , TRIGGERS , MOMENTS , UPGRADE , SETTINGS
1516 }
1617
18+ override fun onCreate (savedInstanceState : Bundle ? ) {
19+ super .onCreate(savedInstanceState)
20+ // Disable any default activity transitions
21+ disableTransitions()
22+ }
23+
1724 override fun setContentView (layoutResID : Int ) {
1825 super .setContentView(R .layout.activity_base_navigation)
1926
@@ -30,8 +37,7 @@ abstract class BaseNavigationActivity : AppCompatActivity() {
3037 findViewById<LinearLayout >(R .id.nav_triggers).apply {
3138 setOnClickListener {
3239 if (currentItem != NavItem .TRIGGERS ) {
33- startActivity(Intent (this @BaseNavigationActivity, com.blurr.voice.triggers.ui.TriggersActivity ::class .java))
34- if (currentItem != NavItem .HOME ) finish()
40+ navigateToActivity(com.blurr.voice.triggers.ui.TriggersActivity ::class .java, currentItem)
3541 }
3642 }
3743 alpha = if (currentItem == NavItem .TRIGGERS ) 1.0f else 0.7f
@@ -40,8 +46,7 @@ abstract class BaseNavigationActivity : AppCompatActivity() {
4046 findViewById<LinearLayout >(R .id.nav_moments).apply {
4147 setOnClickListener {
4248 if (currentItem != NavItem .MOMENTS ) {
43- startActivity(Intent (this @BaseNavigationActivity, MomentsActivity ::class .java))
44- if (currentItem != NavItem .HOME ) finish()
49+ navigateToActivity(MomentsActivity ::class .java, currentItem)
4550 }
4651 }
4752 alpha = if (currentItem == NavItem .MOMENTS ) 1.0f else 0.7f
@@ -50,8 +55,7 @@ abstract class BaseNavigationActivity : AppCompatActivity() {
5055 findViewById<LinearLayout >(R .id.nav_home).apply {
5156 setOnClickListener {
5257 if (currentItem != NavItem .HOME ) {
53- startActivity(Intent (this @BaseNavigationActivity, MainActivity ::class .java))
54- finish()
58+ navigateToActivity(MainActivity ::class .java, currentItem)
5559 }
5660 }
5761 alpha = if (currentItem == NavItem .HOME ) 1.0f else 0.7f
@@ -60,8 +64,7 @@ abstract class BaseNavigationActivity : AppCompatActivity() {
6064 findViewById<LinearLayout >(R .id.nav_upgrade).apply {
6165 setOnClickListener {
6266 if (currentItem != NavItem .UPGRADE ) {
63- startActivity(Intent (this @BaseNavigationActivity, ProPurchaseActivity ::class .java))
64- if (currentItem != NavItem .HOME ) finish()
67+ navigateToActivity(ProPurchaseActivity ::class .java, currentItem)
6568 }
6669 }
6770 alpha = if (currentItem == NavItem .UPGRADE ) 1.0f else 0.7f
@@ -70,11 +73,35 @@ abstract class BaseNavigationActivity : AppCompatActivity() {
7073 findViewById<LinearLayout >(R .id.nav_settings).apply {
7174 setOnClickListener {
7275 if (currentItem != NavItem .SETTINGS ) {
73- startActivity(Intent (this @BaseNavigationActivity, SettingsActivity ::class .java))
74- if (currentItem != NavItem .HOME ) finish()
76+ navigateToActivity(SettingsActivity ::class .java, currentItem)
7577 }
7678 }
7779 alpha = if (currentItem == NavItem .SETTINGS ) 1.0f else 0.7f
7880 }
7981 }
82+
83+ private fun navigateToActivity (activityClass : Class <* >, currentItem : NavItem ) {
84+ val intent = Intent (this , activityClass)
85+ startActivity(intent)
86+ // Disable transition animations
87+ disableTransitions()
88+ if (currentItem != NavItem .HOME ) {
89+ finish()
90+ // Also disable animations when finishing
91+ disableTransitions()
92+ }
93+ }
94+
95+ override fun finish () {
96+ super .finish()
97+ // Disable animations when finishing
98+ disableTransitions()
99+ }
100+
101+ @Suppress(" DEPRECATION" )
102+ private fun disableTransitions () {
103+ // Use the legacy method for all Android versions since the new API
104+ // requires more complex setup and this works reliably
105+ overridePendingTransition(0 , 0 )
106+ }
80107}
0 commit comments