Commit e463622d authored by Filipe de Lima Brito's avatar Filipe de Lima Brito

Shows server view

parent 8dc117d8
...@@ -50,31 +50,12 @@ class ChatRoomsPresenter @Inject constructor( ...@@ -50,31 +50,12 @@ class ChatRoomsPresenter @Inject constructor(
fun toCreateChannel() = navigator.toCreateChannel() fun toCreateChannel() = navigator.toCreateChannel()
fun toSettings() = navigator.toSettings()
fun getCurrentServerName() { fun getCurrentServerName() {
view.setupToolbar(currentServer) view.setupToolbar(currentServer)
} }
fun getAllServers() {
launchUI(strategy) {
try {
view.setupServerListView(getAccountsInteractor.get())
} catch (exception: Exception) {
Timber.e(exception, "Error while getting all servers")
when (exception) {
// is RocketChatAuthException -> logout()
else -> {
exception.message?.let {
view.showMessage(it)
}.ifNull {
view.showGenericErrorMessage()
}
}
}
}
}
}
fun loadChatRoom(roomId: String) { fun loadChatRoom(roomId: String) {
launchUI(strategy) { launchUI(strategy) {
view.showLoadingRoom("") view.showLoadingRoom("")
......
...@@ -13,13 +13,6 @@ interface ChatRoomsView : LoadingView, MessageView { ...@@ -13,13 +13,6 @@ interface ChatRoomsView : LoadingView, MessageView {
*/ */
fun setupToolbar(serverName: String) fun setupToolbar(serverName: String)
/**
* Setups the server list view with all server list.
*
* @param serverList The server list to show on server list.
*/
fun setupServerListView(serverList: List<Account>)
fun showLoadingRoom(name: CharSequence) fun showLoadingRoom(name: CharSequence)
fun hideLoadingRoom() fun hideLoadingRoom()
......
...@@ -30,7 +30,7 @@ import chat.rocket.android.chatrooms.viewmodel.Query ...@@ -30,7 +30,7 @@ import chat.rocket.android.chatrooms.viewmodel.Query
import chat.rocket.android.helper.ChatRoomsSortOrder import chat.rocket.android.helper.ChatRoomsSortOrder
import chat.rocket.android.helper.Constants import chat.rocket.android.helper.Constants
import chat.rocket.android.helper.SharedPreferenceHelper import chat.rocket.android.helper.SharedPreferenceHelper
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.servers.ui.ServersBottomSheetFragment
import chat.rocket.android.util.extension.onQueryTextListener import chat.rocket.android.util.extension.onQueryTextListener
import chat.rocket.android.util.extensions.ifNotNullNotEmpty import chat.rocket.android.util.extensions.ifNotNullNotEmpty
import chat.rocket.android.util.extensions.inflate import chat.rocket.android.util.extensions.inflate
...@@ -104,11 +104,6 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { ...@@ -104,11 +104,6 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
analyticsManager.logScreenView(ScreenViewEvent.ChatRooms) analyticsManager.logScreenView(ScreenViewEvent.ChatRooms)
} }
override fun setupServerListView(serverList: List<Account>) {
// TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
private fun subscribeUi() { private fun subscribeUi() {
ui { ui {
val adapter = RoomsAdapter { room -> val adapter = RoomsAdapter { room ->
...@@ -284,18 +279,28 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView { ...@@ -284,18 +279,28 @@ class ChatRoomsFragment : Fragment(), ChatRoomsView {
} }
override fun setupToolbar(serverName: String) { override fun setupToolbar(serverName: String) {
(activity as AppCompatActivity).setSupportActionBar(toolbar) with((activity as AppCompatActivity)) {
with(toolbar) {
setSupportActionBar(this)
setNavigationOnClickListener { presenter.toSettings() }
}
}
text_server_name.text = serverName text_server_name.text = serverName
} }
private fun setupListeners() { private fun setupListeners() {
text_server_name.setOnClickListener { text_server_name.setOnClickListener {
// TO DO ServersBottomSheetFragment().show(
activity?.supportFragmentManager,
chat.rocket.android.servers.ui.TAG
)
} }
text_sort_by.setOnClickListener { text_sort_by.setOnClickListener {
SortByBottomSheetFragment() SortByBottomSheetFragment().show(
.show(activity?.supportFragmentManager, TAG) activity?.supportFragmentManager,
chat.rocket.android.chatrooms.ui.TAG
)
} }
} }
......
...@@ -11,7 +11,7 @@ import chat.rocket.android.R ...@@ -11,7 +11,7 @@ import chat.rocket.android.R
import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import kotlinx.android.synthetic.main.bottom_sheet_fragment_sort_by.* import kotlinx.android.synthetic.main.bottom_sheet_fragment_sort_by.*
internal const val TAG = "SortByBottomSheetFragment" const val TAG = "SortByBottomSheetFragment"
class SortByBottomSheetFragment : BottomSheetDialogFragment() { class SortByBottomSheetFragment : BottomSheetDialogFragment() {
private var isSortByName = false private var isSortByName = false
......
...@@ -182,7 +182,7 @@ class CreateChannelFragment : Fragment(), CreateChannelView, ActionMode.Callback ...@@ -182,7 +182,7 @@ class CreateChannelFragment : Fragment(), CreateChannelView, ActionMode.Callback
private fun setupToolBar() { private fun setupToolBar() {
with((activity as AppCompatActivity)) { with((activity as AppCompatActivity)) {
with(toolbar) { with(toolbar) {
setSupportActionBar(toolbar) setSupportActionBar(this)
title = getString(R.string.title_create_channel) title = getString(R.string.title_create_channel)
setNavigationIcon(R.drawable.ic_arrow_back_white_24dp) setNavigationIcon(R.drawable.ic_arrow_back_white_24dp)
setNavigationOnClickListener { activity?.onBackPressed() } setNavigationOnClickListener { activity?.onBackPressed() }
......
...@@ -33,6 +33,7 @@ import chat.rocket.android.preferences.di.PreferencesFragmentProvider ...@@ -33,6 +33,7 @@ import chat.rocket.android.preferences.di.PreferencesFragmentProvider
import chat.rocket.android.profile.di.ProfileFragmentProvider import chat.rocket.android.profile.di.ProfileFragmentProvider
import chat.rocket.android.server.di.ChangeServerModule import chat.rocket.android.server.di.ChangeServerModule
import chat.rocket.android.server.ui.ChangeServerActivity import chat.rocket.android.server.ui.ChangeServerActivity
import chat.rocket.android.servers.di.ServersBottomSheetFragmentProvider
import chat.rocket.android.settings.di.SettingsFragmentProvider import chat.rocket.android.settings.di.SettingsFragmentProvider
import chat.rocket.android.settings.password.di.PasswordFragmentProvider import chat.rocket.android.settings.password.di.PasswordFragmentProvider
import chat.rocket.android.settings.password.ui.PasswordActivity import chat.rocket.android.settings.password.ui.PasswordActivity
...@@ -65,6 +66,7 @@ abstract class ActivityBuilder { ...@@ -65,6 +66,7 @@ abstract class ActivityBuilder {
@ContributesAndroidInjector( @ContributesAndroidInjector(
modules = [MainModule::class, modules = [MainModule::class,
ChatRoomsFragmentProvider::class, ChatRoomsFragmentProvider::class,
ServersBottomSheetFragmentProvider::class,
CreateChannelProvider::class, CreateChannelProvider::class,
ProfileFragmentProvider::class, ProfileFragmentProvider::class,
SettingsFragmentProvider::class, SettingsFragmentProvider::class,
......
package chat.rocket.android.main.adapter
import androidx.recyclerview.widget.RecyclerView
import android.view.View
import chat.rocket.common.model.UserStatus
import kotlinx.android.synthetic.main.item_change_status.view.*
class StatusViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(listener: (UserStatus) -> Unit) {
with(itemView) {
text_online.setOnClickListener { listener(UserStatus.Online()) }
text_away.setOnClickListener { listener(UserStatus.Away()) }
text_busy.setOnClickListener { listener(UserStatus.Busy()) }
text_invisible.setOnClickListener { listener(UserStatus.Offline()) }
}
}
}
\ No newline at end of file
package chat.rocket.android.main.adapter package chat.rocket.android.servers.adapter
import androidx.recyclerview.widget.RecyclerView
import android.view.View import android.view.View
import androidx.recyclerview.widget.RecyclerView
class AddAccountViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) class AddNewServerViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
\ No newline at end of file \ No newline at end of file
package chat.rocket.android.main.adapter package chat.rocket.android.servers.adapter
import androidx.recyclerview.widget.RecyclerView
import android.view.View import android.view.View
import androidx.core.view.isInvisible
import androidx.recyclerview.widget.RecyclerView
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.server.domain.model.Account
import kotlinx.android.synthetic.main.item_account.view.* import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.item_server.view.*
class AccountViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { class ServerViewHolder(itemView: View, private val currentServerUrl: String) :
RecyclerView.ViewHolder(itemView) {
fun bind(account: Account) { fun bind(account: Account) {
with(itemView) { with(itemView) {
server_logo.setImageURI(account.serverLogo) Glide.with(context).load(account.serverLogo).into(image_server)
text_server_name.text = account.serverUrl
text_server_url.text = account.serverUrl text_server_url.text = account.serverUrl
text_username.text = account.userName image_check.isInvisible = currentServerUrl != account.serverUrl
} }
} }
} }
\ No newline at end of file
package chat.rocket.android.main.adapter package chat.rocket.android.servers.adapter
import androidx.recyclerview.widget.RecyclerView
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.server.domain.model.Account
import chat.rocket.android.util.extensions.inflate import chat.rocket.android.util.extensions.inflate
import chat.rocket.common.model.UserStatus
private const val VIEW_TYPE_CHANGE_STATUS = 0 private const val VIEW_TYPE_SERVER = 0
private const val VIEW_TYPE_ACCOUNT = 1 private const val VIEW_TYPE_ADD_NEW_SERVER = 1
private const val VIEW_TYPE_ADD_ACCOUNT = 2
class AccountsAdapter( class ServersAdapter(
private val accounts: List<Account>, private val servers: List<Account>,
private val currentServerUrl: String,
private val selector: Selector private val selector: Selector
) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { ) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return when (viewType) { return when (viewType) {
VIEW_TYPE_CHANGE_STATUS -> StatusViewHolder(parent.inflate(R.layout.item_change_status)) VIEW_TYPE_SERVER -> ServerViewHolder(
VIEW_TYPE_ACCOUNT -> AccountViewHolder(parent.inflate(R.layout.item_account)) parent.inflate(R.layout.item_server), currentServerUrl
else -> AddAccountViewHolder(parent.inflate(R.layout.item_add_account)) )
else -> AddNewServerViewHolder(parent.inflate(R.layout.item_add_new_server))
} }
} }
override fun getItemCount() = accounts.size + 2 override fun getItemCount() = servers.size + 1
override fun getItemViewType(position: Int): Int { override fun getItemViewType(position: Int): Int {
return when { return when {
position == 0 -> VIEW_TYPE_CHANGE_STATUS position < servers.size -> VIEW_TYPE_SERVER
position <= accounts.size -> VIEW_TYPE_ACCOUNT else -> VIEW_TYPE_ADD_NEW_SERVER
else -> VIEW_TYPE_ADD_ACCOUNT
} }
} }
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when (holder) { when (holder) {
is StatusViewHolder -> bindStatusViewHolder(holder) is ServerViewHolder -> bindServerViewHolder(holder, position)
is AccountViewHolder -> bindAccountViewHolder(holder, position) is AddNewServerViewHolder -> bindAddNewServerViewHolder(holder)
is AddAccountViewHolder -> bindAddAccountViewHolder(holder)
} }
} }
private fun bindStatusViewHolder(holder: StatusViewHolder) {
holder.bind { userStatus -> selector.onStatusSelected(userStatus) }
}
private fun bindAccountViewHolder(holder: AccountViewHolder, position: Int) { private fun bindServerViewHolder(holder: ServerViewHolder, position: Int) {
val account = accounts[position - 1] val account = servers[position]
holder.bind(account) holder.bind(account)
holder.itemView.setOnClickListener { holder.itemView.setOnClickListener { selector.onServerSelected(account.serverUrl) }
selector.onAccountSelected(account.serverUrl)
}
} }
private fun bindAddAccountViewHolder(holder: AddAccountViewHolder) { private fun bindAddNewServerViewHolder(holder: AddNewServerViewHolder) {
holder.itemView.setOnClickListener { holder.itemView.setOnClickListener { selector.onAddNewServerSelected() }
selector.onAddedAccountSelected()
}
} }
} }
interface Selector { interface Selector {
fun onStatusSelected(userStatus: UserStatus) fun onServerSelected(serverUrl: String)
fun onAccountSelected(serverUrl: String) fun onAddNewServerSelected()
fun onAddedAccountSelected()
} }
\ No newline at end of file
package chat.rocket.android.servers.di
import chat.rocket.android.dagger.scope.PerFragment
import chat.rocket.android.servers.presentation.ServersView
import chat.rocket.android.servers.ui.ServersBottomSheetFragment
import dagger.Module
import dagger.Provides
@Module
class ServersBottomSheetFragmentModule {
@Provides
@PerFragment
fun membersView(frag: ServersBottomSheetFragment): ServersView = frag
}
\ No newline at end of file
package chat.rocket.android.servers.di
import chat.rocket.android.dagger.scope.PerFragment
import chat.rocket.android.servers.ui.ServersBottomSheetFragment
import dagger.Module
import dagger.android.ContributesAndroidInjector
@Module
abstract class ServersBottomSheetFragmentProvider {
@ContributesAndroidInjector(modules = [ServersBottomSheetFragmentModule::class])
@PerFragment
abstract fun provideServersBottomSheetFragment(): ServersBottomSheetFragment
}
\ No newline at end of file
package chat.rocket.android.servers.presentation
import chat.rocket.android.core.lifecycle.CancelStrategy
import chat.rocket.android.main.presentation.MainNavigator
import chat.rocket.android.server.domain.GetAccountsInteractor
import chat.rocket.android.util.extension.launchUI
import chat.rocket.common.util.ifNull
import timber.log.Timber
import javax.inject.Inject
import javax.inject.Named
class ServersPresenter @Inject constructor(
private val view: ServersView,
private val navigator: MainNavigator,
private val strategy: CancelStrategy,
private val getAccountsInteractor: GetAccountsInteractor,
@Named("currentServer") private val currentServerUrl: String
) {
fun getAllServers() {
launchUI(strategy) {
try {
view.showServerList(getAccountsInteractor.get(), currentServerUrl)
} catch (exception: Exception) {
Timber.e(exception, "Error loading servers")
exception.message?.let {
view.showMessage(it)
}.ifNull {
view.showGenericErrorMessage()
}
}
}
}
fun changeServer(serverUrl: String) {
if (currentServerUrl != serverUrl) {
navigator.switchOrAddNewServer(serverUrl)
} else {
view.hideServerView()
}
}
fun addNewServer() {
view.hideServerView()
navigator.toServerScreen()
}
}
\ No newline at end of file
package chat.rocket.android.servers.presentation
import chat.rocket.android.core.behaviours.MessageView
import chat.rocket.android.server.domain.model.Account
interface ServersView : MessageView {
/**
* Shows the server list.
*
* @param serverList The list of server to show.
* @param currentServerUrl The current logged in server url.
*/
fun showServerList(serverList: List<Account>, currentServerUrl: String)
/**
* Hides the servers view.
*/
fun hideServerView()
}
\ No newline at end of file
package chat.rocket.android.servers.ui
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import chat.rocket.android.R
import chat.rocket.android.server.domain.model.Account
import chat.rocket.android.servers.adapter.Selector
import chat.rocket.android.servers.adapter.ServersAdapter
import chat.rocket.android.servers.presentation.ServersPresenter
import chat.rocket.android.servers.presentation.ServersView
import chat.rocket.android.util.extensions.showToast
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import dagger.android.support.AndroidSupportInjection
import kotlinx.android.synthetic.main.bottom_sheet_fragment_servers.*
import javax.inject.Inject
const val TAG = "ServersBottomSheetFragment"
class ServersBottomSheetFragment : BottomSheetDialogFragment(), ServersView {
@Inject
lateinit var presenter: ServersPresenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
AndroidSupportInjection.inject(this)
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? =
inflater.inflate(R.layout.bottom_sheet_fragment_servers, container, false)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
presenter.getAllServers()
}
override fun showServerList(serverList: List<Account>, currentServerUrl: String) {
recycler_view.layoutManager = LinearLayoutManager(context)
recycler_view.adapter = ServersAdapter(serverList, currentServerUrl, object : Selector {
override fun onServerSelected(serverUrl: String) {
presenter.changeServer(serverUrl)
}
override fun onAddNewServerSelected() {
presenter.addNewServer()
}
})
}
override fun hideServerView() = dismiss()
override fun showMessage(resId: Int) {
showToast(resId)
}
override fun showMessage(message: String) {
showToast(message)
}
override fun showGenericErrorMessage() = showMessage(getString(R.string.msg_generic_error))
}
\ No newline at end of file
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:fillColor="#00000000"
android:fillType="evenOdd"
android:pathData="M4.5,0.5L43.5,0.5A4,4 0,0 1,47.5 4.5L47.5,43.5A4,4 0,0 1,43.5 47.5L4.5,47.5A4,4 0,0 1,0.5 43.5L0.5,4.5A4,4 0,0 1,4.5 0.5z"
android:strokeWidth="1"
android:strokeColor="#CBCED1" />
<path
android:fillColor="#00000000"
android:fillType="evenOdd"
android:pathData="M33.0625,23.5625L24.4375,23.5625L24.4375,14.9375C24.4375,14.6959 24.2416,14.5 24,14.5C23.7584,14.5 23.5625,14.6959 23.5625,14.9375L23.5625,23.5625L14.9375,23.5625C14.6959,23.5625 14.5,23.7584 14.5,24C14.5,24.2416 14.6959,24.4375 14.9375,24.4375L23.5625,24.4375L23.5625,33.0625C23.5625,33.3041 23.7584,33.5 24,33.5C24.2416,33.5 24.4375,33.3041 24.4375,33.0625L24.4375,24.4375L33.0625,24.4375C33.3041,24.4375 33.5,24.2416 33.5,24C33.5,23.7584 33.3041,23.5625 33.0625,23.5625Z"
android:strokeWidth="1"
android:strokeColor="#9EA2A8" />
</vector>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".servers.ui.ServersBottomSheetFragment">
<TextView
android:id="@+id/text_server"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/msg_server"
android:textColor="#9EA2A8"
android:textSize="17sp"
android:textStyle="normal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="#1F000000"
app:layout_constraintTop_toBottomOf="@+id/text_server" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="16dp"
app:layout_constraintTop_toBottomOf="@+id/view_divider" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns: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:background="?selectableItemBackground" android:background="?selectableItemBackground"
android:orientation="vertical"
android:padding="16dp"> android:padding="16dp">
<ImageView
android:id="@+id/server_logo"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/ic_add_24dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:layout_width="0dp" android:id="@+id/text_add_new_server"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:drawableStart="@drawable/ic_add_new_server_48dp"
android:text="@string/action_add_account" android:drawablePadding="12dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body2" android:fontFamily="sans-serif"
app:layout_constraintBottom_toBottomOf="parent" android:gravity="center"
app:layout_constraintEnd_toEndOf="parent" android:text="@string/msg_add_new_server"
app:layout_constraintStart_toEndOf="@id/server_logo" android:textColor="#9ea2a8"
app:layout_constraintTop_toTopOf="parent" /> android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/recycler_view" />
</androidx.constraintlayout.widget.ConstraintLayout> </LinearLayout>
\ No newline at end of file \ No newline at end of file
...@@ -4,43 +4,58 @@ ...@@ -4,43 +4,58 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingEnd="16dp" android:background="?selectableItemBackground"
android:paddingStart="16dp" android:paddingStart="16dp"
android:paddingTop="16dp" android:paddingTop="16dp"
android:background="?selectableItemBackground"> android:paddingEnd="16dp">
<com.facebook.drawee.view.SimpleDraweeView <ImageView
android:id="@+id/server_logo" android:id="@+id/image_server"
android:layout_width="40dp" android:layout_width="48dp"
android:layout_height="40dp" android:layout_height="48dp"
app:actualImageScaleType="centerInside"
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"
tools:src="@tools:sample/avatars" />
<TextView <TextView
android:id="@+id/text_server_url" android:id="@+id/text_server_name"
android:layout_width="0dp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="12dp"
android:ellipsize="end" android:layout_marginEnd="12dp"
android:fontFamily="sans-serif-medium"
android:maxLines="1" android:maxLines="1"
android:textStyle="bold" android:textColor="#DE000000"
app:layout_constraintEnd_toEndOf="parent" android:textSize="16sp"
app:layout_constraintStart_toEndOf="@id/server_logo" android:textStyle="normal"
app:layout_constraintTop_toTopOf="@id/server_logo" app:layout_constraintStart_toEndOf="@+id/image_server"
tools:text="https://open.rocket.chat" /> app:layout_constraintTop_toTopOf="@+id/image_server"
tools:text="Hyper Ledger" />
<TextView <TextView
android:id="@+id/text_username" android:id="@+id/text_server_url"
android:layout_width="0dp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="12dp"
android:ellipsize="end" android:layout_marginEnd="12dp"
android:fontFamily="sans-serif"
android:maxLines="1" android:maxLines="1"
app:layout_constraintBottom_toBottomOf="@id/server_logo" android:textColor="#99000000"
android:textSize="14sp"
android:textStyle="normal"
app:layout_constraintStart_toEndOf="@+id/image_server"
app:layout_constraintTop_toBottomOf="@+id/text_server_name"
tools:text="chat.hyperledger.org" />
<ImageView
android:id="@+id/image_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_check"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@+id/image_server"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/server_logo" app:layout_constraintTop_toTopOf="@+id/image_server"
tools:text="Lucio Maciel" /> tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/server_logo"
android:layout_width="0dp"
android:layout_height="0dp"
android:foreground="@drawable/black_gradient"
app:actualImageScaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@tools:sample/backgrounds/scenic" />
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/image_avatar"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@drawable/bg_empty_user_avatar"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:roundedCornerRadius="3dp"
tools:src="@tools:sample/avatars" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/account_container"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="?selectableItemBackground"
android:elevation="2dp"
android:paddingStart="12dp"
android:paddingTop="4dp"
android:paddingEnd="12dp"
android:paddingBottom="4dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/image_avatar">
<ImageView
android:id="@+id/image_user_status"
android:layout_width="12dp"
android:layout_height="12dp"
app:layout_constraintBottom_toTopOf="@+id/text_user_name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/text_user_name"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/text_user_name"
style="@style/Sender.Name.TextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:textColor="@color/colorWhite"
app:layout_constraintBottom_toBottomOf="@+id/image_user_status"
app:layout_constraintEnd_toStartOf="@+id/image_account_expand"
app:layout_constraintStart_toEndOf="@+id/image_user_status"
app:layout_constraintTop_toTopOf="@+id/image_user_status"
tools:text="Lucio Maciel" />
<TextView
android:id="@+id/text_server_url"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:ellipsize="end"
android:maxLines="1"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/colorWhite"
app:layout_constraintEnd_toStartOf="@+id/image_account_expand"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/text_user_name"
tools:text="https://open.rocket.chat" />
<ImageView
android:id="@+id/image_account_expand"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_expand_more_black_24dp"
android:tint="@color/colorWhite"
app:layout_constraintBottom_toBottomOf="@+id/text_server_url"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -45,7 +45,6 @@ ...@@ -45,7 +45,6 @@
<string name="action_attach_a_files">إضافة ملف</string> <string name="action_attach_a_files">إضافة ملف</string>
<string name="action_confirm_password">تأكيد تغيير كلمة السر</string> <string name="action_confirm_password">تأكيد تغيير كلمة السر</string>
<string name="action_join_chat">إنضم للمحادثة</string> <string name="action_join_chat">إنضم للمحادثة</string>
<string name="action_add_account">إضافة حساب</string>
<string name="action_online">متصل</string> <string name="action_online">متصل</string>
<string name="action_away">بعيد</string> <string name="action_away">بعيد</string>
<string name="action_busy">مشغول</string> <string name="action_busy">مشغول</string>
...@@ -183,6 +182,8 @@ ...@@ -183,6 +182,8 @@
<item quantity="two">%1$s reacted with %2$s</item> <item quantity="two">%1$s reacted with %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Credentials saved successfully</string> <!-- TODO Translate --> <string name="msg_credentials_saved_successfully">Credentials saved successfully</string> <!-- TODO Translate -->
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">خاص</string> <string name="msg_private_channel">خاص</string>
......
...@@ -47,7 +47,6 @@ ...@@ -47,7 +47,6 @@
<string name="action_attach_a_files">Eine Datei anhängen</string> <string name="action_attach_a_files">Eine Datei anhängen</string>
<string name="action_confirm_password">Bestätige Passwort Änderung</string> <string name="action_confirm_password">Bestätige Passwort Änderung</string>
<string name="action_join_chat">Trete Chat bei</string> <string name="action_join_chat">Trete Chat bei</string>
<string name="action_add_account">Erstelle Account</string>
<string name="action_online">Online</string> <string name="action_online">Online</string>
<string name="action_away">Abwesend</string> <string name="action_away">Abwesend</string>
<string name="action_busy">Beschäftigt</string> <string name="action_busy">Beschäftigt</string>
...@@ -179,7 +178,8 @@ ...@@ -179,7 +178,8 @@
<item quantity="other">%1$s reagierte mit %2$s</item> <item quantity="other">%1$s reagierte mit %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Login-Daten erfolgreich gespeichert</string> <string name="msg_credentials_saved_successfully">Login-Daten erfolgreich gespeichert</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privat</string> <string name="msg_private_channel">Privat</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">Attach a file</string> <!-- TODO Add translation --> <string name="action_attach_a_files">Attach a file</string> <!-- TODO Add translation -->
<string name="action_confirm_password">Confirmar cambio de contraseña</string> <string name="action_confirm_password">Confirmar cambio de contraseña</string>
<string name="action_join_chat">Unirse al chat</string> <string name="action_join_chat">Unirse al chat</string>
<string name="action_add_account">Añadir cuenta</string>
<string name="action_online">Conectado(s)</string> <string name="action_online">Conectado(s)</string>
<string name="action_away">Ausente</string> <string name="action_away">Ausente</string>
<string name="action_busy">Ocupado</string> <string name="action_busy">Ocupado</string>
...@@ -163,6 +162,8 @@ ...@@ -163,6 +162,8 @@
<string name="msg_continue_with_wordpress">Continue with <b>WordPress</b></string> <!-- TODO Add translation --> <string name="msg_continue_with_wordpress">Continue with <b>WordPress</b></string> <!-- TODO Add translation -->
<string name="msg_two_factor_authentication">Two-factor Authentication</string> <!-- TODO Add translation --> <string name="msg_two_factor_authentication">Two-factor Authentication</string> <!-- TODO Add translation -->
<string name="msg__your_2fa_code">What’s your 2FA code?</string> <!-- TODO Add translation --> <string name="msg__your_2fa_code">What’s your 2FA code?</string> <!-- TODO Add translation -->
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privado</string> <string name="msg_private_channel">Privado</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">ضمیمه کردن پرونده</string> <string name="action_attach_a_files">ضمیمه کردن پرونده</string>
<string name="action_confirm_password">موافقت با تغییر گذرواژه</string> <string name="action_confirm_password">موافقت با تغییر گذرواژه</string>
<string name="action_join_chat">به گفت‌وگو بپیوندید</string> <string name="action_join_chat">به گفت‌وگو بپیوندید</string>
<string name="action_add_account">اضافه کردن حساب کاربری</string>
<string name="action_online">آنلاین</string> <string name="action_online">آنلاین</string>
<string name="action_away">Away</string> <!-- TODO Add translation --> <string name="action_away">Away</string> <!-- TODO Add translation -->
<string name="action_busy">مشغول</string> <string name="action_busy">مشغول</string>
...@@ -178,6 +177,8 @@ ...@@ -178,6 +177,8 @@
<item quantity="other">%1$s reacted with %2$s</item> <item quantity="other">%1$s reacted with %2$s</item>
</plurals> <!-- TODO Add translation --> </plurals> <!-- TODO Add translation -->
<string name="msg_credentials_saved_successfully">اختیارها با موفقیت ذخیره شد</string> <string name="msg_credentials_saved_successfully">اختیارها با موفقیت ذخیره شد</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">خصوصی</string> <string name="msg_private_channel">خصوصی</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">Joindre un fichier</string> <string name="action_attach_a_files">Joindre un fichier</string>
<string name="action_confirm_password">Confirmer le mot de passe</string> <string name="action_confirm_password">Confirmer le mot de passe</string>
<string name="action_join_chat">Rejoignez le chat</string> <string name="action_join_chat">Rejoignez le chat</string>
<string name="action_add_account">Ajouter un compte</string>
<string name="action_online">En ligne</string> <string name="action_online">En ligne</string>
<string name="action_away">Loin</string> <string name="action_away">Loin</string>
<string name="action_busy">Occupé</string> <string name="action_busy">Occupé</string>
...@@ -182,6 +181,8 @@ ...@@ -182,6 +181,8 @@
<item quantity="other">%1$s a réagi avec %2$s</item> <item quantity="other">%1$s a réagi avec %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Certificats sauvegardés</string> <string name="msg_credentials_saved_successfully">Certificats sauvegardés</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privé</string> <string name="msg_private_channel">Privé</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">एक फ़ाइल जोडो</string> <string name="action_attach_a_files">एक फ़ाइल जोडो</string>
<string name="action_confirm_password">पासवर्ड परिवर्तन की पुष्टि करें</string> <string name="action_confirm_password">पासवर्ड परिवर्तन की पुष्टि करें</string>
<string name="action_join_chat">चैट में शामिल हों</string> <string name="action_join_chat">चैट में शामिल हों</string>
<string name="action_add_account">खाता जोड़ो</string>
<string name="action_online">ऑनलाइन</string> <string name="action_online">ऑनलाइन</string>
<string name="action_away">दूर</string> <string name="action_away">दूर</string>
<string name="action_busy">व्यस्त</string> <string name="action_busy">व्यस्त</string>
...@@ -197,6 +196,8 @@ ...@@ -197,6 +196,8 @@
<item quantity="many">%1$s ने %2$s के साथ प्रतिक्रिया व्यक्त की</item> <item quantity="many">%1$s ने %2$s के साथ प्रतिक्रिया व्यक्त की</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">प्रमाण पत्र सफलतापूर्वक सहेजे गए</string> <string name="msg_credentials_saved_successfully">प्रमाण पत्र सफलतापूर्वक सहेजे गए</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Preferences messages --> <!-- Preferences messages -->
<string name="msg_analytics_tracking">एनालिटिक्स ट्रैकिंग</string> <string name="msg_analytics_tracking">एनालिटिक्स ट्रैकिंग</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">Ceangail comhad</string> <string name="action_attach_a_files">Ceangail comhad</string>
<string name="action_confirm_password">Conferma Cambio Password</string> <string name="action_confirm_password">Conferma Cambio Password</string>
<string name="action_join_chat">Iscriviti alla stanza</string> <string name="action_join_chat">Iscriviti alla stanza</string>
<string name="action_add_account">Aggiungi utente</string>
<string name="action_online">In linea</string> <string name="action_online">In linea</string>
<string name="action_away">Lontano</string> <string name="action_away">Lontano</string>
<string name="action_busy">Occupato</string> <string name="action_busy">Occupato</string>
...@@ -175,6 +174,8 @@ ...@@ -175,6 +174,8 @@
<item quantity="other">%1$s ha reagito con %2$s</item> <item quantity="other">%1$s ha reagito con %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Credenziali salvate con successo</string> <string name="msg_credentials_saved_successfully">Credenziali salvate con successo</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privato</string> <string name="msg_private_channel">Privato</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">Attach a file</string> <!-- TODO Add translation --> <string name="action_attach_a_files">Attach a file</string> <!-- TODO Add translation -->
<string name="action_confirm_password">変更したパスワードの確認</string> <string name="action_confirm_password">変更したパスワードの確認</string>
<string name="action_join_chat">チャットに参加</string> <string name="action_join_chat">チャットに参加</string>
<string name="action_add_account">サーバーの追加</string>
<string name="action_online">オンライン</string> <string name="action_online">オンライン</string>
<string name="action_away">離席中</string> <string name="action_away">離席中</string>
<string name="action_busy">取り込み中</string> <string name="action_busy">取り込み中</string>
...@@ -178,6 +177,8 @@ ...@@ -178,6 +177,8 @@
<item quantity="other">%1$s reacted with %2$s</item> <!-- TODO - Add proper translation --> <item quantity="other">%1$s reacted with %2$s</item> <!-- TODO - Add proper translation -->
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">資格情報を正常に保存しました</string> <string name="msg_credentials_saved_successfully">資格情報を正常に保存しました</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">プライベート</string> <string name="msg_private_channel">プライベート</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">Anexar um arquivo</string> <string name="action_attach_a_files">Anexar um arquivo</string>
<string name="action_confirm_password">Confirme a nova senha</string> <string name="action_confirm_password">Confirme a nova senha</string>
<string name="action_join_chat">Entrar no Chat</string> <string name="action_join_chat">Entrar no Chat</string>
<string name="action_add_account">Adicionar conta</string>
<string name="action_online">Online</string> <string name="action_online">Online</string>
<string name="action_away">Ausente</string> <string name="action_away">Ausente</string>
<string name="action_busy">Ocupado</string> <string name="action_busy">Ocupado</string>
...@@ -178,12 +177,13 @@ ...@@ -178,12 +177,13 @@
<string name="msg_no_description">Nenhuma descrição</string> <string name="msg_no_description">Nenhuma descrição</string>
<string name="msg_unable_to_update_password">Não foi possível atualizar a senha. Mensagem de erro: %1$s</string> <string name="msg_unable_to_update_password">Não foi possível atualizar a senha. Mensagem de erro: %1$s</string>
<string name="msg_password_updated_successfully">Senha alterada com sucesso</string> <string name="msg_password_updated_successfully">Senha alterada com sucesso</string>
<string name="msg_sort">Ordenar</string>
<plurals name="msg_reacted_with_"> <plurals name="msg_reacted_with_">
<item quantity="one">%1$s reagiu com %2$s</item> <item quantity="one">%1$s reagiu com %2$s</item>
<item quantity="other">%1$s reagiram com %2$s</item> <item quantity="other">%1$s reagiram com %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Credenciais salvas com sucesso</string> <string name="msg_credentials_saved_successfully">Credenciais salvas com sucesso</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privado</string> <string name="msg_private_channel">Privado</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">Enviar um ficheiro</string> <string name="action_attach_a_files">Enviar um ficheiro</string>
<string name="action_confirm_password">Confirme a alteração da palavra-passe</string> <string name="action_confirm_password">Confirme a alteração da palavra-passe</string>
<string name="action_join_chat">Entre no chat</string> <string name="action_join_chat">Entre no chat</string>
<string name="action_add_account">Adicionar conta</string>
<string name="action_online">Online</string> <string name="action_online">Online</string>
<string name="action_away">Ausente</string> <string name="action_away">Ausente</string>
<string name="action_busy">Ocupado</string> <string name="action_busy">Ocupado</string>
...@@ -174,6 +173,8 @@ ...@@ -174,6 +173,8 @@
<item quantity="one">%1$s reagiu com %2$s</item> <item quantity="one">%1$s reagiu com %2$s</item>
<item quantity="other">%1$s reagiram com %2$s</item> <item quantity="other">%1$s reagiram com %2$s</item>
</plurals> </plurals>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Privado</string> <string name="msg_private_channel">Privado</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">Прикрепить файл</string> <string name="action_attach_a_files">Прикрепить файл</string>
<string name="action_confirm_password">Подтверждение изменения пароля</string> <string name="action_confirm_password">Подтверждение изменения пароля</string>
<string name="action_join_chat">Присоединиться к чату</string> <string name="action_join_chat">Присоединиться к чату</string>
<string name="action_add_account">Добавить аккаунт</string>
<string name="action_online">Онлайн</string> <string name="action_online">Онлайн</string>
<string name="action_away">Отошел</string> <string name="action_away">Отошел</string>
<string name="action_busy">Занят</string> <string name="action_busy">Занят</string>
...@@ -181,6 +180,8 @@ ...@@ -181,6 +180,8 @@
<item quantity="many">%1$s реагируют с %2$s</item> <item quantity="many">%1$s реагируют с %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Учетные данные успешно сохранены</string> <string name="msg_credentials_saved_successfully">Учетные данные успешно сохранены</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Приватный</string> <string name="msg_private_channel">Приватный</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">Attach a file</string> <!-- TODO Add translation --> <string name="action_attach_a_files">Attach a file</string> <!-- TODO Add translation -->
<string name="action_confirm_password">Şifre Değişikliğini Onaylayın</string> <string name="action_confirm_password">Şifre Değişikliğini Onaylayın</string>
<string name="action_join_chat">Sohbete Bağlan</string> <string name="action_join_chat">Sohbete Bağlan</string>
<string name="action_add_account">Hesap Ekle</string>
<string name="action_online">Çevrimiçi</string> <string name="action_online">Çevrimiçi</string>
<string name="action_away">Uzakta</string> <string name="action_away">Uzakta</string>
<string name="action_busy">Meşgul</string> <string name="action_busy">Meşgul</string>
...@@ -196,6 +195,8 @@ ...@@ -196,6 +195,8 @@
<item quantity="other">%1$s reacted with %2$s</item> <!-- TODO - Add proper translation --> <item quantity="other">%1$s reacted with %2$s</item> <!-- TODO - Add proper translation -->
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Kimlik bilgileri başarıyla kaydedildi</string> <string name="msg_credentials_saved_successfully">Kimlik bilgileri başarıyla kaydedildi</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Preferences messages --> <!-- Preferences messages -->
<string name="msg_analytics_tracking">İstatistik takibi</string> <string name="msg_analytics_tracking">İstatistik takibi</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">Attach a file</string> <!-- TODO Add translation --> <string name="action_attach_a_files">Attach a file</string> <!-- TODO Add translation -->
<string name="action_confirm_password">Підтвердження зміни пароля</string> <string name="action_confirm_password">Підтвердження зміни пароля</string>
<string name="action_join_chat">Приєднатися до чату</string> <string name="action_join_chat">Приєднатися до чату</string>
<string name="action_add_account">Додати аккаунт</string>
<string name="action_online">Онлайн</string> <string name="action_online">Онлайн</string>
<string name="action_away">Відійшов</string> <string name="action_away">Відійшов</string>
<string name="action_busy">Зайнятий</string> <string name="action_busy">Зайнятий</string>
...@@ -180,6 +179,8 @@ ...@@ -180,6 +179,8 @@
<item quantity="many">%1$s reacted with %2$s</item> <!-- TODO - Add proper translation --> <item quantity="many">%1$s reacted with %2$s</item> <!-- TODO - Add proper translation -->
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Облікові дані було успішно збережено</string> <string name="msg_credentials_saved_successfully">Облікові дані було успішно збережено</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Приватний</string> <string name="msg_private_channel">Приватний</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">添加附件</string> <string name="action_attach_a_files">添加附件</string>
<string name="action_confirm_password">确认修改密码</string> <string name="action_confirm_password">确认修改密码</string>
<string name="action_join_chat">加入聊天</string> <string name="action_join_chat">加入聊天</string>
<string name="action_add_account">添加账户</string>
<string name="action_online">在线</string> <string name="action_online">在线</string>
<string name="action_away">离开</string> <string name="action_away">离开</string>
<string name="action_busy">忙碌</string> <string name="action_busy">忙碌</string>
...@@ -175,6 +174,8 @@ ...@@ -175,6 +174,8 @@
<item quantity="other">%1$s 使用了 %2$s</item> <item quantity="other">%1$s 使用了 %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">凭证成功保存</string> <string name="msg_credentials_saved_successfully">凭证成功保存</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">隐私</string> <string name="msg_private_channel">隐私</string>
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
<string name="action_attach_a_files">添加檔案</string> <string name="action_attach_a_files">添加檔案</string>
<string name="action_confirm_password">確認修改密碼</string> <string name="action_confirm_password">確認修改密碼</string>
<string name="action_join_chat">加入聊天</string> <string name="action_join_chat">加入聊天</string>
<string name="action_add_account">新增帳戶</string>
<string name="action_online">線上</string> <string name="action_online">線上</string>
<string name="action_away">離線</string> <string name="action_away">離線</string>
<string name="action_busy">忙碌</string> <string name="action_busy">忙碌</string>
...@@ -175,6 +174,8 @@ ...@@ -175,6 +174,8 @@
<item quantity="other">%1$s 使用了 %2$s</item> <item quantity="other">%1$s 使用了 %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">憑證保存成功</string> <string name="msg_credentials_saved_successfully">憑證保存成功</string>
<string name="msg_server">Server</string> <!-- TODO Translate -->
<string name="msg_add_new_server">Add New Server</string> <!-- TODO Translate -->
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">隱私</string> <string name="msg_private_channel">隱私</string>
......
...@@ -56,7 +56,6 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -56,7 +56,6 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string name="action_attach_a_files">Attach a file</string> <string name="action_attach_a_files">Attach a file</string>
<string name="action_confirm_password">Confirm Password Change</string> <string name="action_confirm_password">Confirm Password Change</string>
<string name="action_join_chat">Join Chat</string> <string name="action_join_chat">Join Chat</string>
<string name="action_add_account">Add account</string>
<string name="action_online">Online</string> <string name="action_online">Online</string>
<string name="action_away">Away</string> <string name="action_away">Away</string>
<string name="action_busy">Busy</string> <string name="action_busy">Busy</string>
...@@ -191,6 +190,8 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -191,6 +190,8 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<item quantity="other">%1$s reacted with %2$s</item> <item quantity="other">%1$s reacted with %2$s</item>
</plurals> </plurals>
<string name="msg_credentials_saved_successfully">Credentials saved successfully</string> <string name="msg_credentials_saved_successfully">Credentials saved successfully</string>
<string name="msg_server">Server</string>
<string name="msg_add_new_server">Add New Server</string>
<!-- Create channel messages --> <!-- Create channel messages -->
<string name="msg_private_channel">Private</string> <string name="msg_private_channel">Private</string>
......
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