Skip to content
Snippets Groups Projects
Verified Commit d3343ed8 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fixes autocomplete

- Autocomplete works in Aliases and Topics
- Handle \n, \r, \t for lastWord
- Improve display of autocompleted alias items
parent 0fefbe6f
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -160,8 +160,19 @@ fun CharSequence.lastWordIndices(cursor: Int = this.length,
length
}
val beginningOfWord = lastIndexOf(' ', cursorPosition - 1)
val endOfWord = indexOf(' ', cursorPosition)
val beginningOfWord = sequenceOf(
lastIndexOf(' ', cursorPosition - 1),
lastIndexOf('\r', cursorPosition - 1),
lastIndexOf('\n', cursorPosition - 1),
lastIndexOf('\t', cursorPosition - 1)
).max() ?: -1
val endOfWord = sequenceOf(
indexOf(' ', cursorPosition),
indexOf('\r', cursorPosition),
indexOf('\n', cursorPosition),
indexOf('\t', cursorPosition)
).min() ?: -1
val start = beginningOfWord + 1
val end = when {
......
......@@ -22,7 +22,6 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="240dp"
android:orientation="vertical">
<android.support.design.widget.CoordinatorLayout
......@@ -31,9 +30,9 @@
android:layout_weight="1">
<ScrollView
android:id="@+id/chatline_scroller"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:scrollbars="vertical">
<de.kuschku.quasseldroid.ui.chat.input.RichEditText
android:id="@+id/chatline"
......
......@@ -17,27 +17,26 @@
with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="vertical">
android:orientation="vertical">
<LinearLayout
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:layout_height="0dip"
android:layout_weight="1">
<android.support.design.widget.CoordinatorLayout
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1">
android:layout_height="match_parent"
android:scrollbars="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout style="@style/Widget.CoreSettings.Wrapper">
......@@ -59,50 +58,45 @@
</LinearLayout>
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout style="@style/Widget.CoreSettings.Wrapper">
<android.support.design.widget.TextInputLayout
style="@style/Widget.CoreSettings.PrimaryItemSwitch"
android:hint="@string/settings_aliasitem_expansion">
<LinearLayout style="@style/Widget.CoreSettings.Wrapper">
<de.kuschku.quasseldroid.ui.chat.input.RichEditText
android:id="@+id/expansion"
style="@style/Widget.CoreSettings.EditText"
android:imeOptions="flagNoExtractUi"
android:inputType="textMultiLine"
android:textColor="?attr/colorForeground"
android:textSize="16sp" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</ScrollView>
<android.support.design.widget.TextInputLayout
style="@style/Widget.CoreSettings.PrimaryItemSwitch"
android:hint="@string/settings_aliasitem_expansion">
<de.kuschku.quasseldroid.ui.chat.input.RichEditText
android:id="@+id/expansion"
style="@style/Widget.CoreSettings.EditText"
android:imeOptions="flagNoExtractUi"
android:inputType="textMultiLine"
android:textColor="?attr/colorForeground"
android:textSize="16sp" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<android.support.v7.widget.RecyclerView
android:id="@+id/autocomplete_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?colorBackgroundCard"
app:behavior_hideable="true"
app:behavior_peekHeight="@dimen/autocomplete_max_height"
app:layout_behavior="@string/bottom_sheet_behavior"
tools:listitem="@layout/widget_nick" />
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.AppBarLayout
<android.support.v7.widget.RecyclerView
android:id="@+id/autocomplete_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorBackgroundCard">
android:background="?colorBackgroundCard"
app:behavior_hideable="true"
app:behavior_peekHeight="@dimen/autocomplete_max_height"
app:layout_behavior="@string/bottom_sheet_behavior"
tools:listitem="@layout/widget_nick" />
<de.kuschku.quasseldroid.ui.chat.input.RichToolbar
android:id="@+id/formatting_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:contentInsetStart="0dip" />
</android.support.design.widget.AppBarLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorBackgroundCard">
<de.kuschku.quasseldroid.ui.chat.input.RichToolbar
android:id="@+id/formatting_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:contentInsetStart="0dip" />
</android.support.design.widget.AppBarLayout>
</LinearLayout>
......@@ -89,7 +89,7 @@ class EditorViewModel : ViewModel() {
fun getAliases() = aliases.map {
Observable.just(AutoCompleteItem.AliasItem(
it.name,
"/${it.name}",
it.expansion
))
}
......
......@@ -46,7 +46,7 @@ sealed class AutoCompleteItem(open val name: String, val suffix: String, private
data class AliasItem(
val alias: String,
val expansion: String
) : AutoCompleteItem("/$alias", " ", 1)
) : AutoCompleteItem(alias, " ", 1)
data class ChannelItem(
val info: BufferInfo,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment