Unverified Commit 10c055c2 authored by kareem hamdy's avatar kareem hamdy Committed by GitHub

Merge branch 'develop' into develop

parents bc545a78 acb0f6f3
...@@ -18,7 +18,7 @@ android { ...@@ -18,7 +18,7 @@ android {
applicationId "chat.rocket.android" applicationId "chat.rocket.android"
minSdkVersion versions.minSdk minSdkVersion versions.minSdk
targetSdkVersion versions.targetSdk targetSdkVersion versions.targetSdk
versionCode 2058 versionCode 2060
versionName "3.3.0" versionName "3.3.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true multiDexEnabled true
......
...@@ -80,4 +80,58 @@ interface Analytics { ...@@ -80,4 +80,58 @@ interface Analytics {
*/ */
fun logVideoConference(event: SubscriptionTypeEvent, serverUrl: String) {} fun logVideoConference(event: SubscriptionTypeEvent, serverUrl: String) {}
/**
* Logs the add reaction message action.
*/
fun logMessageActionAddReaction() {}
/**
* Logs the replay message action.
*/
fun logMessageActionReply() {}
/**
* Logs the quote message action.
*/
fun logMessageActionQuote() {}
/**
* Logs the permalink message action.
*/
fun logMessageActionPermalink() {}
/**
* Logs the copy message action.
*/
fun logMessageActionCopy() {}
/**
* Logs the edit message action.
*/
fun logMessageActionEdit() {}
/**
* Logs the info message action.
*/
fun logMessageActionInfo() {}
/**
* Logs the star message action.
*/
fun logMessageActionStar() {}
/**
* Logs the pin message action.
*/
fun logMessageActionPin() {}
/**
* Logs the report message action.
*/
fun logMessageActionReport() {}
/**
* Logs the delete message action.
*/
fun logMessageActionDelete() {}
} }
...@@ -83,5 +83,69 @@ class AnalyticsManager @Inject constructor( ...@@ -83,5 +83,69 @@ class AnalyticsManager @Inject constructor(
} }
} }
fun logMessageActionAddReaction() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionAddReaction() }
}
}
fun logMessageActionReply() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionReply() }
}
}
fun logMessageActionQuote() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionQuote() }
}
}
fun logMessageActionPermalink() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionPermalink() }
}
}
fun logMessageActionCopy() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionCopy() }
}
}
fun logMessageActionEdit() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionEdit() }
}
}
fun logMessageActionInfo() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionInfo() }
}
}
fun logMessageActionStar() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionStar() }
}
}
fun logMessageActionPin() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionPin() }
}
}
fun logMessageActionReport() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionReport() }
}
}
fun logMessageActionDelete() {
if (analyticsTrackingInteractor.get()) {
analytics.forEach { it.logMessageActionDelete() }
}
}
} }
...@@ -85,20 +85,20 @@ class LoginPresenter @Inject constructor( ...@@ -85,20 +85,20 @@ class LoginPresenter @Inject constructor(
} }
} }
val myself = retryIO("me()") { client.me() } val myself = retryIO("me()") { client.me() }
if (myself.username != null) { myself.username?.let { username ->
val user = User( val user = User(
id = myself.id, id = myself.id,
roles = myself.roles, roles = myself.roles,
status = myself.status, status = myself.status,
name = myself.name, name = myself.name,
emails = myself.emails?.map { Email(it.address ?: "", it.verified) }, emails = myself.emails?.map { Email(it.address ?: "", it.verified) },
username = myself.username, username = username,
utcOffset = myself.utcOffset utcOffset = myself.utcOffset
) )
localRepository.saveCurrentUser(currentServer, user) localRepository.saveCurrentUser(currentServer, user)
saveCurrentServer.save(currentServer) saveCurrentServer.save(currentServer)
localRepository.save(LocalRepository.CURRENT_USERNAME_KEY, myself.username) localRepository.save(LocalRepository.CURRENT_USERNAME_KEY, username)
saveAccount(myself.username!!) saveAccount(username)
saveToken(token) saveToken(token)
analyticsManager.logLogin( analyticsManager.logLogin(
AuthenticationEvent.AuthenticationWithUserAndPassword, AuthenticationEvent.AuthenticationWithUserAndPassword,
...@@ -133,7 +133,7 @@ class LoginPresenter @Inject constructor( ...@@ -133,7 +133,7 @@ class LoginPresenter @Inject constructor(
fun forgotPassword() = navigator.toForgotPassword() fun forgotPassword() = navigator.toForgotPassword()
private suspend fun saveAccount(username: String) { private fun saveAccount(username: String) {
val icon = settings.favicon()?.let { val icon = settings.favicon()?.let {
currentServer.serverLogoUrl(it) currentServer.serverLogoUrl(it)
} }
......
...@@ -173,7 +173,7 @@ class LoginOptionsPresenter @Inject constructor( ...@@ -173,7 +173,7 @@ class LoginOptionsPresenter @Inject constructor(
settings = settingsInteractor.get(currentServer) settings = settingsInteractor.get(currentServer)
} }
private suspend fun saveAccount(username: String) { private fun saveAccount(username: String) {
val icon = settings.favicon()?.let { val icon = settings.favicon()?.let {
currentServer.serverLogoUrl(it) currentServer.serverLogoUrl(it)
} }
......
...@@ -94,7 +94,7 @@ class TwoFAPresenter @Inject constructor( ...@@ -94,7 +94,7 @@ class TwoFAPresenter @Inject constructor(
} }
} }
private suspend fun saveAccount(me: Myself) { private fun saveAccount(me: Myself) {
val icon = settings.favicon()?.let { val icon = settings.favicon()?.let {
currentServer.serverLogoUrl(it) currentServer.serverLogoUrl(it)
} }
......
...@@ -20,7 +20,7 @@ internal fun ChatDetailsFragment.setupMenu(menu: Menu) { ...@@ -20,7 +20,7 @@ internal fun ChatDetailsFragment.setupMenu(menu: Menu) {
MENU_ACTION_VIDEO_CALL, MENU_ACTION_VIDEO_CALL,
Menu.NONE, Menu.NONE,
R.string.msg_video_call R.string.msg_video_call
).setIcon(R.drawable.ic_video_24dp).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM) ).setIcon(R.drawable.ic_video_white_24dp).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM)
} }
} }
} }
......
...@@ -92,14 +92,14 @@ abstract class BaseViewHolder<T : BaseUiModel<*>>( ...@@ -92,14 +92,14 @@ abstract class BaseViewHolder<T : BaseUiModel<*>>(
data?.let { vm -> data?.let { vm ->
vm.message.let { vm.message.let {
val menuItems = view.context.inflate(R.menu.message_actions).toList() val menuItems = view.context.inflate(R.menu.message_actions).toList()
menuItems.find { it.itemId == R.id.action_message_unpin }?.apply { menuItems.find { it.itemId == R.id.action_pin }?.apply {
setTitle(if (it.pinned) R.string.action_msg_unpin else R.string.action_msg_pin) setTitle(if (it.pinned) R.string.action_unpin else R.string.action_pin)
isChecked = it.pinned isChecked = it.pinned
} }
menuItems.find { it.itemId == R.id.action_message_star }?.apply { menuItems.find { it.itemId == R.id.action_star }?.apply {
val isStarred = it.starred?.isNotEmpty() ?: false val isStarred = it.starred?.isNotEmpty() ?: false
setTitle(if (isStarred) R.string.action_msg_unstar else R.string.action_msg_star) setTitle(if (isStarred) R.string.action_unstar else R.string.action_star)
isChecked = isStarred isChecked = isStarred
} }
view.context?.let { view.context?.let {
......
...@@ -5,6 +5,7 @@ import android.view.View ...@@ -5,6 +5,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.analytics.AnalyticsManager
import chat.rocket.android.chatroom.presentation.ChatRoomNavigator import chat.rocket.android.chatroom.presentation.ChatRoomNavigator
import chat.rocket.android.chatroom.uimodel.AttachmentUiModel import chat.rocket.android.chatroom.uimodel.AttachmentUiModel
import chat.rocket.android.chatroom.uimodel.BaseUiModel import chat.rocket.android.chatroom.uimodel.BaseUiModel
...@@ -29,7 +30,8 @@ class ChatRoomAdapter( ...@@ -29,7 +30,8 @@ class ChatRoomAdapter(
private val actionSelectListener: OnActionSelected? = null, private val actionSelectListener: OnActionSelected? = null,
private val enableActions: Boolean = true, private val enableActions: Boolean = true,
private val reactionListener: EmojiReactionListener? = null, private val reactionListener: EmojiReactionListener? = null,
private val navigator: ChatRoomNavigator? = null private val navigator: ChatRoomNavigator? = null,
private val analyticsManager: AnalyticsManager? = null
) : RecyclerView.Adapter<BaseViewHolder<*>>() { ) : RecyclerView.Adapter<BaseViewHolder<*>>() {
private val dataSet = ArrayList<BaseUiModel<*>>() private val dataSet = ArrayList<BaseUiModel<*>>()
...@@ -239,47 +241,63 @@ class ChatRoomAdapter( ...@@ -239,47 +241,63 @@ class ChatRoomAdapter(
override fun isActionsEnabled(): Boolean = enableActions override fun isActionsEnabled(): Boolean = enableActions
override fun onActionSelected(item: MenuItem, message: Message) { override fun onActionSelected(item: MenuItem, message: Message) {
message.apply { if (analyticsManager != null && roomName != null && roomType != null && actionSelectListener != null) {
when (item.itemId) { with(message) {
R.id.action_message_info -> { when (item.itemId) {
actionSelectListener?.showMessageInfo(id) R.id.action_info -> {
} actionSelectListener.showMessageInfo(id)
R.id.action_message_reply -> { analyticsManager.logMessageActionInfo()
if (roomName != null && roomType != null) {
actionSelectListener?.citeMessage(roomName, roomType, id, true)
} }
}
R.id.action_message_quote -> { R.id.action_reply -> {
if (roomName != null && roomType != null) { actionSelectListener.citeMessage(roomName, roomType, id, true)
actionSelectListener?.citeMessage(roomName, roomType, id, false) analyticsManager.logMessageActionReply()
}
R.id.action_quote -> {
actionSelectListener.citeMessage(roomName, roomType, id, false)
analyticsManager.logMessageActionQuote()
}
R.id.action_copy -> {
actionSelectListener.copyMessage(id)
analyticsManager.logMessageActionCopy()
}
R.id.action_edit -> {
actionSelectListener.editMessage(roomId, id, this.message)
analyticsManager.logMessageActionEdit()
}
R.id.action_star -> {
actionSelectListener.toggleStar(id, !item.isChecked)
analyticsManager.logMessageActionStar()
}
R.id.action_pin -> {
actionSelectListener.togglePin(id, !item.isChecked)
analyticsManager.logMessageActionPin()
}
R.id.action_delete -> {
actionSelectListener.deleteMessage(roomId, id)
analyticsManager.logMessageActionDelete()
}
R.id.action_add_reaction -> {
actionSelectListener.showReactions(id)
analyticsManager.logMessageActionAddReaction()
}
R.id.action_permalink -> {
actionSelectListener.copyPermalink(id)
analyticsManager.logMessageActionPermalink()
}
R.id.action_report -> {
actionSelectListener.reportMessage(id)
analyticsManager.logMessageActionReport()
} }
}
R.id.action_message_copy -> {
actionSelectListener?.copyMessage(id)
}
R.id.action_message_edit -> {
actionSelectListener?.editMessage(roomId, id, message.message)
}
R.id.action_message_star -> {
actionSelectListener?.toggleStar(id, !item.isChecked)
}
R.id.action_message_unpin -> {
actionSelectListener?.togglePin(id, !item.isChecked)
}
R.id.action_message_delete -> {
actionSelectListener?.deleteMessage(roomId, id)
}
R.id.action_menu_msg_react -> {
actionSelectListener?.showReactions(id)
}
R.id.action_message_permalink -> {
actionSelectListener?.copyPermalink(id)
}
R.id.action_message_report -> {
actionSelectListener?.reportMessage(id)
}
else -> {
TODO("Not implemented")
} }
} }
} }
......
...@@ -284,12 +284,13 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR ...@@ -284,12 +284,13 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
?: requireNotNull(arguments) { "no arguments supplied when the fragment was instantiated" } ?: requireNotNull(arguments) { "no arguments supplied when the fragment was instantiated" }
adapter = ChatRoomAdapter( adapter = ChatRoomAdapter(
chatRoomId, roomId = chatRoomId,
chatRoomType, roomType = chatRoomType,
chatRoomName, roomName = chatRoomName,
this, actionSelectListener = this,
reactionListener = this, reactionListener = this,
navigator = navigator navigator = navigator,
analyticsManager = analyticsManager
) )
} }
......
...@@ -38,6 +38,7 @@ private fun ChatRoomFragment.setupSearchMessageMenuItem(menu: Menu, context: Con ...@@ -38,6 +38,7 @@ private fun ChatRoomFragment.setupSearchMessageMenuItem(menu: Menu, context: Con
(searchItem.actionView as? SearchView)?.let { (searchItem.actionView as? SearchView)?.let {
// TODO: Check why we need to stylize the search text programmatically instead of by defining it in the styles.xml (ChatRoom.SearchView) // TODO: Check why we need to stylize the search text programmatically instead of by defining it in the styles.xml (ChatRoom.SearchView)
it.maxWidth = Integer.MAX_VALUE
stylizeSearchView(it, context) stylizeSearchView(it, context)
setupSearchViewTextListener(it) setupSearchViewTextListener(it)
if (it.isIconified) { if (it.isIconified) {
......
...@@ -204,7 +204,7 @@ class UiModelMapper @Inject constructor( ...@@ -204,7 +204,7 @@ class UiModelMapper @Inject constructor(
private fun mapVisibleActions(viewModel: BaseUiModel<*>) { private fun mapVisibleActions(viewModel: BaseUiModel<*>) {
if (!settings.messageReadReceiptStoreUsers()) { if (!settings.messageReadReceiptStoreUsers()) {
viewModel.menuItemsToHide.add(R.id.action_message_info) viewModel.menuItemsToHide.add(R.id.action_info)
} }
} }
......
...@@ -210,7 +210,7 @@ class MainPresenter @Inject constructor( ...@@ -210,7 +210,7 @@ class MainPresenter @Inject constructor(
} }
} }
private suspend fun saveAccount(uiModel: NavHeaderUiModel) { private fun saveAccount(uiModel: NavHeaderUiModel) {
val icon = settings.favicon()?.let { val icon = settings.favicon()?.let {
currentServer.serverLogoUrl(it) currentServer.serverLogoUrl(it)
} }
......
...@@ -3,6 +3,7 @@ package chat.rocket.android.server.domain ...@@ -3,6 +3,7 @@ package chat.rocket.android.server.domain
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.server.domain.model.Account
interface AccountsRepository { interface AccountsRepository {
fun save(account: Account) fun save(account: Account)
fun load(): List<Account> fun load(): List<Account>
fun remove(serverUrl: String) fun remove(serverUrl: String)
......
...@@ -3,7 +3,8 @@ package chat.rocket.android.server.domain ...@@ -3,7 +3,8 @@ package chat.rocket.android.server.domain
import javax.inject.Inject import javax.inject.Inject
class GetAccountInteractor @Inject constructor(val repository: AccountsRepository) { class GetAccountInteractor @Inject constructor(val repository: AccountsRepository) {
suspend fun get(url: String) = repository.load().firstOrNull { account ->
fun get(url: String) = repository.load().firstOrNull { account ->
url == account.serverUrl url == account.serverUrl
} }
} }
\ No newline at end of file
...@@ -3,7 +3,8 @@ package chat.rocket.android.server.domain ...@@ -3,7 +3,8 @@ package chat.rocket.android.server.domain
import javax.inject.Inject import javax.inject.Inject
class RemoveAccountInteractor @Inject constructor(val repository: AccountsRepository) { class RemoveAccountInteractor @Inject constructor(val repository: AccountsRepository) {
suspend fun remove(serverUrl: String) {
fun remove(serverUrl: String) {
repository.remove(serverUrl) repository.remove(serverUrl)
} }
} }
\ No newline at end of file
...@@ -4,5 +4,5 @@ import chat.rocket.android.server.domain.model.Account ...@@ -4,5 +4,5 @@ import chat.rocket.android.server.domain.model.Account
import javax.inject.Inject import javax.inject.Inject
class SaveAccountInteractor @Inject constructor(val repository: AccountsRepository) { class SaveAccountInteractor @Inject constructor(val repository: AccountsRepository) {
suspend fun save(account: Account) = repository.save(account) fun save(account: Account) = repository.save(account)
} }
\ No newline at end of file
...@@ -15,7 +15,12 @@ class SharedPreferencesAccountsRepository( ...@@ -15,7 +15,12 @@ class SharedPreferencesAccountsRepository(
) : AccountsRepository { ) : AccountsRepository {
override fun save(account: Account) { override fun save(account: Account) {
save(load().filter { item -> item.serverUrl != item.serverUrl }.toMutableList().apply { add(0, account) }) load().filter { it.serverUrl != account.serverUrl }
.toMutableList()
.apply {
add(0, account)
save(this)
}
} }
override fun load(): List<Account> { override fun load(): List<Account> {
...@@ -23,7 +28,7 @@ class SharedPreferencesAccountsRepository( ...@@ -23,7 +28,7 @@ class SharedPreferencesAccountsRepository(
val type = Types.newParameterizedType(List::class.java, Account::class.java) val type = Types.newParameterizedType(List::class.java, Account::class.java)
val adapter = moshi.adapter<List<Account>>(type) val adapter = moshi.adapter<List<Account>>(type)
return json?.let { adapter.fromJson(it) ?: emptyList() } ?: emptyList() return json?.let { adapter.fromJson(it) } ?: emptyList()
} }
override fun remove(serverUrl: String) { override fun remove(serverUrl: String) {
...@@ -33,8 +38,6 @@ class SharedPreferencesAccountsRepository( ...@@ -33,8 +38,6 @@ class SharedPreferencesAccountsRepository(
private fun save(accounts: List<Account>) { private fun save(accounts: List<Account>) {
val type = Types.newParameterizedType(List::class.java, Account::class.java) val type = Types.newParameterizedType(List::class.java, Account::class.java)
val adapter = moshi.adapter<List<Account>>(type) val adapter = moshi.adapter<List<Account>>(type)
preferences.edit { preferences.edit { putString(ACCOUNTS_KEY, adapter.toJson(accounts)) }
putString(ACCOUNTS_KEY, adapter.toJson(accounts))
}
} }
} }
\ No newline at end of file
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:fillColor="#FFFFFF"
android:fillType="evenOdd"
android:pathData="M16.538,13.564l-3.388,-1.09v-2.07l3.394,-1.085 -0.006,4.245zM11.696,14.56L3.454,14.56L3.454,8.32h8.242v6.24zM17.428,8.107c0.362,0.261 0.57,0.69 0.57,1.176v4.312c0,0.487 -0.209,0.914 -0.57,1.175a1.37,1.37 0,0 1,-0.808 0.254c-0.164,0 -0.331,-0.026 -0.498,-0.08l-2.972,-0.956L13.15,16L2,16L2,6.88h11.15v2.01l2.973,-0.956c0.468,-0.15 0.943,-0.087 1.305,0.173zM4.424,5.44L4.424,4h6.302v1.44L4.424,5.44z" />
</vector>
...@@ -3,27 +3,27 @@ ...@@ -3,27 +3,27 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="16dp" android:background="?selectableItemBackground"
android:background="?selectableItemBackground"> android:padding="16dp">
<ImageView <ImageView
android:id="@+id/server_logo" android:id="@+id/server_logo"
android:layout_width="40dp" android:layout_width="40dp"
android:layout_height="40dp" android:layout_height="40dp"
android:src="@drawable/ic_add_24dp" android:src="@drawable/ic_add_24dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintBottom_toBottomOf="parent" />
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
android:text="@string/action_add_account" android:text="@string/action_add_account"
app:layout_constraintTop_toTopOf="parent" android:textAppearance="@style/TextAppearance.AppCompat.Body2"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/server_logo" app:layout_constraintStart_toEndOf="@id/server_logo"
app:layout_constraintEnd_toEndOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -2,60 +2,57 @@ ...@@ -2,60 +2,57 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<item <item
android:id="@+id/action_message_info" android:id="@+id/action_add_reaction"
android:icon="@drawable/ic_action_message_info_outline_24dp"
android:title="@string/action_msg_info" />
<item
android:id="@+id/action_message_reply"
android:icon="@drawable/ic_action_message_reply_24dp"
android:title="@string/action_msg_reply" />
<item
android:id="@+id/action_message_edit"
android:icon="@drawable/ic_action_message_edit_24dp"
android:title="@string/action_msg_edit" />
<item
android:id="@+id/action_menu_msg_react"
android:icon="@drawable/ic_add_reaction" android:icon="@drawable/ic_add_reaction"
android:title="@string/action_msg_add_reaction" /> android:title="@string/action_msg_add_reaction" />
<item <item
android:id="@+id/action_message_permalink" android:id="@+id/action_reply"
android:icon="@drawable/ic_action_message_link_24dp" android:icon="@drawable/ic_action_message_reply_24dp"
android:title="@string/action_msg_copy_permalink" /> android:title="@string/action_msg_reply" />
<item <item
android:id="@+id/action_message_quote" android:id="@+id/action_quote"
android:icon="@drawable/ic_action_message_quote_24dp" android:icon="@drawable/ic_action_message_quote_24dp"
android:title="@string/action_msg_quote" /> android:title="@string/action_msg_quote" />
<item <item
android:id="@+id/action_message_copy" android:id="@+id/action_permalink"
android:icon="@drawable/ic_action_message_link_24dp"
android:title="@string/action_msg_permalink" />
<item
android:id="@+id/action_copy"
android:icon="@drawable/ic_action_message_copy_24dp" android:icon="@drawable/ic_action_message_copy_24dp"
android:title="@string/action_msg_copy" /> android:title="@string/action_msg_copy" />
<!--<item--> <item
<!--android:id="@+id/action_menu_msg_share"--> android:id="@+id/action_edit"
<!--andrtextIconicon="@drawable/ic_share_black_24px"--> android:icon="@drawable/ic_action_message_edit_24dp"
<!--android:title="@string/action_msg_share" />--> android:title="@string/action_msg_edit" />
<item
android:id="@+id/action_info"
android:icon="@drawable/ic_action_message_info_outline_24dp"
android:title="@string/action_info" />
<item <item
android:id="@+id/action_message_star" android:id="@+id/action_star"
android:icon="@drawable/ic_action_message_star_24dp" android:icon="@drawable/ic_action_message_star_24dp"
android:title="@string/action_msg_star" /> android:title="@string/action_star" />
<item <item
android:id="@+id/action_message_unpin" android:id="@+id/action_pin"
android:icon="@drawable/ic_action_message_pin_24dp" android:icon="@drawable/ic_action_message_pin_24dp"
android:title="@string/action_msg_pin" /> android:title="@string/action_pin" />
<item <item
android:id="@+id/action_message_report" android:id="@+id/action_report"
android:icon="@drawable/ic_action_message_report_24dp" android:icon="@drawable/ic_action_message_report_24dp"
android:title="@string/action_msg_report" /> android:title="@string/action_msg_report" />
<item <item
android:id="@+id/action_message_delete" android:id="@+id/action_delete"
android:icon="@drawable/ic_action_message_delete_24dp" android:icon="@drawable/ic_action_message_delete_24dp"
android:title="@string/action_msg_delete" /> android:title="@string/action_msg_delete" />
</menu> </menu>
\ No newline at end of file
This diff is collapsed.
...@@ -62,14 +62,14 @@ ...@@ -62,14 +62,14 @@
<string name="action_register">Registrieren</string> <string name="action_register">Registrieren</string>
<string name="action_confirm">Bestätigen</string> <string name="action_confirm">Bestätigen</string>
<string name="action_delete_account">Konto löschen</string> <string name="action_delete_account">Konto löschen</string>
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">Favoriten</string>
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Favoriten entfernen</string>
<!-- Settings List --> <!-- Settings List -->
<string-array name="settings_actions"> <string-array name="settings_actions">
<item name="item_preferences">Eigenschaften</item> <item name="item_preferences">Eigenschaften</item>
<item name="item_password">Passwort ändern</item> <item name="item_password">Passwort ändern</item>
<item name="change_language">Change language</item> <!-- TODO Add translation --> <item name="change_language">Sprache ändern</item>
<item name="item_share_app">Link zur App teilen</item> <item name="item_share_app">Link zur App teilen</item>
<item name="item_rate_us">Bewerten Sie uns</item> <item name="item_rate_us">Bewerten Sie uns</item>
<item name="item_contact_us">Kontaktieren Sie uns</item> <item name="item_contact_us">Kontaktieren Sie uns</item>
...@@ -99,8 +99,8 @@ ...@@ -99,8 +99,8 @@
<string name="msg_yesterday">Gestern</string> <string name="msg_yesterday">Gestern</string>
<string name="msg_today">Heute</string> <string name="msg_today">Heute</string>
<string name="msg_message">Nachricht</string> <string name="msg_message">Nachricht</string>
<string name="msg_video_call">Video call</string> <!-- TODO Add translation --> <string name="msg_video_call">Videoanruf</string>
<string name="msg_join_video_call">Join video call</string> <!-- TODO Add translation --> <string name="msg_join_video_call">Videoanruf beitreten</string>
<string name="msg_this_room_is_read_only">Dieser Raum ist nur lesen</string> <string name="msg_this_room_is_read_only">Dieser Raum ist nur lesen</string>
<string name="msg_invalid_2fa_code">Falscher 2FA Code</string> <string name="msg_invalid_2fa_code">Falscher 2FA Code</string>
<string name="msg_invalid_file">Falsche Datei</string> <string name="msg_invalid_file">Falsche Datei</string>
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
<string name="msg_preview_photo">Bild</string> <string name="msg_preview_photo">Bild</string>
<string name="msg_preview_file">Datei</string> <string name="msg_preview_file">Datei</string>
<string name="msg_no_messages_yet">Noch keine Nachrichten</string> <string name="msg_no_messages_yet">Noch keine Nachrichten</string>
<string name="msg_build">Build %1$d - %2$s - %3$s</string> <!-- TODO Add translation --> <string name="msg_build">Build %1$d - %2$s - %3$s</string>
<string name="msg_update_app_version_in_order_to_continue">Server Version veraltet. Bitte kontaktieren Sie ihren Server Administrator.</string> <string name="msg_update_app_version_in_order_to_continue">Server Version veraltet. Bitte kontaktieren Sie ihren Server Administrator.</string>
<string name="msg_ver_not_recommended">Die Server Version scheint älter als die empfolene Version %1$s zu sein.\nSie können sich trotzdem einloggen, aber es kann zu einem unerwartetem Verhalten kommen.</string> <string name="msg_ver_not_recommended">Die Server Version scheint älter als die empfolene Version %1$s zu sein.\nSie können sich trotzdem einloggen, aber es kann zu einem unerwartetem Verhalten kommen.</string>
<string name="msg_ver_not_minimum">Die Server Version scheint älter als die minimale Version %1$s zu sein.\nBitte updaten Sie Ihren Server um sich einloggen zu können!</string> <string name="msg_ver_not_minimum">Die Server Version scheint älter als die minimale Version %1$s zu sein.\nBitte updaten Sie Ihren Server um sich einloggen zu können!</string>
...@@ -168,9 +168,9 @@ ...@@ -168,9 +168,9 @@
<string name="msg_two_factor_authentication">Zwei-Faktor-Authentifizierung</string> <string name="msg_two_factor_authentication">Zwei-Faktor-Authentifizierung</string>
<string name="msg__your_2fa_code">Wie lautet Ihr F2A Code?</string> <string name="msg__your_2fa_code">Wie lautet Ihr F2A Code?</string>
<string name="msg_muted_on_this_channel">Sie sind auf diesem Kanal stummgeschaltet</string> <string name="msg_muted_on_this_channel">Sie sind auf diesem Kanal stummgeschaltet</string>
<string name="msg_no_topic">No topic</string> <!-- TODO Add translation --> <string name="msg_no_topic">Keine Überschrift</string>
<string name="msg_no_announcement">No announcement</string> <!-- TODO Add translation --> <string name="msg_no_announcement">Keine Ankündigung</string>
<string name="msg_no_description">No description</string> <!-- TODO Add translation --> <string name="msg_no_description">Keine Beschreibung</string>
<string name="msg_unable_to_update_password">Änderung des Passworts nicht möglich. Fehlermeldung: %1$s</string> <string name="msg_unable_to_update_password">Änderung des Passworts nicht möglich. Fehlermeldung: %1$s</string>
<string name="msg_password_updated_successfully">Passwort erfolgreich geändert</string> <string name="msg_password_updated_successfully">Passwort erfolgreich geändert</string>
<plurals name="msg_reacted_with_"> <plurals name="msg_reacted_with_">
...@@ -185,7 +185,7 @@ ...@@ -185,7 +185,7 @@
<string name="msg_public_channel">Öffentlich</string> <string name="msg_public_channel">Öffentlich</string>
<string name="msg_private_channel_description">Nur Sie und eingeladene Benutzer haben Zugriff auf den Raum</string> <string name="msg_private_channel_description">Nur Sie und eingeladene Benutzer haben Zugriff auf den Raum</string>
<string name="msg_public_channel_description">Jeder hat Zugriff auf diesen Raum</string> <string name="msg_public_channel_description">Jeder hat Zugriff auf diesen Raum</string>
<string name="msg_ready_only_channel">Nur lesen Raum</string> <string name="msg_ready_only_channel">Nur lesend</string>
<string name="msg_ready_only_channel_description">Nur der Admin kann neue Nachrichten schreiben</string> <string name="msg_ready_only_channel_description">Nur der Admin kann neue Nachrichten schreiben</string>
<string name="msg_invite_members">Lade Benutzer in diesen Raum ein</string> <string name="msg_invite_members">Lade Benutzer in diesen Raum ein</string>
<string name="msg_member_already_added">Sie haben diesen Benutzer bereits selektiert</string> <string name="msg_member_already_added">Sie haben diesen Benutzer bereits selektiert</string>
...@@ -221,23 +221,23 @@ ...@@ -221,23 +221,23 @@
<string name="message_unmuted">Benutzer %1$s nicht mehr stumm geschaltet von %2$s</string> <string name="message_unmuted">Benutzer %1$s nicht mehr stumm geschaltet von %2$s</string>
<string name="message_role_add">%1$s wurde gesetzt %2$s von %3$s</string> <string name="message_role_add">%1$s wurde gesetzt %2$s von %3$s</string>
<string name="message_role_removed">%1$s ist nicht länger %2$s von %3$s</string> <string name="message_role_removed">%1$s ist nicht länger %2$s von %3$s</string>
<string name="message_video_call_started">Video call started by %1$s</string> <!-- TODO Add translation --> <string name="message_video_call_started">Videoanruf von %1$s gestartet</string>
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">Antworten</string> <string name="action_msg_reply">Antworten</string>
<string name="action_msg_info">Nachrichten Info</string> <string name="action_info">Info</string>
<string name="action_msg_edit">Bearbeiten</string> <string name="action_msg_edit">Bearbeiten</string>
<string name="action_msg_copy">Kopieren</string> <string name="action_msg_copy">Kopieren</string>
<string name="action_msg_quote">Zitieren</string> <string name="action_msg_quote">Zitieren</string>
<string name="action_msg_delete">Löschen</string> <string name="action_msg_delete">Löschen</string>
<string name="action_msg_pin">Nachricht anheften</string> <string name="action_pin">Anheften</string>
<string name="action_msg_unpin">Nachricht nicht mehr anheften</string> <string name="action_unpin">Nicht anheften</string>
<string name="action_msg_star">Nachricht favorisieren</string> <string name="action_star">Favorisieren</string>
<string name="action_msg_unstar">Nachricht nicht mehr favorisieren</string> <string name="action_unstar">Nicht favorisieren</string>
<string name="action_msg_share">Teilen</string> <string name="action_msg_share">Teilen</string>
<string name="action_title_editing">Nachricht bearbeiten</string> <string name="action_title_editing">Nachricht bearbeiten</string>
<string name="action_msg_add_reaction">Reaktion hinzufügen</string> <string name="action_msg_add_reaction">Reaktion hinzufügen</string>
<string name="action_msg_copy_permalink">Permalink kopieren</string> <string name="action_msg_permalink">Permalink</string>
<string name="action_msg_report">Bericht</string> <string name="action_msg_report">Bericht</string>
<!-- Permission messages --> <!-- Permission messages -->
...@@ -325,7 +325,7 @@ ...@@ -325,7 +325,7 @@
<string name="chatroom_header">Kopf</string> <string name="chatroom_header">Kopf</string>
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string><!-- TODO - Add proper translation --> <string name="header_favorite">Favoriten</string>
<string name="header_channel">Räume</string> <string name="header_channel">Räume</string>
<string name="header_private_groups">Private Räume</string> <string name="header_private_groups">Private Räume</string>
<string name="header_direct_messages">Direkt Nachrichten</string> <string name="header_direct_messages">Direkt Nachrichten</string>
......
...@@ -214,19 +214,19 @@ ...@@ -214,19 +214,19 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">Respuesta</string> <string name="action_msg_reply">Respuesta</string>
<string name="action_msg_info">Información del mensaje</string> <string name="action_info">Info</string> <!-- TODO Add translation -->
<string name="action_msg_edit">Editar</string> <string name="action_msg_edit">Editar</string>
<string name="action_msg_copy">Copiar</string> <string name="action_msg_copy">Copiar</string>
<string name="action_msg_quote">Citar</string> <string name="action_msg_quote">Citar</string>
<string name="action_msg_delete">Borrar</string> <string name="action_msg_delete">Borrar</string>
<string name="action_msg_pin">Fijar mensaje</string> <string name="action_pin">Pin</string> <!-- TODO Add translation -->
<string name="action_msg_unpin">Soltar mensaje</string> <string name="action_unpin">Unpin</string> <!-- TODO Add translation -->
<string name="action_msg_star">Star mensaje</string> <string name="action_star">Star</string> <!-- TODO Add translation -->
<string name="action_msg_unstar">Unstar mensaje</string> <string name="action_unstar">Unstar</string> <!-- TODO Add translation -->
<string name="action_msg_share">Compartir</string> <string name="action_msg_share">Compartir</string>
<string name="action_title_editing">Edición de mensaje</string> <string name="action_title_editing">Edición de mensaje</string>
<string name="action_msg_add_reaction">Añadir una reacción</string> <string name="action_msg_add_reaction">Añadir una reacción</string>
<string name="action_msg_copy_permalink">Copiar permalink</string> <string name="action_msg_permalink">Permalink</string> <!-- TODO Add translation -->
<!-- TODO - Add proper translation --> <!-- TODO - Add proper translation -->
<string name="action_msg_report">Report</string> <string name="action_msg_report">Report</string>
......
...@@ -219,19 +219,19 @@ ...@@ -219,19 +219,19 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">جواب</string> <string name="action_msg_reply">جواب</string>
<string name="action_msg_info">مشخصات پیام</string> <string name="action_info">Info</string> <!-- TODO Add translation -->
<string name="action_msg_edit">ویرایش</string> <string name="action_msg_edit">ویرایش</string>
<string name="action_msg_copy">کپی</string> <string name="action_msg_copy">کپی</string>
<string name="action_msg_quote">نقل قول</string> <string name="action_msg_quote">نقل قول</string>
<string name="action_msg_delete">حذف</string> <string name="action_msg_delete">حذف</string>
<string name="action_msg_pin">سوزن کردن پیام</string> <string name="action_pin">Pin</string> <!-- TODO Add translation -->
<string name="action_msg_unpin">از سوزن دراوردن پیام</string> <string name="action_unpin">Unpin</string> <!-- TODO Add translation -->
<string name="action_msg_star">ستاره‌دار کردن پیام</string> <string name="action_star">Star</string> <!-- TODO Add translation -->
<string name="action_msg_unstar">از ستاره دراوردن پیام</string> <string name="action_unstar">Unstar</string> <!-- TODO Add translation -->
<string name="action_msg_share">اشتراک</string> <string name="action_msg_share">اشتراک</string>
<string name="action_title_editing">ویرایش پیام</string> <string name="action_title_editing">ویرایش پیام</string>
<string name="action_msg_add_reaction">اضافه کردن واکنش</string> <string name="action_msg_add_reaction">اضافه کردن واکنش</string>
<string name="action_msg_copy_permalink">Copy permalink</string> <!-- TODO Add translation --> <string name="action_msg_permalink">Permalink</string> <!-- TODO Add translation -->
<string name="action_msg_report">گزارش</string> <string name="action_msg_report">گزارش</string>
<!-- Permission messages --> <!-- Permission messages -->
......
...@@ -217,19 +217,19 @@ ...@@ -217,19 +217,19 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">Répondre</string> <string name="action_msg_reply">Répondre</string>
<string name="action_msg_info">Informations sur le message</string> <string name="action_info">Info</string> <!-- TODO Add translation -->
<string name="action_msg_edit">Modifier</string> <string name="action_msg_edit">Modifier</string>
<string name="action_msg_copy">Copier</string> <string name="action_msg_copy">Copier</string>
<string name="action_msg_quote">Citation</string> <string name="action_msg_quote">Citation</string>
<string name="action_msg_delete">Effacer</string> <string name="action_msg_delete">Effacer</string>
<string name="action_msg_pin">Épingler message</string> <string name="action_pin">Pin</string> <!-- TODO Add translation -->
<string name="action_msg_unpin">Ne plus épingler message</string> <string name="action_unpin">Unpin</string> <!-- TODO Add translation -->
<string name="action_msg_star">Ajouter aux Favoris</string> <string name="action_star">Star</string> <!-- TODO Add translation -->
<string name="action_msg_unstar">Retirer des favoris</string> <string name="action_unstar">Unstar</string> <!-- TODO Add translation -->
<string name="action_msg_share">Partager</string> <string name="action_msg_share">Partager</string>
<string name="action_title_editing">Modification du message</string> <string name="action_title_editing">Modification du message</string>
<string name="action_msg_add_reaction">Ajouter une réaction</string> <string name="action_msg_add_reaction">Ajouter une réaction</string>
<string name="action_msg_copy_permalink">copie permalien</string> <string name="action_msg_permalink">Permalink</string> <!-- TODO Add translation -->
<string name="action_msg_report">rapport</string> <string name="action_msg_report">rapport</string>
<!-- Permission messages --> <!-- Permission messages -->
......
...@@ -220,19 +220,19 @@ ...@@ -220,19 +220,19 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">जवाब दें</string> <string name="action_msg_reply">जवाब दें</string>
<string name="action_msg_info">संदेश जानकारी</string> <string name="action_info">Info</string> <!-- TODO Add translation -->
<string name="action_msg_edit">संपादन करें</string> <string name="action_msg_edit">संपादन करें</string>
<string name="action_msg_copy">कॉपी</string> <string name="action_msg_copy">कॉपी</string>
<string name="action_msg_quote">उद्धरण</string> <string name="action_msg_quote">उद्धरण</string>
<string name="action_msg_delete">मिटायें</string> <string name="action_msg_delete">मिटायें</string>
<string name="action_msg_pin">संदेश को पिन करें</string> <string name="action_pin">Pin</string> <!-- TODO Add translation -->
<string name="action_msg_unpin">संदेश को पिन से हटाएँ</string> <string name="action_unpin">Unpin</string> <!-- TODO Add translation -->
<string name="action_msg_star">संदेश को स्टार करें</string> <string name="action_star">Star</string> <!-- TODO Add translation -->
<string name="action_msg_unstar">सन्देश अतारांकित करें</string> <string name="action_unstar">Unstar</string> <!-- TODO Add translation -->
<string name="action_msg_share">शेयर करें</string> <string name="action_msg_share">शेयर करें</string>
<string name="action_title_editing">संपादन संदेश</string> <string name="action_title_editing">संपादन संदेश</string>
<string name="action_msg_add_reaction">प्रतिक्रिया जोड़ें</string> <string name="action_msg_add_reaction">प्रतिक्रिया जोड़ें</string>
<string name="action_msg_copy_permalink">परमालिंक कॉपी करें</string> <string name="action_msg_permalink">Permalink</string> <!-- TODO - Add proper translation -->
<string name="action_msg_report">रिपोर्ट</string> <string name="action_msg_report">रिपोर्ट</string>
<!-- Permission messages --> <!-- Permission messages -->
......
...@@ -216,19 +216,19 @@ ...@@ -216,19 +216,19 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">Rispondi</string> <string name="action_msg_reply">Rispondi</string>
<string name="action_msg_info">Informazioni messaggio</string> <string name="action_info">Info</string> <!-- TODO Add translation -->
<string name="action_msg_edit">Modifica</string> <string name="action_msg_edit">Modifica</string>
<string name="action_msg_copy">Copia</string> <string name="action_msg_copy">Copia</string>
<string name="action_msg_quote">Citazione</string> <string name="action_msg_quote">Citazione</string>
<string name="action_msg_delete">Cancella</string> <string name="action_msg_delete">Cancella</string>
<string name="action_msg_pin">Messaggio importante</string> <string name="action_pin">Pin</string> <!-- TODO Add translation -->
<string name="action_msg_unpin">Messaggio normale</string> <string name="action_unpin">Unpin</string> <!-- TODO Add translation -->
<string name="action_msg_star">Messaggio preferito</string> <string name="action_star">Star</string> <!-- TODO Add translation -->
<string name="action_msg_unstar">Messaggio normale</string> <string name="action_unstar">Unstar</string> <!-- TODO Add translation -->
<string name="action_msg_share">Condividi</string> <string name="action_msg_share">Condividi</string>
<string name="action_title_editing">Modifica messaggio</string> <string name="action_title_editing">Modifica messaggio</string>
<string name="action_msg_add_reaction">Aggiungi reazione</string> <string name="action_msg_add_reaction">Aggiungi reazione</string>
<string name="action_msg_copy_permalink">Copia permalink</string> <string name="action_msg_permalink">Permalink</string> <!-- TODO Add translation -->
<string name="action_msg_report">Resoconto</string> <string name="action_msg_report">Resoconto</string>
<!-- Permission messages --> <!-- Permission messages -->
......
...@@ -219,19 +219,19 @@ ...@@ -219,19 +219,19 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">返信</string> <string name="action_msg_reply">返信</string>
<string name="action_msg_info">メッセージ情報</string> <string name="action_info">Info</string> <!-- TODO Add translation -->
<string name="action_msg_edit">編集</string> <string name="action_msg_edit">編集</string>
<string name="action_msg_copy">コピー</string> <string name="action_msg_copy">コピー</string>
<string name="action_msg_quote">引用</string> <string name="action_msg_quote">引用</string>
<string name="action_msg_delete">削除</string> <string name="action_msg_delete">削除</string>
<string name="action_msg_pin">ピン留めする</string> <string name="action_pin">Pin</string> <!-- TODO Add translation -->
<string name="action_msg_unpin">ピン留を外す</string> <string name="action_unpin">Unpin</string> <!-- TODO Add translation -->
<string name="action_msg_star">スターをつける</string> <string name="action_star">Star</string> <!-- TODO Add translation -->
<string name="action_msg_unstar">スターを外す</string> <string name="action_unstar">Unstar</string> <!-- TODO Add translation -->
<string name="action_msg_share">Share</string> <string name="action_msg_share">Share</string>
<string name="action_title_editing">メッセージの編集</string> <string name="action_title_editing">メッセージの編集</string>
<string name="action_msg_add_reaction">リアクションする</string> <string name="action_msg_add_reaction">リアクションする</string>
<string name="action_msg_copy_permalink">パーマリンクのコピー</string> <string name="action_msg_permalink">Permalink</string> <!-- TODO Add translation -->
<string name="action_msg_report">Report</string> <!-- TODO - Add proper translation --> <string name="action_msg_report">Report</string> <!-- TODO - Add proper translation -->
<!-- Permission messages --> <!-- Permission messages -->
......
...@@ -219,19 +219,19 @@ ...@@ -219,19 +219,19 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">Responder</string> <string name="action_msg_reply">Responder</string>
<string name="action_msg_info">Informações da mensagem</string> <string name="action_info">Informação</string>
<string name="action_msg_edit">Editar</string> <string name="action_msg_edit">Editar</string>
<string name="action_msg_copy">Copiar</string> <string name="action_msg_copy">Copiar</string>
<string name="action_msg_quote">Citar</string> <string name="action_msg_quote">Citar</string>
<string name="action_msg_delete">Remover</string> <string name="action_msg_delete">Remover</string>
<string name="action_msg_pin">Fixar mensagem</string> <string name="action_pin">Fixar</string>
<string name="action_msg_unpin">Desfixar mensagem</string> <string name="action_unpin">Desfixar</string>
<string name="action_msg_star">Marcar como favorita</string> <string name="action_star">Favoritar</string>
<string name="action_msg_unstar">Desmarcar como favorita</string> <string name="action_unstar">Desfavoritar</string>
<string name="action_msg_share">Compartilhar</string> <string name="action_msg_share">Compartilhar</string>
<string name="action_title_editing">Editando mensagem</string> <string name="action_title_editing">Editando mensagem</string>
<string name="action_msg_add_reaction">Adicionar reação</string> <string name="action_msg_add_reaction">Adicionar reação</string>
<string name="action_msg_copy_permalink">Copiar permalink</string> <string name="action_msg_permalink">Link permanente</string>
<string name="action_msg_report">Reportar</string> <string name="action_msg_report">Reportar</string>
<!-- Permission messages --> <!-- Permission messages -->
......
...@@ -216,19 +216,19 @@ ...@@ -216,19 +216,19 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">Responder</string> <string name="action_msg_reply">Responder</string>
<string name="action_msg_info">Informação da mensagem</string> <string name="action_info">Informação</string>
<string name="action_msg_edit">Editar</string> <string name="action_msg_edit">Editar</string>
<string name="action_msg_copy">Copiar</string> <string name="action_msg_copy">Copiar</string>
<string name="action_msg_quote">Citar</string> <string name="action_msg_quote">Citar</string>
<string name="action_msg_delete">Apagar</string> <string name="action_msg_delete">Apagar</string>
<string name="action_msg_pin">Afixar mensagem</string> <string name="action_pin">Afixar</string>
<string name="action_msg_unpin">Desafixar mensagem</string> <string name="action_unpin">Desafixar</string>
<string name="action_msg_star">Dar um estrela</string> <string name="action_star">Star</string> <!-- TODO Add translation -->
<string name="action_msg_unstar">Remover estrela</string> <string name="action_unstar">Unstar</string> <!-- TODO Add translation -->
<string name="action_msg_share">Partilhar</string> <string name="action_msg_share">Partilhar</string>
<string name="action_title_editing">A editar mensagem</string> <string name="action_title_editing">A editar mensagem</string>
<string name="action_msg_add_reaction">Adicionar reacção</string> <string name="action_msg_add_reaction">Adicionar reacção</string>
<string name="action_msg_copy_permalink">Copiar link permanente</string> <string name="action_msg_permalink">Link permanente</string>
<string name="action_msg_report">Relatar</string> <string name="action_msg_report">Relatar</string>
<!-- Permission messages --> <!-- Permission messages -->
......
...@@ -59,8 +59,8 @@ ...@@ -59,8 +59,8 @@
<string name="action_register">Зарегистрировать</string> <string name="action_register">Зарегистрировать</string>
<string name="action_confirm">Подтвердить</string> <string name="action_confirm">Подтвердить</string>
<string name="action_delete_account">Удалить аккаунт</string> <string name="action_delete_account">Удалить аккаунт</string>
<string name="action_favorite">Favorite</string> <!-- TODO Add translation --> <string name="action_favorite">В избранное</string>
<string name="action_remove_favorite">Remove favorite</string> <!-- TODO Add translation --> <string name="action_remove_favorite">Удалить из избранного</string>
<!-- Settings List --> <!-- Settings List -->
<string-array name="settings_actions"> <string-array name="settings_actions">
...@@ -96,8 +96,8 @@ ...@@ -96,8 +96,8 @@
<string name="msg_yesterday">Вчера</string> <string name="msg_yesterday">Вчера</string>
<string name="msg_today">Сегодня</string> <string name="msg_today">Сегодня</string>
<string name="msg_message">Сообщение</string> <string name="msg_message">Сообщение</string>
<string name="msg_video_call">Video call</string> <!-- TODO Add translation --> <string name="msg_video_call">Видеозвонок</string>
<string name="msg_join_video_call">Join video call</string> <!-- TODO Add translation --> <string name="msg_join_video_call">Присоединиться к видеозвонку</string>
<string name="msg_this_room_is_read_only">Канал только для чтения</string> <string name="msg_this_room_is_read_only">Канал только для чтения</string>
<string name="msg_invalid_2fa_code">Неверный код 2FA</string> <string name="msg_invalid_2fa_code">Неверный код 2FA</string>
<string name="msg_invalid_file">Неверный файл</string> <string name="msg_invalid_file">Неверный файл</string>
...@@ -166,9 +166,9 @@ ...@@ -166,9 +166,9 @@
<string name="msg_view_more">больше</string> <string name="msg_view_more">больше</string>
<string name="msg_view_less">меньше</string> <string name="msg_view_less">меньше</string>
<string name="msg_permalink_copied">Ссылка скопирована</string> <string name="msg_permalink_copied">Ссылка скопирована</string>
<string name="msg_no_topic">No topic</string> <!-- TODO Add translation --> <string name="msg_no_topic">Нет темы</string>
<string name="msg_no_announcement">No announcement</string> <!-- TODO Add translation --> <string name="msg_no_announcement">Нет объявления</string>
<string name="msg_no_description">No description</string> <!-- TODO Add translation --> <string name="msg_no_description">Нет описания</string>
<string name="msg_send_email">Отправить e-mail</string> <string name="msg_send_email">Отправить e-mail</string>
<string name="msg_android_app_support">Поддержка Android-приложения</string> <string name="msg_android_app_support">Поддержка Android-приложения</string>
<string name="msg_muted_on_this_channel">Вы лишены дара речи на этом канале</string> <string name="msg_muted_on_this_channel">Вы лишены дара речи на этом канале</string>
...@@ -212,23 +212,23 @@ ...@@ -212,23 +212,23 @@
<string name="message_unmuted">Пользователю %1$s вернули дар речи по решению %2$s</string> <string name="message_unmuted">Пользователю %1$s вернули дар речи по решению %2$s</string>
<string name="message_role_add">%1$s был назначен %2$s пользователем %3$s</string> <string name="message_role_add">%1$s был назначен %2$s пользователем %3$s</string>
<string name="message_role_removed">%1$s больше не %2$s по решению %3$s</string> <string name="message_role_removed">%1$s больше не %2$s по решению %3$s</string>
<string name="message_video_call_started">Video call started by %1$s</string> <!-- TODO Add translation --> <string name="message_video_call_started">Видеозвонок, начатый %1$s</string>
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">Ответить</string> <string name="action_msg_reply">Ответить</string>
<string name="action_msg_info">Информация о прочтении</string> <string name="action_info">Информация о прочтении</string>
<string name="action_msg_edit">Редактировать</string> <string name="action_msg_edit">Редактировать</string>
<string name="action_msg_copy">Копировать</string> <string name="action_msg_copy">Копировать</string>
<string name="action_msg_quote">Цитировать</string> <string name="action_msg_quote">Цитировать</string>
<string name="action_msg_delete">Удалить</string> <string name="action_msg_delete">Удалить</string>
<string name="action_msg_pin">Закрепить сообщение</string> <string name="action_pin">Закрепить сообщение</string>
<string name="action_msg_unpin">Открепить сообщение</string> <string name="action_unpin">Открепить сообщение</string>
<string name="action_msg_star">В избранное</string> <string name="action_star">В избранное</string>
<string name="action_msg_unstar">Из избранного</string> <string name="action_unstar">Из избранного</string>
<string name="action_msg_share">Поделиться</string> <string name="action_msg_share">Поделиться</string>
<string name="action_title_editing">Редактирование сообщения</string> <string name="action_title_editing">Редактировать</string>
<string name="action_msg_add_reaction">Отреагировать</string> <string name="action_msg_add_reaction">Отреагировать</string>
<string name="action_msg_copy_permalink">Копировать ссылку</string> <string name="action_msg_permalink">Копировать ссылку</string>
<string name="action_msg_report">Пожаловаться</string> <string name="action_msg_report">Пожаловаться</string>
<!-- Permission messages --> <!-- Permission messages -->
...@@ -316,7 +316,7 @@ ...@@ -316,7 +316,7 @@
<string name="chatroom_header">Заголовок</string> <string name="chatroom_header">Заголовок</string>
<!--ChatRooms Headers--> <!--ChatRooms Headers-->
<string name="header_favorite">Favorites</string><!-- TODO - Add proper translation --> <string name="header_favorite">Избранные</string>
<string name="header_channel">Каналы</string> <string name="header_channel">Каналы</string>
<string name="header_private_groups">Приватные каналы</string> <string name="header_private_groups">Приватные каналы</string>
<string name="header_direct_messages">Личная переписка</string> <string name="header_direct_messages">Личная переписка</string>
......
...@@ -219,22 +219,21 @@ ...@@ -219,22 +219,21 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">Kaydet</string> <string name="action_msg_reply">Kaydet</string>
<string name="action_msg_info">Mesaj bilgisi</string> <string name="action_info">Info</string> <!-- TODO Add translation -->
<string name="action_msg_edit">Dzenle</string> <string name="action_msg_edit">Dzenle</string>
<string name="action_msg_copy">Kopyala</string> <string name="action_msg_copy">Kopyala</string>
<string name="action_msg_quote">Alıntıla</string> <string name="action_msg_quote">Alıntıla</string>
<string name="action_msg_delete">Sil</string> <string name="action_msg_delete">Sil</string>
<string name="action_msg_pin">Mesajı Sabitle</string> <string name="action_pin">Pin</string> <!-- TODO Add translation -->
<string name="action_msg_unpin">Mesajı Sabitleme</string> <string name="action_unpin">Unpin</string> <!-- TODO Add translation -->
<string name="action_msg_star">Mesajı Yıldızla</string> <string name="action_star">Star</string> <!-- TODO Add translation -->
<string name="action_msg_unstar">Mesajı Yıldızlama</string> <string name="action_unstar">Unstar</string> <!-- TODO Add translation -->
<string name="action_msg_share">Paylaş</string> <string name="action_msg_share">Paylaş</string>
<string name="action_title_editing">Mesaj Düzenleniyor</string> <string name="action_title_editing">Mesaj Düzenleniyor</string>
<string name="action_msg_add_reaction">Tepki Ekle</string> <string name="action_msg_add_reaction">Tepki Ekle</string>
<!-- TODO - Add proper translation --> <string name="action_msg_permalink">Permalink</string> <!-- TODO - Add proper translation -->
<string name="action_msg_copy_permalink">Copy permalink</string> <string name="action_msg_report">Report</string> <!-- TODO - Add proper translation -->
<!-- TODO - Add proper translation -->
<string name="action_msg_report">Report</string>
<!-- Permission messages --> <!-- Permission messages -->
<string name="permission_editing_not_allowed">Düzenlemeye izin verilmiyor</string> <string name="permission_editing_not_allowed">Düzenlemeye izin verilmiyor</string>
......
...@@ -215,22 +215,20 @@ ...@@ -215,22 +215,20 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">Відповісти</string> <string name="action_msg_reply">Відповісти</string>
<string name="action_msg_info">Інформація про прочитання</string> <string name="action_info">Info</string> <!-- TODO Add translation -->
<string name="action_msg_edit">Відредагувати</string> <string name="action_msg_edit">Відредагувати</string>
<string name="action_msg_copy">Скопіювати</string> <string name="action_msg_copy">Скопіювати</string>
<string name="action_msg_quote">Цитувати</string> <string name="action_msg_quote">Цитувати</string>
<string name="action_msg_delete">Видалити</string> <string name="action_msg_delete">Видалити</string>
<string name="action_msg_pin">Зафіксувати повідомлення</string> <string name="action_pin">Pin</string> <!-- TODO Add translation -->
<string name="action_msg_unpin">Відмінити фіксацію повідомлення</string> <string name="action_unpin">Unpin</string> <!-- TODO Add translation -->
<string name="action_msg_star">До обраного</string> <string name="action_star">Star</string> <!-- TODO Add translation -->
<string name="action_msg_unstar">Видалити з обраного</string> <string name="action_unstar">Unstar</string> <!-- TODO Add translation -->
<string name="action_msg_share">Поділитися</string> <string name="action_msg_share">Поділитися</string>
<string name="action_title_editing">Редагування повідомлення</string> <string name="action_title_editing">Редагування повідомлення</string>
<string name="action_msg_add_reaction">Відреагувати</string> <string name="action_msg_add_reaction">Відреагувати</string>
<!-- TODO - Add proper translation --> <string name="action_msg_permalink">Permalink</string> <!-- TODO - Add proper translation -->
<string name="action_msg_copy_permalink">Copy permalink</string> <string name="action_msg_report">Report</string> <!-- TODO - Add proper translation -->
<!-- TODO - Add proper translation -->
<string name="action_msg_report">Report</string>
<!-- Permission messages --> <!-- Permission messages -->
<string name="permission_editing_not_allowed">Редагування заборонено</string> <string name="permission_editing_not_allowed">Редагування заборонено</string>
......
...@@ -216,19 +216,19 @@ ...@@ -216,19 +216,19 @@
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">回复</string> <string name="action_msg_reply">回复</string>
<string name="action_msg_info">消息通知</string> <string name="action_info">Info</string> <!-- TODO Add translation -->
<string name="action_msg_edit">编辑</string> <string name="action_msg_edit">编辑</string>
<string name="action_msg_copy">拷贝</string> <string name="action_msg_copy">拷贝</string>
<string name="action_msg_quote">引用</string> <string name="action_msg_quote">引用</string>
<string name="action_msg_delete">删除</string> <string name="action_msg_delete">删除</string>
<string name="action_msg_pin">固定消息</string> <string name="action_pin">Pin</string> <!-- TODO Add translation -->
<string name="action_msg_unpin">取消固定</string> <string name="action_unpin">Unpin</string> <!-- TODO Add translation -->
<string name="action_msg_star">标记消息</string> <string name="action_star">Star</string> <!-- TODO Add translation -->
<string name="action_msg_unstar">取消标记</string> <string name="action_unstar">Unstar</string> <!-- TODO Add translation -->
<string name="action_msg_share">分享消息</string> <string name="action_msg_share">分享消息</string>
<string name="action_title_editing">编辑消息</string> <string name="action_title_editing">编辑消息</string>
<string name="action_msg_add_reaction">增加操作</string> <string name="action_msg_add_reaction">增加操作</string>
<string name="action_msg_copy_permalink">拷贝永久链接</string> <string name="action_msg_permalink">Permalink</string> <!-- TODO - Add proper translation -->
<string name="action_msg_report">报告</string> <string name="action_msg_report">报告</string>
<!-- Permission messages --> <!-- Permission messages -->
......
This diff is collapsed.
...@@ -232,19 +232,19 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -232,19 +232,19 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<!-- Message actions --> <!-- Message actions -->
<string name="action_msg_reply">Reply</string> <string name="action_msg_reply">Reply</string>
<string name="action_msg_info">Message info</string> <string name="action_info">Info</string>
<string name="action_msg_edit">Edit</string> <string name="action_msg_edit">Edit</string>
<string name="action_msg_copy">Copy</string> <string name="action_msg_copy">Copy</string>
<string name="action_msg_quote">Quote</string> <string name="action_msg_quote">Quote</string>
<string name="action_msg_delete">Delete</string> <string name="action_msg_delete">Delete</string>
<string name="action_msg_pin">Pin Message</string> <string name="action_pin">Pin</string>
<string name="action_msg_unpin">Unpin Message</string> <string name="action_unpin">Unpin</string>
<string name="action_msg_star">Star Message</string> <string name="action_star">Star</string>
<string name="action_msg_unstar">Unstar Message</string> <string name="action_unstar">Unstar</string>
<string name="action_msg_share">Share</string> <string name="action_msg_share">Share</string>
<string name="action_title_editing">Editing Message</string> <string name="action_title_editing">Editing Message</string>
<string name="action_msg_add_reaction">Add reaction</string> <string name="action_msg_add_reaction">Add reaction</string>
<string name="action_msg_copy_permalink">Copy permalink</string> <string name="action_msg_permalink">Permalink</string>
<string name="action_msg_report">Report</string> <string name="action_msg_report">Report</string>
<!-- Permission messages --> <!-- Permission messages -->
......
...@@ -35,7 +35,7 @@ class AnswersAnalytics : Analytics { ...@@ -35,7 +35,7 @@ class AnswersAnalytics : Analytics {
override fun logMessageSent(event: SubscriptionTypeEvent, serverUrl: String) = override fun logMessageSent(event: SubscriptionTypeEvent, serverUrl: String) =
Answers.getInstance() Answers.getInstance()
.logCustom( .logCustom(
CustomEvent("message_sent") CustomEvent("message_actionsent")
.putCustomAttribute("subscription_type", event.subscriptionTypeName) .putCustomAttribute("subscription_type", event.subscriptionTypeName)
.putCustomAttribute("server", serverUrl) .putCustomAttribute("server", serverUrl)
) )
...@@ -83,4 +83,25 @@ class AnswersAnalytics : Analytics { ...@@ -83,4 +83,25 @@ class AnswersAnalytics : Analytics {
.putCustomAttribute("server", serverUrl) .putCustomAttribute("server", serverUrl)
) )
override fun logMessageActionAddReaction() = Answers.getInstance().logCustom(CustomEvent("message_action_add_reaction"))
override fun logMessageActionReply() = Answers.getInstance().logCustom(CustomEvent("message_action_reply"))
override fun logMessageActionQuote() = Answers.getInstance().logCustom(CustomEvent("message_action_quote"))
override fun logMessageActionPermalink() = Answers.getInstance().logCustom(CustomEvent("message_action_permalink"))
override fun logMessageActionCopy() = Answers.getInstance().logCustom(CustomEvent("message_action_copy"))
override fun logMessageActionEdit() = Answers.getInstance().logCustom(CustomEvent("message_action_edit"))
override fun logMessageActionInfo() = Answers.getInstance().logCustom(CustomEvent("message_action_info"))
override fun logMessageActionStar() = Answers.getInstance().logCustom(CustomEvent("message_action_star"))
override fun logMessageActionPin() = Answers.getInstance().logCustom(CustomEvent("message_action_pin"))
override fun logMessageActionReport() = Answers.getInstance().logCustom(CustomEvent("message_action_report"))
override fun logMessageActionDelete() = Answers.getInstance().logCustom(CustomEvent("message_action_delete"))
} }
...@@ -72,4 +72,26 @@ class GoogleAnalyticsForFirebase @Inject constructor(val context: Context) : ...@@ -72,4 +72,26 @@ class GoogleAnalyticsForFirebase @Inject constructor(val context: Context) :
putString("server", serverUrl) putString("server", serverUrl)
}) })
} }
override fun logMessageActionAddReaction() = firebaseAnalytics.logEvent("message_action_add_reaction", null)
override fun logMessageActionReply() = firebaseAnalytics.logEvent("message_action_reply", null)
override fun logMessageActionQuote() = firebaseAnalytics.logEvent("message_action_quote", null)
override fun logMessageActionPermalink() = firebaseAnalytics.logEvent("message_action_permalink", null)
override fun logMessageActionCopy() = firebaseAnalytics.logEvent("message_action_copy", null)
override fun logMessageActionEdit() = firebaseAnalytics.logEvent("message_action_edit", null)
override fun logMessageActionInfo() = firebaseAnalytics.logEvent("message_action_info", null)
override fun logMessageActionStar() = firebaseAnalytics.logEvent("message_action_star", null)
override fun logMessageActionPin() = firebaseAnalytics.logEvent("message_action_pin", null)
override fun logMessageActionReport() = firebaseAnalytics.logEvent("message_action_report", null)
override fun logMessageActionDelete() = firebaseAnalytics.logEvent("message_action_delete", null)
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment