Skip to content

Commit

Permalink
feat: remote peer color
Browse files Browse the repository at this point in the history
  • Loading branch information
omg-xtao committed Feb 11, 2024
1 parent 20ea927 commit c99bf67
Show file tree
Hide file tree
Showing 6 changed files with 362 additions and 19 deletions.
16 changes: 16 additions & 0 deletions TMessagesProj/src/main/java/org/telegram/messenger/ChatObject.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
import java.util.HashSet;
import java.util.List;

import tw.nekomimi.nekogram.helpers.remote.PeerColorHelper;

public class ChatObject {

public static final int CHAT_TYPE_CHAT = 0;
Expand Down Expand Up @@ -2096,22 +2098,36 @@ public static MessagesController.PeerColor getPeerColorForAvatar(int currentAcco

public static int getColorId(TLRPC.Chat chat) {
if (chat == null) return 0;

Integer replace = PeerColorHelper.getInstance().getColorId(chat);
if (replace != null) return replace;

if (chat.color != null && (chat.color.flags & 1) != 0) return chat.color.color;
return (int) (chat.id % 7);
}

public static long getEmojiId(TLRPC.Chat chat) {
Long replace = PeerColorHelper.getInstance().getEmojiId(chat);
if (replace != null) return replace;

if (chat != null && chat.color != null && (chat.color.flags & 2) != 0) return chat.color.background_emoji_id;
return 0;
}

public static int getProfileColorId(TLRPC.Chat chat) {
if (chat == null) return 0;

Integer replace = PeerColorHelper.getInstance().getProfileColorId(chat);
if (replace != null) return replace;

if (chat.profile_color != null && (chat.profile_color.flags & 1) != 0) return chat.profile_color.color;
return -1;
}

public static long getProfileEmojiId(TLRPC.Chat chat) {
Long replace = PeerColorHelper.getInstance().getProfileEmojiId(chat);
if (replace != null) return replace;

if (chat != null && chat.profile_color != null && (chat.profile_color.flags & 2) != 0) return chat.profile_color.background_emoji_id;
return 0;
}
Expand Down
25 changes: 20 additions & 5 deletions TMessagesProj/src/main/java/org/telegram/messenger/UserObject.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@
import org.telegram.PhoneFormat.PhoneFormat;
import org.telegram.tgnet.TLRPC;

import tw.nekomimi.nekogram.helpers.remote.PeerColorHelper;
import xyz.nextalone.nagram.helper.MessageHelper;
import xyz.nextalone.nagram.helper.PeerColorHelper;
import xyz.nextalone.nagram.helper.LocalPeerColorHelper;

public class UserObject {

Expand Down Expand Up @@ -160,30 +161,44 @@ public static MessagesController.PeerColor getPeerColorForAvatar(int currentAcco

public static int getColorId(TLRPC.User user) {
if (user == null) return 0;
Integer replace = PeerColorHelper.getColorId(user);

Integer replace = LocalPeerColorHelper.getColorId(user);
if (replace != null) return replace;
replace = PeerColorHelper.getInstance().getColorId(user);
if (replace != null) return replace;

if (user.color != null && (user.color.flags & 1) != 0) return user.color.color;
return (int) (user.id % 7);
}

public static long getEmojiId(TLRPC.User user) {
Long replace = PeerColorHelper.getEmojiId(user);
Long replace = LocalPeerColorHelper.getEmojiId(user);
if (replace != null) return replace;
replace = PeerColorHelper.getInstance().getEmojiId(user);
if (replace != null) return replace;

if (user != null && user.color != null && (user.color.flags & 2) != 0) return user.color.background_emoji_id;
return 0;
}

public static int getProfileColorId(TLRPC.User user) {
if (user == null) return 0;
Integer replace = PeerColorHelper.getProfileColorId(user);

Integer replace = LocalPeerColorHelper.getProfileColorId(user);
if (replace != null) return replace;
replace = PeerColorHelper.getInstance().getProfileColorId(user);
if (replace != null) return replace;

if (user.profile_color != null && (user.profile_color.flags & 1) != 0) return user.profile_color.color;
return -1;
}

public static long getProfileEmojiId(TLRPC.User user) {
Long replace = PeerColorHelper.getProfileEmojiId(user);
Long replace = LocalPeerColorHelper.getProfileEmojiId(user);
if (replace != null) return replace;
replace = PeerColorHelper.getInstance().getProfileEmojiId(user);
if (replace != null) return replace;

if (user != null && user.profile_color != null && (user.profile_color.flags & 2) != 0) return user.profile_color.background_emoji_id;
return 0;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,7 @@
import tw.nekomimi.nekogram.InternalUpdater;
import tw.nekomimi.nekogram.helpers.SettingsHelper;
import tw.nekomimi.nekogram.helpers.remote.EmojiHelper;
import tw.nekomimi.nekogram.helpers.remote.PeerColorHelper;
import tw.nekomimi.nekogram.helpers.remote.WallpaperHelper;
import tw.nekomimi.nekogram.ui.BottomBuilder;
import tw.nekomimi.nekogram.NekoConfig;
Expand Down Expand Up @@ -1027,6 +1028,7 @@ public void onViewDetachedFromWindow(View v) {
}
EmojiHelper.getInstance().checkEmojiPacks();
WallpaperHelper.getInstance().checkWallPaper();
PeerColorHelper.getInstance().checkPeerColor();
BackupAgent.requestBackup(this);

RestrictedLanguagesSelectActivity.checkRestrictedLanguages(false);
Expand Down
15 changes: 2 additions & 13 deletions TMessagesProj/src/main/java/org/telegram/ui/PeerColorActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,8 @@
import android.graphics.Shader;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.style.ReplacementSpan;
import android.util.SparseIntArray;
import android.util.TypedValue;
Expand All @@ -50,15 +47,10 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.google.common.io.CharSource;

import org.telegram.messenger.AndroidUtilities;
import org.telegram.messenger.ApplicationLoader;
import org.telegram.messenger.BotWebViewVibrationEffect;
import org.telegram.messenger.BuildVars;
import org.telegram.messenger.ChatObject;
import org.telegram.messenger.ChatThemeController;
import org.telegram.messenger.DialogObject;
import org.telegram.messenger.Emoji;
import org.telegram.messenger.ImageReceiver;
import org.telegram.messenger.LocaleController;
Expand Down Expand Up @@ -92,13 +84,11 @@
import org.telegram.ui.Components.Easings;
import org.telegram.ui.Components.FilledTabsView;
import org.telegram.ui.Components.LayoutHelper;
import org.telegram.ui.Components.Premium.LimitReachedBottomSheet;
import org.telegram.ui.Components.Premium.PremiumFeatureBottomSheet;
import org.telegram.ui.Components.Premium.PremiumGradient;
import org.telegram.ui.Components.RLottieDrawable;
import org.telegram.ui.Components.RecyclerListView;
import org.telegram.ui.Components.SimpleThemeDescription;
import org.telegram.ui.Components.SpannableStringLight;
import org.telegram.ui.Components.Text;
import org.telegram.ui.Components.ViewPagerFixed;
import org.telegram.ui.Stories.StoriesUtilities;
Expand All @@ -108,8 +98,7 @@
import java.util.ArrayList;
import java.util.List;

import xyz.nextalone.nagram.NaConfig;
import xyz.nextalone.nagram.helper.PeerColorHelper;
import xyz.nextalone.nagram.helper.LocalPeerColorHelper;

public class PeerColorActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {

Expand Down Expand Up @@ -1139,7 +1128,7 @@ private void apply() {
if (isChannel) {
finishFragment();
} else {
PeerColorHelper.apply(namePage.selectedColor, namePage.selectedEmoji, profilePage.selectedColor, profilePage.selectedEmoji);
LocalPeerColorHelper.apply(namePage.selectedColor, namePage.selectedEmoji, profilePage.selectedColor, profilePage.selectedEmoji);
final TLRPC.User me = getUserConfig().getCurrentUser();
if (me.color == null) {
me.color = new TLRPC.TL_peerColor();
Expand Down
Loading

0 comments on commit c99bf67

Please sign in to comment.