mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2025-05-20 00:07:19 +02:00
Keyboard hide on search end
This commit is contained in:
parent
1755d03a6b
commit
4b6a2c9829
@ -1,9 +1,11 @@
|
|||||||
package com.futo.platformplayer.fragment.mainactivity.main
|
package com.futo.platformplayer.fragment.mainactivity.main
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import android.graphics.drawable.Animatable
|
import android.graphics.drawable.Animatable
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.view.inputmethod.InputMethodManager
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
import android.widget.ImageButton
|
import android.widget.ImageButton
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
@ -48,6 +50,11 @@ abstract class VideoListEditorView : LinearLayout {
|
|||||||
private var _loadedVideos: List<IPlatformVideo>? = null;
|
private var _loadedVideos: List<IPlatformVideo>? = null;
|
||||||
private var _loadedVideosCanEdit: Boolean = false;
|
private var _loadedVideosCanEdit: Boolean = false;
|
||||||
|
|
||||||
|
fun hideSearchKeyboard() {
|
||||||
|
(context?.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager)?.hideSoftInputFromWindow(_search.textSearch.windowToken, 0)
|
||||||
|
_search.textSearch.clearFocus();
|
||||||
|
}
|
||||||
|
|
||||||
constructor(inflater: LayoutInflater) : super(inflater.context) {
|
constructor(inflater: LayoutInflater) : super(inflater.context) {
|
||||||
inflater.inflate(R.layout.fragment_video_list_editor, this);
|
inflater.inflate(R.layout.fragment_video_list_editor, this);
|
||||||
|
|
||||||
@ -79,6 +86,7 @@ abstract class VideoListEditorView : LinearLayout {
|
|||||||
_search.textSearch.text = "";
|
_search.textSearch.text = "";
|
||||||
updateVideoFilters();
|
updateVideoFilters();
|
||||||
_buttonSearch.setImageResource(R.drawable.ic_search);
|
_buttonSearch.setImageResource(R.drawable.ic_search);
|
||||||
|
hideSearchKeyboard();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
_search.visibility = View.VISIBLE;
|
_search.visibility = View.VISIBLE;
|
||||||
@ -89,23 +97,23 @@ abstract class VideoListEditorView : LinearLayout {
|
|||||||
_buttonShare = findViewById(R.id.button_share);
|
_buttonShare = findViewById(R.id.button_share);
|
||||||
val onShare = _onShare;
|
val onShare = _onShare;
|
||||||
if(onShare != null) {
|
if(onShare != null) {
|
||||||
_buttonShare.setOnClickListener { onShare.invoke() };
|
_buttonShare.setOnClickListener { hideSearchKeyboard(); onShare.invoke() };
|
||||||
_buttonShare.visibility = View.VISIBLE;
|
_buttonShare.visibility = View.VISIBLE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
_buttonShare.visibility = View.GONE;
|
_buttonShare.visibility = View.GONE;
|
||||||
|
|
||||||
buttonPlayAll.setOnClickListener { onPlayAllClick(); };
|
buttonPlayAll.setOnClickListener { hideSearchKeyboard();onPlayAllClick(); hideSearchKeyboard(); };
|
||||||
buttonShuffle.setOnClickListener { onShuffleClick(); };
|
buttonShuffle.setOnClickListener { hideSearchKeyboard();onShuffleClick(); hideSearchKeyboard(); };
|
||||||
|
|
||||||
_buttonEdit.setOnClickListener { onEditClick(); };
|
_buttonEdit.setOnClickListener { hideSearchKeyboard(); onEditClick(); };
|
||||||
setButtonExportVisible(false);
|
setButtonExportVisible(false);
|
||||||
setButtonDownloadVisible(canEdit());
|
setButtonDownloadVisible(canEdit());
|
||||||
|
|
||||||
videoListEditorView.onVideoOrderChanged.subscribe(::onVideoOrderChanged);
|
videoListEditorView.onVideoOrderChanged.subscribe(::onVideoOrderChanged);
|
||||||
videoListEditorView.onVideoRemoved.subscribe(::onVideoRemoved);
|
videoListEditorView.onVideoRemoved.subscribe(::onVideoRemoved);
|
||||||
videoListEditorView.onVideoOptions.subscribe(::onVideoOptions);
|
videoListEditorView.onVideoOptions.subscribe(::onVideoOptions);
|
||||||
videoListEditorView.onVideoClicked.subscribe(::onVideoClicked);
|
videoListEditorView.onVideoClicked.subscribe { hideSearchKeyboard(); onVideoClicked(it)};
|
||||||
|
|
||||||
_videoListEditorView = videoListEditorView;
|
_videoListEditorView = videoListEditorView;
|
||||||
}
|
}
|
||||||
@ -113,6 +121,7 @@ abstract class VideoListEditorView : LinearLayout {
|
|||||||
fun setOnShare(onShare: (()-> Unit)? = null) {
|
fun setOnShare(onShare: (()-> Unit)? = null) {
|
||||||
_onShare = onShare;
|
_onShare = onShare;
|
||||||
_buttonShare.setOnClickListener {
|
_buttonShare.setOnClickListener {
|
||||||
|
hideSearchKeyboard();
|
||||||
onShare?.invoke();
|
onShare?.invoke();
|
||||||
};
|
};
|
||||||
_buttonShare.visibility = View.VISIBLE;
|
_buttonShare.visibility = View.VISIBLE;
|
||||||
@ -145,7 +154,7 @@ abstract class VideoListEditorView : LinearLayout {
|
|||||||
setButtonExportVisible(false);
|
setButtonExportVisible(false);
|
||||||
_buttonDownload.setImageResource(R.drawable.ic_loader_animated);
|
_buttonDownload.setImageResource(R.drawable.ic_loader_animated);
|
||||||
_buttonDownload.drawable.assume<Animatable, Unit> { it.start() };
|
_buttonDownload.drawable.assume<Animatable, Unit> { it.start() };
|
||||||
_buttonDownload.setOnClickListener {
|
_buttonDownload.setOnClickListener { hideSearchKeyboard();
|
||||||
UIDialogs.showConfirmationDialog(context, context.getString(R.string.are_you_sure_you_want_to_delete_the_downloaded_videos), {
|
UIDialogs.showConfirmationDialog(context, context.getString(R.string.are_you_sure_you_want_to_delete_the_downloaded_videos), {
|
||||||
StateDownloads.instance.deleteCachedPlaylist(playlistId);
|
StateDownloads.instance.deleteCachedPlaylist(playlistId);
|
||||||
});
|
});
|
||||||
@ -154,7 +163,7 @@ abstract class VideoListEditorView : LinearLayout {
|
|||||||
else if(isDownloaded) {
|
else if(isDownloaded) {
|
||||||
setButtonExportVisible(true)
|
setButtonExportVisible(true)
|
||||||
_buttonDownload.setImageResource(R.drawable.ic_download_off);
|
_buttonDownload.setImageResource(R.drawable.ic_download_off);
|
||||||
_buttonDownload.setOnClickListener {
|
_buttonDownload.setOnClickListener { hideSearchKeyboard();
|
||||||
UIDialogs.showConfirmationDialog(context, context.getString(R.string.are_you_sure_you_want_to_delete_the_downloaded_videos), {
|
UIDialogs.showConfirmationDialog(context, context.getString(R.string.are_you_sure_you_want_to_delete_the_downloaded_videos), {
|
||||||
StateDownloads.instance.deleteCachedPlaylist(playlistId);
|
StateDownloads.instance.deleteCachedPlaylist(playlistId);
|
||||||
});
|
});
|
||||||
@ -163,7 +172,7 @@ abstract class VideoListEditorView : LinearLayout {
|
|||||||
else {
|
else {
|
||||||
setButtonExportVisible(false);
|
setButtonExportVisible(false);
|
||||||
_buttonDownload.setImageResource(R.drawable.ic_download);
|
_buttonDownload.setImageResource(R.drawable.ic_download);
|
||||||
_buttonDownload.setOnClickListener {
|
_buttonDownload.setOnClickListener { hideSearchKeyboard();
|
||||||
onDownload();
|
onDownload();
|
||||||
//UISlideOverlays.showDownloadPlaylistOverlay(playlist, overlayContainer);
|
//UISlideOverlays.showDownloadPlaylistOverlay(playlist, overlayContainer);
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package com.futo.platformplayer.views
|
package com.futo.platformplayer.views
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.text.TextWatcher
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
|
import android.view.inputmethod.InputMethodManager
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
import android.widget.ImageButton
|
import android.widget.ImageButton
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
@ -18,6 +20,9 @@ class SearchView : FrameLayout {
|
|||||||
val buttonClear: ImageButton;
|
val buttonClear: ImageButton;
|
||||||
|
|
||||||
var onSearchChanged = Event1<String>();
|
var onSearchChanged = Event1<String>();
|
||||||
|
var onEnter = Event1<String>();
|
||||||
|
|
||||||
|
val text: String get() = textSearch.text.toString();
|
||||||
|
|
||||||
constructor(context: Context, attrs: AttributeSet? = null) : super(context, attrs) {
|
constructor(context: Context, attrs: AttributeSet? = null) : super(context, attrs) {
|
||||||
inflate(context, R.layout.view_search_bar, this);
|
inflate(context, R.layout.view_search_bar, this);
|
||||||
|
@ -144,6 +144,9 @@
|
|||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:layout_marginLeft="15dp"
|
android:layout_marginLeft="15dp"
|
||||||
android:layout_marginRight="15dp"
|
android:layout_marginRight="15dp"
|
||||||
|
android:inputType="text"
|
||||||
|
android:imeOptions="actionDone"
|
||||||
|
android:singleLine="true"
|
||||||
android:background="@drawable/background_button_round"
|
android:background="@drawable/background_button_round"
|
||||||
android:hint="Search.." />
|
android:hint="Search.." />
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user