mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 12:09:45 +01:00
Merge pull request #1420 from nextcloud/bugfix/1417/botSystemConversationIcon
Use launcher icon as bot-avatar/system-conversation-icon
This commit is contained in:
commit
f8ae4ca8a3
@ -237,7 +237,6 @@ dependencies {
|
|||||||
implementation 'net.orange-box.storebox:storebox-lib:1.4.0'
|
implementation 'net.orange-box.storebox:storebox-lib:1.4.0'
|
||||||
implementation "com.jakewharton:butterknife:${butterknifeVersion}"
|
implementation "com.jakewharton:butterknife:${butterknifeVersion}"
|
||||||
kapt "com.jakewharton:butterknife-compiler:${butterknifeVersion}"
|
kapt "com.jakewharton:butterknife-compiler:${butterknifeVersion}"
|
||||||
implementation 'com.github.HITGIF:TextFieldBoxes:1.4.5'
|
|
||||||
implementation 'eu.davidea:flexible-adapter:5.1.0'
|
implementation 'eu.davidea:flexible-adapter:5.1.0'
|
||||||
implementation 'eu.davidea:flexible-adapter-ui:1.0.0'
|
implementation 'eu.davidea:flexible-adapter-ui:1.0.0'
|
||||||
implementation 'org.webrtc:google-webrtc:1.0.32006'
|
implementation 'org.webrtc:google-webrtc:1.0.32006'
|
||||||
|
@ -27,9 +27,9 @@ import android.content.Context;
|
|||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.LayerDrawable;
|
import android.graphics.drawable.LayerDrawable;
|
||||||
|
import android.os.Build;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.format.DateUtils;
|
import android.text.format.DateUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -215,13 +215,16 @@ public class ConversationItem extends AbstractFlexibleItem<ConversationItem.Conv
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Conversation.ConversationType.ROOM_SYSTEM.equals(conversation.getType())) {
|
if (Conversation.ConversationType.ROOM_SYSTEM.equals(conversation.getType())) {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
Drawable[] layers = new Drawable[2];
|
Drawable[] layers = new Drawable[2];
|
||||||
layers[0] = context.getDrawable(R.drawable.ic_launcher_background);
|
layers[0] = ContextCompat.getDrawable(context, R.drawable.ic_launcher_background);
|
||||||
layers[1] = context.getDrawable(R.drawable.ic_launcher_foreground);
|
layers[1] = ContextCompat.getDrawable(context, R.drawable.ic_launcher_foreground);
|
||||||
LayerDrawable layerDrawable = new LayerDrawable(layers);
|
LayerDrawable layerDrawable = new LayerDrawable(layers);
|
||||||
|
|
||||||
holder.dialogAvatar.getHierarchy().setPlaceholderImage(DisplayUtils.getRoundedDrawable(layerDrawable));
|
holder.dialogAvatar.getHierarchy().setPlaceholderImage(DisplayUtils.getRoundedDrawable(layerDrawable));
|
||||||
|
} else {
|
||||||
|
holder.dialogAvatar.getHierarchy().setPlaceholderImage(R.mipmap.ic_launcher);
|
||||||
|
}
|
||||||
shouldLoadAvatar = false;
|
shouldLoadAvatar = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,11 +28,11 @@ import android.annotation.SuppressLint
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.graphics.drawable.LayerDrawable
|
import android.graphics.drawable.LayerDrawable
|
||||||
|
import android.os.Build
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.SeekBar
|
import android.widget.SeekBar
|
||||||
import androidx.appcompat.content.res.AppCompatResources
|
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.content.res.ResourcesCompat
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
@ -201,11 +201,15 @@ class IncomingVoiceMessageViewHolder(incomingView: View) : MessageHolders
|
|||||||
if (message.actorType == "guests") {
|
if (message.actorType == "guests") {
|
||||||
// do nothing, avatar is set
|
// do nothing, avatar is set
|
||||||
} else if (message.actorType == "bots" && message.actorId == "changelog") {
|
} else if (message.actorType == "bots" && message.actorId == "changelog") {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
val layers = arrayOfNulls<Drawable>(2)
|
val layers = arrayOfNulls<Drawable>(2)
|
||||||
layers[0] = AppCompatResources.getDrawable(context!!, R.drawable.ic_launcher_background)
|
layers[0] = ContextCompat.getDrawable(context!!, R.drawable.ic_launcher_background)
|
||||||
layers[1] = AppCompatResources.getDrawable(context!!, R.drawable.ic_launcher_foreground)
|
layers[1] = ContextCompat.getDrawable(context!!, R.drawable.ic_launcher_foreground)
|
||||||
val layerDrawable = LayerDrawable(layers)
|
val layerDrawable = LayerDrawable(layers)
|
||||||
binding.messageUserAvatar.setImageDrawable(DisplayUtils.getRoundedDrawable(layerDrawable))
|
binding.messageUserAvatar.setImageDrawable(DisplayUtils.getRoundedDrawable(layerDrawable))
|
||||||
|
} else {
|
||||||
|
binding.messageUserAvatar.setImageResource(R.mipmap.ic_launcher)
|
||||||
|
}
|
||||||
} else if (message.actorType == "bots") {
|
} else if (message.actorType == "bots") {
|
||||||
val drawable = TextDrawable.builder()
|
val drawable = TextDrawable.builder()
|
||||||
.beginConfig()
|
.beginConfig()
|
||||||
|
@ -27,6 +27,7 @@ import android.content.Intent
|
|||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.graphics.drawable.LayerDrawable
|
import android.graphics.drawable.LayerDrawable
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
import android.text.Spannable
|
import android.text.Spannable
|
||||||
import android.text.SpannableString
|
import android.text.SpannableString
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
@ -81,11 +82,15 @@ class MagicIncomingTextMessageViewHolder(itemView: View) : MessageHolders
|
|||||||
// do nothing, avatar is set
|
// do nothing, avatar is set
|
||||||
} else if (message.actorType == "bots" && message.actorId == "changelog") {
|
} else if (message.actorType == "bots" && message.actorId == "changelog") {
|
||||||
if (context != null) {
|
if (context != null) {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
val layers = arrayOfNulls<Drawable>(2)
|
val layers = arrayOfNulls<Drawable>(2)
|
||||||
layers[0] = ContextCompat.getDrawable(context!!, R.drawable.ic_launcher_background)
|
layers[0] = ContextCompat.getDrawable(context!!, R.drawable.ic_launcher_background)
|
||||||
layers[1] = ContextCompat.getDrawable(context!!, R.drawable.ic_launcher_foreground)
|
layers[1] = ContextCompat.getDrawable(context!!, R.drawable.ic_launcher_foreground)
|
||||||
val layerDrawable = LayerDrawable(layers)
|
val layerDrawable = LayerDrawable(layers)
|
||||||
binding.messageUserAvatar.setImageDrawable(DisplayUtils.getRoundedDrawable(layerDrawable))
|
binding.messageUserAvatar.setImageDrawable(DisplayUtils.getRoundedDrawable(layerDrawable))
|
||||||
|
} else {
|
||||||
|
binding.messageUserAvatar.setImageResource(R.mipmap.ic_launcher)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (message.actorType == "bots") {
|
} else if (message.actorType == "bots") {
|
||||||
val drawable = TextDrawable.builder()
|
val drawable = TextDrawable.builder()
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
package com.nextcloud.talk.components.filebrowser.webdav;
|
package com.nextcloud.talk.components.filebrowser.webdav;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.nextcloud.talk.components.filebrowser.models.BrowserFile;
|
import com.nextcloud.talk.components.filebrowser.models.BrowserFile;
|
||||||
import com.nextcloud.talk.components.filebrowser.models.DavResponse;
|
import com.nextcloud.talk.components.filebrowser.models.DavResponse;
|
||||||
import com.nextcloud.talk.dagger.modules.RestModule;
|
import com.nextcloud.talk.dagger.modules.RestModule;
|
||||||
@ -39,6 +41,7 @@ import okhttp3.HttpUrl;
|
|||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
|
|
||||||
public class ReadFilesystemOperation {
|
public class ReadFilesystemOperation {
|
||||||
|
private static final String TAG = "ReadFilesystemOperation";
|
||||||
private final OkHttpClient okHttpClient;
|
private final OkHttpClient okHttpClient;
|
||||||
private final String url;
|
private final String url;
|
||||||
private final int depth;
|
private final int depth;
|
||||||
@ -48,7 +51,14 @@ public class ReadFilesystemOperation {
|
|||||||
OkHttpClient.Builder okHttpClientBuilder = okHttpClient.newBuilder();
|
OkHttpClient.Builder okHttpClientBuilder = okHttpClient.newBuilder();
|
||||||
okHttpClientBuilder.followRedirects(false);
|
okHttpClientBuilder.followRedirects(false);
|
||||||
okHttpClientBuilder.followSslRedirects(false);
|
okHttpClientBuilder.followSslRedirects(false);
|
||||||
okHttpClientBuilder.authenticator(new RestModule.MagicAuthenticator(ApiUtils.getCredentials(currentUser.getUsername(), currentUser.getToken()), "Authorization"));
|
okHttpClientBuilder.authenticator(
|
||||||
|
new RestModule.MagicAuthenticator(
|
||||||
|
ApiUtils.getCredentials(
|
||||||
|
currentUser.getUsername(),
|
||||||
|
currentUser.getToken()
|
||||||
|
),
|
||||||
|
"Authorization")
|
||||||
|
);
|
||||||
this.okHttpClient = okHttpClientBuilder.build();
|
this.okHttpClient = okHttpClientBuilder.build();
|
||||||
this.basePath = currentUser.getBaseUrl() + DavUtils.DAV_PATH + currentUser.getUserId();
|
this.basePath = currentUser.getBaseUrl() + DavUtils.DAV_PATH + currentUser.getUserId();
|
||||||
this.url = basePath + path;
|
this.url = basePath + path;
|
||||||
@ -80,13 +90,10 @@ public class ReadFilesystemOperation {
|
|||||||
return Unit.INSTANCE;
|
return Unit.INSTANCE;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (IOException e) {
|
} catch (IOException | DavException e) {
|
||||||
e.printStackTrace();
|
Log.w("", "Error reading remote path");
|
||||||
} catch (DavException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
remoteFiles.add(BrowserFile.getModelFromResponse(rootElement[0],
|
remoteFiles.add(BrowserFile.getModelFromResponse(rootElement[0],
|
||||||
rootElement[0].getHref().toString().substring(basePath.length())));
|
rootElement[0].getHref().toString().substring(basePath.length())));
|
||||||
for (Response memberElement : memberElements) {
|
for (Response memberElement : memberElements) {
|
||||||
@ -97,5 +104,4 @@ public class ReadFilesystemOperation {
|
|||||||
davResponse.setData(remoteFiles);
|
davResponse.setData(remoteFiles);
|
||||||
return davResponse;
|
return davResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ public class UserUtils {
|
|||||||
|
|
||||||
public List getUsers() {
|
public List getUsers() {
|
||||||
Result findUsersQueryResult = dataStore.select(User.class).where
|
Result findUsersQueryResult = dataStore.select(User.class).where
|
||||||
(UserEntity.SCHEDULED_FOR_DELETION.notEqual(true)).get();
|
(UserEntity.SCHEDULED_FOR_DELETION.notEqual(Boolean.TRUE)).get();
|
||||||
|
|
||||||
return findUsersQueryResult.toList();
|
return findUsersQueryResult.toList();
|
||||||
}
|
}
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
DO NOT TOUCH; GENERATED BY DRONE
|
DO NOT TOUCH; GENERATED BY DRONE
|
||||||
<span class="mdl-layout-title">Lint Report: 3 errors and 274 warnings</span>
|
<span class="mdl-layout-title">Lint Report: 3 errors and 272 warnings</span>
|
||||||
|
Loading…
Reference in New Issue
Block a user