Skip to content
This repository has been archived by the owner on Jun 7, 2020. It is now read-only.

Show avatar with username initials. #372

Merged
merged 32 commits into from
Aug 3, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
4d84c1e
Add getContentType(...) and getDefaultHttpClient() method.
philipbrito Aug 1, 2017
4ec4fff
Update RocketChatUserAvatar.
philipbrito Aug 1, 2017
f9af22f
Add an imageView to be used with avatars in svg format.
philipbrito Aug 1, 2017
ae82341
Update UserRenderer.kt
philipbrito Aug 1, 2017
d794b5b
Update MessageRenderer.kt
philipbrito Aug 1, 2017
3b24532
Update RocketChatAvatar.java
philipbrito Aug 1, 2017
70edac3
Merge branch 'develop' into avatar-with-username-initials
rafaelks Aug 1, 2017
a891e28
Update Kotlin version
philipbrito Aug 1, 2017
ed0f72d
Add tests dependencies and Kotlin tests directories
philipbrito Aug 1, 2017
c54a414
Update RocketChatUserAvatar.kt
philipbrito Aug 1, 2017
cfc8d79
Add RocketChatUserAvatarTest.kt
philipbrito Aug 1, 2017
281ac8a
Update method name declaration.
philipbrito Aug 2, 2017
bc12df1
Merge branch 'develop' into avatar-with-username-initials
rafaelks Aug 2, 2017
4f636c2
Update RocketChatUserAvatar.kt
philipbrito Aug 2, 2017
f35ab14
Delete image_svg_user_avatar/imageViewSvgUserAvatar
philipbrito Aug 2, 2017
96f503e
Add placeholder image.
philipbrito Aug 2, 2017
52a0d83
Update message_avatar.xml
philipbrito Aug 2, 2017
827ada1
Disable SVG support.
philipbrito Aug 2, 2017
60074da
Delete blank line.
philipbrito Aug 2, 2017
1efd2a1
Merge branch 'avatar-with-username-initials' of github.com:filipedeli…
philipbrito Aug 2, 2017
8b18a0f
Delete RocketChatUserAvatar and RocketChatUserAvatarTest class.
philipbrito Aug 3, 2017
3756ee1
Update build.gradle
philipbrito Aug 3, 2017
1cdd442
Add UserAvatarHelper and UserAvatarHelperTest class.
philipbrito Aug 3, 2017
5efbd8e
Delete classes.
philipbrito Aug 3, 2017
4f3302b
Update RocketChatWidgets.java
philipbrito Aug 3, 2017
3e43f04
Update FrescoHelper class.
philipbrito Aug 3, 2017
8471796
Update UserViewHolder class.
philipbrito Aug 3, 2017
5390166
Update classes.
philipbrito Aug 3, 2017
c9975c1
Update UserAvatarHelper.kt
philipbrito Aug 3, 2017
d07d6f9
Update message_avatar.xml
philipbrito Aug 3, 2017
7a81eb1
Update package.
philipbrito Aug 3, 2017
9b37d89
Delete unused methods.
philipbrito Aug 3, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,18 @@ buildscript {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion

defaultConfig {
applicationId "chat.rocket.android"
minSdkVersion 16
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 28
versionName "1.0.16"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

vectorDrawables.useSupportLibrary = true
multiDexEnabled true
}

signingConfigs {
release {
storeFile project.rootProject.file('Rocket.jks').getCanonicalFile()
Expand All @@ -50,27 +51,32 @@ android {
keyPassword System.getenv("KEY_PASSWORD")
}
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}

packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/rxjava.properties'
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

lintOptions {
//avoiding okio error: https://github.com/square/okhttp/issues/896
lintConfig file("lint.xml")
}
}

play {
jsonFile = file('rocket-chat.json')
track = "${track}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,4 @@ public static OkHttpClient getClientForWebSocket() {
}
return httpClientForWS;
}
}
}

This file was deleted.

25 changes: 12 additions & 13 deletions app/src/main/java/chat/rocket/android/renderer/MessageRenderer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import android.widget.ImageView
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.helper.UserAvatarHelper
import chat.rocket.android.widget.message.RocketChatMessageAttachmentsLayout
import chat.rocket.android.widget.message.RocketChatMessageLayout
import chat.rocket.android.widget.message.RocketChatMessageUrlsLayout
Expand All @@ -20,20 +20,19 @@ class MessageRenderer(val message: Message, val autoLoadImage: Boolean) {
* Show user's avatar image in RocketChatAvatar widget.
*/
fun showAvatar(rocketChatAvatarWidget: RocketChatAvatar, hostname: String, userNotFoundAvatarImageView: ImageView) {
if (message.avatar != null) {
// Load user's avatar image from Oauth provider URI.
rocketChatAvatarWidget.loadImage(message.avatar)
} else {
val username: String? = message.user?.username
if (username != null) {
// Load user's avatar image from Rocket.Chat URI.
rocketChatAvatarWidget.loadImage(RocketChatUserAvatar(hostname, username).imageUri)
userNotFoundAvatarImageView.visibility = View.GONE
rocketChatAvatarWidget.visibility = View.VISIBLE
val username: String? = message.user?.username
if (username != null) {
userNotFoundAvatarImageView.visibility = View.GONE
val placeholderDrawable = UserAvatarHelper.getTextDrawable(username, rocketChatAvatarWidget.context)
if (message.avatar != null) {
// Load user's avatar image from Oauth provider URI.
rocketChatAvatarWidget.loadImage(message.avatar, placeholderDrawable)
} else {
rocketChatAvatarWidget.visibility = View.GONE
userNotFoundAvatarImageView.visibility = View.VISIBLE
rocketChatAvatarWidget.loadImage(UserAvatarHelper.getUri(hostname, username), placeholderDrawable)
}
} else {
rocketChatAvatarWidget.visibility = View.GONE
userNotFoundAvatarImageView.visibility = View.VISIBLE
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import android.view.View
import android.widget.ImageView
import android.widget.TextView
import chat.rocket.android.R
import chat.rocket.android.helper.RocketChatUserAvatar
import chat.rocket.android.widget.RocketChatAvatar
import chat.rocket.android.widget.helper.UserAvatarHelper
import chat.rocket.core.models.User

class UserRenderer(val user: User) {
Expand All @@ -16,7 +16,7 @@ class UserRenderer(val user: User) {
fun showAvatar(rocketChatAvatarWidget: RocketChatAvatar, hostname: String) {
val username: String? = user.username
if (username != null) {
rocketChatAvatarWidget.loadImage(RocketChatUserAvatar(hostname, username).imageUri)
rocketChatAvatarWidget.loadImage(UserAvatarHelper.getUri(hostname, username), UserAvatarHelper.getTextDrawable(username, rocketChatAvatarWidget.context))
} else {
rocketChatAvatarWidget.visibility = View.GONE
}
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ ext {
buildToolsVersion = "26.0.0"
supportLibraryVersion = "25.4.0"
constraintLayoutVersion = "1.0.2"
kotlinVersion = "1.1.3"
kotlinVersion = "1.1.3-2"
}

task clean(type: Delete) {
Expand Down
8 changes: 8 additions & 0 deletions rocket-chat-android-widgets/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,18 @@ android {

vectorDrawables.useSupportLibrary = true
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

sourceSets {
test.java.srcDirs += 'src/test/kotlin'
androidTest.java.srcDirs += 'src/androidTest/kotlin'
}
}

ext {
Expand All @@ -49,6 +55,8 @@ dependencies {
compile "com.android.support.constraint:constraint-layout:$rootProject.ext.constraintLayoutVersion"

compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$rootProject.ext.kotlinVersion"
testCompile "org.jetbrains.kotlin:kotlin-test:$rootProject.ext.kotlinVersion"
testCompile "org.jetbrains.kotlin:kotlin-test-junit:$rootProject.ext.kotlinVersion"

compile 'org.nibor.autolink:autolink:0.6.0'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.AttributeSet;
import android.view.LayoutInflater;
Expand All @@ -11,38 +12,35 @@

public class RocketChatAvatar extends FrameLayout {

private SimpleDraweeView draweeView;
private SimpleDraweeView simpleDraweeViewAvatar;

public RocketChatAvatar(Context context) {
super(context);
initialize(context, null);
initialize(context);
}

public RocketChatAvatar(Context context, AttributeSet attrs) {
super(context, attrs);
initialize(context, attrs);
initialize(context);
}

public RocketChatAvatar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initialize(context, attrs);
initialize(context);
}

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public RocketChatAvatar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
initialize(context, attrs);
initialize(context);
}

private void initialize(Context context, AttributeSet attrs) {
LayoutInflater
.from(context)
.inflate(R.layout.message_avatar, this, true);
draweeView = findViewById(R.id.drawee_avatar);
private void initialize(Context context) {
LayoutInflater.from(context).inflate(R.layout.message_avatar, this, true);
simpleDraweeViewAvatar = findViewById(R.id.drawee_avatar);
}

public void loadImage(String imageUri) {
FrescoHelper
.loadImage(draweeView, imageUri);
public void loadImage(String imageUri, Drawable placeholderDrawable) {
FrescoHelper.INSTANCE.loadImage(simpleDraweeViewAvatar, imageUri, placeholderDrawable);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import android.content.Context;

import com.facebook.common.logging.FLog;
import com.facebook.drawee.backends.pipeline.DraweeConfig;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.imagepipeline.backends.okhttp3.OkHttpImagePipelineConfigFactory;
import com.facebook.imagepipeline.core.ImagePipelineConfig;
Expand All @@ -13,7 +12,6 @@
import java.util.HashSet;
import java.util.Set;

import chat.rocket.android.widget.fresco.CustomImageFormatConfigurator;
import okhttp3.OkHttpClient;

public class RocketChatWidgets {
Expand All @@ -26,15 +24,11 @@ public static void initialize(Context context, OkHttpClient okHttpClient) {
ImagePipelineConfig imagePipelineConfig = OkHttpImagePipelineConfigFactory
.newBuilder(context, okHttpClient)
.setRequestListeners(listeners)
.setImageDecoderConfig(CustomImageFormatConfigurator.createImageDecoderConfig())
.setDownsampleEnabled(true)
.experiment().setBitmapPrepareToDraw(true)
.experiment().setPartialImageCachingEnabled(true)
.build();

DraweeConfig.Builder draweeConfigBuilder = DraweeConfig.newBuilder();
CustomImageFormatConfigurator.addCustomDrawableFactories(draweeConfigBuilder);

Fresco.initialize(context, imagePipelineConfig, draweeConfigBuilder.build());
Fresco.initialize(context, imagePipelineConfig);
}
}
Loading