diff --git a/app/build.gradle b/app/build.gradle index b957a70..7c3c6b9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -65,14 +65,20 @@ dependencies { implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.1' implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' + + + + // Jetpack Compose + implementation 'androidx.activity:activity-compose:1.5.1' implementation "androidx.compose.ui:ui:1.2.1" implementation "androidx.compose.material:material:1.2.1" implementation "androidx.compose.ui:ui-tooling-preview:1.2.1" - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' - implementation 'androidx.activity:activity-compose:1.5.1' androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.2.1" debugImplementation "androidx.compose.ui:ui-tooling:1.2.1" debugImplementation "androidx.compose.ui:ui-test-manifest:1.2.1" + implementation "androidx.navigation:navigation-compose:2.5.1" + // Navigation def nav_version = '2.3.5' implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" diff --git a/app/src/main/java/com/websarva/wings/android/flat/MainActivity.kt b/app/src/main/java/com/websarva/wings/android/flat/MainActivity.kt index 5cb4513..5bce21d 100644 --- a/app/src/main/java/com/websarva/wings/android/flat/MainActivity.kt +++ b/app/src/main/java/com/websarva/wings/android/flat/MainActivity.kt @@ -29,8 +29,11 @@ import android.content.IntentFilter import android.content.BroadcastReceiver import android.content.Context +import android.view.ViewTreeObserver +import androidx.activity.viewModels import androidx.room.Room import com.websarva.wings.android.flat.model.UserRoomDatabase +import com.websarva.wings.android.flat.ui.startup.StartupViewModel class MainActivity : AppCompatActivity() { @@ -94,6 +97,7 @@ class MainActivity : AppCompatActivity() { val serviceIntent = Intent(this, BeaconDetectionService::class.java) startForegroundService(serviceIntent) + // 全体の画面遷移を制御 val navHostFragment = supportFragmentManager.findFragmentById(R.id.navHost) as NavHostFragment @@ -117,7 +121,8 @@ class MainActivity : AppCompatActivity() { findViewById(R.id.bottom_navigation).visibility = View.GONE findViewById(R.id.toolbar).also { it.title = getString(R.string.change_name) - it.navigationIcon = AppCompatResources.getDrawable(this, R.drawable.ic_baseline_arrow_back_24) + it.navigationIcon = + AppCompatResources.getDrawable(this, R.drawable.ic_baseline_arrow_back_24) it.visibility = View.VISIBLE } } else if (destination.id == R.id.startupFragment || destination.id == R.id.accountRegistrationFragment || destination.id == R.id.loginFragment) { diff --git a/app/src/main/java/com/websarva/wings/android/flat/model/UserDao.kt b/app/src/main/java/com/websarva/wings/android/flat/model/UserDao.kt index 7d9702a..2267956 100644 --- a/app/src/main/java/com/websarva/wings/android/flat/model/UserDao.kt +++ b/app/src/main/java/com/websarva/wings/android/flat/model/UserDao.kt @@ -1,5 +1,6 @@ package com.websarva.wings.android.flat.model +import androidx.lifecycle.LiveData import androidx.room.* @Dao @@ -16,8 +17,8 @@ interface UserDao { @Query("DELETE FROM user_table") suspend fun deleteAll() - @Query("SELECT * FROM user_table") - suspend fun getUserData(): User + @Query("SELECT * FROM user_table LIMIT 1") + suspend fun getUserData(): User? @Query("SELECT COUNT(*) FROM user_table") suspend fun countData(): Int diff --git a/app/src/main/java/com/websarva/wings/android/flat/repository/UserRoomRepository.kt b/app/src/main/java/com/websarva/wings/android/flat/repository/UserRoomRepository.kt index 42d19ef..2fece13 100644 --- a/app/src/main/java/com/websarva/wings/android/flat/repository/UserRoomRepository.kt +++ b/app/src/main/java/com/websarva/wings/android/flat/repository/UserRoomRepository.kt @@ -1,12 +1,13 @@ package com.websarva.wings.android.flat.repository import android.app.Application +import androidx.lifecycle.LiveData import com.websarva.wings.android.flat.model.User import com.websarva.wings.android.flat.model.UserDao class UserRoomRepository(private val dao: UserDao) { - suspend fun getUserData(): User { + suspend fun getUserData(): User ?{ return dao.getUserData() } diff --git a/app/src/main/java/com/websarva/wings/android/flat/ui/parts/Button.kt b/app/src/main/java/com/websarva/wings/android/flat/ui/parts/Button.kt new file mode 100644 index 0000000..cc17f83 --- /dev/null +++ b/app/src/main/java/com/websarva/wings/android/flat/ui/parts/Button.kt @@ -0,0 +1,24 @@ +package com.websarva.wings.android.flat.ui.parts + +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Button +import androidx.compose.material.ButtonColors +import androidx.compose.material.ButtonDefaults +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp + +@Composable +fun MidiumRoundedButton(text: String, onClick: () -> Unit, colors: ButtonColors) { + Button( + onClick = onClick, + shape = RoundedCornerShape(20.dp), + colors = colors, + modifier = Modifier.size(width = 140.dp, height = 40.dp), + elevation = ButtonDefaults.elevation() + ){ + Text(text) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/websarva/wings/android/flat/ui/startup/StartupFragment.kt b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/StartupFragment.kt new file mode 100644 index 0000000..e3e6da5 --- /dev/null +++ b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/StartupFragment.kt @@ -0,0 +1,43 @@ +package com.websarva.wings.android.flat.ui.startup + +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.compose.ui.platform.ComposeView +import androidx.fragment.app.Fragment +import androidx.fragment.app.viewModels +import androidx.navigation.findNavController +import androidx.navigation.fragment.findNavController + +class StartupFragment : Fragment() { + + private val viewModel: StartupViewModel by viewModels() + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View = ComposeView(inflater.context).apply { + + setContent { + observeIsLoggedIn() + StartupScreen( + onNavigate = { dest -> findNavController().navigate(dest) }, + ) + } + } + + private fun observeIsLoggedIn(){ + viewModel.user.observe(viewLifecycleOwner) { + if (it != null) { + if(it.myId != 0){ + findNavController().navigate(StartupFragmentDirections.actionStartupFragmentToFriendListFragment()) + } + } + } + } + +} + diff --git a/app/src/main/java/com/websarva/wings/android/flat/ui/startup/StartupScreen.kt b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/StartupScreen.kt new file mode 100644 index 0000000..8852db5 --- /dev/null +++ b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/StartupScreen.kt @@ -0,0 +1,54 @@ +package com.websarva.wings.android.flat.ui.startup + +import android.util.Log +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.* +import androidx.compose.material.ButtonDefaults.textButtonColors +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.websarva.wings.android.flat.R +import com.websarva.wings.android.flat.ui.startup.components.LoginAndSignUpButtons +import com.websarva.wings.android.flat.ui.theme.FLATTheme + +@Composable +fun StartupScreen( + onNavigate: (Int) -> Unit +/*navController: NavController*/ +){ + FLATTheme { + Surface() { + Column(modifier = Modifier.fillMaxSize()) { + Spacer(Modifier.height(120.dp)) + Text( + text = "FLAT", + fontSize = 40.sp, + fontWeight = FontWeight.Bold, + modifier = Modifier.fillMaxWidth(), + textAlign = TextAlign.Center, + ) + Divider( + color=FLATTheme.colors.primary, + thickness = 4.dp, + modifier = Modifier.padding(start = 70.dp, end = 70.dp)) + Spacer(Modifier.weight(1f)) + LoginAndSignUpButtons( + onNavigate = onNavigate + /*navController*/) + Spacer(Modifier.padding(vertical = 16.dp)) + } + } + } +} + + +//@Preview +//@Composable +//fun DefaultPreview(){ +// StartupScreen(/*navController = rememberNavController()*/) +//} \ No newline at end of file diff --git a/app/src/main/java/com/websarva/wings/android/flat/ui/startup/StartupViewModel.kt b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/StartupViewModel.kt new file mode 100644 index 0000000..65cd2e9 --- /dev/null +++ b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/StartupViewModel.kt @@ -0,0 +1,36 @@ +package com.websarva.wings.android.flat.ui.startup + +import android.util.Log +import androidx.lifecycle.LiveData +import androidx.lifecycle.SavedStateHandle +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.hadilq.liveevent.LiveEvent +import com.websarva.wings.android.flat.FLATApplication +import com.websarva.wings.android.flat.model.User +import kotlinx.coroutines.launch + +class StartupViewModel( + saveStateHandle: SavedStateHandle +) : ViewModel() { + private val roomRepository = FLATApplication.userRoomRepository + + + private var _user = LiveEvent() + val user: LiveEvent get() = _user + + init { + viewModelScope.launch { + _user.value = getUserData() + } + } + + +// suspend fun getUserData(): LiveData { +// return roomRepository.getUserLiveData() +// } + + suspend fun getUserData(): User? { + return roomRepository.getUserData() + } +} diff --git a/app/src/main/java/com/websarva/wings/android/flat/ui/startup/components/CustomButtons.kt b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/components/CustomButtons.kt new file mode 100644 index 0000000..6ee03c7 --- /dev/null +++ b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/components/CustomButtons.kt @@ -0,0 +1,56 @@ +package com.websarva.wings.android.flat.ui.startup.components + +import android.widget.Button +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Button +import androidx.compose.material.ButtonColors +import androidx.compose.material.ButtonDefaults +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import com.websarva.wings.android.flat.R +import com.websarva.wings.android.flat.ui.parts.MidiumRoundedButton +import com.websarva.wings.android.flat.ui.theme.FLATTheme + +@Composable +fun LoginAndSignUpButtons( + onNavigate: (Int) -> Unit +/*navController: NavController*/) { + Row ( + modifier = Modifier + .fillMaxWidth() + .padding(start = 32.dp, end = 32.dp), + horizontalArrangement = Arrangement.SpaceBetween + ){ + LoginButton(onNavigate) + SignUpButton(onNavigate) + } + +} + +@Composable +fun LoginButton(onNavigate: (Int) -> Unit) { + MidiumRoundedButton( + text = "ログイン", + onClick = { onNavigate(R.id.loginFragment)}, + colors = ButtonDefaults.textButtonColors( + backgroundColor = Color.White, + contentColor = Color.Black + ) ) +} + + +@Composable +fun SignUpButton(onNavigate: (Int) -> Unit) { + MidiumRoundedButton( + text="新規登録", + onClick = { onNavigate(R.id.accountRegistrationFragment) }, + colors=ButtonDefaults.textButtonColors( + backgroundColor = FLATTheme.colors.primary, + contentColor = Color.White + ),) +} + diff --git a/app/src/main/java/com/websarva/wings/android/flat/view/ForceLoginDialogFragment.kt b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/login/ForceLoginDialogFragment.kt similarity index 86% rename from app/src/main/java/com/websarva/wings/android/flat/view/ForceLoginDialogFragment.kt rename to app/src/main/java/com/websarva/wings/android/flat/ui/startup/login/ForceLoginDialogFragment.kt index e026ab4..7d250d5 100644 --- a/app/src/main/java/com/websarva/wings/android/flat/view/ForceLoginDialogFragment.kt +++ b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/login/ForceLoginDialogFragment.kt @@ -1,23 +1,22 @@ -package com.websarva.wings.android.flat.view - -import android.app.Dialog -import android.os.Bundle -import androidx.appcompat.app.AlertDialog -import androidx.fragment.app.DialogFragment -import androidx.fragment.app.activityViewModels -import com.websarva.wings.android.flat.R -import com.websarva.wings.android.flat.viewmodel.LoginViewModel - -class ForceLoginDialogFragment(private val input: LoginViewModel.LoginInput): DialogFragment() { - private val viewModel: LoginViewModel by activityViewModels() - override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { - val builder = AlertDialog.Builder(requireContext()).apply { - setMessage(getString(R.string.force_login_dialog_message)) - setPositiveButton(getString(R.string.to_login)) { _, _ -> - viewModel.login(input) - } - setNegativeButton(getString(R.string.cancel), null) - } - return builder.create() - } +package com.websarva.wings.android.flat.ui.startup.login + +import android.app.Dialog +import android.os.Bundle +import androidx.appcompat.app.AlertDialog +import androidx.fragment.app.DialogFragment +import androidx.fragment.app.activityViewModels +import com.websarva.wings.android.flat.R + +class ForceLoginDialogFragment(private val input: LoginViewModel.LoginInput): DialogFragment() { + private val viewModel: LoginViewModel by activityViewModels() + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val builder = AlertDialog.Builder(requireContext()).apply { + setMessage(getString(R.string.force_login_dialog_message)) + setPositiveButton(getString(R.string.to_login)) { _, _ -> + viewModel.login(input) + } + setNegativeButton(getString(R.string.cancel), null) + } + return builder.create() + } } \ No newline at end of file diff --git a/app/src/main/java/com/websarva/wings/android/flat/view/LoginFragment.kt b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/login/LoginFragment.kt similarity index 97% rename from app/src/main/java/com/websarva/wings/android/flat/view/LoginFragment.kt rename to app/src/main/java/com/websarva/wings/android/flat/ui/startup/login/LoginFragment.kt index 0cf89db..8dbff2b 100644 --- a/app/src/main/java/com/websarva/wings/android/flat/view/LoginFragment.kt +++ b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/login/LoginFragment.kt @@ -1,4 +1,4 @@ -package com.websarva.wings.android.flat.view +package com.websarva.wings.android.flat.ui.startup.login import android.os.Bundle import android.view.LayoutInflater @@ -10,7 +10,7 @@ import androidx.fragment.app.activityViewModels import androidx.navigation.findNavController import com.websarva.wings.android.flat.R import com.websarva.wings.android.flat.databinding.FragmentLoginBinding -import com.websarva.wings.android.flat.viewmodel.LoginViewModel +import com.websarva.wings.android.flat.view.setOnSafeClickListener class LoginFragment : Fragment() { private val viewModel: LoginViewModel by activityViewModels() diff --git a/app/src/main/java/com/websarva/wings/android/flat/viewmodel/LoginViewModel.kt b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/login/LoginViewModel.kt similarity index 97% rename from app/src/main/java/com/websarva/wings/android/flat/viewmodel/LoginViewModel.kt rename to app/src/main/java/com/websarva/wings/android/flat/ui/startup/login/LoginViewModel.kt index 48a6aeb..6797c8a 100644 --- a/app/src/main/java/com/websarva/wings/android/flat/viewmodel/LoginViewModel.kt +++ b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/login/LoginViewModel.kt @@ -1,4 +1,4 @@ -package com.websarva.wings.android.flat.viewmodel +package com.websarva.wings.android.flat.ui.startup.login import android.util.Log import androidx.lifecycle.LiveData @@ -112,7 +112,7 @@ class LoginViewModel : ViewModel() { insertUserData(user) } //TODO: アプリケーションクラスに共有変数として持たせるので本当に良いのか吟味する - FLATApplication.myId = roomRepository.getUserData().myId +// FLATApplication.myId = roomRepository.getUserData().myId _roomChanged.postValue(true) } } diff --git a/app/src/main/java/com/websarva/wings/android/flat/view/AccountRegistrationFragment.kt b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/signUp/SignUpFragment.kt similarity index 76% rename from app/src/main/java/com/websarva/wings/android/flat/view/AccountRegistrationFragment.kt rename to app/src/main/java/com/websarva/wings/android/flat/ui/startup/signUp/SignUpFragment.kt index ac3138f..163d666 100644 --- a/app/src/main/java/com/websarva/wings/android/flat/view/AccountRegistrationFragment.kt +++ b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/signUp/SignUpFragment.kt @@ -1,6 +1,5 @@ -package com.websarva.wings.android.flat.view +package com.websarva.wings.android.flat.ui.startup.signUp -import android.content.Intent import android.os.Bundle import android.util.Log import android.view.LayoutInflater @@ -10,12 +9,11 @@ import android.widget.Toast import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.navigation.findNavController -import com.websarva.wings.android.flat.BeaconDetectionService import com.websarva.wings.android.flat.R import com.websarva.wings.android.flat.databinding.FragmentAccountRegistrationBinding -import com.websarva.wings.android.flat.viewmodel.AccountRegistrationViewModel +import com.websarva.wings.android.flat.view.setOnSafeClickListener -class AccountRegistrationFragment : Fragment() { +class SignUpFragment : Fragment() { private val viewModel: AccountRegistrationViewModel by viewModels() private var _binding: FragmentAccountRegistrationBinding? = null private val binding get() = _binding!! @@ -40,18 +38,12 @@ class AccountRegistrationFragment : Fragment() { isNameOk = false, isMatch = false, isCharaLenOk = false -// name = "aaaa", -// pass1 = "aaaaaaaa", -// pass2 = "aaaaaaaa", -// isNameOk = true, -// isMatch = true, -// isCharaLenOk = true ) viewModel.checkAndTrimName(input) } } - viewModel.trimmedName.observe(viewLifecycleOwner, { + viewModel.trimmedName.observe(viewLifecycleOwner) { viewModel.checkMatchPassword(it) if (it.isNameOk) { binding.tilInputNickname.apply { @@ -63,10 +55,10 @@ class AccountRegistrationFragment : Fragment() { isErrorEnabled = true } } - }) + } - viewModel.isMatchPassword.observe(viewLifecycleOwner, { + viewModel.isMatchPassword.observe(viewLifecycleOwner) { viewModel.checkCharacter(it) if (it.isMatch) { // エラーを消す @@ -80,9 +72,9 @@ class AccountRegistrationFragment : Fragment() { visibility = View.VISIBLE } } - }) + } - viewModel.isCharacterOk.observe(viewLifecycleOwner, { + viewModel.isCharacterOk.observe(viewLifecycleOwner) { if (it.isCharaLenOk) { viewModel.checkPasswordLength(it) } else { @@ -92,9 +84,9 @@ class AccountRegistrationFragment : Fragment() { isErrorEnabled = true } } - }) + } - viewModel.isLengthOk.observe(viewLifecycleOwner, { + viewModel.isLengthOk.observe(viewLifecycleOwner) { if (it.isCharaLenOk) { // エラーを消す binding.tilInputPassword.apply { @@ -102,7 +94,7 @@ class AccountRegistrationFragment : Fragment() { } if (it.isMatch && it.isNameOk) { // postする - Log.d("userData", "$it") + Log.d("userData", "$it") viewModel.registerUser(it) } } else { @@ -112,10 +104,10 @@ class AccountRegistrationFragment : Fragment() { isErrorEnabled = true } } - }) + } // レスポンスを監視し、名前重複のエラーメッセージを表示するorログイン - viewModel.postResponse.observe(viewLifecycleOwner, { + viewModel.postResponse.observe(viewLifecycleOwner) { when (it.code()) { 200 -> { viewModel.registerUserInRoom(it.body()!!) @@ -127,18 +119,23 @@ class AccountRegistrationFragment : Fragment() { } } else -> { - Toast.makeText(activity, getString(R.string.connection_error), Toast.LENGTH_SHORT).show() + Toast.makeText( + activity, + getString(R.string.connection_error), + Toast.LENGTH_SHORT + ).show() } } - }) + } - viewModel.registerOk.observe(viewLifecycleOwner, { - val action = AccountRegistrationFragmentDirections.actionAccountRegistrationFragmentToFriendListFragment() + viewModel.registerOk.observe(viewLifecycleOwner) { + val action = + SignUpFragmentDirections.actionAccountRegistrationFragmentToFriendListFragment() view.findNavController().navigate(action) - }) + } binding.tvHasAccountToLogin.setOnSafeClickListener{ - val action = AccountRegistrationFragmentDirections.actionAccountRegistrationFragmentToLoginFragment() + val action = SignUpFragmentDirections.actionAccountRegistrationFragmentToLoginFragment() view.findNavController().navigate(action) } } diff --git a/app/src/main/java/com/websarva/wings/android/flat/viewmodel/AccountRegistrationViewModel.kt b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/signUp/SignUpViewModel.kt similarity index 97% rename from app/src/main/java/com/websarva/wings/android/flat/viewmodel/AccountRegistrationViewModel.kt rename to app/src/main/java/com/websarva/wings/android/flat/ui/startup/signUp/SignUpViewModel.kt index a30d5cf..5a6c1d4 100644 --- a/app/src/main/java/com/websarva/wings/android/flat/viewmodel/AccountRegistrationViewModel.kt +++ b/app/src/main/java/com/websarva/wings/android/flat/ui/startup/signUp/SignUpViewModel.kt @@ -1,4 +1,4 @@ -package com.websarva.wings.android.flat.viewmodel +package com.websarva.wings.android.flat.ui.startup.signUp import android.util.Log import androidx.lifecycle.* @@ -112,7 +112,7 @@ class AccountRegistrationViewModel : ViewModel() { insertUserData(user) } //TODO: アプリケーションクラスに共有変数として持たせるので本当に良いのか吟味する - myId = roomRepository.getUserData().myId +// myId = roomRepository.getUserData().myId _registerOk.postValue(true) } } diff --git a/app/src/main/java/com/websarva/wings/android/flat/view/AddFriendFragment.kt b/app/src/main/java/com/websarva/wings/android/flat/view/AddFriendFragment.kt index 9dadcb1..85d2535 100644 --- a/app/src/main/java/com/websarva/wings/android/flat/view/AddFriendFragment.kt +++ b/app/src/main/java/com/websarva/wings/android/flat/view/AddFriendFragment.kt @@ -12,9 +12,7 @@ import android.view.inputmethod.EditorInfo import android.view.inputmethod.InputMethodManager import android.widget.TextView import android.widget.Toast -import androidx.core.content.ContextCompat import androidx.fragment.app.viewModels -import androidx.lifecycle.Observer import androidx.recyclerview.widget.LinearLayoutManager import com.websarva.wings.android.flat.R import com.websarva.wings.android.flat.databinding.FragmentAddFriendBinding diff --git a/app/src/main/java/com/websarva/wings/android/flat/view/StartupFragment.kt b/app/src/main/java/com/websarva/wings/android/flat/view/StartupFragment.kt deleted file mode 100644 index f6b9ec9..0000000 --- a/app/src/main/java/com/websarva/wings/android/flat/view/StartupFragment.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.websarva.wings.android.flat.view - -import android.os.Bundle -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.fragment.app.Fragment -import androidx.fragment.app.viewModels -import androidx.navigation.findNavController -import com.websarva.wings.android.flat.FLATApplication -import com.websarva.wings.android.flat.databinding.FragmentStartupBinding -import com.websarva.wings.android.flat.viewmodel.StartupViewModel - -class StartupFragment : Fragment() { - - private val viewModel: StartupViewModel by viewModels() - private var _binding: FragmentStartupBinding? = null - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - _binding = FragmentStartupBinding.inflate(inflater, container, false) - return binding.root - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - // Login時にmyId設定,FriendListFragmentに遷移させる - // Logout処理時に0にする.IDはサーバーの実装的に1スタート.実装が微妙だと思ったら書き換える - if (FLATApplication.myId != 0) { - val action = StartupFragmentDirections.actionStartupFragmentToFriendListFragment2() - view.findNavController().navigate(action) - } - - binding.btLogin.setOnSafeClickListener { - val action = StartupFragmentDirections.actionStartupFragmentToLoginFragment() - view.findNavController().navigate(action) - } - - binding.btNewAccountRegistration.setOnSafeClickListener { - val action = StartupFragmentDirections.actionStartupFragmentToAccountRegistrationFragment() - view.findNavController().navigate(action) - } - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } -} \ No newline at end of file diff --git a/app/src/main/java/com/websarva/wings/android/flat/viewmodel/StartupViewModel.kt b/app/src/main/java/com/websarva/wings/android/flat/viewmodel/StartupViewModel.kt deleted file mode 100644 index 5a9d0f4..0000000 --- a/app/src/main/java/com/websarva/wings/android/flat/viewmodel/StartupViewModel.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.websarva.wings.android.flat.viewmodel - -import androidx.lifecycle.SavedStateHandle -import androidx.lifecycle.ViewModel - -class StartupViewModel( - saveStateHandle: SavedStateHandle -) : ViewModel() { - -} diff --git a/app/src/main/res/layout/fragment_account_registration.xml b/app/src/main/res/layout/fragment_account_registration.xml index d4017fa..d2289a4 100644 --- a/app/src/main/res/layout/fragment_account_registration.xml +++ b/app/src/main/res/layout/fragment_account_registration.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" - tools:context=".view.AccountRegistrationFragment"> + tools:context=".ui.startup.signUp.SignUpFragment"> + tools:context=".ui.startup.login.LoginFragment"> + type="com.websarva.wings.android.flat.ui.startup.StartupViewModel" /> + tools:context=".ui.startup.StartupFragment"> + + +