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
0a28e57f
Unverified
Commit
0a28e57f
authored
Apr 18, 2019
by
Filipe de Lima Brito
Committed by
GitHub
Apr 18, 2019
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into favorite-channel-fix
parents
7fc56c24
5cd7e774
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
165 additions
and
125 deletions
+165
-125
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/chatroom/ui/ChatRoomFragment.kt
View file @
0a28e57f
...
...
@@ -5,6 +5,7 @@ import android.content.ClipData
import
android.content.ClipboardManager
import
android.content.Context
import
android.content.Intent
import
android.content.pm.PackageManager
import
android.graphics.drawable.Drawable
import
android.net.Uri
import
android.os.Bundle
...
...
@@ -61,9 +62,13 @@ import chat.rocket.android.emoji.EmojiPickerPopup
import
chat.rocket.android.emoji.EmojiReactionListener
import
chat.rocket.android.emoji.internal.isCustom
import
chat.rocket.android.helper.EndlessRecyclerViewScrollListener
import
chat.rocket.android.helper.ImageHelper
import
chat.rocket.android.helper.KeyboardHelper
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.createImageFile
import
chat.rocket.android.util.extensions.circularRevealOrUnreveal
...
...
@@ -81,6 +86,7 @@ import chat.rocket.common.model.RoomType
import
chat.rocket.common.model.roomTypeOf
import
chat.rocket.core.internal.realtime.socket.model.State
import
com.bumptech.glide.Glide
import
com.google.android.material.snackbar.Snackbar
import
dagger.android.support.AndroidSupportInjection
import
io.reactivex.Observable
import
io.reactivex.disposables.CompositeDisposable
...
...
@@ -904,8 +910,14 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
button_add_reaction_or_show_keyboard
.
setOnClickListener
{
toggleKeyboard
()
}
button_take_a_photo
.
setOnClickListener
{
dispatchTakePictureIntent
()
// Check for camera permission
context
?.
let
{
if
(
hasCameraPermission
(
it
))
{
dispatchTakePictureIntent
()
}
else
{
getCameraPermission
(
this
)
}
}
handler
.
postDelayed
({
hideAttachmentOptions
()
},
400
)
...
...
@@ -923,11 +935,10 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
button_drawing
.
setOnClickListener
{
activity
?.
let
{
fragmentActivity
->
if
(!
ImageHelper
.
canWriteToExternalStorage
(
fragmentActivity
))
{
ImageHelper
.
checkWritingPermission
(
fragmentActivity
)
if
(!
hasWriteExternalStoragePermission
(
fragmentActivity
))
{
getWriteExternalStoragePermission
(
this
)
}
else
{
val
intent
=
Intent
(
fragmentActivity
,
DrawingActivity
::
class
.
java
)
startActivityForResult
(
intent
,
REQUEST_CODE_FOR_DRAW
)
dispatchDrawingIntent
()
}
}
...
...
@@ -938,6 +949,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
()
{
Intent
(
MediaStore
.
ACTION_IMAGE_CAPTURE
).
also
{
takePictureIntent
->
// Create the File where the photo should go
...
...
@@ -958,6 +974,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
()
{
val
unfinishedMessage
=
presenter
.
getDraftUnfinishedMessage
()
if
(
unfinishedMessage
.
isNotNullNorEmpty
())
{
...
...
app/src/main/java/chat/rocket/android/helper/AndroidPermissionsHelper.kt
View file @
0a28e57f
package
chat.rocket.android.helper
import
android.Manifest
import
android.app.Activity
import
android.content.Context
import
android.content.pm.PackageManager
import
android.view.ContextThemeWrapper
import
androidx.core.app.ActivityCompat
import
androidx.core.content.ContextCompat
import
androidx.fragment.app.Fragment
object
AndroidPermissionsHelper
{
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
(
context
,
permission
)
==
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
)
}
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 @
0a28e57f
package
chat.rocket.android.helper
import
android.Manifest
import
android.app.Activity
import
android.content.Context
import
android.graphics.Color
import
android.graphics.Typeface
...
...
@@ -9,7 +7,6 @@ import android.media.MediaScannerConnection
import
android.os.Environment
import
android.text.TextUtils
import
android.util.TypedValue
import
android.view.ContextThemeWrapper
import
android.view.ViewGroup
import
android.widget.ImageView
import
android.widget.TextView
...
...
@@ -18,6 +15,8 @@ import androidx.appcompat.widget.Toolbar
import
androidx.core.net.toUri
import
androidx.core.view.setPadding
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.cache.common.CacheKey
import
com.facebook.imageformat.ImageFormatChecker
...
...
@@ -117,7 +116,7 @@ object ImageHelper {
}
private
fun
saveImage
(
context
:
Context
):
Boolean
{
if
(!
canWriteToExternalStorage
(
context
))
{
if
(!
hasWriteExternalStoragePermission
(
context
))
{
checkWritingPermission
(
context
)
return
false
}
...
...
@@ -152,22 +151,4 @@ object ImageHelper {
}
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 @
0a28e57f
...
...
@@ -23,7 +23,6 @@ import chat.rocket.android.settings.presentation.SettingsView
import
chat.rocket.android.util.extensions.inflate
import
chat.rocket.android.util.extensions.showToast
import
chat.rocket.android.util.invalidateFirebaseToken
import
com.bumptech.glide.Glide
import
dagger.android.support.AndroidSupportInjection
import
kotlinx.android.synthetic.main.app_bar.*
import
kotlinx.android.synthetic.main.fragment_settings.*
...
...
@@ -65,7 +64,7 @@ class SettingsFragment : Fragment(), SettingsView {
isDeleteAccountEnabled
:
Boolean
,
serverVersion
:
String
)
{
context
?.
let
{
Glide
.
with
(
it
).
load
(
avatar
).
into
(
image_avatar
)
}
image_avatar
.
setImageURI
(
avatar
)
text_display_name
.
text
=
displayName
...
...
@@ -89,7 +88,7 @@ class SettingsFragment : Fragment(), SettingsView {
text_server_version
.
text
=
getString
(
R
.
string
.
msg_server_version
,
serverVersion
)
text_logout
.
setOnClickListener
{
showLogoutDialog
()}
text_logout
.
setOnClickListener
{
showLogoutDialog
()
}
with
(
text_administration
)
{
isVisible
=
isAdministrationEnabled
...
...
@@ -143,8 +142,8 @@ class SettingsFragment : Fragment(), SettingsView {
private
fun
contactSupport
()
{
val
uriText
=
"mailto:${"
support
@rocket
.
chat
"}"
+
"?subject="
+
Uri
.
encode
(
getString
(
R
.
string
.
msg_android_app_support
))
+
"&body="
+
Uri
.
encode
(
getDeviceAndAppInformation
())
"?subject="
+
Uri
.
encode
(
getString
(
R
.
string
.
msg_android_app_support
))
+
"&body="
+
Uri
.
encode
(
getDeviceAndAppInformation
())
with
(
Intent
(
Intent
.
ACTION_SENDTO
))
{
data
=
uriText
.
toUri
()
...
...
@@ -177,7 +176,7 @@ class SettingsFragment : Fragment(), SettingsView {
context
?.
let
{
val
builder
=
AlertDialog
.
Builder
(
it
)
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
()
}
.
create
()
.
show
()
...
...
app/src/main/java/chat/rocket/android/userdetails/ui/UserDetailsFragment.kt
View file @
0a28e57f
...
...
@@ -20,6 +20,7 @@ import chat.rocket.android.util.extensions.showToast
import
chat.rocket.android.util.extensions.ui
import
com.bumptech.glide.Glide
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.RoundedCorners
import
com.bumptech.glide.request.RequestOptions
...
...
@@ -86,6 +87,8 @@ class UserDetailsFragment : Fragment(), UserDetailsView {
isVideoCallAllowed
:
Boolean
)
{
val
requestBuilder
=
Glide
.
with
(
this
).
load
(
avatarUrl
)
.
apply
(
RequestOptions
.
skipMemoryCacheOf
(
true
))
.
apply
(
RequestOptions
.
diskCacheStrategyOf
(
DiskCacheStrategy
.
NONE
))
requestBuilder
.
apply
(
RequestOptions
.
bitmapTransform
(
MultiTransformation
(
BlurTransformation
(),
CenterCrop
()))
...
...
@@ -147,4 +150,4 @@ class UserDetailsFragment : Fragment(), UserDetailsView {
private
fun
setupListeners
()
{
image_arrow_back
.
setOnClickListener
{
activity
?.
onBackPressed
()
}
}
}
\ No newline at end of file
}
app/src/main/java/chat/rocket/android/videoconference/ui/VideoConferenceActivity.kt
View file @
0a28e57f
...
...
@@ -3,14 +3,15 @@ package chat.rocket.android.videoconference.ui
import
android.content.Context
import
android.content.Intent
import
android.os.Bundle
import
androidx.core.os.bundleOf
import
chat.rocket.android.videoconference.presenter.JitsiVideoConferenceView
import
chat.rocket.android.videoconference.presenter.VideoConferencePresenter
import
dagger.android.AndroidInjection
import
org.jitsi.meet.sdk.JitsiMeetActivity
import
org.jitsi.meet.sdk.JitsiMeetConferenceOptions
import
org.jitsi.meet.sdk.JitsiMeetView
import
org.jitsi.meet.sdk.JitsiMeetViewListener
import
timber.log.Timber
import
java.net.URL
import
javax.inject.Inject
fun
Context
.
videoConferenceIntent
(
chatRoomId
:
String
,
chatRoomType
:
String
):
Intent
=
...
...
@@ -23,8 +24,7 @@ private const val INTENT_CHAT_ROOM_TYPE = "chat_room_type"
class
VideoConferenceActivity
:
JitsiMeetActivity
(),
JitsiVideoConferenceView
,
JitsiMeetViewListener
{
@Inject
lateinit
var
presenter
:
VideoConferencePresenter
@Inject
lateinit
var
presenter
:
VideoConferencePresenter
private
lateinit
var
chatRoomId
:
String
private
lateinit
var
chatRoomType
:
String
private
var
view
:
JitsiMeetView
?
=
null
...
...
@@ -34,9 +34,7 @@ class VideoConferenceActivity : JitsiMeetActivity(), JitsiVideoConferenceView,
super
.
onCreate
(
savedInstanceState
)
chatRoomId
=
intent
.
getStringExtra
(
INTENT_CHAT_ROOM_ID
)
requireNotNull
(
chatRoomId
)
{
"no chat_room_id provided in Intent extras"
}
chatRoomType
=
intent
.
getStringExtra
(
INTENT_CHAT_ROOM_TYPE
)
requireNotNull
(
chatRoomType
)
{
"no chat_room_type provided in Intent extras"
}
view
=
JitsiMeetView
(
this
)
view
?.
listener
=
this
...
...
@@ -52,34 +50,24 @@ class VideoConferenceActivity : JitsiMeetActivity(), JitsiVideoConferenceView,
override
fun
onConferenceJoined
(
map
:
MutableMap
<
String
,
Any
>?)
=
logJitsiMeetViewState
(
"Joined video conferencing"
,
map
)
override
fun
onConferenceWillLeave
(
map
:
MutableMap
<
String
,
Any
>?)
=
logJitsiMeetViewState
(
"Leaving video conferencing"
,
map
)
override
fun
onConferenceLeft
(
map
:
MutableMap
<
String
,
Any
>?)
{
logJitsiMeetViewState
(
"Left video conferencing"
,
map
)
override
fun
onConferenceTerminated
(
map
:
MutableMap
<
String
,
Any
>?)
{
map
?.
let
{
if
(
it
.
containsKey
(
"error"
))
{
logJitsiMeetViewState
(
"Terminated video conferencing with error"
,
map
)
}
else
{
logJitsiMeetViewState
(
"Terminated video conferencing"
,
map
)
}
}
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
?)
{
view
?.
loadURLObject
(
bundleOf
(
"config"
to
bundleOf
(
"startWithAudioMuted"
to
true
,
"startWithVideoMuted"
to
true
),
"context"
to
bundleOf
(
"user"
to
bundleOf
(
"name"
to
name
),
"iss"
to
"rocketchat-android"
),
"url"
to
url
)
)
JitsiMeetConferenceOptions
.
Builder
()
.
setAudioMuted
(
true
)
.
setVideoMuted
(
true
)
.
setServerURL
(
URL
(
url
))
.
setAudioOnly
(
false
)
.
build
().
let
{
view
?.
join
(
it
)
}
}
override
fun
finishJitsiVideoConference
()
{
...
...
app/src/main/res/layout/avatar_profile.xml
View file @
0a28e57f
...
...
@@ -15,6 +15,6 @@
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:roundedCornerRadius=
"
2
dp"
/>
app:roundedCornerRadius=
"
4
dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_preferences.xml
deleted
100644 → 0
View file @
7fc56c24
<?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 @
0a28e57f
...
...
@@ -34,14 +34,13 @@
android:paddingBottom=
"5dp"
app:layout_constraintTop_toTopOf=
"parent"
>
<
Imag
eView
<
com.facebook.drawee.view.SimpleDrawe
eView
android:id=
"@+id/image_avatar"
android:layout_width=
"48dp"
android:layout_height=
"48dp"
android:background=
"@drawable/bg_border_user_details_avatar"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:srcCompat=
"@tools:sample/avatars[6]
"
/>
app:roundedCornerRadius=
"4dp
"
/>
<TextView
android:id=
"@+id/text_display_name"
...
...
@@ -248,7 +247,6 @@
android:textColor=
"#DE000000"
android:textSize=
"16sp"
android:textStyle=
"normal"
app:layout_constraintEnd_toStartOf=
"@id/switch_analytics_tracking"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
...
...
app/src/main/res/values-ar/strings.xml
View file @
0a28e57f
...
...
@@ -182,6 +182,8 @@
<item
quantity=
"two"
>
%1$s reacted with %2$s
</item>
</plurals>
<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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-de/strings.xml
View file @
0a28e57f
...
...
@@ -173,6 +173,8 @@
<item
quantity=
"other"
>
%1$s reagierte mit %2$s
</item>
</plurals>
<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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-es/strings.xml
View file @
0a28e57f
...
...
@@ -192,6 +192,8 @@
<item
quantity=
"other"
>
%1$s reacted with %2$s
</item>
<!-- TODO - Add proper translation -->
</plurals>
<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 -->
<string
name=
"msg_analytics_tracking"
>
Analytics tracking
</string>
<!-- TODO Add translation -->
...
...
app/src/main/res/values-fa/strings.xml
View file @
0a28e57f
...
...
@@ -177,6 +177,8 @@
<item
quantity=
"other"
>
%1$s reacted with %2$s
</item>
</plurals>
<!-- TODO Add translation -->
<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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-fr/strings.xml
View file @
0a28e57f
...
...
@@ -181,6 +181,8 @@
<item
quantity=
"other"
>
%1$s a réagi avec %2$s
</item>
</plurals>
<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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-hi-rIN/strings.xml
View file @
0a28e57f
...
...
@@ -167,6 +167,8 @@
<string
name=
"msg_continue_with_wordpress"
><b>
WordPress
</b>
के साथ जारी रखें
</string>
<string
name=
"msg_two_factor_authentication"
>
दो तरीकों से प्रमाणीकरण
</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 -->
<string
name=
"msg_private_channel"
>
प्राइवेट
</string>
...
...
app/src/main/res/values-it/strings.xml
View file @
0a28e57f
...
...
@@ -174,6 +174,8 @@
<item
quantity=
"other"
>
%1$s ha reagito con %2$s
</item>
</plurals>
<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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-ja/strings.xml
View file @
0a28e57f
...
...
@@ -177,6 +177,8 @@
<item
quantity=
"other"
>
%1$s reacted with %2$s
</item>
<!-- TODO - Add proper translation -->
</plurals>
<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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-pt-rBR/strings.xml
View file @
0a28e57f
...
...
@@ -182,6 +182,8 @@
<item
quantity=
"other"
>
%1$s reagiram com %2$s
</item>
</plurals>
<string
name=
"msg_credentials_saved_successfully"
>
Credenciais salvas com sucesso
</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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-pt-rPT/strings.xml
View file @
0a28e57f
...
...
@@ -173,6 +173,8 @@
<item
quantity=
"one"
>
%1$s reagiu com %2$s
</item>
<item
quantity=
"other"
>
%1$s reagiram com %2$s
</item>
</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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-ru-rRU/strings.xml
View file @
0a28e57f
...
...
@@ -180,6 +180,8 @@
<item
quantity=
"many"
>
%1$s реагируют с %2$s
</item>
</plurals>
<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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-tr/strings.xml
View file @
0a28e57f
...
...
@@ -164,6 +164,8 @@
<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__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 -->
<string
name=
"msg_private_channel"
>
Özel
</string>
...
...
app/src/main/res/values-uk/strings.xml
View file @
0a28e57f
...
...
@@ -179,6 +179,8 @@
<item
quantity=
"many"
>
%1$s reacted with %2$s
</item>
<!-- TODO - Add proper translation -->
</plurals>
<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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-zh-rCN/strings.xml
View file @
0a28e57f
...
...
@@ -174,6 +174,8 @@
<item
quantity=
"other"
>
%1$s 使用了 %2$s
</item>
</plurals>
<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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values-zh-rTW/strings.xml
View file @
0a28e57f
...
...
@@ -174,6 +174,8 @@
<item
quantity=
"other"
>
%1$s 使用了 %2$s
</item>
</plurals>
<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_add_new_server"
>
Add New Server
</string>
<!-- TODO Translate -->
...
...
app/src/main/res/values/strings.xml
View file @
0a28e57f
...
...
@@ -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>
</plurals>
<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_add_new_server"
>
Add New Server
</string>
...
...
dependencies.gradle
View file @
0a28e57f
...
...
@@ -56,7 +56,7 @@ ext {
glide
:
'4.8.0'
,
glideTransformations
:
'4.0.0'
,
jitsi
:
'
1.2
1.0'
,
jitsi
:
'
2.
1.0'
,
// For testing
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