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
6592f416
Commit
6592f416
authored
Jul 24, 2017
by
Filipe de Lima Brito
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update MessageRenderer class
parent
93cbad90
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
103 additions
and
154 deletions
+103
-154
MessageRenderer.java
...in/java/chat/rocket/android/renderer/MessageRenderer.java
+0
-154
MessageRenderer.kt
...main/java/chat/rocket/android/renderer/MessageRenderer.kt
+103
-0
No files found.
app/src/main/java/chat/rocket/android/renderer/MessageRenderer.java
deleted
100644 → 0
View file @
93cbad90
package
chat
.
rocket
.
android
.
renderer
;
import
android.content.Context
;
import
android.view.View
;
import
android.widget.TextView
;
import
chat.rocket.android.R
;
import
chat.rocket.android.helper.DateTime
;
import
chat.rocket.android.helper.TextUtils
;
import
chat.rocket.android.widget.AbsoluteUrl
;
import
chat.rocket.android.widget.RocketChatAvatar
;
import
chat.rocket.android.widget.message.RocketChatMessageAttachmentsLayout
;
import
chat.rocket.android.widget.message.RocketChatMessageLayout
;
import
chat.rocket.android.widget.message.RocketChatMessageUrlsLayout
;
import
chat.rocket.core.SyncState
;
import
chat.rocket.core.models.Attachment
;
import
chat.rocket.core.models.Message
;
import
chat.rocket.core.models.WebContent
;
import
java.util.List
;
/**
* Renderer for RealmMessage model.
*/
public
class
MessageRenderer
extends
AbstractRenderer
<
Message
>
{
private
final
UserRenderer
userRenderer
;
private
final
boolean
autoloadImages
;
public
MessageRenderer
(
Context
context
,
Message
message
,
boolean
autoloadImages
)
{
super
(
context
,
message
);
userRenderer
=
new
UserRenderer
(
context
,
message
.
getUser
());
this
.
autoloadImages
=
autoloadImages
;
}
/**
* show Avatar image.
*/
public
MessageRenderer
avatarInto
(
RocketChatAvatar
rocketChatAvatar
,
AbsoluteUrl
absoluteUrl
)
{
if
(!
shouldHandle
(
rocketChatAvatar
))
{
return
this
;
}
if
(
TextUtils
.
isEmpty
(
object
.
getAvatar
()))
{
userRenderer
.
avatarInto
(
rocketChatAvatar
,
absoluteUrl
);
// Avatar from oauth providers
}
else
{
rocketChatAvatar
.
loadImage
(
object
.
getAvatar
());
}
return
this
;
}
/**
* show Username in textView.
*/
public
MessageRenderer
usernameInto
(
TextView
usernameTextView
,
TextView
subUsernameTextView
)
{
if
(
TextUtils
.
isEmpty
(
object
.
getAlias
()))
{
userRenderer
.
usernameInto
(
usernameTextView
);
if
(
subUsernameTextView
!=
null
)
{
subUsernameTextView
.
setVisibility
(
View
.
GONE
);
}
}
else
{
aliasAndUsernameInto
(
usernameTextView
,
subUsernameTextView
);
}
return
this
;
}
/**
* show timestamp in textView.
*/
public
MessageRenderer
timestampInto
(
TextView
textView
)
{
if
(!
shouldHandle
(
textView
))
{
return
this
;
}
switch
(
object
.
getSyncState
())
{
case
SyncState
.
SYNCING
:
textView
.
setText
(
R
.
string
.
sending
);
break
;
case
SyncState
.
NOT_SYNCED
:
textView
.
setText
(
R
.
string
.
not_synced
);
break
;
case
SyncState
.
FAILED
:
textView
.
setText
(
R
.
string
.
failed_to_sync
);
break
;
default
:
textView
.
setText
(
DateTime
.
fromEpocMs
(
object
.
getTimestamp
(),
DateTime
.
Format
.
TIME
));
break
;
}
return
this
;
}
/**
* show body in RocketChatMessageLayout.
*/
public
MessageRenderer
bodyInto
(
RocketChatMessageLayout
rocketChatMessageLayout
)
{
if
(!
shouldHandle
(
rocketChatMessageLayout
))
{
return
this
;
}
rocketChatMessageLayout
.
setText
(
object
.
getMessage
());
return
this
;
}
/**
* show urls in RocketChatMessageUrlsLayout.
*/
public
MessageRenderer
urlsInto
(
RocketChatMessageUrlsLayout
urlsLayout
)
{
if
(!
shouldHandle
(
urlsLayout
))
{
return
this
;
}
List
<
WebContent
>
webContents
=
object
.
getWebContents
();
if
(
webContents
==
null
||
webContents
.
size
()
==
0
)
{
urlsLayout
.
setVisibility
(
View
.
GONE
);
}
else
{
urlsLayout
.
setVisibility
(
View
.
VISIBLE
);
urlsLayout
.
setUrls
(
webContents
,
autoloadImages
);
}
return
this
;
}
/**
* show urls in RocketChatMessageUrlsLayout.
*/
public
MessageRenderer
attachmentsInto
(
RocketChatMessageAttachmentsLayout
attachmentsLayout
,
AbsoluteUrl
absoluteUrl
)
{
if
(!
shouldHandle
(
attachmentsLayout
))
{
return
this
;
}
List
<
Attachment
>
attachments
=
object
.
getAttachments
();
if
(
attachments
==
null
||
attachments
.
size
()
==
0
)
{
attachmentsLayout
.
setVisibility
(
View
.
GONE
);
}
else
{
attachmentsLayout
.
setVisibility
(
View
.
VISIBLE
);
attachmentsLayout
.
setAbsoluteUrl
(
absoluteUrl
);
attachmentsLayout
.
setAttachments
(
attachments
,
autoloadImages
);
}
return
this
;
}
private
void
aliasAndUsernameInto
(
TextView
aliasTextView
,
TextView
usernameTextView
)
{
if
(
shouldHandle
(
aliasTextView
))
{
aliasTextView
.
setText
(
object
.
getAlias
());
}
if
(
shouldHandle
(
usernameTextView
))
{
if
(
object
.
getUser
()
!=
null
)
{
usernameTextView
.
setText
(
"@"
+
object
.
getUser
().
getUsername
());
usernameTextView
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
usernameTextView
.
setVisibility
(
View
.
GONE
);
}
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/renderer/MessageRenderer.kt
0 → 100644
View file @
6592f416
package
chat.rocket.android.renderer
import
android.view.View
import
android.widget.TextView
import
chat.rocket.android.R
import
chat.rocket.android.helper.DateTime
import
chat.rocket.android.helper.RocketChatUserAvatar
import
chat.rocket.android.widget.AbsoluteUrl
import
chat.rocket.android.widget.RocketChatAvatar
import
chat.rocket.android.widget.message.RocketChatMessageAttachmentsLayout
import
chat.rocket.android.widget.message.RocketChatMessageLayout
import
chat.rocket.android.widget.message.RocketChatMessageUrlsLayout
import
chat.rocket.core.SyncState
import
chat.rocket.core.models.Message
class
MessageRenderer
(
val
message
:
Message
,
val
autoLoadImage
:
Boolean
)
{
/**
* Show user's avatar image in RocketChatAvatar widget.
*/
fun
showAvatar
(
rocketChatAvatarWidget
:
RocketChatAvatar
,
hostname
:
String
)
{
if
(
message
.
avatar
!=
null
)
{
// Load user's avatar image from Oauth provider URI.
rocketChatAvatarWidget
.
loadImage
(
message
.
avatar
)
}
else
{
// Load user's avatar image from Rocket.Chat URI (only if username is not null).
val
username
:
String
?
=
message
.
user
?.
username
if
(
username
!=
null
)
{
rocketChatAvatarWidget
.
loadImage
(
RocketChatUserAvatar
(
hostname
,
username
).
imageUri
)
}
/**
* TODO Load default image for nullable username.
*/
}
}
/**
* Show username in textView.
*/
fun
showUsername
(
usernameTextView
:
TextView
,
subUsernameTextView
:
TextView
?)
{
if
(
message
.
alias
==
null
)
{
usernameTextView
.
text
=
message
.
user
?.
username
?:
usernameTextView
.
context
.
getText
(
R
.
string
.
user_not_found
)
if
(
subUsernameTextView
!=
null
)
subUsernameTextView
.
visibility
=
View
.
GONE
}
else
{
usernameTextView
.
text
=
message
.
alias
if
(
subUsernameTextView
!=
null
)
{
if
(
message
.
user
!=
null
)
{
subUsernameTextView
.
text
=
"@"
+
message
.
user
?.
username
subUsernameTextView
.
visibility
=
View
.
VISIBLE
}
else
{
subUsernameTextView
.
visibility
=
View
.
GONE
}
}
}
}
/**
* Show timestamp or message state in textView.
*/
fun
showTimestampOrMessageState
(
textView
:
TextView
)
{
when
(
message
.
syncState
)
{
SyncState
.
SYNCING
->
textView
.
text
=
textView
.
context
.
getText
(
R
.
string
.
sending
)
SyncState
.
NOT_SYNCED
->
textView
.
text
=
textView
.
context
.
getText
(
R
.
string
.
not_synced
)
SyncState
.
FAILED
->
textView
.
text
=
textView
.
context
.
getText
(
R
.
string
.
failed_to_sync
)
else
->
textView
.
text
=
DateTime
.
fromEpocMs
(
message
.
timestamp
,
DateTime
.
Format
.
TIME
)
}
}
/**
* Show body in RocketChatMessageLayout widget.
*/
fun
showBody
(
rocketChatMessageLayout
:
RocketChatMessageLayout
)
{
rocketChatMessageLayout
.
setText
(
message
.
message
)
}
/**
* Show urls in RocketChatMessageUrlsLayout widget.
*/
fun
showUrl
(
rocketChatMessageUrlsLayout
:
RocketChatMessageUrlsLayout
)
{
val
webContents
=
message
.
webContents
if
(
webContents
==
null
||
webContents
.
isEmpty
())
{
rocketChatMessageUrlsLayout
.
visibility
=
View
.
GONE
}
else
{
rocketChatMessageUrlsLayout
.
setUrls
(
webContents
,
autoLoadImage
)
rocketChatMessageUrlsLayout
.
visibility
=
View
.
VISIBLE
}
}
/**
* show attachments in RocketChatMessageAttachmentsLayout widget.
*/
fun
showAttachment
(
rocketChatMessageAttachmentsLayout
:
RocketChatMessageAttachmentsLayout
,
absoluteUrl
:
AbsoluteUrl
?)
{
val
attachments
=
message
.
attachments
if
(
attachments
==
null
||
attachments
.
isEmpty
())
{
rocketChatMessageAttachmentsLayout
.
visibility
=
View
.
GONE
}
else
{
rocketChatMessageAttachmentsLayout
.
setAbsoluteUrl
(
absoluteUrl
)
rocketChatMessageAttachmentsLayout
.
setAttachments
(
attachments
,
autoLoadImage
)
rocketChatMessageAttachmentsLayout
.
visibility
=
View
.
VISIBLE
}
}
}
\ No newline at end of file
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