diff --git a/app/src/main/java/com/example/bondoman/activities/MainActivity.kt b/app/src/main/java/com/example/bondoman/activities/MainActivity.kt index a710b375f5c7476091b391e4d9a802e736d7ee3f..eb54ef4d61233829b4f8e15f9dd769f6b04e38fb 100644 --- a/app/src/main/java/com/example/bondoman/activities/MainActivity.kt +++ b/app/src/main/java/com/example/bondoman/activities/MainActivity.kt @@ -4,19 +4,30 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter +import android.content.res.Configuration import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log +import android.view.MenuItem +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.fragment.app.Fragment import androidx.navigation.findNavController +import androidx.navigation.fragment.NavHostFragment import androidx.navigation.ui.onNavDestinationSelected +import androidx.viewpager2.adapter.FragmentViewHolder import com.example.bondoman.R import com.example.bondoman.services.TokenCheckService import com.google.android.material.bottomnavigation.BottomNavigationView +import com.google.android.material.navigation.NavigationView class MainActivity : AppCompatActivity() { private lateinit var tokenExpiredReceiver: BroadcastReceiver private lateinit var tokenServiceIntent : Intent private var isReceiverRegistered = false + private lateinit var bottomNavigationView: BottomNavigationView; + private lateinit var navigationView: NavigationView; + private lateinit var fragment: NavHostFragment; override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -41,9 +52,33 @@ class MainActivity : AppCompatActivity() { } } - val bottomNavigationView = findViewById<BottomNavigationView + bottomNavigationView = findViewById<BottomNavigationView >(R.id.bottom_navigation_view) val navController = findNavController(R.id.nav_fragment) + navigationView = findViewById<NavigationView>(R.id.navigation_view) + fragment = supportFragmentManager.findFragmentById(R.id.nav_fragment) as NavHostFragment + val navFragmentLayoutParams = fragment.view?.layoutParams as ConstraintLayout.LayoutParams + + val orientation = resources.configuration.orientation + if (orientation == Configuration.ORIENTATION_LANDSCAPE) { + // Change layout to show left navigation + bottomNavigationView.visibility = View.GONE + navigationView.visibility = View.VISIBLE + navFragmentLayoutParams.leftToRight = R.id.navigation_view + fragment.view?.layoutParams = navFragmentLayoutParams + } else { + // Set up bottom navigation bar + bottomNavigationView.visibility = View.VISIBLE + navigationView.visibility = View.GONE + navFragmentLayoutParams.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID + fragment.view?.layoutParams = navFragmentLayoutParams + } + + navigationView.setNavigationItemSelectedListener { menuItem : MenuItem -> + supportActionBar?.title = menuItem.title + menuItem.onNavDestinationSelected(navController) + true + } bottomNavigationView.setOnItemSelectedListener { menuItem -> supportActionBar?.title = menuItem.title @@ -52,6 +87,26 @@ class MainActivity : AppCompatActivity() { } } + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + val orientation = newConfig.orientation + + val navFragmentLayoutParams = fragment.view?.layoutParams as ConstraintLayout.LayoutParams + if (orientation == Configuration.ORIENTATION_LANDSCAPE) { + // Change layout to show left navigation + bottomNavigationView.visibility = View.GONE + navigationView.visibility = View.VISIBLE + navFragmentLayoutParams.leftToRight = R.id.navigation_view + fragment.view?.layoutParams = navFragmentLayoutParams + } else { + // Change layout to show bottom navigation bar + bottomNavigationView.visibility = View.VISIBLE + navigationView.visibility = View.GONE + navFragmentLayoutParams.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID + fragment.view?.layoutParams = navFragmentLayoutParams + } + } + override fun onStart() { super.onStart() val filter = IntentFilter("com.example.bondoman.TOKEN_EXPIRED") diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index f3b90c2bdba1cbe770d7ca7589e7a5cac39cd0cb..7d24c5d4bc2228d9f5a47daef3c53dae760b786d 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -19,6 +19,19 @@ app:layout_constraintTop_toTopOf="parent" app:navGraph="@navigation/nav_graph"/> + <com.google.android.material.navigation.NavigationView + android:id="@+id/navigation_view" + android:layout_width="70dp" + android:layout_height="match_parent" + android:layout_gravity="left" + app:itemIconTint="@color/menu_color" + app:itemTextColor="@color/green" + app:itemBackground="@color/brown_1" + android:background="?android:attr/windowBackground" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" + app:menu="@menu/menu_nav"/> + <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_navigation_view" android:layout_width="0dp"