diff --git a/app/src/main/java/com/example/palto/PaltoActivity.kt b/app/src/main/java/com/example/palto/PaltoActivity.kt index f06d427..5fb5810 100644 --- a/app/src/main/java/com/example/palto/PaltoActivity.kt +++ b/app/src/main/java/com/example/palto/PaltoActivity.kt @@ -3,8 +3,14 @@ package com.example.palto import android.nfc.NfcAdapter import android.os.Bundle import android.util.Log -import androidx.appcompat.app.AppCompatActivity +import android.view.Menu +import android.view.MenuInflater import androidx.activity.viewModels +import androidx.appcompat.app.AppCompatActivity +import androidx.navigation.fragment.NavHostFragment +import androidx.navigation.ui.AppBarConfiguration +import androidx.navigation.ui.setupWithNavController +import com.example.palto.databinding.ActivityPaltoBinding import com.example.palto.ui.NfcViewModel import com.example.palto.ui.UserViewModel @@ -14,31 +20,65 @@ class PaltoActivity : AppCompatActivity() { private var nfcAdapter: NfcAdapter? = null private val nfcViewModel: NfcViewModel by viewModels() - private val userViewModel: UserViewModel by viewModels() + + private val userViewModel: UserViewModel by viewModels() { UserViewModel.Factory } + + private lateinit var binding: ActivityPaltoBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - // get the NFC Adapter - nfcAdapter = NfcAdapter.getDefaultAdapter(this) + binding = ActivityPaltoBinding.inflate(layoutInflater) + setContentView(binding.root) - // check if NFC is supported + // + // Toolbar + // + + // Set the toolbar as the app bar for the activity. + setSupportActionBar(binding.paltoToolbar) + + // Configure the app bar + val navHostFragment = + supportFragmentManager.findFragmentById(R.id.palto_nav_host_fragment) as NavHostFragment + val navController = navHostFragment.navController + val appBarConfiguration = AppBarConfiguration( + setOf( + R.id.menuFragment, R.id.loginFragment + ) + ) + binding.paltoToolbar.setupWithNavController(navController, appBarConfiguration) + + // + // NFC Adapter + // + + nfcAdapter = NfcAdapter.getDefaultAdapter(this) + // Check if NFC is supported (already checked in the app manifest). if (nfcAdapter == null) { Log.e("NFC", "NFC is not supported") - return } - - // check if NFC is disabled if (nfcAdapter?.isEnabled == false) { Log.w("NFC", "NFC is not enabled") } - - setContentView(R.layout.activity_palto) } + /** + * Specify the options menu for the Activity. + */ + override fun onCreateOptionsMenu(menu: Menu?): Boolean { + val inflater: MenuInflater = menuInflater + inflater.inflate(R.menu.palto_menu, menu) + return true + } + + /** + * Just before the application is displayed. + */ override fun onResume() { super.onResume() + // Begin to read NFC Cards. nfcAdapter?.enableReaderMode( this, nfcViewModel.tag::postValue, @@ -47,17 +87,13 @@ class PaltoActivity : AppCompatActivity() { ) } + /** + * Just after the application has been quit. + */ override fun onPause() { super.onPause() - // disable the NFC discovery + // Disable the NFC discovery. nfcAdapter?.disableReaderMode(this) } - - /* - @OptIn(ExperimentalStdlibApi::class) - fun processTag(tag: Tag) { - Log.d("NFC", "Tag ID : " + tag.id.toHexString()) - } - */ } diff --git a/app/src/main/res/layout/activity_palto.xml b/app/src/main/res/layout/activity_palto.xml index 3a70781..d91176c 100644 --- a/app/src/main/res/layout/activity_palto.xml +++ b/app/src/main/res/layout/activity_palto.xml @@ -1,12 +1,22 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/menu/palto_menu.xml b/app/src/main/res/menu/palto_menu.xml new file mode 100644 index 0000000..a50a1a6 --- /dev/null +++ b/app/src/main/res/menu/palto_menu.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file