mirror of
https://github.com/NekoX-Dev/NekoX.git
synced 2025-01-19 04:51:24 +01:00
Add emoji flavors. close #110
This commit is contained in:
parent
8db1771c78
commit
e5d964b6a7
@ -30,6 +30,12 @@ buildscript {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
|
||||||
|
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
||||||
implementation 'androidx.core:core:1.5.0-alpha01'
|
implementation 'androidx.core:core:1.5.0-alpha01'
|
||||||
@ -73,6 +79,11 @@ dependencies {
|
|||||||
compileOnly "com.google.firebase:firebase-crashlytics:$crashlyticsVersion"
|
compileOnly "com.google.firebase:firebase-crashlytics:$crashlyticsVersion"
|
||||||
compileOnly "com.google.android.play:core:$playCoreVersion"
|
compileOnly "com.google.android.play:core:$playCoreVersion"
|
||||||
|
|
||||||
|
compileOnly 'com.vanniktech:emoji-ios:0.7.0-SNAPSHOT'
|
||||||
|
compileOnly 'com.vanniktech:emoji-google:0.7.0-SNAPSHOT'
|
||||||
|
compileOnly 'com.vanniktech:emoji-twitter:0.7.0-SNAPSHOT'
|
||||||
|
compileOnly 'com.vanniktech:emoji-facebook:0.7.0-SNAPSHOT'
|
||||||
|
|
||||||
releaseImplementation "com.google.firebase:firebase-messaging:$fcmVersion"
|
releaseImplementation "com.google.firebase:firebase-messaging:$fcmVersion"
|
||||||
releaseImplementation "com.google.firebase:firebase-crashlytics:$crashlyticsVersion"
|
releaseImplementation "com.google.firebase:firebase-crashlytics:$crashlyticsVersion"
|
||||||
releaseImplementation "com.google.android.play:core:$playCoreVersion"
|
releaseImplementation "com.google.android.play:core:$playCoreVersion"
|
||||||
@ -112,8 +123,6 @@ android {
|
|||||||
versionName verName
|
versionName verName
|
||||||
versionCode verCode
|
versionCode verCode
|
||||||
|
|
||||||
vectorDrawables.generatedDensities = ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi']
|
|
||||||
|
|
||||||
def appId = null
|
def appId = null
|
||||||
def appHash = null
|
def appHash = null
|
||||||
|
|
||||||
@ -295,14 +304,67 @@ android {
|
|||||||
mini {
|
mini {
|
||||||
versionNameSuffix '-mini'
|
versionNameSuffix '-mini'
|
||||||
}
|
}
|
||||||
|
miniNoEmoji {
|
||||||
|
versionNameSuffix '-mini-no-emoji'
|
||||||
|
}
|
||||||
|
miniAppleEmoji {
|
||||||
|
versionNameSuffix '-mini-apple-emoji'
|
||||||
|
}
|
||||||
|
miniNotoEmoji {
|
||||||
|
versionNameSuffix '-mini-noto-emoji'
|
||||||
|
}
|
||||||
|
miniTwitterEmoji {
|
||||||
|
versionNameSuffix '-mini-twitter-emoji'
|
||||||
|
}
|
||||||
|
miniFacebookEmoji {
|
||||||
|
versionNameSuffix '-mini-facebook-emoji'
|
||||||
|
}
|
||||||
full {}
|
full {}
|
||||||
|
fullNoEmoji {
|
||||||
|
versionNameSuffix '-full-no-emoji'
|
||||||
|
}
|
||||||
|
fullAppleEmoji {
|
||||||
|
versionNameSuffix '-full-apple-emoji'
|
||||||
|
}
|
||||||
|
fullNotoEmoji {
|
||||||
|
versionNameSuffix '-full-noto-emoji'
|
||||||
|
}
|
||||||
|
fullTwitterEmoji {
|
||||||
|
versionNameSuffix '-full-twitter-emoji'
|
||||||
|
}
|
||||||
|
fullFacebookEmoji {
|
||||||
|
versionNameSuffix '-full-facebook-emoji'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets.full {
|
sourceSets.all { set ->
|
||||||
dependencies {
|
if (set.name.startsWith("full")) {
|
||||||
implementation files('libs/libv2ray.aar')
|
set.dependencies {
|
||||||
implementation files('libs/ss-rust-release.aar')
|
implementation files('libs/libv2ray.aar')
|
||||||
implementation files('libs/ssr-libev-release.aar')
|
implementation files('libs/ss-rust-release.aar')
|
||||||
|
implementation files('libs/ssr-libev-release.aar')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (set.name.matches("(mini|full).*")) {
|
||||||
|
if (set.name.contains("Apple")) {
|
||||||
|
set.dependencies {
|
||||||
|
implementation 'com.vanniktech:emoji-ios:0.7.0-SNAPSHOT'
|
||||||
|
}
|
||||||
|
} else if (set.name.contains("Noto")) {
|
||||||
|
set.dependencies {
|
||||||
|
implementation 'com.vanniktech:emoji-google:0.7.0-SNAPSHOT'
|
||||||
|
}
|
||||||
|
} else if (set.name.contains("Twitter")) {
|
||||||
|
set.dependencies {
|
||||||
|
implementation 'com.vanniktech:emoji-twitter:0.7.0-SNAPSHOT'
|
||||||
|
}
|
||||||
|
} else if (set.name.contains("Facebook")) {
|
||||||
|
set.dependencies {
|
||||||
|
implementation 'com.vanniktech:emoji-facebook:0.7.0-SNAPSHOT'
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
set.assets.srcDirs = ["src/main/assets", "src/emojis/blob"]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -317,7 +379,7 @@ android {
|
|||||||
|
|
||||||
applicationVariants.all { variant ->
|
applicationVariants.all { variant ->
|
||||||
variant.outputs.all { output ->
|
variant.outputs.all { output ->
|
||||||
outputFileName = outputFileName.replace("TMessagesProj","NekoX")
|
outputFileName = outputFileName.replace("TMessagesProj", "NekoX")
|
||||||
}
|
}
|
||||||
|
|
||||||
def assembleTgVoipDexTaskName = "assemble${variant.name.capitalize()}TgVoipDex"
|
def assembleTgVoipDexTaskName = "assemble${variant.name.capitalize()}TgVoipDex"
|
||||||
|
@ -35,6 +35,7 @@ import android.view.View;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import tw.nekomimi.nekogram.EmojiProvider;
|
||||||
import tw.nekomimi.nekogram.NekoConfig;
|
import tw.nekomimi.nekogram.NekoConfig;
|
||||||
|
|
||||||
public class Emoji {
|
public class Emoji {
|
||||||
@ -264,8 +265,6 @@ public class Emoji {
|
|||||||
return rect;
|
return rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Typeface blobCompat;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(Canvas canvas) {
|
public void draw(Canvas canvas) {
|
||||||
Rect b;
|
Rect b;
|
||||||
@ -275,33 +274,23 @@ public class Emoji {
|
|||||||
b = getBounds();
|
b = getBounds();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!NekoConfig.useSystemEmoji) {
|
String emoji = fixEmoji(EmojiData.data[info.page][info.emojiIndex]);
|
||||||
|
|
||||||
if (blobCompat == null) {
|
if (NekoConfig.useSystemEmoji || EmojiProvider.noEmoji || EmojiProvider.isFont || !EmojiProvider.contains(emoji)) {
|
||||||
|
|
||||||
blobCompat = Typeface.createFromAsset(ApplicationLoader.applicationContext.getAssets(), "fonts/blob_compat.ttf");
|
|
||||||
|
|
||||||
|
if (!NekoConfig.useSystemEmoji && EmojiProvider.isFont) {
|
||||||
|
textPaint.setTypeface(EmojiProvider.getFont());
|
||||||
}
|
}
|
||||||
|
|
||||||
textPaint.setTypeface(blobCompat);
|
textPaint.setTextSize(b.height() * 0.8f);
|
||||||
|
canvas.drawText(emoji, 0, emoji.length(), b.left, b.bottom - b.height() * 0.225f, textPaint);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
canvas.drawBitmap(EmojiProvider.readDrawable(emoji).getBitmap(), null, b, paint);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String emoji = fixEmoji(EmojiData.data[info.page][info.emojiIndex]);
|
|
||||||
textPaint.setTextSize(b.height() * 0.8f);
|
|
||||||
canvas.drawText(emoji, 0, emoji.length(), b.left, b.bottom - b.height() * 0.225f, textPaint);
|
|
||||||
|
|
||||||
//
|
|
||||||
// if (emojiBmp[info.page][info.page2] == null) {
|
|
||||||
// loadEmoji(info.page, info.page2);
|
|
||||||
// canvas.drawRect(getBounds(), placeholderPaint);
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// //if (!canvas.quickReject(b.left, b.top, b.right, b.bottom, Canvas.EdgeType.AA)) {
|
|
||||||
// canvas.drawBitmap(emojiBmp[info.page][info.page2], null, b, paint);
|
|
||||||
// //}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -98,7 +98,7 @@ public class BottomSheet extends Dialog {
|
|||||||
protected String behindKeyboardColorKey = Theme.key_dialogBackground;
|
protected String behindKeyboardColorKey = Theme.key_dialogBackground;
|
||||||
protected int behindKeyboardColor;
|
protected int behindKeyboardColor;
|
||||||
|
|
||||||
private boolean canDismissWithSwipe = true;
|
private boolean canDismissWithSwipe = false;
|
||||||
|
|
||||||
private boolean allowCustomAnimation = true;
|
private boolean allowCustomAnimation = true;
|
||||||
private boolean showWithoutAnimation;
|
private boolean showWithoutAnimation;
|
||||||
|
@ -549,11 +549,13 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter
|
|||||||
return Unit.INSTANCE;
|
return Unit.INSTANCE;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
builder.addItem(LocaleController.getString("SwitchVersion", R.string.SwitchVersion), R.drawable.baseline_replay_24, (it) -> {
|
if (BuildConfig.BUILD_TYPE.startsWith("release")) {
|
||||||
builder.dismiss();
|
builder.addItem(LocaleController.getString("SwitchVersion", R.string.SwitchVersion), R.drawable.baseline_replay_24, (it) -> {
|
||||||
UpdateChecksKt.switchVersion(getParentActivity());
|
builder.dismiss();
|
||||||
return Unit.INSTANCE;
|
UpdateChecksKt.switchVersion(getParentActivity());
|
||||||
});
|
return Unit.INSTANCE;
|
||||||
|
});
|
||||||
|
}
|
||||||
if (NekoXConfig.developerModeEntrance || NekoXConfig.developerMode) {
|
if (NekoXConfig.developerModeEntrance || NekoXConfig.developerMode) {
|
||||||
builder.addItem(LocaleController.getString("DeveloperSettings", R.string.DeveloperSettings), R.drawable.baseline_developer_mode_24, (it) -> {
|
builder.addItem(LocaleController.getString("DeveloperSettings", R.string.DeveloperSettings), R.drawable.baseline_developer_mode_24, (it) -> {
|
||||||
builder.dismiss();
|
builder.dismiss();
|
||||||
|
@ -0,0 +1,84 @@
|
|||||||
|
package tw.nekomimi.nekogram
|
||||||
|
|
||||||
|
import android.graphics.Typeface
|
||||||
|
import android.graphics.drawable.BitmapDrawable
|
||||||
|
import com.vanniktech.emoji.emoji.Emoji
|
||||||
|
import com.vanniktech.emoji.facebook.FacebookEmojiProvider
|
||||||
|
import com.vanniktech.emoji.google.GoogleEmojiProvider
|
||||||
|
import com.vanniktech.emoji.ios.IosEmojiProvider
|
||||||
|
import com.vanniktech.emoji.twitter.TwitterEmojiProvider
|
||||||
|
import org.telegram.messenger.ApplicationLoader
|
||||||
|
import org.telegram.messenger.BuildConfig
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
|
||||||
|
object EmojiProvider {
|
||||||
|
|
||||||
|
val type = BuildConfig.FLAVOR
|
||||||
|
|
||||||
|
@JvmField
|
||||||
|
val noEmoji = type.contains("NoEmoji")
|
||||||
|
|
||||||
|
// default use blob
|
||||||
|
@JvmField
|
||||||
|
val isFont = !type.contains("Emoji")
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
val font by lazy {
|
||||||
|
if (!isFont) throw IllegalStateException()
|
||||||
|
val resName = when {
|
||||||
|
!type.contains("emoji") -> "blob_compat.ttf"
|
||||||
|
else -> throw IllegalStateException()
|
||||||
|
}
|
||||||
|
Typeface.createFromAsset(ApplicationLoader.applicationContext.assets, "fonts/$resName");
|
||||||
|
}
|
||||||
|
|
||||||
|
private val isApple = type.contains("Apple")
|
||||||
|
private val isNoto = type.contains("Noto")
|
||||||
|
private val isTwitter = type.contains("Twitter")
|
||||||
|
private val isFacebook = type.contains("Facebook")
|
||||||
|
|
||||||
|
private val emojiMap = LinkedHashMap<String, Emoji>()
|
||||||
|
|
||||||
|
init {
|
||||||
|
|
||||||
|
if (!isFont && !noEmoji) {
|
||||||
|
|
||||||
|
val provider = when {
|
||||||
|
isApple -> IosEmojiProvider()
|
||||||
|
isNoto -> GoogleEmojiProvider()
|
||||||
|
isTwitter -> TwitterEmojiProvider()
|
||||||
|
isFacebook -> FacebookEmojiProvider()
|
||||||
|
else -> throw IllegalStateException()
|
||||||
|
}
|
||||||
|
|
||||||
|
val categoriesSize = provider.categories.size
|
||||||
|
//noinspection ForLoopReplaceableByForEach
|
||||||
|
for (i in 0 until categoriesSize) {
|
||||||
|
val emojis = provider.categories[i].emojis
|
||||||
|
val emojisSize = emojis.size
|
||||||
|
for (j in 0 until emojisSize) {
|
||||||
|
val emoji = emojis[j]
|
||||||
|
val unicode = emoji.unicode
|
||||||
|
val variants = emoji.variants
|
||||||
|
emojiMap[unicode] = emoji
|
||||||
|
for (k in variants.indices) {
|
||||||
|
val variant = variants[k]
|
||||||
|
val variantUnicode = variant.unicode
|
||||||
|
emojiMap[variantUnicode] = variant
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun contains(emoji: String) = emojiMap.contains(emoji)
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun readDrawable(emoji: String) = emojiMap[emoji]!!.getDrawable(ApplicationLoader.applicationContext) as BitmapDrawable
|
||||||
|
|
||||||
|
}
|
@ -2,6 +2,7 @@ package tw.nekomimi.nekogram.parts
|
|||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.IntentSender
|
import android.content.IntentSender
|
||||||
|
import cn.hutool.core.util.StrUtil
|
||||||
import com.google.android.play.core.appupdate.AppUpdateManagerFactory
|
import com.google.android.play.core.appupdate.AppUpdateManagerFactory
|
||||||
import com.google.android.play.core.install.InstallStateUpdatedListener
|
import com.google.android.play.core.install.InstallStateUpdatedListener
|
||||||
import com.google.android.play.core.install.model.AppUpdateType
|
import com.google.android.play.core.install.model.AppUpdateType
|
||||||
@ -11,7 +12,6 @@ import org.json.JSONObject
|
|||||||
import org.telegram.messenger.BuildConfig
|
import org.telegram.messenger.BuildConfig
|
||||||
import org.telegram.messenger.LocaleController
|
import org.telegram.messenger.LocaleController
|
||||||
import org.telegram.messenger.R
|
import org.telegram.messenger.R
|
||||||
import org.telegram.ui.Cells.TextCell
|
|
||||||
import tw.nekomimi.nekogram.BottomBuilder
|
import tw.nekomimi.nekogram.BottomBuilder
|
||||||
import tw.nekomimi.nekogram.ExternalGcm
|
import tw.nekomimi.nekogram.ExternalGcm
|
||||||
import tw.nekomimi.nekogram.NekoXConfig
|
import tw.nekomimi.nekogram.NekoXConfig
|
||||||
@ -22,71 +22,82 @@ fun Activity.switchVersion() {
|
|||||||
|
|
||||||
val builder = BottomBuilder(this)
|
val builder = BottomBuilder(this)
|
||||||
|
|
||||||
builder.addItems(arrayOf(
|
fun addVersion(fPrefix: String, fSuffix: String, noGcm: Boolean) {
|
||||||
"Mini Release",
|
|
||||||
"Mini Release NoGcm",
|
|
||||||
"Full Release",
|
|
||||||
"Full Release NoGcm"
|
|
||||||
).filterIndexed { index, text ->
|
|
||||||
|
|
||||||
!(BuildConfig.BUILD_TYPE == when {
|
var buildType = "Release"
|
||||||
text.endsWith("NoGcm") -> "releaseNoGcm"
|
|
||||||
else -> "release"
|
|
||||||
} && BuildConfig.FLAVOR == text.substringBefore(" ").toLowerCase())
|
|
||||||
|
|
||||||
}.toTypedArray()) { index: Int, text: String, _: TextCell ->
|
if (noGcm) buildType += "NoGcm"
|
||||||
|
|
||||||
builder.dismiss()
|
builder.addItem("$fPrefix $buildType $fSuffix".trim()) {
|
||||||
|
|
||||||
val buildType = when {
|
val flavor = (fPrefix.toLowerCase() + fSuffix).trim()
|
||||||
text.endsWith("NoGcm") -> "releaseNoGcm"
|
|
||||||
else -> "release"
|
|
||||||
}
|
|
||||||
|
|
||||||
val flavor = text.substringBefore(" ").toLowerCase()
|
buildType = StrUtil.lowerFirst(buildType)
|
||||||
|
|
||||||
val progress = AlertUtil.showProgress(this)
|
val progress = AlertUtil.showProgress(this)
|
||||||
|
|
||||||
progress.show()
|
progress.show()
|
||||||
|
|
||||||
UIUtil.runOnIoDispatcher {
|
UIUtil.runOnIoDispatcher {
|
||||||
|
|
||||||
val ex = mutableListOf<Throwable>()
|
val ex = mutableListOf<Throwable>()
|
||||||
|
|
||||||
UpdateUtil.updateUrls.forEach { url ->
|
UpdateUtil.updateUrls.forEach { url ->
|
||||||
|
|
||||||
runCatching {
|
runCatching {
|
||||||
|
|
||||||
val updateInfo = JSONObject(HttpUtil.get("$url/update.json"))
|
val updateInfo = JSONObject(HttpUtil.get("$url/update.json"))
|
||||||
|
|
||||||
val code = updateInfo.getInt("versionCode")
|
val code = updateInfo.getInt("versionCode")
|
||||||
|
|
||||||
UIUtil.runOnUIThread {
|
UIUtil.runOnUIThread {
|
||||||
|
|
||||||
progress.dismiss()
|
progress.dismiss()
|
||||||
|
|
||||||
UpdateUtil.doUpdate(this, code, updateInfo.getString("defaultFlavor"), buildType, flavor)
|
UpdateUtil.doUpdate(this, code, updateInfo.getString("defaultFlavor"), buildType, flavor)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return@runOnIoDispatcher
|
||||||
|
|
||||||
|
}.onFailure {
|
||||||
|
|
||||||
|
ex.add(it)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return@runOnIoDispatcher
|
|
||||||
|
|
||||||
}.onFailure {
|
|
||||||
|
|
||||||
ex.add(it)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
progress.dismiss()
|
||||||
|
|
||||||
|
AlertUtil.showToast(ex.joinToString("\n") { it.message ?: it.javaClass.simpleName })
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
progress.dismiss()
|
|
||||||
|
|
||||||
AlertUtil.showToast(ex.joinToString("\n") { it.message ?: it.javaClass.simpleName })
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun addVersion(fPrefix: String, fSuffix: String) {
|
||||||
|
|
||||||
|
addVersion(fPrefix, fSuffix, false)
|
||||||
|
addVersion(fPrefix, fSuffix, true)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fun addVersion(fPrefix: String) {
|
||||||
|
|
||||||
|
arrayOf("", "NoEmoji", "Apple", "Noto", "Twitter", "Facebook").forEach {
|
||||||
|
|
||||||
|
addVersion(fPrefix, "${it}Emoji")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
addVersion("Full")
|
||||||
|
addVersion("Mini")
|
||||||
|
|
||||||
builder.show()
|
builder.show()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
import tw.nekomimi.nekogram.BottomBuilder;
|
import tw.nekomimi.nekogram.BottomBuilder;
|
||||||
|
import tw.nekomimi.nekogram.EmojiProvider;
|
||||||
import tw.nekomimi.nekogram.NekoConfig;
|
import tw.nekomimi.nekogram.NekoConfig;
|
||||||
import tw.nekomimi.nekogram.transtale.Translator;
|
import tw.nekomimi.nekogram.transtale.Translator;
|
||||||
import tw.nekomimi.nekogram.transtale.TranslatorKt;
|
import tw.nekomimi.nekogram.transtale.TranslatorKt;
|
||||||
@ -573,7 +574,7 @@ public class NekoGeneralSettingsActivity extends BaseFragment {
|
|||||||
appearanceRow = rowCount++;
|
appearanceRow = rowCount++;
|
||||||
typefaceRow = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? rowCount++ : -1;
|
typefaceRow = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ? rowCount++ : -1;
|
||||||
useDefaultThemeRow = rowCount++;
|
useDefaultThemeRow = rowCount++;
|
||||||
useSystemEmojiRow = rowCount++;
|
useSystemEmojiRow = EmojiProvider.noEmoji ? -1 : rowCount++;
|
||||||
transparentStatusBarRow = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? rowCount++ : -1;
|
transparentStatusBarRow = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? rowCount++ : -1;
|
||||||
forceTabletRow = rowCount++;
|
forceTabletRow = rowCount++;
|
||||||
avatarAsDrawerBackgroundRow = rowCount++;
|
avatarAsDrawerBackgroundRow = rowCount++;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user