This commit is contained in:
世界 2020-07-10 10:10:21 +00:00
parent 93f3f957df
commit bd17bab6f0
No known key found for this signature in database
GPG Key ID: CD109927C34A63C4
24 changed files with 167 additions and 181 deletions

View File

@ -26,6 +26,10 @@ jobs:
mkdir -p $HOME/.ssh
echo "${{ secrets.SSH_KEY }}" > $HOME/.ssh/id_rsa
chmod 600 $HOME/.ssh/id_rsa
cat > service_account_credentials.json << EOF
${{ secrets.GOOGLE_ACCOUNT_SERVICE }}
EOF
ref="${{ github.ref }}"
ref=${ref/"refs/tags/"/}
./bin/release.sh "$ref"
./bin/release.sh "$ref"
./bin/publish_play.sh

View File

@ -9,7 +9,6 @@ NekoX is an open source third-party Telegram android app.
- Chat Group (Persian) : https://t.me/NekogramX_Persian
- FAQ: https://telegra.ph/NekoX-FAQ-03-31
- FAQ (Chinese): https://telegra.ph/NekoX-%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-03-31
- [Wall of Shame - Nekogram](https://github.com/Nekogram/Nekogram/wiki/Wall-of-Shame)
## Telegram-FOSS Changes:
@ -34,7 +33,9 @@ NekoX is an open source third-party Telegram android app.
- Added the ability to parse locations from intents containing a `geo:<lat>,<lon>,<zoom>` string
- Force static map previews from Telegram
## Nekogram Changes
## Old 0penSource Nekogram Changes
We regret that [Nekogram](https://github.com/Nekogram/Nekogram-issue-tracker) is no longer open source, but uses drklo/master to [disguise open source](https://github.com/Nekogram/Android).
- Repeat others' message in one click.
- Save to saved messages in one click.
@ -126,7 +127,7 @@ If you don't use NekoX's APP_ID and APP_HASH, you need to register a physical fi
OK, a version without firebase cloud messaging and precompiled native libraries, maybe this makes you feel more free, or your phone does not have Google services.
To compile the foss version, please refer to [build script](.github/workflows/build.yml).
To compile the foss version, please refer to [build script](./update_jni.sh).
### Build Variants
@ -137,13 +138,13 @@ Available variant list:
## Localization
Join project at https://nekox.crowdin.com/nekox and https://neko.crowdin.com/ .
Join project at https://nekox.crowdin.com/nekox.
## Credits
<ul>
<li>Telegram-FOSS: <a href="https://github.com/Telegram-FOSS-Team/Telegram-FOSS/blob/master/LICENSE">GPLv2</a></li>
<li>Nekogram: <a href="https://github.com/Nekogram/Nekogram/blob/master/LICENSE">GPLv2</a></li>
<li><del>Nekogram: <a href="https://github.com/Nekogram/Nekogram/blob/master/LICENSE">GPLv2</a></del> (No longer open source)</li>
<li>v2rayNG: <a href="https://github.com/2dust/v2rayNG/blob/master/LICENSE">GPLv3</a></li>
<li>AndroidLibV2rayLite: <a href="https://github.com/2dust/AndroidLibV2rayLite/blob/master/LICENSE">LGPLv3</a></li>
<li>shadowsocks-android: <a href="https://github.com/shadowsocks/shadowsocks-android/blob/master/LICENSE">GPLv3</a></li>

View File

@ -31,6 +31,8 @@ void setupPlay() {
defaultToAppBundles = true
userFraction = 1
}
}
@ -65,8 +67,62 @@ repositories {
}
def verName = "6.2.0.3-rc02"
def verCode = 55
dependencies {
implementation 'androidx.core:core:1.5.0-alpha01'
implementation 'androidx.palette:palette:1.0.0'
implementation 'androidx.viewpager:viewpager:1.0.0'
implementation 'androidx.exifinterface:exifinterface:1.2.0'
implementation "androidx.interpolator:interpolator:1.0.0"
implementation 'androidx.dynamicanimation:dynamicanimation:1.0.0'
implementation 'com.android.support:multidex:1.0.3'
// replace zxing with latest
// TODO: fix problem with android L
implementation 'com.google.zxing:core:3.4.0'
compileOnly 'org.checkerframework:checker-qual:3.5.0'
compileOnly 'org.checkerframework:checker-compat-qual:2.5.5'
// don't change this :)
//noinspection GradleDependency
implementation 'com.googlecode.mp4parser:isoparser:1.0.6'
implementation 'com.stripe:stripe-android:2.0.2'
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'org.osmdroid:osmdroid-android:6.1.6'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.7'
implementation "com.squareup.okhttp3:okhttp:$okHttpVersion"
implementation "com.squareup.okhttp3:okhttp-dnsoverhttps:$okHttpVersion"
implementation 'dnsjava:dnsjava:3.2.1'
implementation 'org.dizitart:nitrite:3.4.2'
implementation 'cn.hutool:hutool-core:5.3.8'
implementation 'cn.hutool:hutool-crypto:5.3.8'
implementation 'org.tukaani:xz:1.8'
compileOnly files('libs/libv2ray.aar')
compileOnly "com.google.firebase:firebase-messaging:$fcmVersion"
compileOnly "com.google.firebase:firebase-crashlytics:$crashlyticsVersion"
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-crashlytics:$crashlyticsVersion"
releaseImplementation "com.google.android.play:core:$playCoreVersion"
}
def verName = "6.2.0.3-rc03"
def verCode = 56
task writeUpdateInfo {
@ -75,7 +131,7 @@ task writeUpdateInfo {
info.set("version", verName)
info.set("versionCode", verCode)
info.set("defaultFlavor", "full")
info.set("defaultApkName", "NekoX-full-blobEmoji-arm64-v8a-release.apk.xz")
info.set("defaultApkName", "NekoX-full-arm64-v8a-release.apk.xz")
FileUtil.writeUtf8String(info.toStringPretty(), new File("build/update.json"))
@ -267,45 +323,75 @@ android {
dxUtilPath += ".bat"
}
flavorDimensions "version", "emoji"
flavorDimensions "version"
productFlavors {
mini {
dimension "version"
versionNameSuffix '-mini'
}
full {
dimension "version"
miniNoEmoji {
versionNameSuffix '-mini-no-emoji'
}
noEmoji {
dimension "emoji"
miniAppleEmoji {
versionNameSuffix '-mini-apple-emoji'
}
blobEmoji {
dimension "emoji"
miniNotoEmoji {
versionNameSuffix '-mini-noto-emoji'
}
appleEmoji {
dimension "emoji"
miniTwitterEmoji {
versionNameSuffix '-mini-twitter-emoji'
}
notoEmoji {
dimension "emoji"
miniFacebookEmoji {
versionNameSuffix '-mini-facebook-emoji'
}
twitterEmoji {
dimension "emoji"
full {}
fullNoEmoji {
versionNameSuffix '-full-no-emoji'
}
facebookEmoji {
dimension "emoji"
fullAppleEmoji {
versionNameSuffix '-full-apple-emoji'
}
fullNotoEmoji {
versionNameSuffix '-full-noto-emoji'
}
fullTwitterEmoji {
versionNameSuffix '-full-twitter-emoji'
}
fullFacebookEmoji {
versionNameSuffix '-full-facebook-emoji'
}
}
sourceSets.blobEmoji.assets.srcDirs = ["src/main/assets", "src/emojis/blob"]
sourceSets.all { set ->
if (set.name.startsWith("full")) {
set.dependencies {
implementation files('libs/libv2ray.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 if (!set.name.contains("NoEmoji")) {
set.assets.srcDirs = ["src/main/assets", "src/emojis/blob"]
}
}
}
tasks.all { task ->
if (((task.name.endsWith('Ndk') || task.name.startsWith('generateJsonModel') || task.name.startsWith('externalNativeBuild'))) && !task.name.contains("Foss")) {
@ -379,70 +465,6 @@ android {
}
dependencies {
implementation 'androidx.core:core:1.5.0-alpha01'
implementation 'androidx.palette:palette:1.0.0'
implementation 'androidx.viewpager:viewpager:1.0.0'
implementation 'androidx.exifinterface:exifinterface:1.2.0'
implementation "androidx.interpolator:interpolator:1.0.0"
implementation 'androidx.dynamicanimation:dynamicanimation:1.0.0'
implementation 'com.android.support:multidex:1.0.3'
// replace zxing with latest
// TODO: fix problem with android L
implementation 'com.google.zxing:core:3.4.0'
compileOnly 'org.checkerframework:checker-qual:3.5.0'
compileOnly 'org.checkerframework:checker-compat-qual:2.5.5'
// don't change this :)
//noinspection GradleDependency
implementation 'com.googlecode.mp4parser:isoparser:1.0.6'
implementation 'com.stripe:stripe-android:2.0.2'
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'org.osmdroid:osmdroid-android:6.1.6'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.7'
implementation "com.squareup.okhttp3:okhttp:$okHttpVersion"
implementation "com.squareup.okhttp3:okhttp-dnsoverhttps:$okHttpVersion"
implementation 'dnsjava:dnsjava:3.2.1'
implementation 'org.dizitart:nitrite:3.4.2'
implementation 'cn.hutool:hutool-core:5.3.8'
implementation 'cn.hutool:hutool-crypto:5.3.8'
implementation 'org.tukaani:xz:1.8'
compileOnly files('libs/libv2ray.aar')
fullImplementation files('libs/libv2ray.aar')
fullImplementation files('libs/ss-rust-release.aar')
fullImplementation files('libs/ssr-libev-release.aar')
compileOnly "com.google.firebase:firebase-messaging:$fcmVersion"
compileOnly "com.google.firebase:firebase-crashlytics:$crashlyticsVersion"
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'
appleEmojiImplementation 'com.vanniktech:emoji-ios:0.7.0-SNAPSHOT'
notoEmojiImplementation 'com.vanniktech:emoji-google:0.7.0-SNAPSHOT'
twitterEmojiImplementation 'com.vanniktech:emoji-twitter:0.7.0-SNAPSHOT'
facebookEmojiImplementation 'com.vanniktech:emoji-facebook:0.7.0-SNAPSHOT'
releaseImplementation "com.google.firebase:firebase-messaging:$fcmVersion"
releaseImplementation "com.google.firebase:firebase-crashlytics:$crashlyticsVersion"
releaseImplementation "com.google.android.play:core:$playCoreVersion"
}
private static File findJavaHome() {
String javaPath = System.getProperty("java.home")
if (javaPath != null) {

View File

@ -45,8 +45,8 @@ import org.telegram.messenger.R
val lookupNames get() = lookup.values.map {
if (it.label.isNotBlank()) {
"${it.label} (${it.id})"
} else {
} else if (it.id.isNotBlank()) {
it.id
}
} else ""
}.map { it.takeIf { it.isNotBlank() } ?: LocaleController.getString("Disable", R.string.Disable) }.toTypedArray()
}

View File

@ -373,7 +373,6 @@ public class AlertsCreator {
builder.addTitle(LocaleController.getString("Language", R.string.Language), mkTransSpan(str, language, builder));
builder.addCancelButton();
builder.addButton(LocaleController.getString("SETTINGS", R.string.SETTINGS), (__) -> {
builder.dismiss();
activity.presentFragment(new LanguageSelectActivity());
return Unit.INSTANCE;
});
@ -417,7 +416,6 @@ public class AlertsCreator {
}
LocaleController.getInstance().applyLanguage(localeInfo, true, false, false, true, UserConfig.selectedAccount);
activity.rebuildAllFragments(true);
builder.dismiss();
return Unit.INSTANCE;
});
builder.addCancelButton();

View File

@ -188,8 +188,6 @@ public class LanguageSelectActivity extends BaseFragment implements Notification
builder.addItem(LocaleController.getString("BotShare",R.string.BotShare),R.drawable.baseline_send_24,false,(__) -> {
builder.dismiss();
ShareUtil.shareText(getParentActivity(),"https://t.me/setlanguage/" + localeInfo.shortName.replace('_','-'));
return Unit.INSTANCE;
@ -200,8 +198,6 @@ public class LanguageSelectActivity extends BaseFragment implements Notification
builder.addItem(LocaleController.getString("DeleteLocalizationTitle", R.string.DeleteLocalizationTitle), R.drawable.baseline_delete_24, true, (__) -> {
builder.dismiss();
AlertUtil.showConfirm(getParentActivity(),
LocaleController.getString("DeleteLocalizationTitle", R.string.DeleteLocalizationTitle),
R.drawable.baseline_delete_24,

View File

@ -530,8 +530,6 @@ public class LoginActivity extends BaseFragment implements NotificationCenter.No
NekoXConfig.customApi = target;
NekoXConfig.saveCustomApi();
builder.dismiss();
return Unit.INSTANCE;
});
@ -891,8 +889,6 @@ public class LoginActivity extends BaseFragment implements NotificationCenter.No
}
builder.dismiss();
return Unit.INSTANCE;
});

View File

@ -85,6 +85,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.hutool.core.util.StrUtil;
import kotlin.Unit;
import okhttp3.HttpUrl;
import tw.nekomimi.nekogram.BottomBuilder;
@ -1121,8 +1122,6 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
if (sub.internal) return false;
builder.dismiss();
presentFragment(new SubSettingsActivity(sub));
return true;
@ -1133,15 +1132,17 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
builder.addButton(LocaleController.getString("Add", R.string.Add), false, true, (it) -> {
builder.dismiss();
presentFragment(new SubSettingsActivity());
return Unit.INSTANCE;
});
builder.addButton(LocaleController.getString("Update", R.string.Update), (it) -> {
String updateStr = LocaleController.getString("Update", R.string.Update);
updateStr = updateStr.toLowerCase();
updateStr = StrUtil.upperFirst(updateStr);
builder.addButton(updateStr, (it) -> {
AlertDialog pro = AlertUtil.showProgress(getParentActivity(), LocaleController.getString("SubscriptionUpdating", R.string.SubscriptionUpdating));
AtomicBoolean canceled = new AtomicBoolean();
@ -1179,14 +1180,7 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
updateRows(true);
UIUtil.runOnUIThread(() -> {
builder.dismiss();
pro.dismiss();
});
UIUtil.runOnUIThread(pro::dismiss);
});
@ -1196,8 +1190,6 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente
builder.addButton(LocaleController.getString("OK", R.string.OK), (it) -> {
builder.dismiss();
if (!toChange.isEmpty()) {
AlertDialog pro = AlertUtil.showProgress(getParentActivity());

View File

@ -529,13 +529,11 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter
builder.addTitle(message);
String finalMessage = message;
builder.addItem(LocaleController.getString("Copy", R.string.Copy), R.drawable.baseline_content_copy_24, (it) -> {
builder.dismiss();
AndroidUtilities.addToClipboard(finalMessage);
AlertUtil.showToast(LocaleController.getString("TextCopied", R.string.TextCopied));
return Unit.INSTANCE;
});
builder.addItem(BuildVars.LOGS_ENABLED ? LocaleController.getString("DebugMenuDisableLogs", R.string.DebugMenuDisableLogs) : LocaleController.getString("DebugMenuEnableLogs", R.string.DebugMenuEnableLogs), R.drawable.baseline_bug_report_24, (it) -> {
builder.dismiss();
BuildVars.LOGS_ENABLED = !BuildVars.LOGS_ENABLED;
SharedPreferences sharedPreferences = ApplicationLoader.applicationContext.getSharedPreferences("systemConfig", Context.MODE_PRIVATE);
sharedPreferences.edit().putBoolean("logsEnabled", BuildVars.LOGS_ENABLED).apply();
@ -544,25 +542,21 @@ public class SettingsActivity extends BaseFragment implements NotificationCenter
});
if (!BuildVars.isUnknown) {
builder.addItem(LocaleController.getString("CheckUpdate", R.string.CheckUpdate), R.drawable.baseline_system_update_24, (it) -> {
builder.dismiss();
UpdateChecksKt.checkUpdate(getParentActivity());
return Unit.INSTANCE;
});
}
if (BuildConfig.BUILD_TYPE.startsWith("release")) {
builder.addItem(LocaleController.getString("SwitchVersion", R.string.SwitchVersion), R.drawable.baseline_replay_24, (it) -> {
builder.dismiss();
Browser.openUrl(getParentActivity(), "https://github.com/NekoX-Dev/NekoX/releases");
return Unit.INSTANCE;
});
}
if (NekoXConfig.developerModeEntrance || NekoXConfig.developerMode) {
builder.addItem(LocaleController.getString("DeveloperSettings", R.string.DeveloperSettings), R.drawable.baseline_developer_mode_24, (it) -> {
builder.dismiss();
BottomBuilder devBuilder = new BottomBuilder(getParentActivity());
devBuilder.addTitle(LocaleController.getString("DevModeTitle", R.string.DevModeTitle), LocaleController.getString("DevModeNotice", R.string.DevModeNotice));
devBuilder.addItem(LocaleController.getString("Continue", R.string.Continue), R.drawable.baseline_warning_24, true, (__) -> {
devBuilder.dismiss();
presentFragment(new NekoXSettingActivity());
return Unit.INSTANCE;
});

View File

@ -526,8 +526,6 @@ public class StickersActivity extends BaseFragment implements NotificationCenter
exportButton.set(builder.addButton(LocaleController.getString("Export", R.string.ExportStickers), (it) -> {
builder.dismiss();
exportStickersFinal(exportSets.get(), exportArchived.get());
return Unit.INSTANCE;

View File

@ -228,14 +228,14 @@ class BottomBuilder(val ctx: Context) {
@JvmOverloads
fun addCancelItem() {
addItem(LocaleController.getString("Cancel", R.string.Cancel), R.drawable.baseline_cancel_24) { dismiss() }
addItem(LocaleController.getString("Cancel", R.string.Cancel), R.drawable.baseline_cancel_24) {}
}
@JvmOverloads
fun addCancelButton(left: Boolean = true) {
addButton(LocaleController.getString("Cancel", R.string.Cancel), left = left) { dismiss() }
addButton(LocaleController.getString("Cancel", R.string.Cancel), left = left) {}
}
@ -262,7 +262,7 @@ class BottomBuilder(val ctx: Context) {
setText(text)
typeface = AndroidUtilities.getTypeface("fonts/rmedium.ttf")
(if (left) buttonsView else rightButtonsView).addView(this, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.MATCH_PARENT, Gravity.TOP or Gravity.LEFT))
setOnClickListener { listener(this) }
setOnClickListener { dismiss();listener(this) }
}
@ -291,7 +291,9 @@ class BottomBuilder(val ctx: Context) {
setOnClickListener {
if (listener == null) dismiss() else listener(this)
dismiss()
listener?.invoke(this)
}

View File

@ -21,13 +21,13 @@ object EmojiProvider {
// default use blob
@JvmField
val isFont = type.contains("Blob")
val isFont = !type.contains("Emoji")
@JvmStatic
val font by lazy {
if (!isFont) throw IllegalStateException()
val resName = when {
type.contains("Blob") -> "blob_compat.ttf"
!type.contains("Emoji") -> "blob_compat.ttf"
else -> throw IllegalStateException()
}
Typeface.createFromAsset(ApplicationLoader.applicationContext.assets, "fonts/$resName");

View File

@ -475,8 +475,6 @@ public class ShadowsocksSettingsActivity extends BaseFragment {
onPreferenceChange(options.getText().toString());
builder.dismiss();
return Unit.INSTANCE;
});

View File

@ -110,24 +110,18 @@ fun Activity.checkUpdate(force: Boolean = false) {
UpdateUtil.doUpdate(this, code, updateInfo.getString("defaultFlavor"))
builder.dismiss()
NekoXConfig.preferences.edit().remove("ignored_update_at").remove("ignore_update_at").apply()
}
builder.addItem(LocaleController.getString("UpdateLater", R.string.UpdateLater), R.drawable.baseline_watch_later_24, false) {
builder.dismiss()
NekoXConfig.preferences.edit().putLong("ignored_update_at", System.currentTimeMillis()).apply()
}
builder.addItem(LocaleController.getString("Ignore", R.string.Ignore), R.drawable.baseline_block_24, true) {
builder.dismiss()
NekoXConfig.preferences.edit().putInt("ignore_update", code).apply()
}

View File

@ -309,8 +309,6 @@ public class NekoGeneralSettingsActivity extends BaseFragment {
}
builder.dismiss();
return Unit.INSTANCE;
});
@ -390,8 +388,6 @@ public class NekoGeneralSettingsActivity extends BaseFragment {
NekoConfig.setGoogleTranslateKey(key);
builder.dismiss();
return Unit.INSTANCE;
});

View File

@ -107,16 +107,7 @@ public class NekoSettingsActivity extends BaseFragment {
} else if (position == donateRow) {
Browser.openUrl(getParentActivity(), "https://patreon.com/NekoXDev");
} else if (position == translationRow) {
BottomBuilder builder = new BottomBuilder(getParentActivity());
builder.addItem(LocaleController.getString("NekoTrans", R.string.NekoTrans), (__) -> {
Browser.openUrl(getParentActivity(), "https://neko.crowdin.com/nekogram");
return Unit.INSTANCE;
});
builder.addItem(LocaleController.getString("NekoXTrans", R.string.NekoXTrans), (__) -> {
Browser.openUrl(getParentActivity(), "https://nekox.crowdin.com/nekox");
return Unit.INSTANCE;
});
builder.show();
Browser.openUrl(getParentActivity(), "https://nekox.crowdin.com/nekox");
} else if (position == googlePlayRow) {
Browser.openUrl(getParentActivity(), "https://play.google.com/store/apps/details?id=nekox.messenger");
} else if (position == sourceCodeRow) {

View File

@ -24,7 +24,7 @@ object SubManager {
enable = public?.enable ?: true
urls = listOf(
"https://gitlab.com/nekohasekai/nekox-proxy-list/-/raw/master/proxy_list",
"https://gitlab.com/NekohaSekai/nekox-proxy-list/-/raw/master/proxy_list",
"https://nekox-dev.github.io/ProxyList/proxy_list",
"https://gitee.com/nekoshizuku/AwesomeRepo/raw/master/proxy_list"
)

View File

@ -160,8 +160,6 @@ object AlertUtil {
builder.addItem(button, icon, red) {
builder.dismiss()
listener.run()
}

View File

@ -75,24 +75,18 @@ object UpdateUtil {
doUpdate(ctx, code, updateInfo.getString("defaultFlavor"))
builder.dismiss()
NekoXConfig.preferences.edit().remove("ignored_update_at").remove("ignore_update_at").apply()
}
builder.addItem(LocaleController.getString("UpdateLater", R.string.UpdateLater), R.drawable.baseline_watch_later_24, false) {
builder.dismiss()
NekoXConfig.preferences.edit().putLong("ignored_update_at", System.currentTimeMillis()).apply()
}
builder.addItem(LocaleController.getString("Ignore", R.string.Ignore), R.drawable.baseline_block_24, true) {
builder.dismiss()
NekoXConfig.preferences.edit().putInt("ignore_update", code).apply()
}

View File

@ -12,5 +12,5 @@ fi
rm -rf build/apks &&
mkdir -p build/apks &&
find TMessagesProj -name "*.apk" -exec cp {} build/apks \; &&
find TMessagesProj/build/outputs/apk -name "*.apk" -exec cp {} build/apks \; &&
ghr -delete -n "$1" "$1" build/apks/

View File

@ -2,7 +2,7 @@
rm -rf build/apks &&
mkdir -p build/apks &&
find TMessagesProj -name "*.apk" -exec cp {} build/apks \; &&
find TMessagesProj/build/outputs/apk -name "*.apk" -exec cp {} build/apks \; &&
cp build/update.json build/apks &&
cd build/apks &&
rm *universal* &&

View File

@ -1,11 +1,22 @@
#!/usr/bin/env bash
./gradlew TMessagesProj:clean \
TMessagesProj:assembleFullBlobEmojiRelease \
TMessagesProj:assembleFullBlobEmojiReleaseNoGcm \
TMessagesProj:assembleMiniBlobEmojiRelease \
TMessagesProj:assembleMiniBlobEmojiReleaseNoGcm \
TMessagesProj:assembleMiniNoEmojiRelease \
TMessagesProj:assembleMiniNoEmojiReleaseNoGcm &&
function assemble() {
./gradlew TMessagesProj:assembleFullRelease \
TMessagesProj:assembleFullReleaseNoGcm \
TMessagesProj:assembleMiniRelease \
TMessagesProj:assembleMiniReleaseNoGcm \
TMessagesProj:assembleMiniNoEmojiRelease \
TMessagesProj:assembleMiniNoEmojiReleaseNoGcm
return $?
}
#./gradlew TMessagesProj:assembleRelease \
# TMessagesProj:assembleReleaseNoGcm
assemble &&
assemble &&
./bin/publish_repo_apks.sh &&
./bin/publish_release_apks.sh "$1"

0
bin/release_ext.sh Normal file
View File

View File

@ -1,5 +1,6 @@
#Fri Jul 10 12:31:49 UTC 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip