mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Hiding the keyboard (#8160)
* Hiding the keyboard (#8157) * Cleanup * Adding log * cleanup * moving code to ViewExtensions.kt * TrackDialog keyboard fix? * moving code to ContextExtensions.kt * MoreScreen: Remove title (#8158) * MoreScreen: Remove title Also removes the state banners as it's redundant * Add back banners * Allow manual selection of manga description instead of copying to clipboard Closes #6548 Notably missing some "standard" options like "Select all" or "Share": https://issuetracker.google.com/issues/226648919 * Allow marking partially read chapters as unread Closes #3777 * Tablet UI edge-to-edge tweaks (#8159) * LibraryScreen: Tweak content padding application to draw under nav bar * BrowseScreen: Tweak content padding application to draw under nav bar Side note the tab content doesn't actually use its scaffold (bottom) contentPadding so it's definitely will be a headache in the future. * Don't hardcode bottom nav padding * removed unnecessary import * refactoring code * rewriting code * cleanup? * cleanup Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com> Co-authored-by: arkon <eugcheung94@gmail.com>
This commit is contained in:
		| @@ -10,6 +10,7 @@ import com.bluelinelabs.conductor.Controller | ||||
| import com.bluelinelabs.conductor.ControllerChangeHandler | ||||
| import com.bluelinelabs.conductor.ControllerChangeType | ||||
| import eu.kanade.tachiyomi.util.system.logcat | ||||
| import eu.kanade.tachiyomi.util.view.hideKeyboard | ||||
| import kotlinx.coroutines.CoroutineScope | ||||
| import kotlinx.coroutines.MainScope | ||||
| import kotlinx.coroutines.cancel | ||||
| @@ -61,6 +62,8 @@ abstract class BaseController<VB : ViewBinding>(bundle: Bundle? = null) : Contro | ||||
|     open fun onViewCreated(view: View) {} | ||||
|  | ||||
|     override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) { | ||||
|         view?.hideKeyboard() | ||||
|  | ||||
|         if (type.isEnter) { | ||||
|             setTitle() | ||||
|             setHasOptionsMenu(true) | ||||
|   | ||||
| @@ -6,8 +6,6 @@ import android.view.KeyEvent | ||||
| import android.view.LayoutInflater | ||||
| import android.view.View | ||||
| import android.view.inputmethod.EditorInfo | ||||
| import android.view.inputmethod.InputMethodManager | ||||
| import androidx.core.content.getSystemService | ||||
| import androidx.core.os.bundleOf | ||||
| import androidx.core.view.WindowCompat | ||||
| import androidx.core.view.isVisible | ||||
| @@ -19,6 +17,7 @@ import eu.kanade.tachiyomi.data.track.model.TrackSearch | ||||
| import eu.kanade.tachiyomi.databinding.TrackSearchDialogBinding | ||||
| import eu.kanade.tachiyomi.ui.base.controller.DialogController | ||||
| import eu.kanade.tachiyomi.ui.manga.MangaController | ||||
| import eu.kanade.tachiyomi.util.view.hideKeyboard | ||||
| import eu.kanade.tachiyomi.util.view.setNavigationBarTransparentCompat | ||||
| import eu.kanade.tachiyomi.widget.TachiyomiFullscreenDialog | ||||
| import kotlinx.coroutines.flow.filter | ||||
| @@ -103,7 +102,7 @@ class TrackSearchDialog : DialogController { | ||||
|                 if (query != currentlySearched) { | ||||
|                     currentlySearched = query | ||||
|                     search(it.view.text.toString()) | ||||
|                     it.view.context.getSystemService<InputMethodManager>()?.hideSoftInputFromWindow(it.view.windowToken, 0) | ||||
|                     it.view.hideKeyboard() | ||||
|                     it.view.clearFocus() | ||||
|                 } | ||||
|             } | ||||
|   | ||||
| @@ -24,6 +24,7 @@ import android.util.TypedValue | ||||
| import android.view.Display | ||||
| import android.view.View | ||||
| import android.view.WindowManager | ||||
| import android.view.inputmethod.InputMethodManager | ||||
| import androidx.annotation.AttrRes | ||||
| import androidx.annotation.ColorInt | ||||
| import androidx.appcompat.view.ContextThemeWrapper | ||||
| @@ -185,6 +186,9 @@ val Context.powerManager: PowerManager | ||||
| val Context.keyguardManager: KeyguardManager | ||||
|     get() = getSystemService()!! | ||||
|  | ||||
| val Context.inputMethodManager: InputMethodManager | ||||
|     get() = getSystemService()!! | ||||
|  | ||||
| val Context.displayCompat: Display? | ||||
|     get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { | ||||
|         display | ||||
|   | ||||
| @@ -37,6 +37,7 @@ import com.google.android.material.snackbar.Snackbar | ||||
| import eu.kanade.presentation.theme.TachiyomiTheme | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.util.system.getResourceColor | ||||
| import eu.kanade.tachiyomi.util.system.inputMethodManager | ||||
|  | ||||
| inline fun ComposeView.setComposeContent(crossinline content: @Composable () -> Unit) { | ||||
|     consumeWindowInsets = false | ||||
| @@ -209,3 +210,7 @@ fun View?.isVisibleOnScreen(): Boolean { | ||||
|     val screen = Rect(0, 0, Resources.getSystem().displayMetrics.widthPixels, Resources.getSystem().displayMetrics.heightPixels) | ||||
|     return actualPosition.intersect(screen) | ||||
| } | ||||
|  | ||||
| fun View.hideKeyboard() { | ||||
|     context.inputMethodManager.hideSoftInputFromWindow(windowToken, 0) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user