Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
AloqaIM-Android
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
AloqaIM-Android
Commits
a5488355
Commit
a5488355
authored
Apr 18, 2019
by
Filipe de Lima Brito
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of github.com:RocketChat/Rocket.Chat.Android into new/directory
parents
d1b4d63b
84bdd7c6
Changes
27
Show whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
166 additions
and
126 deletions
+166
-126
Menu.kt
app/src/main/java/chat/rocket/android/chatdetails/ui/Menu.kt
+1
-1
ChatRoomFragment.kt
.../java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt
+61
-7
AndroidPermissionsHelper.kt
...va/chat/rocket/android/helper/AndroidPermissionsHelper.kt
+39
-2
ImageHelper.kt
app/src/main/java/chat/rocket/android/helper/ImageHelper.kt
+3
-22
SettingsFragment.kt
.../java/chat/rocket/android/settings/ui/SettingsFragment.kt
+5
-6
UserDetailsFragment.kt
...chat/rocket/android/userdetails/ui/UserDetailsFragment.kt
+4
-1
VideoConferenceActivity.kt
...ket/android/videoconference/ui/VideoConferenceActivity.kt
+17
-29
avatar_profile.xml
app/src/main/res/layout/avatar_profile.xml
+1
-1
fragment_preferences.xml
app/src/main/res/layout/fragment_preferences.xml
+0
-52
fragment_settings.xml
app/src/main/res/layout/fragment_settings.xml
+2
-4
strings.xml
app/src/main/res/values-ar/strings.xml
+2
-0
strings.xml
app/src/main/res/values-de/strings.xml
+2
-0
strings.xml
app/src/main/res/values-es/strings.xml
+2
-0
strings.xml
app/src/main/res/values-fa/strings.xml
+2
-0
strings.xml
app/src/main/res/values-fr/strings.xml
+2
-0
strings.xml
app/src/main/res/values-hi-rIN/strings.xml
+2
-0
strings.xml
app/src/main/res/values-it/strings.xml
+2
-0
strings.xml
app/src/main/res/values-ja/strings.xml
+2
-0
strings.xml
app/src/main/res/values-pt-rBR/strings.xml
+2
-0
strings.xml
app/src/main/res/values-pt-rPT/strings.xml
+2
-0
strings.xml
app/src/main/res/values-ru-rRU/strings.xml
+2
-0
strings.xml
app/src/main/res/values-tr/strings.xml
+2
-0
strings.xml
app/src/main/res/values-uk/strings.xml
+2
-0
strings.xml
app/src/main/res/values-zh-rCN/strings.xml
+2
-0
strings.xml
app/src/main/res/values-zh-rTW/strings.xml
+2
-0
strings.xml
app/src/main/res/values/strings.xml
+2
-0
dependencies.gradle
dependencies.gradle
+1
-1
No files found.
app/src/main/java/chat/rocket/android/chatdetails/ui/Menu.kt
View file @
a5488355
...
@@ -13,7 +13,7 @@ internal fun ChatDetailsFragment.setupMenu(menu: Menu) {
...
@@ -13,7 +13,7 @@ internal fun ChatDetailsFragment.setupMenu(menu: Menu) {
with
(
settings
.
get
(
it
))
{
with
(
settings
.
get
(
it
))
{
if
(
isJitsiEnabled
())
{
if
(
isJitsiEnabled
())
{
if
(
roomTypeOf
(
chatRoomType
)
!
is
RoomType
.
DirectMessage
&&
!
isJitsiEnabledForChannels
())
{
if
(
roomTypeOf
(
chatRoomType
)
!
is
RoomType
.
DirectMessage
&&
!
isJitsiEnabledForChannels
())
{
return
return
@let
}
}
menu
.
add
(
menu
.
add
(
Menu
.
NONE
,
Menu
.
NONE
,
...
...
app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt
View file @
a5488355
...
@@ -5,6 +5,7 @@ import android.content.ClipData
...
@@ -5,6 +5,7 @@ import android.content.ClipData
import
android.content.ClipboardManager
import
android.content.ClipboardManager
import
android.content.Context
import
android.content.Context
import
android.content.Intent
import
android.content.Intent
import
android.content.pm.PackageManager
import
android.graphics.drawable.Drawable
import
android.graphics.drawable.Drawable
import
android.net.Uri
import
android.net.Uri
import
android.os.Bundle
import
android.os.Bundle
...
@@ -61,9 +62,13 @@ import chat.rocket.android.emoji.EmojiPickerPopup
...
@@ -61,9 +62,13 @@ import chat.rocket.android.emoji.EmojiPickerPopup
import
chat.rocket.android.emoji.EmojiReactionListener
import
chat.rocket.android.emoji.EmojiReactionListener
import
chat.rocket.android.emoji.internal.isCustom
import
chat.rocket.android.emoji.internal.isCustom
import
chat.rocket.android.helper.EndlessRecyclerViewScrollListener
import
chat.rocket.android.helper.EndlessRecyclerViewScrollListener
import
chat.rocket.android.helper.ImageHelper
import
chat.rocket.android.helper.KeyboardHelper
import
chat.rocket.android.helper.KeyboardHelper
import
chat.rocket.android.helper.MessageParser
import
chat.rocket.android.helper.MessageParser
import
chat.rocket.android.helper.AndroidPermissionsHelper
import
chat.rocket.android.helper.AndroidPermissionsHelper.getCameraPermission
import
chat.rocket.android.helper.AndroidPermissionsHelper.getWriteExternalStoragePermission
import
chat.rocket.android.helper.AndroidPermissionsHelper.hasCameraPermission
import
chat.rocket.android.helper.AndroidPermissionsHelper.hasWriteExternalStoragePermission
import
chat.rocket.android.util.extension.asObservable
import
chat.rocket.android.util.extension.asObservable
import
chat.rocket.android.util.extension.createImageFile
import
chat.rocket.android.util.extension.createImageFile
import
chat.rocket.android.util.extensions.circularRevealOrUnreveal
import
chat.rocket.android.util.extensions.circularRevealOrUnreveal
...
@@ -81,6 +86,7 @@ import chat.rocket.common.model.RoomType
...
@@ -81,6 +86,7 @@ import chat.rocket.common.model.RoomType
import
chat.rocket.common.model.roomTypeOf
import
chat.rocket.common.model.roomTypeOf
import
chat.rocket.core.internal.realtime.socket.model.State
import
chat.rocket.core.internal.realtime.socket.model.State
import
com.bumptech.glide.Glide
import
com.bumptech.glide.Glide
import
com.google.android.material.snackbar.Snackbar
import
dagger.android.support.AndroidSupportInjection
import
dagger.android.support.AndroidSupportInjection
import
io.reactivex.Observable
import
io.reactivex.Observable
import
io.reactivex.disposables.CompositeDisposable
import
io.reactivex.disposables.CompositeDisposable
...
@@ -886,8 +892,14 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -886,8 +892,14 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
button_add_reaction_or_show_keyboard
.
setOnClickListener
{
toggleKeyboard
()
}
button_add_reaction_or_show_keyboard
.
setOnClickListener
{
toggleKeyboard
()
}
button_take_a_photo
.
setOnClickListener
{
button_take_a_photo
.
setOnClickListener
{
// Check for camera permission
context
?.
let
{
if
(
hasCameraPermission
(
it
))
{
dispatchTakePictureIntent
()
dispatchTakePictureIntent
()
}
else
{
getCameraPermission
(
this
)
}
}
handler
.
postDelayed
({
handler
.
postDelayed
({
hideAttachmentOptions
()
hideAttachmentOptions
()
},
400
)
},
400
)
...
@@ -905,11 +917,10 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -905,11 +917,10 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
button_drawing
.
setOnClickListener
{
button_drawing
.
setOnClickListener
{
activity
?.
let
{
fragmentActivity
->
activity
?.
let
{
fragmentActivity
->
if
(!
ImageHelper
.
canWriteToExternalStorage
(
fragmentActivity
))
{
if
(!
hasWriteExternalStoragePermission
(
fragmentActivity
))
{
ImageHelper
.
checkWritingPermission
(
fragmentActivity
)
getWriteExternalStoragePermission
(
this
)
}
else
{
}
else
{
val
intent
=
Intent
(
fragmentActivity
,
DrawingActivity
::
class
.
java
)
dispatchDrawingIntent
()
startActivityForResult
(
intent
,
REQUEST_CODE_FOR_DRAW
)
}
}
}
}
...
@@ -920,6 +931,11 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -920,6 +931,11 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
}
}
}
}
private
fun
dispatchDrawingIntent
()
{
val
intent
=
Intent
(
activity
,
DrawingActivity
::
class
.
java
)
startActivityForResult
(
intent
,
REQUEST_CODE_FOR_DRAW
)
}
private
fun
dispatchTakePictureIntent
()
{
private
fun
dispatchTakePictureIntent
()
{
Intent
(
MediaStore
.
ACTION_IMAGE_CAPTURE
).
also
{
takePictureIntent
->
Intent
(
MediaStore
.
ACTION_IMAGE_CAPTURE
).
also
{
takePictureIntent
->
// Create the File where the photo should go
// Create the File where the photo should go
...
@@ -940,6 +956,44 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -940,6 +956,44 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
}
}
}
}
override
fun
onRequestPermissionsResult
(
requestCode
:
Int
,
permissions
:
Array
<
out
String
>,
grantResults
:
IntArray
)
{
super
.
onRequestPermissionsResult
(
requestCode
,
permissions
,
grantResults
)
when
(
requestCode
)
{
AndroidPermissionsHelper
.
CAMERA_CODE
->
{
if
(
grantResults
.
isNotEmpty
()
&&
grantResults
[
0
]
==
PackageManager
.
PERMISSION_GRANTED
)
{
// permission was granted
dispatchTakePictureIntent
()
}
else
{
// permission denied
Snackbar
.
make
(
root_layout
,
R
.
string
.
msg_camera_permission_denied
,
Snackbar
.
LENGTH_SHORT
).
show
()
}
return
}
AndroidPermissionsHelper
.
WRITE_EXTERNAL_STORAGE_CODE
->
{
if
(
grantResults
.
isNotEmpty
()
&&
grantResults
[
0
]
==
PackageManager
.
PERMISSION_GRANTED
)
{
// permission was granted
dispatchDrawingIntent
()
}
else
{
// permission denied
Snackbar
.
make
(
root_layout
,
R
.
string
.
msg_storage_permission_denied
,
Snackbar
.
LENGTH_SHORT
).
show
()
}
return
}
}
}
private
fun
getDraftMessage
()
{
private
fun
getDraftMessage
()
{
val
unfinishedMessage
=
presenter
.
getDraftUnfinishedMessage
()
val
unfinishedMessage
=
presenter
.
getDraftUnfinishedMessage
()
if
(
unfinishedMessage
.
isNotNullNorEmpty
())
{
if
(
unfinishedMessage
.
isNotNullNorEmpty
())
{
...
...
app/src/main/java/chat/rocket/android/helper/AndroidPermissionsHelper.kt
View file @
a5488355
package
chat.rocket.android.helper
package
chat.rocket.android.helper
import
android.Manifest
import
android.app.Activity
import
android.app.Activity
import
android.content.Context
import
android.content.Context
import
android.content.pm.PackageManager
import
android.content.pm.PackageManager
import
android.view.ContextThemeWrapper
import
androidx.core.app.ActivityCompat
import
androidx.core.app.ActivityCompat
import
androidx.core.content.ContextCompat
import
androidx.core.content.ContextCompat
import
androidx.fragment.app.Fragment
object
AndroidPermissionsHelper
{
object
AndroidPermissionsHelper
{
const
val
WRITE_EXTERNAL_STORAGE_CODE
=
1
const
val
WRITE_EXTERNAL_STORAGE_CODE
=
1
const
val
CAMERA_CODE
=
2
fun
checkPermission
(
context
:
Context
,
permission
:
String
):
Boolean
{
private
fun
checkPermission
(
context
:
Context
,
permission
:
String
):
Boolean
{
return
ContextCompat
.
checkSelfPermission
(
return
ContextCompat
.
checkSelfPermission
(
context
,
context
,
permission
permission
)
==
PackageManager
.
PERMISSION_GRANTED
)
==
PackageManager
.
PERMISSION_GRANTED
}
}
fun
requestPermission
(
context
:
Activity
,
permission
:
String
,
requestCode
:
Int
)
{
private
fun
requestPermission
(
context
:
Activity
,
permission
:
String
,
requestCode
:
Int
)
{
ActivityCompat
.
requestPermissions
(
context
,
arrayOf
(
permission
),
requestCode
)
ActivityCompat
.
requestPermissions
(
context
,
arrayOf
(
permission
),
requestCode
)
}
}
fun
hasCameraPermission
(
context
:
Context
):
Boolean
{
return
AndroidPermissionsHelper
.
checkPermission
(
context
,
Manifest
.
permission
.
CAMERA
)
}
fun
getCameraPermission
(
fragment
:
Fragment
)
{
fragment
.
requestPermissions
(
arrayOf
(
Manifest
.
permission
.
CAMERA
),
CAMERA_CODE
)
}
fun
hasWriteExternalStoragePermission
(
context
:
Context
):
Boolean
{
return
checkPermission
(
context
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
)
}
fun
getWriteExternalStoragePermission
(
fragment
:
Fragment
)
{
fragment
.
requestPermissions
(
arrayOf
(
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
),
WRITE_EXTERNAL_STORAGE_CODE
)
}
fun
checkWritingPermission
(
context
:
Context
)
{
if
(
context
is
ContextThemeWrapper
)
{
val
activity
=
if
(
context
.
baseContext
is
Activity
)
context
.
baseContext
as
Activity
else
context
as
Activity
AndroidPermissionsHelper
.
requestPermission
(
activity
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
AndroidPermissionsHelper
.
WRITE_EXTERNAL_STORAGE_CODE
)
}
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/helper/ImageHelper.kt
View file @
a5488355
package
chat.rocket.android.helper
package
chat.rocket.android.helper
import
android.Manifest
import
android.app.Activity
import
android.content.Context
import
android.content.Context
import
android.graphics.Color
import
android.graphics.Color
import
android.graphics.Typeface
import
android.graphics.Typeface
...
@@ -9,7 +7,6 @@ import android.media.MediaScannerConnection
...
@@ -9,7 +7,6 @@ import android.media.MediaScannerConnection
import
android.os.Environment
import
android.os.Environment
import
android.text.TextUtils
import
android.text.TextUtils
import
android.util.TypedValue
import
android.util.TypedValue
import
android.view.ContextThemeWrapper
import
android.view.ViewGroup
import
android.view.ViewGroup
import
android.widget.ImageView
import
android.widget.ImageView
import
android.widget.TextView
import
android.widget.TextView
...
@@ -18,6 +15,8 @@ import androidx.appcompat.widget.Toolbar
...
@@ -18,6 +15,8 @@ import androidx.appcompat.widget.Toolbar
import
androidx.core.net.toUri
import
androidx.core.net.toUri
import
androidx.core.view.setPadding
import
androidx.core.view.setPadding
import
chat.rocket.android.R
import
chat.rocket.android.R
import
chat.rocket.android.helper.AndroidPermissionsHelper.checkWritingPermission
import
chat.rocket.android.helper.AndroidPermissionsHelper.hasWriteExternalStoragePermission
import
com.facebook.binaryresource.FileBinaryResource
import
com.facebook.binaryresource.FileBinaryResource
import
com.facebook.cache.common.CacheKey
import
com.facebook.cache.common.CacheKey
import
com.facebook.imageformat.ImageFormatChecker
import
com.facebook.imageformat.ImageFormatChecker
...
@@ -117,7 +116,7 @@ object ImageHelper {
...
@@ -117,7 +116,7 @@ object ImageHelper {
}
}
private
fun
saveImage
(
context
:
Context
):
Boolean
{
private
fun
saveImage
(
context
:
Context
):
Boolean
{
if
(!
canWriteToExternalStorage
(
context
))
{
if
(!
hasWriteExternalStoragePermission
(
context
))
{
checkWritingPermission
(
context
)
checkWritingPermission
(
context
)
return
false
return
false
}
}
...
@@ -152,22 +151,4 @@ object ImageHelper {
...
@@ -152,22 +151,4 @@ object ImageHelper {
}
}
return
true
return
true
}
}
fun
canWriteToExternalStorage
(
context
:
Context
):
Boolean
{
return
AndroidPermissionsHelper
.
checkPermission
(
context
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
)
}
fun
checkWritingPermission
(
context
:
Context
)
{
if
(
context
is
ContextThemeWrapper
)
{
val
activity
=
if
(
context
.
baseContext
is
Activity
)
context
.
baseContext
as
Activity
else
context
as
Activity
AndroidPermissionsHelper
.
requestPermission
(
activity
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
AndroidPermissionsHelper
.
WRITE_EXTERNAL_STORAGE_CODE
)
}
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/settings/ui/SettingsFragment.kt
View file @
a5488355
...
@@ -23,7 +23,6 @@ import chat.rocket.android.settings.presentation.SettingsView
...
@@ -23,7 +23,6 @@ import chat.rocket.android.settings.presentation.SettingsView
import
chat.rocket.android.util.extensions.inflate
import
chat.rocket.android.util.extensions.inflate
import
chat.rocket.android.util.extensions.showToast
import
chat.rocket.android.util.extensions.showToast
import
chat.rocket.android.util.invalidateFirebaseToken
import
chat.rocket.android.util.invalidateFirebaseToken
import
com.bumptech.glide.Glide
import
dagger.android.support.AndroidSupportInjection
import
dagger.android.support.AndroidSupportInjection
import
kotlinx.android.synthetic.main.app_bar.*
import
kotlinx.android.synthetic.main.app_bar.*
import
kotlinx.android.synthetic.main.fragment_settings.*
import
kotlinx.android.synthetic.main.fragment_settings.*
...
@@ -65,7 +64,7 @@ class SettingsFragment : Fragment(), SettingsView {
...
@@ -65,7 +64,7 @@ class SettingsFragment : Fragment(), SettingsView {
isDeleteAccountEnabled
:
Boolean
,
isDeleteAccountEnabled
:
Boolean
,
serverVersion
:
String
serverVersion
:
String
)
{
)
{
context
?.
let
{
Glide
.
with
(
it
).
load
(
avatar
).
into
(
image_avatar
)
}
image_avatar
.
setImageURI
(
avatar
)
text_display_name
.
text
=
displayName
text_display_name
.
text
=
displayName
...
@@ -89,7 +88,7 @@ class SettingsFragment : Fragment(), SettingsView {
...
@@ -89,7 +88,7 @@ class SettingsFragment : Fragment(), SettingsView {
text_server_version
.
text
=
getString
(
R
.
string
.
msg_server_version
,
serverVersion
)
text_server_version
.
text
=
getString
(
R
.
string
.
msg_server_version
,
serverVersion
)
text_logout
.
setOnClickListener
{
showLogoutDialog
()}
text_logout
.
setOnClickListener
{
showLogoutDialog
()
}
with
(
text_administration
)
{
with
(
text_administration
)
{
isVisible
=
isAdministrationEnabled
isVisible
=
isAdministrationEnabled
...
@@ -177,7 +176,7 @@ class SettingsFragment : Fragment(), SettingsView {
...
@@ -177,7 +176,7 @@ class SettingsFragment : Fragment(), SettingsView {
context
?.
let
{
context
?.
let
{
val
builder
=
AlertDialog
.
Builder
(
it
)
val
builder
=
AlertDialog
.
Builder
(
it
)
builder
.
setTitle
(
R
.
string
.
title_are_you_sure
)
builder
.
setTitle
(
R
.
string
.
title_are_you_sure
)
.
setPositiveButton
(
R
.
string
.
action_logout
)
{
_
,
_
->
presenter
.
logout
()}
.
setPositiveButton
(
R
.
string
.
action_logout
)
{
_
,
_
->
presenter
.
logout
()
}
.
setNegativeButton
(
android
.
R
.
string
.
no
)
{
dialog
,
_
->
dialog
.
cancel
()
}
.
setNegativeButton
(
android
.
R
.
string
.
no
)
{
dialog
,
_
->
dialog
.
cancel
()
}
.
create
()
.
create
()
.
show
()
.
show
()
...
...
app/src/main/java/chat/rocket/android/userdetails/ui/UserDetailsFragment.kt
View file @
a5488355
...
@@ -20,6 +20,7 @@ import chat.rocket.android.util.extensions.showToast
...
@@ -20,6 +20,7 @@ import chat.rocket.android.util.extensions.showToast
import
chat.rocket.android.util.extensions.ui
import
chat.rocket.android.util.extensions.ui
import
com.bumptech.glide.Glide
import
com.bumptech.glide.Glide
import
com.bumptech.glide.load.MultiTransformation
import
com.bumptech.glide.load.MultiTransformation
import
com.bumptech.glide.load.engine.DiskCacheStrategy
import
com.bumptech.glide.load.resource.bitmap.CenterCrop
import
com.bumptech.glide.load.resource.bitmap.CenterCrop
import
com.bumptech.glide.load.resource.bitmap.RoundedCorners
import
com.bumptech.glide.load.resource.bitmap.RoundedCorners
import
com.bumptech.glide.request.RequestOptions
import
com.bumptech.glide.request.RequestOptions
...
@@ -86,6 +87,8 @@ class UserDetailsFragment : Fragment(), UserDetailsView {
...
@@ -86,6 +87,8 @@ class UserDetailsFragment : Fragment(), UserDetailsView {
isVideoCallAllowed
:
Boolean
isVideoCallAllowed
:
Boolean
)
{
)
{
val
requestBuilder
=
Glide
.
with
(
this
).
load
(
avatarUrl
)
val
requestBuilder
=
Glide
.
with
(
this
).
load
(
avatarUrl
)
.
apply
(
RequestOptions
.
skipMemoryCacheOf
(
true
))
.
apply
(
RequestOptions
.
diskCacheStrategyOf
(
DiskCacheStrategy
.
NONE
))
requestBuilder
.
apply
(
requestBuilder
.
apply
(
RequestOptions
.
bitmapTransform
(
MultiTransformation
(
BlurTransformation
(),
CenterCrop
()))
RequestOptions
.
bitmapTransform
(
MultiTransformation
(
BlurTransformation
(),
CenterCrop
()))
...
...
app/src/main/java/chat/rocket/android/videoconference/ui/VideoConferenceActivity.kt
View file @
a5488355
...
@@ -3,14 +3,15 @@ package chat.rocket.android.videoconference.ui
...
@@ -3,14 +3,15 @@ package chat.rocket.android.videoconference.ui
import
android.content.Context
import
android.content.Context
import
android.content.Intent
import
android.content.Intent
import
android.os.Bundle
import
android.os.Bundle
import
androidx.core.os.bundleOf
import
chat.rocket.android.videoconference.presenter.JitsiVideoConferenceView
import
chat.rocket.android.videoconference.presenter.JitsiVideoConferenceView
import
chat.rocket.android.videoconference.presenter.VideoConferencePresenter
import
chat.rocket.android.videoconference.presenter.VideoConferencePresenter
import
dagger.android.AndroidInjection
import
dagger.android.AndroidInjection
import
org.jitsi.meet.sdk.JitsiMeetActivity
import
org.jitsi.meet.sdk.JitsiMeetActivity
import
org.jitsi.meet.sdk.JitsiMeetConferenceOptions
import
org.jitsi.meet.sdk.JitsiMeetView
import
org.jitsi.meet.sdk.JitsiMeetView
import
org.jitsi.meet.sdk.JitsiMeetViewListener
import
org.jitsi.meet.sdk.JitsiMeetViewListener
import
timber.log.Timber
import
timber.log.Timber
import
java.net.URL
import
javax.inject.Inject
import
javax.inject.Inject
fun
Context
.
videoConferenceIntent
(
chatRoomId
:
String
,
chatRoomType
:
String
):
Intent
=
fun
Context
.
videoConferenceIntent
(
chatRoomId
:
String
,
chatRoomType
:
String
):
Intent
=
...
@@ -23,8 +24,7 @@ private const val INTENT_CHAT_ROOM_TYPE = "chat_room_type"
...
@@ -23,8 +24,7 @@ private const val INTENT_CHAT_ROOM_TYPE = "chat_room_type"
class
VideoConferenceActivity
:
JitsiMeetActivity
(),
JitsiVideoConferenceView
,
class
VideoConferenceActivity
:
JitsiMeetActivity
(),
JitsiVideoConferenceView
,
JitsiMeetViewListener
{
JitsiMeetViewListener
{
@Inject
@Inject
lateinit
var
presenter
:
VideoConferencePresenter
lateinit
var
presenter
:
VideoConferencePresenter
private
lateinit
var
chatRoomId
:
String
private
lateinit
var
chatRoomId
:
String
private
lateinit
var
chatRoomType
:
String
private
lateinit
var
chatRoomType
:
String
private
var
view
:
JitsiMeetView
?
=
null
private
var
view
:
JitsiMeetView
?
=
null
...
@@ -34,9 +34,7 @@ class VideoConferenceActivity : JitsiMeetActivity(), JitsiVideoConferenceView,
...
@@ -34,9 +34,7 @@ class VideoConferenceActivity : JitsiMeetActivity(), JitsiVideoConferenceView,
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
chatRoomId
=
intent
.
getStringExtra
(
INTENT_CHAT_ROOM_ID
)
chatRoomId
=
intent
.
getStringExtra
(
INTENT_CHAT_ROOM_ID
)
requireNotNull
(
chatRoomId
)
{
"no chat_room_id provided in Intent extras"
}
chatRoomType
=
intent
.
getStringExtra
(
INTENT_CHAT_ROOM_TYPE
)
chatRoomType
=
intent
.
getStringExtra
(
INTENT_CHAT_ROOM_TYPE
)
requireNotNull
(
chatRoomType
)
{
"no chat_room_type provided in Intent extras"
}
view
=
JitsiMeetView
(
this
)
view
=
JitsiMeetView
(
this
)
view
?.
listener
=
this
view
?.
listener
=
this
...
@@ -52,34 +50,24 @@ class VideoConferenceActivity : JitsiMeetActivity(), JitsiVideoConferenceView,
...
@@ -52,34 +50,24 @@ class VideoConferenceActivity : JitsiMeetActivity(), JitsiVideoConferenceView,
override
fun
onConferenceJoined
(
map
:
MutableMap
<
String
,
Any
>?)
=
override
fun
onConferenceJoined
(
map
:
MutableMap
<
String
,
Any
>?)
=
logJitsiMeetViewState
(
"Joined video conferencing"
,
map
)
logJitsiMeetViewState
(
"Joined video conferencing"
,
map
)
override
fun
onConferenceWillLeave
(
map
:
MutableMap
<
String
,
Any
>?)
=
override
fun
onConferenceTerminated
(
map
:
MutableMap
<
String
,
Any
>?)
{
logJitsiMeetViewState
(
"Leaving video conferencing"
,
map
)
map
?.
let
{
if
(
it
.
containsKey
(
"error"
))
{
override
fun
onConferenceLeft
(
map
:
MutableMap
<
String
,
Any
>?)
{
logJitsiMeetViewState
(
"Terminated video conferencing with error"
,
map
)
logJitsiMeetViewState
(
"Left video conferencing"
,
map
)
}
else
{
logJitsiMeetViewState
(
"Terminated video conferencing"
,
map
)
}
}
finishJitsiVideoConference
()
finishJitsiVideoConference
()
}
}
override
fun
onLoadConfigError
(
map
:
MutableMap
<
String
,
Any
>?)
=
logJitsiMeetViewState
(
"Error loading video conference config"
,
map
)
override
fun
onConferenceFailed
(
map
:
MutableMap
<
String
,
Any
>?)
=
logJitsiMeetViewState
(
"Video conference failed"
,
map
)
override
fun
startJitsiVideoConference
(
url
:
String
,
name
:
String
?)
{
override
fun
startJitsiVideoConference
(
url
:
String
,
name
:
String
?)
{
view
?.
loadURLObject
(
JitsiMeetConferenceOptions
.
Builder
()
bundleOf
(
.
setAudioMuted
(
true
)
"config"
to
bundleOf
(
.
setVideoMuted
(
true
)
"startWithAudioMuted"
to
true
,
.
setServerURL
(
URL
(
url
))
"startWithVideoMuted"
to
true
.
setAudioOnly
(
false
)
),
.
build
().
let
{
view
?.
join
(
it
)
}
"context"
to
bundleOf
(
"user"
to
bundleOf
(
"name"
to
name
),
"iss"
to
"rocketchat-android"
),
"url"
to
url
)
)
}
}
override
fun
finishJitsiVideoConference
()
{
override
fun
finishJitsiVideoConference
()
{
...
...
app/src/main/res/layout/avatar_profile.xml
View file @
a5488355
...
@@ -15,6 +15,6 @@
...
@@ -15,6 +15,6 @@
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:roundedCornerRadius=
"
2
dp"
/>
app:roundedCornerRadius=
"
4
dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_preferences.xml
deleted
100644 → 0
View file @
d1b4d63b
<?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=
"match_parent"
android:layout_margin=
"16dp"
tools:context=
"preferences.ui.PreferencesFragment"
>
<com.wang.avi.AVLoadingIndicatorView
android:id=
"@+id/view_loading"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
app:indicatorColor=
"@color/colorBlack"
app:indicatorName=
"BallPulseIndicator"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:visibility=
"visible"
/>
<TextView
android:id=
"@+id/text_analytics_tracking"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/msg_analytics_tracking"
android:textColor=
"@color/colorPrimaryText"
android:textSize=
"16sp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/text_analytics_tracking_description"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/msg_send_analytics_tracking"
android:textColor=
"@color/colorSecondaryText"
android:textSize=
"12sp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/text_analytics_tracking"
/>
<Switch
android:id=
"@+id/switch_analytics_tracking"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:checked=
"true"
app:layout_constraintBottom_toBottomOf=
"@+id/text_analytics_tracking_description"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/text_analytics_tracking"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_settings.xml
View file @
a5488355
...
@@ -34,14 +34,13 @@
...
@@ -34,14 +34,13 @@
android:paddingBottom=
"5dp"
android:paddingBottom=
"5dp"
app:layout_constraintTop_toTopOf=
"parent"
>
app:layout_constraintTop_toTopOf=
"parent"
>
<
Imag
eView
<
com.facebook.drawee.view.SimpleDrawe
eView
android:id=
"@+id/image_avatar"
android:id=
"@+id/image_avatar"
android:layout_width=
"48dp"
android:layout_width=
"48dp"
android:layout_height=
"48dp"
android:layout_height=
"48dp"
android:background=
"@drawable/bg_border_user_details_avatar"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:srcCompat=
"@tools:sample/avatars[6]
"
/>
app:roundedCornerRadius=
"4dp
"
/>
<TextView
<TextView
android:id=
"@+id/text_display_name"
android:id=
"@+id/text_display_name"
...
@@ -248,7 +247,6 @@
...
@@ -248,7 +247,6 @@
android:textColor=
"#DE000000"
android:textColor=
"#DE000000"
android:textSize=
"16sp"
android:textSize=
"16sp"
android:textStyle=
"normal"
android:textStyle=
"normal"
app:layout_constraintEnd_toStartOf=
"@id/switch_analytics_tracking"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
...
...
app/src/main/res/values-ar/strings.xml
View file @
a5488355
...
@@ -182,6 +182,8 @@
...
@@ -182,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-de/strings.xml
View file @
a5488355
...
@@ -173,6 +173,8 @@
...
@@ -173,6 +173,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-es/strings.xml
View file @
a5488355
...
@@ -193,6 +193,8 @@
...
@@ -193,6 +193,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"
>
Credenciales guardadas con éxito
</string>
<string
name=
"msg_credentials_saved_successfully"
>
Credenciales guardadas con éxito
</string>
<string
name=
"msg_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<!-- Preferences messages -->
<!-- Preferences messages -->
<string
name=
"msg_analytics_tracking"
>
Analytics tracking
</string>
<!-- TODO Add translation -->
<string
name=
"msg_analytics_tracking"
>
Analytics tracking
</string>
<!-- TODO Add translation -->
...
...
app/src/main/res/values-fa/strings.xml
View file @
a5488355
...
@@ -177,6 +177,8 @@
...
@@ -177,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-fr/strings.xml
View file @
a5488355
...
@@ -181,6 +181,8 @@
...
@@ -181,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-hi-rIN/strings.xml
View file @
a5488355
...
@@ -167,6 +167,8 @@
...
@@ -167,6 +167,8 @@
<string
name=
"msg_continue_with_wordpress"
><b>
WordPress
</b>
के साथ जारी रखें
</string>
<string
name=
"msg_continue_with_wordpress"
><b>
WordPress
</b>
के साथ जारी रखें
</string>
<string
name=
"msg_two_factor_authentication"
>
दो तरीकों से प्रमाणीकरण
</string>
<string
name=
"msg_two_factor_authentication"
>
दो तरीकों से प्रमाणीकरण
</string>
<string
name=
"msg__your_2fa_code"
>
आपका 2FA कोड क्या है?
</string>
<string
name=
"msg__your_2fa_code"
>
आपका 2FA कोड क्या है?
</string>
<string
name=
"msg_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<!-- Create channel messages -->
<!-- Create channel messages -->
<string
name=
"msg_private_channel"
>
प्राइवेट
</string>
<string
name=
"msg_private_channel"
>
प्राइवेट
</string>
...
...
app/src/main/res/values-it/strings.xml
View file @
a5488355
...
@@ -174,6 +174,8 @@
...
@@ -174,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-ja/strings.xml
View file @
a5488355
...
@@ -177,6 +177,8 @@
...
@@ -177,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-pt-rBR/strings.xml
View file @
a5488355
...
@@ -185,6 +185,8 @@
...
@@ -185,6 +185,8 @@
<string
name=
"msg_server"
>
Servidor
</string>
<string
name=
"msg_server"
>
Servidor
</string>
<string
name=
"msg_add_new_server"
>
Adicionar Novo Servidor
</string>
<string
name=
"msg_add_new_server"
>
Adicionar Novo Servidor
</string>
<string
name=
"msg_directory"
>
Diretório
</string>
<string
name=
"msg_directory"
>
Diretório
</string>
<string
name=
"msg_camera_permission_denied"
>
A permissão da câmera é necessária
</string>
<string
name=
"msg_storage_permission_denied"
>
A permissão de armazenamento é necessária
</string>
<!-- Create channel messages -->
<!-- Create channel messages -->
<string
name=
"msg_private_channel"
>
Privado
</string>
<string
name=
"msg_private_channel"
>
Privado
</string>
...
...
app/src/main/res/values-pt-rPT/strings.xml
View file @
a5488355
...
@@ -173,6 +173,8 @@
...
@@ -173,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-ru-rRU/strings.xml
View file @
a5488355
...
@@ -180,6 +180,8 @@
...
@@ -180,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-tr/strings.xml
View file @
a5488355
...
@@ -164,6 +164,8 @@
...
@@ -164,6 +164,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<!-- Create channel messages -->
<!-- Create channel messages -->
<string
name=
"msg_private_channel"
>
Özel
</string>
<string
name=
"msg_private_channel"
>
Özel
</string>
...
...
app/src/main/res/values-uk/strings.xml
View file @
a5488355
...
@@ -179,6 +179,8 @@
...
@@ -179,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-zh-rCN/strings.xml
View file @
a5488355
...
@@ -174,6 +174,8 @@
...
@@ -174,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-zh-rTW/strings.xml
View file @
a5488355
...
@@ -174,6 +174,8 @@
...
@@ -174,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<!-- TODO Add translation -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_server"
>
Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
<string
name=
"msg_directory"
>
Directory
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values/strings.xml
View file @
a5488355
...
@@ -190,6 +190,8 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
...
@@ -190,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_camera_permission_denied"
>
Camera permission is needed to open camera.
</string>
<string
name=
"msg_storage_permission_denied"
>
Storage permission is needed to open Drawing.
</string>
<string
name=
"msg_server"
>
Server
</string>
<string
name=
"msg_server"
>
Server
</string>
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<string
name=
"msg_add_new_server"
>
Add New Server
</string>
<string
name=
"msg_directory"
>
Directory
</string>
<string
name=
"msg_directory"
>
Directory
</string>
...
...
dependencies.gradle
View file @
a5488355
...
@@ -56,7 +56,7 @@ ext {
...
@@ -56,7 +56,7 @@ ext {
glide
:
'4.8.0'
,
glide
:
'4.8.0'
,
glideTransformations
:
'4.0.0'
,
glideTransformations
:
'4.0.0'
,
jitsi
:
'
1.2
1.0'
,
jitsi
:
'
2.
1.0'
,
// For testing
// For testing
junit
:
'4.12'
,
junit
:
'4.12'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment