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

Improve channel and user info, fix a casemapping bug

parent 062634f6
No related branches found
No related tags found
No related merge requests found
Showing
with 161 additions and 76 deletions
...@@ -71,6 +71,7 @@ android { ...@@ -71,6 +71,7 @@ android {
getByName("debug") { getByName("debug") {
applicationIdSuffix = "debug" applicationIdSuffix = "debug"
/*
isZipAlignEnabled = true isZipAlignEnabled = true
isMinifyEnabled = true isMinifyEnabled = true
...@@ -80,6 +81,7 @@ android { ...@@ -80,6 +81,7 @@ android {
getDefaultProguardFile("proguard-android.txt"), getDefaultProguardFile("proguard-android.txt"),
"proguard-rules.pro" "proguard-rules.pro"
) )
*/
} }
} }
......
...@@ -17,6 +17,7 @@ import de.kuschku.quasseldroid.R ...@@ -17,6 +17,7 @@ import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.ui.chat.topic.TopicActivity import de.kuschku.quasseldroid.ui.chat.topic.TopicActivity
import de.kuschku.quasseldroid.util.helper.combineLatest import de.kuschku.quasseldroid.util.helper.combineLatest
import de.kuschku.quasseldroid.util.helper.retint import de.kuschku.quasseldroid.util.helper.retint
import de.kuschku.quasseldroid.util.helper.setTooltip
import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.util.helper.toLiveData
import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.irc.format.ContentFormatter
import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.util.service.ServiceBoundFragment
...@@ -61,7 +62,7 @@ class ChannelInfoFragment : ServiceBoundFragment() { ...@@ -61,7 +62,7 @@ class ChannelInfoFragment : ServiceBoundFragment() {
} ?: IrcChannel.NULL } ?: IrcChannel.NULL
}.filter { }.filter {
it != IrcChannel.NULL it != IrcChannel.NULL
}.switchMap(IrcChannel::updates).firstElement().toLiveData().observe(this, Observer { channel -> }.switchMap(IrcChannel::updates).toLiveData().observe(this, Observer { channel ->
if (channel != null) { if (channel != null) {
name.text = channel.name() name.text = channel.name()
topic.text = contentFormatter.format(requireContext(), channel.topic()) topic.text = contentFormatter.format(requireContext(), channel.topic())
...@@ -71,7 +72,6 @@ class ChannelInfoFragment : ServiceBoundFragment() { ...@@ -71,7 +72,6 @@ class ChannelInfoFragment : ServiceBoundFragment() {
intent.putExtra("buffer", arguments?.getInt("bufferId") ?: -1) intent.putExtra("buffer", arguments?.getInt("bufferId") ?: -1)
startActivity(intent) startActivity(intent)
} }
actionEditTopic.retint()
actionPart.setOnClickListener { actionPart.setOnClickListener {
viewModel.session.value?.orNull()?.let { session -> viewModel.session.value?.orNull()?.let { session ->
...@@ -84,7 +84,6 @@ class ChannelInfoFragment : ServiceBoundFragment() { ...@@ -84,7 +84,6 @@ class ChannelInfoFragment : ServiceBoundFragment() {
} }
} }
} }
actionPart.retint()
} }
}) })
...@@ -92,6 +91,11 @@ class ChannelInfoFragment : ServiceBoundFragment() { ...@@ -92,6 +91,11 @@ class ChannelInfoFragment : ServiceBoundFragment() {
movementMethod.setOnLinkLongClickListener(LinkLongClickMenuHelper()) movementMethod.setOnLinkLongClickListener(LinkLongClickMenuHelper())
topic.movementMethod = movementMethod topic.movementMethod = movementMethod
actionEditTopic.setTooltip()
actionEditTopic.retint()
actionPart.setTooltip()
actionPart.retint()
return view return view
} }
} }
...@@ -19,11 +19,13 @@ import de.kuschku.quasseldroid.GlideApp ...@@ -19,11 +19,13 @@ import de.kuschku.quasseldroid.GlideApp
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.ui.chat.ChatActivity import de.kuschku.quasseldroid.ui.chat.ChatActivity
import de.kuschku.quasseldroid.ui.chat.input.AutoCompleteHelper.Companion.IGNORED_CHARS import de.kuschku.quasseldroid.ui.chat.input.AutoCompleteHelper.Companion.IGNORED_CHARS
import de.kuschku.quasseldroid.util.AvatarHelper
import de.kuschku.quasseldroid.util.helper.* import de.kuschku.quasseldroid.util.helper.*
import de.kuschku.quasseldroid.util.irc.format.ContentFormatter import de.kuschku.quasseldroid.util.irc.format.ContentFormatter
import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.util.service.ServiceBoundFragment
import de.kuschku.quasseldroid.util.ui.LinkLongClickMenuHelper import de.kuschku.quasseldroid.util.ui.LinkLongClickMenuHelper
import de.kuschku.quasseldroid.util.ui.TextDrawable import de.kuschku.quasseldroid.util.ui.TextDrawable
import io.reactivex.Observable
import me.saket.bettermovementmethod.BetterLinkMovementMethod import me.saket.bettermovementmethod.BetterLinkMovementMethod
import javax.inject.Inject import javax.inject.Inject
...@@ -43,6 +45,9 @@ class UserInfoFragment : ServiceBoundFragment() { ...@@ -43,6 +45,9 @@ class UserInfoFragment : ServiceBoundFragment() {
@BindView(R.id.action_ignore) @BindView(R.id.action_ignore)
lateinit var actionIgnore: Button lateinit var actionIgnore: Button
@BindView(R.id.action_whois)
lateinit var actionWhois: Button
@BindView(R.id.action_mention) @BindView(R.id.action_mention)
lateinit var actionMention: Button lateinit var actionMention: Button
...@@ -99,20 +104,20 @@ class UserInfoFragment : ServiceBoundFragment() { ...@@ -99,20 +104,20 @@ class UserInfoFragment : ServiceBoundFragment() {
val networkId = arguments?.getInt("networkId") val networkId = arguments?.getInt("networkId")
val nickName = arguments?.getString("nick") val nickName = arguments?.getString("nick")
combineLatest(viewModel.session, viewModel.networks).map { (sessionOptional, networks) -> combineLatest(viewModel.session, viewModel.networks).switchMap { (sessionOptional, networks) ->
if (openBuffer == true) { if (openBuffer == true) {
val session = sessionOptional?.orNull() val session = sessionOptional?.orNull()
val bufferSyncer = session?.bufferSyncer val bufferSyncer = session?.bufferSyncer
val bufferInfo = bufferSyncer?.bufferInfo(arguments?.getInt("bufferId") ?: -1) val bufferInfo = bufferSyncer?.bufferInfo(arguments?.getInt("bufferId") ?: -1)
bufferInfo?.let { bufferInfo?.let {
networks[it.networkId]?.ircUser(it.bufferName) networks[it.networkId]?.liveIrcUser(it.bufferName)
} }
} else { } else {
networks[networkId]?.ircUser(nickName) networks[networkId]?.liveIrcUser(nickName)
} ?: IrcUser.NULL } ?: Observable.just(IrcUser.NULL)
}.filter { }.filter {
it != IrcUser.NULL it != IrcUser.NULL
}.switchMap(IrcUser::updates).firstElement().toLiveData().observe(this, Observer { user -> }.switchMap(IrcUser::updates).toLiveData().observe(this, Observer { user ->
if (user != null) { if (user != null) {
val senderColorIndex = IrcUserUtils.senderColor(user.nick()) val senderColorIndex = IrcUserUtils.senderColor(user.nick())
val rawInitial = user.nick().trimStart(*IGNORED_CHARS).firstOrNull() val rawInitial = user.nick().trimStart(*IGNORED_CHARS).firstOrNull()
...@@ -122,9 +127,7 @@ class UserInfoFragment : ServiceBoundFragment() { ...@@ -122,9 +127,7 @@ class UserInfoFragment : ServiceBoundFragment() {
val fallbackDrawable = TextDrawable.builder().buildRect(initial, senderColor) val fallbackDrawable = TextDrawable.builder().buildRect(initial, senderColor)
val avatarUrl = Regex("[us]id(\\d+)").matchEntire(user.user())?.groupValues?.lastOrNull()?.let { val avatarUrl = AvatarHelper.avatar(user = user)
"https://www.irccloud.com/avatar-redirect/$it"
}
if (avatarUrl != null) { if (avatarUrl != null) {
GlideApp.with(avatar) GlideApp.with(avatar)
.load(avatarUrl) .load(avatarUrl)
...@@ -190,12 +193,23 @@ class UserInfoFragment : ServiceBoundFragment() { ...@@ -190,12 +193,23 @@ class UserInfoFragment : ServiceBoundFragment() {
} }
} }
} }
actionQuery.retint()
actionIgnore.setOnClickListener { actionIgnore.setOnClickListener {
Toast.makeText(requireContext(), "Not Implemented", Toast.LENGTH_SHORT).show() Toast.makeText(requireContext(), "Not Implemented", Toast.LENGTH_SHORT).show()
} }
actionIgnore.retint()
actionWhois.setOnClickListener {
viewModel.session {
it.orNull()?.let { session ->
session.bufferSyncer?.find(
networkId = networkId,
type = Buffer_Type.of(Buffer_Type.StatusBuffer)
)?.let { statusInfo ->
session.rpcHandler?.sendInput(statusInfo, "/whois ${user.nick()}")
}
}
}
}
actionMention.setOnClickListener { actionMention.setOnClickListener {
val intent = Intent(requireContext(), ChatActivity::class.java) val intent = Intent(requireContext(), ChatActivity::class.java)
...@@ -204,7 +218,6 @@ class UserInfoFragment : ServiceBoundFragment() { ...@@ -204,7 +218,6 @@ class UserInfoFragment : ServiceBoundFragment() {
startActivity(intent) startActivity(intent)
} }
actionMention.visibleIf(arguments?.getBoolean("openBuffer") == false) actionMention.visibleIf(arguments?.getBoolean("openBuffer") == false)
actionMention.retint()
} }
}) })
...@@ -212,6 +225,15 @@ class UserInfoFragment : ServiceBoundFragment() { ...@@ -212,6 +225,15 @@ class UserInfoFragment : ServiceBoundFragment() {
movementMethod.setOnLinkLongClickListener(LinkLongClickMenuHelper()) movementMethod.setOnLinkLongClickListener(LinkLongClickMenuHelper())
realName.movementMethod = movementMethod realName.movementMethod = movementMethod
actionQuery.setTooltip()
actionQuery.retint()
actionIgnore.setTooltip()
actionIgnore.retint()
actionWhois.setTooltip()
actionWhois.retint()
actionMention.setTooltip()
actionMention.retint()
return view return view
} }
} }
...@@ -14,6 +14,7 @@ import de.kuschku.libquassel.util.helpers.value ...@@ -14,6 +14,7 @@ import de.kuschku.libquassel.util.helpers.value
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.settings.AutoCompleteSettings import de.kuschku.quasseldroid.settings.AutoCompleteSettings
import de.kuschku.quasseldroid.settings.MessageSettings import de.kuschku.quasseldroid.settings.MessageSettings
import de.kuschku.quasseldroid.util.AvatarHelper
import de.kuschku.quasseldroid.util.helper.styledAttributes import de.kuschku.quasseldroid.util.helper.styledAttributes
import de.kuschku.quasseldroid.util.helper.toLiveData import de.kuschku.quasseldroid.util.helper.toLiveData
import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer import de.kuschku.quasseldroid.util.irc.format.IrcFormatDeserializer
...@@ -147,9 +148,7 @@ class AutoCompleteHelper( ...@@ -147,9 +148,7 @@ class AutoCompleteHelper(
user.realName(), user.realName(),
user.isAway(), user.isAway(),
network.support("CASEMAPPING"), network.support("CASEMAPPING"),
Regex("[us]id(\\d+)").matchEntire(user.user())?.groupValues?.lastOrNull()?.let { AvatarHelper.avatar(user = user)
"https://www.irccloud.com/avatar-redirect/$it"
}
) )
} }
......
...@@ -3,13 +3,13 @@ package de.kuschku.quasseldroid.ui.chat.input ...@@ -3,13 +3,13 @@ package de.kuschku.quasseldroid.ui.chat.input
import android.content.Context import android.content.Context
import android.support.annotation.ColorInt import android.support.annotation.ColorInt
import android.support.v7.widget.Toolbar import android.support.v7.widget.Toolbar
import android.support.v7.widget.TooltipCompat
import android.util.AttributeSet import android.util.AttributeSet
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import butterknife.BindView import butterknife.BindView
import butterknife.ButterKnife import butterknife.ButterKnife
import de.kuschku.quasseldroid.R import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.util.helper.setTooltip
class RichToolbar : Toolbar { class RichToolbar : Toolbar {
@BindView(R.id.action_format_bold) @BindView(R.id.action_format_bold)
...@@ -53,14 +53,14 @@ class RichToolbar : Toolbar { ...@@ -53,14 +53,14 @@ class RichToolbar : Toolbar {
LayoutInflater.from(context).inflate(R.layout.widget_formatting, this, true) LayoutInflater.from(context).inflate(R.layout.widget_formatting, this, true)
ButterKnife.bind(this) ButterKnife.bind(this)
TooltipCompat.setTooltipText(boldButton, boldButton.contentDescription) boldButton.setTooltip()
TooltipCompat.setTooltipText(italicButton, italicButton.contentDescription) italicButton.setTooltip()
TooltipCompat.setTooltipText(underlineButton, underlineButton.contentDescription) underlineButton.setTooltip()
TooltipCompat.setTooltipText(strikethroughButton, strikethroughButton.contentDescription) strikethroughButton.setTooltip()
TooltipCompat.setTooltipText(monospaceButton, monospaceButton.contentDescription) monospaceButton.setTooltip()
TooltipCompat.setTooltipText(foregroundButton, foregroundButton.contentDescription) foregroundButton.setTooltip()
TooltipCompat.setTooltipText(backgroundButton, backgroundButton.contentDescription) backgroundButton.setTooltip()
TooltipCompat.setTooltipText(clearButton, clearButton.contentDescription) clearButton.setTooltip()
boldButton.setOnClickListener { listener?.onBold() } boldButton.setOnClickListener { listener?.onBold() }
italicButton.setOnClickListener { listener?.onItalic() } italicButton.setOnClickListener { listener?.onItalic() }
......
package de.kuschku.quasseldroid.ui.chat.messages package de.kuschku.quasseldroid.ui.chat.messages
import de.kuschku.libquassel.protocol.MsgId import de.kuschku.libquassel.protocol.MsgId
import de.kuschku.libquassel.util.irc.HostmaskHelper
import de.kuschku.quasseldroid.persistence.QuasselDatabase import de.kuschku.quasseldroid.persistence.QuasselDatabase
import de.kuschku.quasseldroid.util.AvatarHelper
data class DisplayMessage( data class DisplayMessage(
val content: QuasselDatabase.DatabaseMessage, val content: QuasselDatabase.DatabaseMessage,
...@@ -32,9 +32,5 @@ data class DisplayMessage( ...@@ -32,9 +32,5 @@ data class DisplayMessage(
isMarkerLine, isMarkerLine,
isEmoji isEmoji
) )
val avatarUrl = content.sender.let { val avatarUrl = AvatarHelper.avatar(message = content)
Regex("[us]id(\\d+)").matchEntire(HostmaskHelper.user(it))?.groupValues?.lastOrNull()?.let {
"https://www.irccloud.com/avatar-redirect/$it"
}
}
} }
package de.kuschku.quasseldroid.util
import de.kuschku.libquassel.quassel.syncables.IrcUser
import de.kuschku.libquassel.util.irc.HostmaskHelper
import de.kuschku.quasseldroid.persistence.QuasselDatabase
object AvatarHelper {
fun avatar(message: QuasselDatabase.DatabaseMessage? = null, user: IrcUser? = null): String? {
val ident = message?.sender?.let(HostmaskHelper::user)
?: user?.user()
?: return null
val userId = Regex("[us]id(\\d+)").matchEntire(ident)?.groupValues?.lastOrNull()
?: return null
return "https://static.irccloud-cdn.com/avatar-redirect/$userId"
}
}
package de.kuschku.quasseldroid.util.helper package de.kuschku.quasseldroid.util.helper
import android.support.v7.widget.TooltipCompat
import android.view.View import android.view.View
fun View.visibleIf(check: Boolean) = if (check) { fun View.visibleIf(check: Boolean) = if (check) {
...@@ -7,3 +8,6 @@ fun View.visibleIf(check: Boolean) = if (check) { ...@@ -7,3 +8,6 @@ fun View.visibleIf(check: Boolean) = if (check) {
} else { } else {
this.visibility = View.GONE this.visibility = View.GONE
} }
fun View.setTooltip(tooltipText: CharSequence? = this.contentDescription) =
TooltipCompat.setTooltipText(this, tooltipText)
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout style="@style/Widget.Info.Header"> <LinearLayout style="@style/Widget.Info.Header">
...@@ -43,14 +44,28 @@ ...@@ -43,14 +44,28 @@
<android.support.v7.widget.AppCompatButton <android.support.v7.widget.AppCompatButton
android:id="@+id/action_edit_topic" android:id="@+id/action_edit_topic"
style="@style/Widget.Info.ActionButton" style="@style/Widget.Info.ActionButton"
android:contentDescription="@string/label_edit_topic_long"
android:drawableTop="@drawable/ic_pencil" android:drawableTop="@drawable/ic_pencil"
android:text="@string/label_edit_topic" /> android:text="@string/label_edit_topic"
tools:drawableTint="?colorTextSecondary" />
<android.support.v7.widget.AppCompatButton <android.support.v7.widget.AppCompatButton
android:id="@+id/action_part" android:id="@+id/action_part"
style="@style/Widget.Info.ActionButton" style="@style/Widget.Info.ActionButton"
android:contentDescription="@string/label_part_long"
android:drawableTop="@drawable/ic_account_minus" android:drawableTop="@drawable/ic_account_minus"
android:text="@string/label_part" /> android:text="@string/label_part"
tools:drawableTint="?colorTextSecondary" />
<android.support.v7.widget.AppCompatButton
android:id="@+id/action_join"
style="@style/Widget.Info.ActionButton"
android:contentDescription="@string/label_join_long"
android:drawableTop="@drawable/ic_account_plus"
android:text="@string/label_join"
android:visibility="gone"
tools:drawableTint="?colorTextSecondary"
tools:visibility="visible" />
</LinearLayout> </LinearLayout>
</HorizontalScrollView> </HorizontalScrollView>
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:orientation="vertical"> android:orientation="vertical">
<android.support.constraint.ConstraintLayout <android.support.constraint.ConstraintLayout
...@@ -59,34 +60,50 @@ ...@@ -59,34 +60,50 @@
<android.support.v7.widget.AppCompatButton <android.support.v7.widget.AppCompatButton
android:id="@+id/action_query" android:id="@+id/action_query"
style="@style/Widget.Info.ActionButton" style="@style/Widget.Info.ActionButton"
android:contentDescription="@string/label_query_long"
android:drawableTop="@drawable/ic_message_bulleted" android:drawableTop="@drawable/ic_message_bulleted"
android:text="@string/label_query" /> android:text="@string/label_query"
tools:drawableTint="?colorTextSecondary" />
<android.support.v7.widget.AppCompatButton <android.support.v7.widget.AppCompatButton
android:id="@+id/action_ignore" android:id="@+id/action_ignore"
style="@style/Widget.Info.ActionButton" style="@style/Widget.Info.ActionButton"
android:contentDescription="@string/label_ignore_long"
android:drawableTop="@drawable/ic_eye_off" android:drawableTop="@drawable/ic_eye_off"
android:text="@string/label_ignore" /> android:text="@string/label_ignore"
tools:drawableTint="?colorTextSecondary" />
<android.support.v7.widget.AppCompatButton
android:id="@+id/action_whois"
style="@style/Widget.Info.ActionButton"
android:contentDescription="@string/label_whois_long"
android:drawableTop="@drawable/ic_info"
android:text="@string/label_whois"
tools:drawableTint="?colorTextSecondary" />
<android.support.v7.widget.AppCompatButton <android.support.v7.widget.AppCompatButton
android:id="@+id/action_mention" android:id="@+id/action_mention"
style="@style/Widget.Info.ActionButton" style="@style/Widget.Info.ActionButton"
android:contentDescription="@string/label_mention_long"
android:drawableTop="@drawable/ic_share_alternative" android:drawableTop="@drawable/ic_share_alternative"
android:text="@string/label_mention" /> android:text="@string/label_mention"
tools:drawableTint="?colorTextSecondary" />
</LinearLayout> </LinearLayout>
</HorizontalScrollView> </HorizontalScrollView>
<LinearLayout
android:id="@+id/away_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:background="?colorDivider" /> android:background="?colorDivider" />
<LinearLayout
android:id="@+id/away_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone"
tools:visibility="visible">
<TextView <TextView
style="@style/Widget.Info.Section" style="@style/Widget.Info.Section"
android:text="@string/label_user_away" /> android:text="@string/label_user_away" />
...@@ -102,12 +119,12 @@ ...@@ -102,12 +119,12 @@
style="@style/Widget.Info.Item.Description" style="@style/Widget.Info.Item.Description"
android:text="@string/label_user_away_reason" /> android:text="@string/label_user_away_reason" />
</LinearLayout> </LinearLayout>
</LinearLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:background="?colorDivider" /> android:background="?colorDivider" />
</LinearLayout>
<TextView <TextView
style="@style/Widget.Info.Section" style="@style/Widget.Info.Section"
...@@ -115,7 +132,9 @@ ...@@ -115,7 +132,9 @@
<LinearLayout <LinearLayout
android:id="@+id/account_container" android:id="@+id/account_container"
style="@style/Widget.Info.Item"> style="@style/Widget.Info.Item"
android:visibility="gone"
tools:visibility="visible">
<TextView <TextView
android:id="@+id/account" android:id="@+id/account"
...@@ -129,7 +148,9 @@ ...@@ -129,7 +148,9 @@
<LinearLayout <LinearLayout
android:id="@+id/ident_container" android:id="@+id/ident_container"
style="@style/Widget.Info.Item"> style="@style/Widget.Info.Item"
android:visibility="gone"
tools:visibility="visible">
<TextView <TextView
android:id="@+id/ident" android:id="@+id/ident"
...@@ -143,7 +164,9 @@ ...@@ -143,7 +164,9 @@
<LinearLayout <LinearLayout
android:id="@+id/host_container" android:id="@+id/host_container"
style="@style/Widget.Info.Item"> style="@style/Widget.Info.Item"
android:visibility="gone"
tools:visibility="visible">
<TextView <TextView
android:id="@+id/host" android:id="@+id/host"
...@@ -157,7 +180,9 @@ ...@@ -157,7 +180,9 @@
<LinearLayout <LinearLayout
android:id="@+id/server_container" android:id="@+id/server_container"
style="@style/Widget.Info.Item"> style="@style/Widget.Info.Item"
android:visibility="gone"
tools:visibility="visible">
<TextView <TextView
android:id="@+id/server" android:id="@+id/server"
......
...@@ -24,18 +24,22 @@ ...@@ -24,18 +24,22 @@
<string name="label_disconnect">Verbindung trennen</string> <string name="label_disconnect">Verbindung trennen</string>
<string name="label_edit_nick">Spitznamen bearbeiten</string> <string name="label_edit_nick">Spitznamen bearbeiten</string>
<string name="label_edit_topic">Thema ändern</string> <string name="label_edit_topic">Thema ändern</string>
<string name="label_edit_topic_long">Open dialog to change the channel topic</string>
<string name="label_filter_messages">Nachrichten filtern</string> <string name="label_filter_messages">Nachrichten filtern</string>
<string name="label_github">GitHub</string> <string name="label_github">GitHub</string>
<string name="label_hide_perm">Permanent ausblenden</string> <string name="label_hide_perm">Permanent ausblenden</string>
<string name="label_hide_temp">Temporär ausblenden</string> <string name="label_hide_temp">Temporär ausblenden</string>
<string name="label_ignore">Ignorieren</string> <string name="label_ignore">Ignorieren</string>
<string name="label_ignore_long">Add/remove user to/from ignore list</string>
<string name="label_info_channel">Kanalinformationen</string> <string name="label_info_channel">Kanalinformationen</string>
<string name="label_info_user">Benutzerinformationen</string> <string name="label_info_user">Benutzerinformationen</string>
<string name="label_input_history">Eingabeverlauf</string> <string name="label_input_history">Eingabeverlauf</string>
<string name="label_join">Verbinden</string> <string name="label_join">Betreten</string>
<string name="label_join_long">Kanal Betreten</string>
<string name="label_libraries">Bibliotheken</string> <string name="label_libraries">Bibliotheken</string>
<string name="label_license">Lizenz</string> <string name="label_license">Lizenz</string>
<string name="label_mention">Erwähnen</string> <string name="label_mention">Erwähnen</string>
<string name="label_mention_long">Kopiert den Nutzernamen in die Eingabezeile</string>
<string name="label_new_account">Account hinzufügen</string> <string name="label_new_account">Account hinzufügen</string>
<string name="label_new_chatlist">Chatliste hinzufügen</string> <string name="label_new_chatlist">Chatliste hinzufügen</string>
<string name="label_new_identity">Identität hinzufügen</string> <string name="label_new_identity">Identität hinzufügen</string>
...@@ -46,9 +50,11 @@ ...@@ -46,9 +50,11 @@
<string name="label_reset">Zurücksetzen</string> <string name="label_reset">Zurücksetzen</string>
<string name="label_open">Öffnen</string> <string name="label_open">Öffnen</string>
<string name="label_part">Verlassen</string> <string name="label_part">Verlassen</string>
<string name="label_part_long">Kanal verlassen</string>
<string name="label_placeholder_message">Nachricht schreiben…</string> <string name="label_placeholder_message">Nachricht schreiben…</string>
<string name="label_placeholder_topic">Beschreib das Thema des Kanals…</string> <string name="label_placeholder_topic">Beschreib das Thema des Kanals…</string>
<string name="label_query">Dialog</string> <string name="label_query">Dialog</string>
<string name="label_query_long">Öffnet einen privaten Chat</string>
<string name="label_rename">Umbenennen</string> <string name="label_rename">Umbenennen</string>
<string name="label_save">Speichern</string> <string name="label_save">Speichern</string>
<string name="label_select">Auswählen</string> <string name="label_select">Auswählen</string>
...@@ -62,6 +68,7 @@ ...@@ -62,6 +68,7 @@
<string name="label_unhide">Nicht mehr ausblenden</string> <string name="label_unhide">Nicht mehr ausblenden</string>
<string name="label_website">Webseite</string> <string name="label_website">Webseite</string>
<string name="label_whois">Whois</string> <string name="label_whois">Whois</string>
<string name="label_whois_long">Nutzerinformationen aktualisieren</string>
<string name="label_yes">Ja</string> <string name="label_yes">Ja</string>
<string name="notification_channel_connection_title">Verbindung</string> <string name="notification_channel_connection_title">Verbindung</string>
......
...@@ -60,24 +60,6 @@ ...@@ -60,24 +60,6 @@
<item name="android:paddingTop">8dp</item> <item name="android:paddingTop">8dp</item>
</style> </style>
<style name="Widget.Info.ActionButton" parent="">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">?backgroundMenuItem</item>
<item name="android:drawablePadding">4dp</item>
<item name="android:fontFamily">sans-serif</item>
<item name="android:minWidth">96dp</item>
<item name="android:paddingBottom">12dp</item>
<item name="android:paddingEnd">?android:attr/listPreferredItemPaddingRight</item>
<item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
<item name="android:paddingRight">?android:attr/listPreferredItemPaddingRight</item>
<item name="android:paddingStart">?android:attr/listPreferredItemPaddingLeft</item>
<item name="android:paddingTop">12dp</item>
<item name="android:textAllCaps">false</item>
<item name="android:textColor">?colorTextPrimary</item>
<item name="android:textStyle">normal</item>
</style>
<style name="Widget.Info.Section" parent=""> <style name="Widget.Info.Section" parent="">
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
......
...@@ -24,18 +24,22 @@ ...@@ -24,18 +24,22 @@
<string name="label_disconnect">Disconnect</string> <string name="label_disconnect">Disconnect</string>
<string name="label_edit_nick">Edit nickname</string> <string name="label_edit_nick">Edit nickname</string>
<string name="label_edit_topic">Edit Topic</string> <string name="label_edit_topic">Edit Topic</string>
<string name="label_edit_topic_long">Open dialog to change the channel topic</string>
<string name="label_filter_messages">Filter Messages</string> <string name="label_filter_messages">Filter Messages</string>
<string name="label_github">GitHub</string> <string name="label_github">GitHub</string>
<string name="label_hide_perm">Hide Permanently</string> <string name="label_hide_perm">Hide Permanently</string>
<string name="label_hide_temp">Hide Temporarily</string> <string name="label_hide_temp">Hide Temporarily</string>
<string name="label_ignore">Ignore</string> <string name="label_ignore">Ignore</string>
<string name="label_ignore_long">Add/remove user to/from ignore list</string>
<string name="label_info_channel">Channel Details</string> <string name="label_info_channel">Channel Details</string>
<string name="label_info_user">User Details</string> <string name="label_info_user">User Details</string>
<string name="label_input_history">Input History</string> <string name="label_input_history">Input History</string>
<string name="label_join">Join</string> <string name="label_join">Join</string>
<string name="label_join_long">Join Channel</string>
<string name="label_libraries">Libraries</string> <string name="label_libraries">Libraries</string>
<string name="label_license">License</string> <string name="label_license">License</string>
<string name="label_mention">Mention</string> <string name="label_mention">Mention</string>
<string name="label_mention_long">Copy username into input line</string>
<string name="label_new_account">New Account</string> <string name="label_new_account">New Account</string>
<string name="label_new_chatlist">New Chatlist</string> <string name="label_new_chatlist">New Chatlist</string>
<string name="label_new_identity">New Identity</string> <string name="label_new_identity">New Identity</string>
...@@ -46,9 +50,11 @@ ...@@ -46,9 +50,11 @@
<string name="label_reset">Reset</string> <string name="label_reset">Reset</string>
<string name="label_open">Open</string> <string name="label_open">Open</string>
<string name="label_part">Leave</string> <string name="label_part">Leave</string>
<string name="label_part_long">Leave Channel</string>
<string name="label_placeholder_message">Write a message…</string> <string name="label_placeholder_message">Write a message…</string>
<string name="label_placeholder_topic">Describe the channel topic…</string> <string name="label_placeholder_topic">Describe the channel topic…</string>
<string name="label_query">Query</string> <string name="label_query">Query</string>
<string name="label_query_long">Open private chat with user</string>
<string name="label_rename">Rename</string> <string name="label_rename">Rename</string>
<string name="label_save">Save</string> <string name="label_save">Save</string>
<string name="label_select">Select</string> <string name="label_select">Select</string>
...@@ -62,6 +68,7 @@ ...@@ -62,6 +68,7 @@
<string name="label_unhide">Make Visible</string> <string name="label_unhide">Make Visible</string>
<string name="label_website">Website</string> <string name="label_website">Website</string>
<string name="label_whois">Whois</string> <string name="label_whois">Whois</string>
<string name="label_whois_long">Update user information</string>
<string name="label_yes">Yes</string> <string name="label_yes">Yes</string>
<string name="notification_channel_background" translatable="false">background</string> <string name="notification_channel_background" translatable="false">background</string>
......
...@@ -145,18 +145,21 @@ ...@@ -145,18 +145,21 @@
<item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item> <item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
<item name="android:paddingRight">?android:attr/listPreferredItemPaddingRight</item> <item name="android:paddingRight">?android:attr/listPreferredItemPaddingRight</item>
<item name="android:paddingTop">8dp</item> <item name="android:paddingTop">8dp</item>
<item name="android:animateLayoutChanges">true</item>
</style> </style>
<style name="Widget.Info.Header.Name" parent=""> <style name="Widget.Info.Header.Name" parent="">
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Headline</item> <item name="android:textAppearance">@style/TextAppearance.AppCompat.Headline</item>
<item name="android:animateLayoutChanges">true</item>
</style> </style>
<style name="Widget.Info.Header.Description" parent=""> <style name="Widget.Info.Header.Description" parent="">
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Medium</item> <item name="android:textAppearance">@style/TextAppearance.AppCompat.Medium</item>
<item name="android:animateLayoutChanges">true</item>
</style> </style>
<style name="Widget.Info.ActionButton" parent=""> <style name="Widget.Info.ActionButton" parent="">
...@@ -165,13 +168,13 @@ ...@@ -165,13 +168,13 @@
<item name="android:background">?backgroundMenuItem</item> <item name="android:background">?backgroundMenuItem</item>
<item name="android:drawablePadding">4dp</item> <item name="android:drawablePadding">4dp</item>
<item name="android:fontFamily">sans-serif</item> <item name="android:fontFamily">sans-serif</item>
<item name="android:minWidth">96dp</item> <item name="android:minWidth">80dp</item>
<item name="android:paddingBottom">12dp</item> <item name="android:paddingBottom">12dp</item>
<item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item> <item name="android:paddingLeft">10dp</item>
<item name="android:paddingRight">?android:attr/listPreferredItemPaddingRight</item> <item name="android:paddingRight">10dp</item>
<item name="android:paddingTop">12dp</item> <item name="android:paddingTop">12dp</item>
<item name="android:textAllCaps">false</item> <item name="android:textAllCaps">false</item>
<item name="android:textColor">?colorTextPrimary</item> <item name="android:textColor">?colorTextSecondary</item>
<item name="android:textStyle">normal</item> <item name="android:textStyle">normal</item>
</style> </style>
...@@ -198,6 +201,7 @@ ...@@ -198,6 +201,7 @@
<item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item> <item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
<item name="android:paddingRight">?android:attr/listPreferredItemPaddingRight</item> <item name="android:paddingRight">?android:attr/listPreferredItemPaddingRight</item>
<item name="android:paddingTop">16dp</item> <item name="android:paddingTop">16dp</item>
<item name="android:animateLayoutChanges">true</item>
</style> </style>
<style name="Widget.Info.Item.Content" parent=""> <style name="Widget.Info.Item.Content" parent="">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment