diff --git a/app/src/main/java/com/onionsquad/bondoman/MainActivity.kt b/app/src/main/java/com/onionsquad/bondoman/MainActivity.kt index f60afdf2354f5cb2ef1aeee6c26f25f3ed91bcac..a6ad2b9fb755fc340a1eb96c21c88a0dc4708055 100644 --- a/app/src/main/java/com/onionsquad/bondoman/MainActivity.kt +++ b/app/src/main/java/com/onionsquad/bondoman/MainActivity.kt @@ -2,13 +2,12 @@ package com.onionsquad.bondoman import android.content.Intent import android.os.Bundle -import android.util.Log -import com.google.android.material.bottomnavigation.BottomNavigationView import androidx.appcompat.app.AppCompatActivity import androidx.navigation.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.setupActionBarWithNavController import androidx.navigation.ui.setupWithNavController +import com.google.android.material.bottomnavigation.BottomNavigationView import com.onionsquad.bondoman.auth.SessionManager import com.onionsquad.bondoman.databinding.ActivityMainBinding import com.onionsquad.bondoman.ui.login.LoginActivity @@ -41,6 +40,8 @@ class MainActivity : AppCompatActivity() { private fun sendToLoginActivity() { val intent = Intent(this@MainActivity, LoginActivity::class.java) + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_CLEAR_TASK) startActivity(intent) + finish() } } \ No newline at end of file diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/login/LoginActivity.kt b/app/src/main/java/com/onionsquad/bondoman/ui/login/LoginActivity.kt index ca62505703824d2c72b2b31f6d8b770fb2b376a0..3eace85f0832e12fce0cf2201091ba1bdfeb9c3b 100644 --- a/app/src/main/java/com/onionsquad/bondoman/ui/login/LoginActivity.kt +++ b/app/src/main/java/com/onionsquad/bondoman/ui/login/LoginActivity.kt @@ -1,6 +1,7 @@ package com.onionsquad.bondoman.ui.login import android.app.Activity +import android.content.Intent import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider import android.os.Bundle @@ -11,6 +12,7 @@ import android.view.View import android.view.inputmethod.EditorInfo import android.widget.EditText import android.widget.Toast +import com.onionsquad.bondoman.MainActivity import com.onionsquad.bondoman.databinding.ActivityLoginBinding import com.onionsquad.bondoman.R @@ -55,8 +57,7 @@ class LoginActivity : AppCompatActivity() { if (loginResult.success != null) { sessionManager.saveAuthToken(loginResult.success) showLoginSuccess() - setResult(Activity.RESULT_OK) - finish() + sendToMainActivity() } }) } @@ -94,6 +95,13 @@ class LoginActivity : AppCompatActivity() { } } + private fun sendToMainActivity() { + val intent = Intent(this@LoginActivity, MainActivity::class.java) + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_CLEAR_TASK) + startActivity(intent) + finish() + } + private fun showLoginSuccess() { Toast.makeText(applicationContext, R.string.login_success, Toast.LENGTH_LONG).show() } diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsFragment.kt b/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsFragment.kt index dc153a26a1d0a02e397c9400600979bbc3a8be75..ca0aa81d6383bd4a0fccad0625fca1b9176f558b 100644 --- a/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsFragment.kt @@ -4,15 +4,17 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider +import androidx.navigation.fragment.findNavController +import com.onionsquad.bondoman.R +import com.onionsquad.bondoman.auth.SessionManager import com.onionsquad.bondoman.databinding.FragmentSettingsBinding class SettingsFragment : Fragment() { private var _binding: FragmentSettingsBinding? = null - // This property is only valid between onCreateView and - // onDestroyView. private val binding get() = _binding!! override fun onCreateView( @@ -20,11 +22,19 @@ class SettingsFragment : Fragment() { container: ViewGroup?, savedInstanceState: Bundle? ): View { - val transactionViewModel = - ViewModelProvider(this).get(SettingsViewModel::class.java) - _binding = FragmentSettingsBinding.inflate(inflater, container, false) + val sessionManager = SessionManager(requireContext()) + + binding.apply { + logoutButton.setOnClickListener { + sessionManager.deleteAuthToken() + Toast.makeText(requireContext(), "Log out success", Toast.LENGTH_SHORT).show() + findNavController().popBackStack(R.id.navigation_transaction, true) + requireActivity().recreate() + } + } + return binding.root } diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsViewModel.kt b/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsViewModel.kt deleted file mode 100644 index a877767c5378529d02be28a4688b0589b13d6064..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsViewModel.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.onionsquad.bondoman.ui.settings - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel - -class SettingsViewModel : ViewModel() { - private val _text = MutableLiveData<String>().apply { - value = "This is notifications Fragment" - } - val text: LiveData<String> = _text -} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_baseline_logout_24.xml b/app/src/main/res/drawable/ic_baseline_logout_24.xml new file mode 100644 index 0000000000000000000000000000000000000000..c22a96f911c6a8c7615c8e149ee796eddc23d449 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_logout_24.xml @@ -0,0 +1,5 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp"> + + <path android:fillColor="@android:color/white" android:pathData="M17,7l-1.41,1.41L18.17,11H8v2h10.17l-2.58,2.58L17,17l5,-5zM4,5h8V3H4c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h8v-2H4V5z"/> + +</vector> diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 441476f744f7bedaef0590d7b4b632a82ee0354d..570a31e7a5eb1be342b0845e3542c86cfe97a81c 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -5,4 +5,14 @@ android:layout_height="match_parent" tools:context=".ui.settings.SettingsFragment"> + <Button + android:id="@+id/logout_button" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAlignment="textStart" + android:textColor="@color/design_default_color_error" + android:backgroundTint="@color/white" + android:drawableLeft="@drawable/ic_baseline_logout_24" + android:drawableTint="@color/design_default_color_error" + android:text="@string/action_sign_out" /> </FrameLayout> \ No newline at end of file diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index fc575e810de8c1a52bac57a9d44e78422bee791d..f7d84c6783037f11b61b8f406f6570a4d374a7a9 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -7,21 +7,21 @@ <fragment android:id="@+id/navigation_transaction" - android:name="com.onionsquad.bondoman.ui.graph.GraphFragment" + android:name="com.onionsquad.bondoman.ui.transaction.TransactionFragment" android:label="@string/title_transaction" - tools:layout="@layout/fragment_graph" /> + tools:layout="@layout/fragment_transaction" /> <fragment android:id="@+id/navigation_scan" - android:name="com.onionsquad.bondoman.ui.transaction.TransactionFragment" + android:name="com.onionsquad.bondoman.ui.scan.ScanFragment" android:label="@string/title_scan" - tools:layout="@layout/fragment_transaction" /> + tools:layout="@layout/fragment_scan" /> <fragment android:id="@+id/navigation_graph" - android:name="com.onionsquad.bondoman.ui.scan.ScanFragment" + android:name="com.onionsquad.bondoman.ui.graph.GraphFragment" android:label="@string/title_graph" - tools:layout="@layout/fragment_scan" /> + tools:layout="@layout/fragment_graph" /> <fragment android:id="@+id/navigation_settings" android:name="com.onionsquad.bondoman.ui.settings.SettingsFragment" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 52050323c033c7b9b997106f15c3f861496d4d28..dfc80c0ba927362dd53849ff4c5986dcce5d03f0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,4 +12,5 @@ <string name="invalid_email">Not a valid email</string> <string name="login_failed">"Login failed"</string> <string name="preference_file_key">BondomanSharedPrefs</string> + <string name="action_sign_out">Sign out</string> </resources> \ No newline at end of file