From 85b119bdcbd6dd65f998a56e401279439543ec5f Mon Sep 17 00:00:00 2001 From: ganfra Date: Mon, 25 Feb 2019 18:13:53 +0100 Subject: [PATCH] Home : hide keyboard when drawer state change --- .../im/vector/riotredesign/core/extensions/Activity.kt | 4 ++++ .../vector/riotredesign/features/home/HomeActivity.kt | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/app/src/main/java/im/vector/riotredesign/core/extensions/Activity.kt b/app/src/main/java/im/vector/riotredesign/core/extensions/Activity.kt index e908974e..8c23d795 100644 --- a/app/src/main/java/im/vector/riotredesign/core/extensions/Activity.kt +++ b/app/src/main/java/im/vector/riotredesign/core/extensions/Activity.kt @@ -29,4 +29,8 @@ fun AppCompatActivity.replaceFragment(fragment: Fragment, frameId: Int) { fun AppCompatActivity.addFragmentToBackstack(fragment: Fragment, frameId: Int, tag: String? = null) { supportFragmentManager.inTransaction { replace(frameId, fragment).addToBackStack(tag) } +} + +fun AppCompatActivity.hideKeyboard() { + currentFocus?.hideKeyboard() } \ No newline at end of file diff --git a/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt b/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt index 7f1e00d3..12842034 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt @@ -24,9 +24,11 @@ import android.view.MenuItem import androidx.appcompat.app.ActionBarDrawerToggle import androidx.appcompat.widget.Toolbar import androidx.core.view.GravityCompat +import androidx.drawerlayout.widget.DrawerLayout import androidx.fragment.app.FragmentManager import com.airbnb.mvrx.viewModel import im.vector.riotredesign.R +import im.vector.riotredesign.core.extensions.hideKeyboard import im.vector.riotredesign.core.extensions.observeEvent import im.vector.riotredesign.core.extensions.replaceFragment import im.vector.riotredesign.core.platform.OnBackPressed @@ -44,11 +46,18 @@ class HomeActivity : RiotActivity(), ToolbarConfigurable { private val homeActivityViewModel: HomeActivityViewModel by viewModel() private val homeNavigator by inject() + private val drawerListener = object : DrawerLayout.SimpleDrawerListener() { + override fun onDrawerStateChanged(newState: Int) { + hideKeyboard() + } + } + override fun onCreate(savedInstanceState: Bundle?) { loadKoinModules(listOf(HomeModule(this).definition)) homeNavigator.activity = this super.onCreate(savedInstanceState) setContentView(R.layout.activity_home) + drawerLayout.addDrawerListener(drawerListener) if (savedInstanceState == null) { val homeDrawerFragment = HomeDrawerFragment.newInstance() val loadingDetail = LoadingRoomDetailFragment.newInstance() @@ -61,6 +70,7 @@ class HomeActivity : RiotActivity(), ToolbarConfigurable { } override fun onDestroy() { + drawerLayout.removeDrawerListener(drawerListener) homeNavigator.activity = null super.onDestroy() }