From 3b75cb665d1a7b20f8b525f93d8e024fe2a5da5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Thu, 30 Jul 2020 20:11:37 +0800 Subject: [PATCH] Fixes --- .github/workflows/dev.yml | 146 +------------- .github/workflows/release.yml | 36 ---- TMessagesProj/build.gradle | 4 +- TMessagesProj/proguard-rules.pro | 1 - .../telegram/messenger/AndroidUtilities.java | 6 +- .../org/telegram/messenger/BuildVars.java | 4 +- .../java/org/telegram/messenger/FileLog.java | 18 +- .../org/telegram/messenger/SharedConfig.java | 37 ++-- .../messenger/voip/VoIPController.java | 25 +-- .../org/telegram/ui/ActionIntroActivity.java | 2 +- .../ui/Components/AudioPlayerAlert.java | 4 +- .../ui/Components/ChatActivityEnterView.java | 2 +- .../ui/Components/ProfileGalleryView.java | 187 +++++++++--------- .../java/org/telegram/ui/ProfileActivity.java | 141 ++++--------- .../org/telegram/ui/ProxyListActivity.java | 21 +- .../tw/nekomimi/nekogram/database/Nitrites.kt | 6 +- .../tw/nekomimi/nekogram/utils/FileUtil.kt | 4 + bin/init_release.sh | 20 ++ bin/publish_release_apks.sh | 8 +- bin/release.sh | 25 +-- bin/{binary_libs.sh => update_libs.sh} | 0 21 files changed, 228 insertions(+), 469 deletions(-) delete mode 100644 .github/workflows/release.yml create mode 100755 bin/init_release.sh rename bin/{binary_libs.sh => update_libs.sh} (100%) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 82b226908..ef2b603cc 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -25,10 +25,13 @@ jobs: java-version: 1.8 - name: Run Gradle Build run: | - export LOCAL_PROPERTIES="${{ secrets.LOCAL_PROPERTIES }}" sudo bash < $HOME/.ssh/id_rsa - chmod 600 /root/.ssh/id_rsa - cat > service_account_credentials.json << EOX - ${{ secrets.GOOGLE_ACCOUNT_SERVICE }} - EOX - ref="${{ github.ref }}" - ref=${ref/"refs/tags/"/} - ./bin/release.sh "$ref" - EOF \ No newline at end of file diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 039c49f9b..0f0b3fc72 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -7,8 +7,8 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' -def verName = "6.3.0.0-preview-1" -def verCode = 58 +def verName = "6.3.0.0-preview-3" +def verCode = 60 def serviceAccountCredentialsFile = rootProject.file("service_account_credentials.json") diff --git a/TMessagesProj/proguard-rules.pro b/TMessagesProj/proguard-rules.pro index 6032c8ce4..4871c43da 100644 --- a/TMessagesProj/proguard-rules.pro +++ b/TMessagesProj/proguard-rules.pro @@ -7,7 +7,6 @@ -keep class org.telegram.messenger.camera.* { *; } -keep class org.telegram.messenger.secretmedia.* { *; } -keep class org.telegram.messenger.support.* { *; } --keep class org.telegram.messenger.support.* { *; } -keep class org.telegram.messenger.time.* { *; } -keep class org.telegram.messenger.video.* { *; } -keep class org.telegram.messenger.voip.* { *; } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java index 3a737a414..2766bb937 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java @@ -47,11 +47,6 @@ import android.provider.CallLog; import android.provider.DocumentsContract; import android.provider.MediaStore; import android.provider.Settings; - -import androidx.core.content.FileProvider; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.viewpager.widget.ViewPager; - import android.telephony.TelephonyManager; import android.text.Selection; import android.text.Spannable; @@ -90,6 +85,7 @@ import android.widget.ScrollView; import android.widget.TextView; import androidx.core.content.FileProvider; +import androidx.recyclerview.widget.LinearLayoutManager; import androidx.viewpager.widget.ViewPager; import com.android.internal.telephony.ITelephony; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java b/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java index e61682498..13ebc9648 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java @@ -16,7 +16,7 @@ import android.content.pm.PackageManager; @SuppressWarnings("ConstantConditions") public class BuildVars { - public static boolean DEBUG_VERSION = BuildConfig.BUILD_TYPE.equals("debug"); + public static boolean DEBUG_VERSION = BuildConfig.BUILD_TYPE.equals("debug") || BuildConfig.VERSION_NAME.contains("preview"); public static boolean DEBUG_PRIVATE_VERSION = DEBUG_VERSION; public static boolean LOGS_ENABLED; public static boolean USE_CLOUD_STRINGS = true; @@ -46,7 +46,7 @@ public class BuildVars { if (ApplicationLoader.applicationContext != null) { SharedPreferences sharedPreferences = ApplicationLoader.applicationContext.getSharedPreferences("systemConfig", Context.MODE_PRIVATE); - LOGS_ENABLED = sharedPreferences.getBoolean("logsEnabled", LOGS_ENABLED); + LOGS_ENABLED = sharedPreferences.getBoolean("logsEnabled", DEBUG_VERSION); } } } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java index cd3da8d55..f5a82ed1e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java @@ -10,26 +10,24 @@ package org.telegram.messenger; import android.util.Log; -import org.telegram.messenger.time.FastDateFormat; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.OutputStreamWriter; -import java.util.Locale; - -import cn.hutool.core.lang.caller.CallerUtil; import cn.hutool.core.lang.caller.StackTraceCaller; +import cn.hutool.core.util.StrUtil; public class FileLog { private final static StackTraceCaller caller = new StackTraceCaller(); public static String getNetworkLogPath() { + if (BuildVars.DEBUG_VERSION) return "/dev/null"; return ""; } private static String mkTag() { - return caller.getCaller(3).getSimpleName(); + + final StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); + + return StrUtil.subAfter(stackTrace[2].getClassName(), ".", true); + } private static String mkMessage(Throwable e) { @@ -47,7 +45,7 @@ public class FileLog { } public static void e(final Throwable e) { - Log.e(mkTag(),mkMessage(e),e); + Log.e(mkTag(), mkMessage(e), e); } public static void d(final String message) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java b/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java index 31df42774..3e5903e8b 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java @@ -20,6 +20,7 @@ import android.util.Base64; import android.util.SparseArray; import androidx.annotation.Nullable; +import androidx.core.content.pm.ShortcutManagerCompat; import com.v2ray.ang.V2RayConfig; import com.v2ray.ang.dto.AngConfig; @@ -33,7 +34,6 @@ import org.telegram.tgnet.ConnectionsManager; import java.io.File; import java.io.RandomAccessFile; -import java.util.ConcurrentModificationException; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; @@ -50,14 +50,11 @@ import tw.nekomimi.nekogram.sub.SubManager; import tw.nekomimi.nekogram.utils.AlertUtil; import tw.nekomimi.nekogram.utils.EnvUtil; import tw.nekomimi.nekogram.utils.FileUtil; -import tw.nekomimi.nekogram.utils.ThreadUtil; import tw.nekomimi.nekogram.utils.UIUtil; import static com.v2ray.ang.V2RayConfig.SSR_PROTOCOL; import static com.v2ray.ang.V2RayConfig.SS_PROTOCOL; -import androidx.core.content.pm.ShortcutManagerCompat; - public class SharedConfig { public static String pushString = ""; @@ -501,6 +498,16 @@ public class SharedConfig { public AngConfig.VmessBean bean; public VmessLoader loader; + { + + if (BuildVars.isMini) { + + throw new RuntimeException(LocaleController.getString("MiniVersionAlert", R.string.MiniVersionAlert)); + + } + + } + public VmessProxy(String vmessLink) { this(VmessLoader.parseVmessLink(vmessLink)); @@ -511,12 +518,6 @@ public class SharedConfig { this.bean = bean; - if (BuildVars.isMini) { - - throw new RuntimeException(LocaleController.getString("MiniVersionAlert", R.string.MiniVersionAlert)); - - } - } @Override @@ -989,7 +990,7 @@ public class SharedConfig { return new LinkedList<>(proxyList); - } catch (ConcurrentModificationException ignored) { + } catch (Exception ignored) { } } @@ -1700,12 +1701,11 @@ public class SharedConfig { } if (!proxyList.isEmpty()) { - for (ProxyInfo proxyInfo : proxyList) { + for (ProxyInfo proxyInfo : getProxyList()) { if (proxyInfo instanceof ExternalSocks5Proxy) { ((ExternalSocks5Proxy) proxyInfo).stop(); } } - ThreadUtil.sleep(500L); } proxyListLoaded = true; @@ -2002,10 +2002,15 @@ public class SharedConfig { proxyList.remove(proxyInfo); if (proxyInfo.subId != 0) { SubInfo sub = SubManager.getSubList().find(ObjectFilters.eq("id", proxyInfo.subId)).firstOrDefault(); - sub.proxies.remove(proxyInfo.toUrl()); - SubManager.getSubList().update(sub); + try { + if (sub.proxies.remove(proxyInfo.toUrl())) { + SubManager.getSubList().update(sub); + } + } catch (UnsupportedOperationException ignored) { + } + } else { + saveProxyList(); } - saveProxyList(); } public static void deleteAllProxy() { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPController.java b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPController.java index b75c1175f..6877c74c5 100755 --- a/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/voip/VoIPController.java @@ -26,6 +26,8 @@ import java.util.Arrays; import java.util.Calendar; import java.util.Locale; +import tw.nekomimi.nekogram.utils.EnvUtil; + public class VoIPController{ public static final int NET_TYPE_UNKNOWN=0; @@ -226,30 +228,11 @@ public class VoIPController{ } private String getLogFilePath(String name){ - Calendar c=Calendar.getInstance(); - return new File(ApplicationLoader.applicationContext.getExternalFilesDir(null), - String.format(Locale.US, "logs/%02d_%02d_%04d_%02d_%02d_%02d_%s.txt", - c.get(Calendar.DATE), c.get(Calendar.MONTH)+1, c.get(Calendar.YEAR), - c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE), c.get(Calendar.SECOND), name)).getAbsolutePath(); + return new File(EnvUtil.getTelegramPath(),"logs/" + name + ".log").getPath(); } private String getLogFilePath(long callID){ - File dir=VoIPHelper.getLogsDir(); - if(!BuildVars.DEBUG_VERSION){ - File[] _logs=dir.listFiles(); - ArrayList logs=new ArrayList<>(); - logs.addAll(Arrays.asList(_logs)); - while(logs.size()>20){ - File oldest=logs.get(0); - for(File file : logs){ - if(file.getName().endsWith(".log") && file.lastModified() { + builder.addItem(LocaleController.getString("Change", R.string.Change),R.drawable.baseline_check_circle_24, i -> { presentFragment(new ChangePhoneActivity(), true); return Unit.INSTANCE; }); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java index 0789f624b..aef67f6e5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AudioPlayerAlert.java @@ -210,8 +210,8 @@ public class AudioPlayerAlert extends BottomSheet implements NotificationCenter. layoutParams = (LayoutParams) actionBarShadow.getLayoutParams(); layoutParams.topMargin = ActionBar.getCurrentActionBarHeight(); - layoutParams = (LayoutParams) blurredView.getLayoutParams(); - layoutParams.topMargin = -getPaddingTop(); + LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) blurredView.getLayoutParams(); + lp.topMargin = -getPaddingTop(); int contentSize = AndroidUtilities.dp(179); if (playlist.size() > 1) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java index 86a16aef3..8d23e8c9d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java @@ -3196,7 +3196,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe ((LaunchActivity) parentActivity).callbacks.put(115, result -> { - long keyId = result.getLongExtra(OpenPgpApi.EXTRA_SIGN_KEY_ID, 0L); + long keyId = result == null ? 0L : result.getLongExtra(OpenPgpApi.EXTRA_SIGN_KEY_ID, 0L); if (save && keyId != 0L) NekoConfig.setOpenPGPKeyId(keyId); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ProfileGalleryView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ProfileGalleryView.java index 37667a859..e0131a34f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ProfileGalleryView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ProfileGalleryView.java @@ -71,8 +71,7 @@ public class ProfileGalleryView extends CircularViewPager implements Notificatio } public interface Callback { - void onDown(boolean left); - void onRelease(); + void onClick(); void onPhotosLoaded(); void onVideoSet(); } @@ -199,95 +198,95 @@ public class ProfileGalleryView extends CircularViewPager implements Notificatio drawable.setInvalidateParentViewWithSecond(true); } } - - @Override - public boolean onTouchEvent(MotionEvent ev) { - if (parentListView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE && !isScrollingListView && isSwipingViewPager) { - isSwipingViewPager = false; - final MotionEvent cancelEvent = MotionEvent.obtain(ev); - cancelEvent.setAction(MotionEvent.ACTION_CANCEL); - super.onTouchEvent(cancelEvent); - cancelEvent.recycle(); - return false; - } - - final int action = ev.getAction(); - if (action == MotionEvent.ACTION_DOWN) { - - isScrollingListView = true; - isSwipingViewPager = true; - scrolledByUser = true; - downPoint.set(ev.getX(), ev.getY()); - //if (adapter.getCount() > 1) { - callback.onDown(ev.getX() < getWidth() / 3f); - //} - isDownReleased = false; - } else if (action == MotionEvent.ACTION_UP) { - if (!isDownReleased) { - final int itemsCount = adapter.getCount(); - int currentItem = getCurrentItem(); - if (itemsCount > 1) { - if (ev.getX() > getWidth() / 3f) { - final int extraCount = adapter.getExtraCount(); - if (++currentItem >= itemsCount - extraCount) { - currentItem = extraCount; - } - } else { - final int extraCount = adapter.getExtraCount(); - if (--currentItem < extraCount) { - currentItem = itemsCount - extraCount - 1; - } - } - callback.onRelease(); - setCurrentItem(currentItem, false); - } - } - } else if (action == MotionEvent.ACTION_MOVE) { - final float dx = ev.getX() - downPoint.x; - final float dy = ev.getY() - downPoint.y; - boolean move = Math.abs(dy) >= touchSlop || Math.abs(dx) >= touchSlop; - if (move) { - isDownReleased = true; - callback.onRelease(); - } - if (isSwipingViewPager && isScrollingListView) { - if (move) { - if (Math.abs(dy) > Math.abs(dx)) { - isSwipingViewPager = false; - final MotionEvent cancelEvent = MotionEvent.obtain(ev); - cancelEvent.setAction(MotionEvent.ACTION_CANCEL); - super.onTouchEvent(cancelEvent); - cancelEvent.recycle(); - } else { - isScrollingListView = false; - final MotionEvent cancelEvent = MotionEvent.obtain(ev); - cancelEvent.setAction(MotionEvent.ACTION_CANCEL); - parentListView.onTouchEvent(cancelEvent); - cancelEvent.recycle(); - } - } - } else if (isSwipingViewPager && !canScrollHorizontally(-1) && dx > touchSlop) { - return false; - } - } - - boolean result = false; - - if (isScrollingListView) { - result |= parentListView.onTouchEvent(ev); - } - - if (isSwipingViewPager) { - result |= super.onTouchEvent(ev); - } - - if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) { - isScrollingListView = false; - isSwipingViewPager = false; - } - - return result; - } +// +// @Override +// public boolean onTouchEvent(MotionEvent ev) { +// if (parentListView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE && !isScrollingListView && isSwipingViewPager) { +// isSwipingViewPager = false; +// final MotionEvent cancelEvent = MotionEvent.obtain(ev); +// cancelEvent.setAction(MotionEvent.ACTION_CANCEL); +// super.onTouchEvent(cancelEvent); +// cancelEvent.recycle(); +// return false; +// } +// +// final int action = ev.getAction(); +// if (action == MotionEvent.ACTION_DOWN) { +// +// isScrollingListView = true; +// isSwipingViewPager = true; +// scrolledByUser = true; +// downPoint.set(ev.getX(), ev.getY()); +// //if (adapter.getCount() > 1) { +// callback.onDown(ev.getX() < getWidth() / 3f); +// //} +// isDownReleased = false; +// } else if (action == MotionEvent.ACTION_UP) { +// if (!isDownReleased) { +// final int itemsCount = adapter.getCount(); +// int currentItem = getCurrentItem(); +// if (itemsCount > 1) { +// if (ev.getX() > getWidth() / 3f) { +// final int extraCount = adapter.getExtraCount(); +// if (++currentItem >= itemsCount - extraCount) { +// currentItem = extraCount; +// } +// } else { +// final int extraCount = adapter.getExtraCount(); +// if (--currentItem < extraCount) { +// currentItem = itemsCount - extraCount - 1; +// } +// } +// callback.onRelease(); +// setCurrentItem(currentItem, false); +// } +// } +// } else if (action == MotionEvent.ACTION_MOVE) { +// final float dx = ev.getX() - downPoint.x; +// final float dy = ev.getY() - downPoint.y; +// boolean move = Math.abs(dy) >= touchSlop || Math.abs(dx) >= touchSlop; +// if (move) { +// isDownReleased = true; +// callback.onRelease(); +// } +// if (isSwipingViewPager && isScrollingListView) { +// if (move) { +// if (Math.abs(dy) > Math.abs(dx)) { +// isSwipingViewPager = false; +// final MotionEvent cancelEvent = MotionEvent.obtain(ev); +// cancelEvent.setAction(MotionEvent.ACTION_CANCEL); +// super.onTouchEvent(cancelEvent); +// cancelEvent.recycle(); +// } else { +// isScrollingListView = false; +// final MotionEvent cancelEvent = MotionEvent.obtain(ev); +// cancelEvent.setAction(MotionEvent.ACTION_CANCEL); +// parentListView.onTouchEvent(cancelEvent); +// cancelEvent.recycle(); +// } +// } +// } else if (isSwipingViewPager && !canScrollHorizontally(-1) && dx > touchSlop) { +// return false; +// } +// } +// +// boolean result = false; +// +// if (isScrollingListView) { +// result |= parentListView.onTouchEvent(ev); +// } +// +// if (isSwipingViewPager) { +// result |= super.onTouchEvent(ev); +// } +// +// if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) { +// isScrollingListView = false; +// isSwipingViewPager = false; +// } +// +// return result; +// } public void setChatInfo(TLRPC.ChatFull chatFull) { chatInfo = chatFull; @@ -574,7 +573,7 @@ public class ProfileGalleryView extends CircularViewPager implements Notificatio imagesLocationsSizes.add(-1); } } - /*for (int a = 0; a < arrayList.size(); a++) { + for (int a = 0; a < arrayList.size(); a++) { TLRPC.Photo photo = arrayList.get(a); if (photo == null || photo instanceof TLRPC.TL_photoEmpty || photo.sizes == null) { continue; @@ -629,7 +628,6 @@ public class ProfileGalleryView extends CircularViewPager implements Notificatio } } loadNeighboringThumbs(); - */ getAdapter().notifyDataSetChanged(); if (!scrolledByUser) { resetCurrentItem(); @@ -783,6 +781,9 @@ public class ProfileGalleryView extends CircularViewPager implements Notificatio } }); getImageReceiver().setCrossfadeAlpha((byte) 2); + setOnClickListener(__ -> { + callback.onClick();; + }); } @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java index 0cfef309c..d679569b5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java @@ -37,7 +37,6 @@ import android.graphics.Typeface; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; -import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.SystemClock; @@ -172,7 +171,6 @@ import tw.nekomimi.nekogram.settings.NekoSettingsActivity; import tw.nekomimi.nekogram.utils.AlertUtil; import tw.nekomimi.nekogram.utils.EnvUtil; import tw.nekomimi.nekogram.utils.FileUtil; -import tw.nekomimi.nekogram.utils.IoUtil; import tw.nekomimi.nekogram.utils.LangsKt; import tw.nekomimi.nekogram.utils.ProxyUtil; import tw.nekomimi.nekogram.utils.ShareUtil; @@ -916,7 +914,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. } @Override - public void onDown(boolean left) { + public void onClick() { if (imageUpdater != null) { TLRPC.User user = MessagesController.getInstance(currentAccount).getUser(UserConfig.getInstance(currentAccount).getClientUserId()); @@ -931,14 +929,6 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. openAvatar(); } -// pressedOverlayVisible[left ? 0 : 1] = true; -// postInvalidateOnAnimation(); - } - - @Override - public void onRelease() { -// Arrays.fill(pressedOverlayVisible, false); -// postInvalidateOnAnimation(); } @Override @@ -2237,21 +2227,21 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. @Override public void onItemClick(View view, int position, float x, float y) { - if (ProfileActivity.this.getParentActivity() == null) { + if (getParentActivity() == null) { return; } if (position == settingsKeyRow) { Bundle args = new Bundle(); args.putInt("chat_id", (int) (dialog_id >> 32)); - ProfileActivity.this.presentFragment(new IdenticonActivity(args)); + presentFragment(new IdenticonActivity(args)); } else if (position == settingsTimerRow) { - ProfileActivity.this.showDialog(AlertsCreator.createTTLAlert(ProfileActivity.this.getParentActivity(), currentEncryptedChat).create()); + showDialog(AlertsCreator.createTTLAlert(getParentActivity(), currentEncryptedChat).create()); } else if (position == notificationsRow) { if (LocaleController.isRTL && x <= AndroidUtilities.dp(76) || !LocaleController.isRTL && x >= view.getMeasuredWidth() - AndroidUtilities.dp(76)) { NotificationsCheckCell checkCell = (NotificationsCheckCell) view; boolean checked = !checkCell.isChecked(); - boolean defaultEnabled = ProfileActivity.this.getNotificationsController().isGlobalNotificationsEnabled(did); + boolean defaultEnabled = getNotificationsController().isGlobalNotificationsEnabled(did); if (checked) { SharedPreferences preferences = MessagesController.getNotificationsSettings(currentAccount); @@ -2261,9 +2251,9 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. } else { editor.putInt("notify2_" + did, 0); } - ProfileActivity.this.getMessagesStorage().setDialogFlags(did, 0); + getMessagesStorage().setDialogFlags(did, 0); editor.commit(); - TLRPC.Dialog dialog = ProfileActivity.this.getMessagesController().dialogs_dict.get(did); + TLRPC.Dialog dialog = getMessagesController().dialogs_dict.get(did); if (dialog != null) { dialog.notify_settings = new TLRPC.TL_peerNotifySettings(); } @@ -2279,10 +2269,10 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. editor.putInt("notify2_" + did, 2); flags = 1; } - ProfileActivity.this.getNotificationsController().removeNotificationsForDialog(did); - ProfileActivity.this.getMessagesStorage().setDialogFlags(did, flags); + getNotificationsController().removeNotificationsForDialog(did); + getMessagesStorage().setDialogFlags(did, flags); editor.commit(); - TLRPC.Dialog dialog = ProfileActivity.this.getMessagesController().dialogs_dict.get(did); + TLRPC.Dialog dialog = getMessagesController().dialogs_dict.get(did); if (dialog != null) { dialog.notify_settings = new TLRPC.TL_peerNotifySettings(); if (defaultEnabled) { @@ -2290,7 +2280,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. } } } - ProfileActivity.this.getNotificationsController().updateServerNotificationsSettings(did); + getNotificationsController().updateServerNotificationsSettings(did); checkCell.setChecked(checked); RecyclerListView.Holder holder = (RecyclerListView.Holder) listView.findViewHolderForPosition(notificationsRow); if (holder != null) { @@ -2300,12 +2290,12 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. } AlertsCreator.showCustomNotificationsDialog(ProfileActivity.this, did, -1, null, currentAccount, param -> listAdapter.notifyItemChanged(notificationsRow)); } else if (position == unblockRow) { - ProfileActivity.this.getMessagesController().unblockUser(user_id); + getMessagesController().unblockUser(user_id); AlertsCreator.showSimpleToast(ProfileActivity.this, LocaleController.getString("UserUnblocked", R.string.UserUnblocked)); } else if (position == sendMessageRow) { writeButton.callOnClick(); } else if (position == reportRow) { - AlertsCreator.createReportAlert(ProfileActivity.this.getParentActivity(), ProfileActivity.this.getDialogId(), 0, ProfileActivity.this); + AlertsCreator.createReportAlert(getParentActivity(), getDialogId(), 0, ProfileActivity.this); } else if (position >= membersStartRow && position < membersEndRow) { TLRPC.ChatParticipant participant; if (!sortedUsers.isEmpty()) { @@ -2313,20 +2303,20 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. } else { participant = chatInfo.participants.participants.get(position - membersStartRow); } - ProfileActivity.this.onMemberClick(participant, false); + onMemberClick(participant, false); } else if (position == addMemberRow) { - ProfileActivity.this.openAddMember(); + openAddMember(); } else if (position == usernameRow) { if (currentChat != null) { try { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); if (!TextUtils.isEmpty(chatInfo.about)) { - intent.putExtra(Intent.EXTRA_TEXT, currentChat.title + "\n" + chatInfo.about + "\nhttps://" + ProfileActivity.this.getMessagesController().linkPrefix + "/" + currentChat.username); + intent.putExtra(Intent.EXTRA_TEXT, currentChat.title + "\n" + chatInfo.about + "\nhttps://" + getMessagesController().linkPrefix + "/" + currentChat.username); } else { - intent.putExtra(Intent.EXTRA_TEXT, currentChat.title + "\nhttps://" + ProfileActivity.this.getMessagesController().linkPrefix + "/" + currentChat.username); + intent.putExtra(Intent.EXTRA_TEXT, currentChat.title + "\nhttps://" + getMessagesController().linkPrefix + "/" + currentChat.username); } - ProfileActivity.this.getParentActivity().startActivityForResult(Intent.createChooser(intent, LocaleController.getString("BotShare", R.string.BotShare)), 500); + getParentActivity().startActivityForResult(Intent.createChooser(intent, LocaleController.getString("BotShare", R.string.BotShare)), 500); } catch (Exception e) { FileLog.e(e); } @@ -2335,10 +2325,10 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. if (chatInfo.location instanceof TLRPC.TL_channelLocation) { LocationActivity fragment = new LocationActivity(LocationActivity.LOCATION_TYPE_GROUP_VIEW); fragment.setChatLocation(chat_id, (TLRPC.TL_channelLocation) chatInfo.location); - ProfileActivity.this.presentFragment(fragment); + presentFragment(fragment); } } else if (position == joinRow) { - ProfileActivity.this.getMessagesController().addUserToChat(currentChat.id, ProfileActivity.this.getUserConfig().getCurrentUser(), null, 0, null, ProfileActivity.this, null); + getMessagesController().addUserToChat(currentChat.id, getUserConfig().getCurrentUser(), null, 0, null, ProfileActivity.this, null); NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.closeSearchByActiveAction); } else if (position == subscribersRow) { Bundle args = new Bundle(); @@ -2346,21 +2336,21 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. args.putInt("type", ChatUsersActivity.TYPE_USERS); ChatUsersActivity fragment = new ChatUsersActivity(args); fragment.setInfo(chatInfo); - ProfileActivity.this.presentFragment(fragment); + presentFragment(fragment); } else if (position == administratorsRow) { Bundle args = new Bundle(); args.putInt("chat_id", chat_id); args.putInt("type", ChatUsersActivity.TYPE_ADMIN); ChatUsersActivity fragment = new ChatUsersActivity(args); fragment.setInfo(chatInfo); - ProfileActivity.this.presentFragment(fragment); + presentFragment(fragment); } else if (position == blockedUsersRow) { Bundle args = new Bundle(); args.putInt("chat_id", chat_id); args.putInt("type", ChatUsersActivity.TYPE_BANNED); ChatUsersActivity fragment = new ChatUsersActivity(args); fragment.setInfo(chatInfo); - ProfileActivity.this.presentFragment(fragment); + presentFragment(fragment); } else if (position == notificationRow) { presentFragment(new NotificationsSettingsActivity()); } else if (position == privacyRow) { @@ -2457,22 +2447,22 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. builder.addTitle(number); - builder.addItem(LocaleController.getString("Edit",R.string.Edit),R.drawable.baseline_edit_24, __ -> { + builder.addItem(LocaleController.getString("Edit", R.string.Edit), R.drawable.baseline_edit_24, __ -> { presentFragment(new ActionIntroActivity(ActionIntroActivity.ACTION_TYPE_CHANGE_PHONE_NUMBER)); return Unit.INSTANCE; }); - builder.addItem(LocaleController.getString("Call",R.string.Call),R.drawable.baseline_call_24, __ -> { - AlertUtil.call(user.phone); + builder.addItem(LocaleController.getString("Call", R.string.Call), R.drawable.baseline_call_24, __ -> { + AlertUtil.call(user.phone); return Unit.INSTANCE; }); - builder.addItem(LocaleController.getString("Copy",R.string.Copy),R.drawable.baseline_content_copy_24, __ -> { - AlertUtil.copyAndAlert(number); + builder.addItem(LocaleController.getString("Copy", R.string.Copy), R.drawable.baseline_content_copy_24, __ -> { + AlertUtil.copyAndAlert(number); return Unit.INSTANCE; }); - builder.addItem(LocaleController.getString("ShareContact",R.string.ShareContact),R.drawable.baseline_forward_24, __ -> { + builder.addItem(LocaleController.getString("ShareContact", R.string.ShareContact), R.drawable.baseline_forward_24, __ -> { Bundle args = new Bundle(); args.putBoolean("onlySelect", true); args.putInt("dialogsType", 3); @@ -3419,17 +3409,17 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. builder.addTitle(number); - builder.addItem(LocaleController.getString("Call",R.string.Call),R.drawable.baseline_call_24, __ -> { + builder.addItem(LocaleController.getString("Call", R.string.Call), R.drawable.baseline_call_24, __ -> { AlertUtil.call(user.phone); return Unit.INSTANCE; }); - builder.addItem(LocaleController.getString("Copy",R.string.Copy),R.drawable.baseline_content_copy_24, __ -> { + builder.addItem(LocaleController.getString("Copy", R.string.Copy), R.drawable.baseline_content_copy_24, __ -> { AlertUtil.copyAndAlert(number); return Unit.INSTANCE; }); - builder.addItem(LocaleController.getString("ShareContact",R.string.ShareContact),R.drawable.baseline_forward_24, __ -> { + builder.addItem(LocaleController.getString("ShareContact", R.string.ShareContact), R.drawable.baseline_forward_24, __ -> { Bundle args = new Bundle(); args.putBoolean("onlySelect", true); args.putInt("dialogsType", 3); @@ -5144,6 +5134,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. int id = 0; if (user_id != 0) { TLRPC.User user = getMessagesController().getUser(user_id); + if (user == null) return; TLRPC.FileLocation photoBig = null; if (user.photo != null) { photoBig = user.photo.photo_big; @@ -5879,42 +5870,10 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. avatarAnimation.cancel(); avatarAnimation = null; } - if (animated) { - avatarAnimation = new AnimatorSet(); - if (show) { - avatarProgressView.setVisibility(View.VISIBLE); - avatarAnimation.playTogether(ObjectAnimator.ofFloat(avatarProgressView, View.ALPHA, 1.0f)); - } else { - avatarAnimation.playTogether(ObjectAnimator.ofFloat(avatarProgressView, View.ALPHA, 0.0f)); - } - avatarAnimation.setDuration(180); - avatarAnimation.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (avatarAnimation == null || avatarProgressView == null) { - return; - } - if (!show) { - avatarProgressView.setVisibility(View.INVISIBLE); - } - avatarAnimation = null; - } - @Override - public void onAnimationCancel(Animator animation) { - avatarAnimation = null; - } - }); - avatarAnimation.start(); - } else { - if (show) { - avatarProgressView.setAlpha(1.0f); - avatarProgressView.setVisibility(View.VISIBLE); - } else { - avatarProgressView.setAlpha(0.0f); - avatarProgressView.setVisibility(View.INVISIBLE); - } - } + avatarProgressView.setAlpha(0.0f); + avatarProgressView.setVisibility(View.INVISIBLE); + } @Override @@ -5948,11 +5907,9 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. try { - Process process = RuntimeUtil.exec("logcat", "-d"); + RuntimeUtil.exec("logcat", "-df", logcatFile.getPath()).waitFor(); - IoUtil.copy(process, logcatFile); - - RuntimeUtil.exec("logcat", "-c"); + RuntimeUtil.exec("logcat", "-c").waitFor(); ShareUtil.shareFile(getParentActivity(), logcatFile); @@ -6427,16 +6384,6 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. @Override public boolean isEnabled(RecyclerView.ViewHolder holder) { - if (notificationRow != -1) { - int position = holder.getAdapterPosition(); - return position == notificationRow || position == numberRow || position == privacyRow || - position == languageRow || position == setUsernameRow || position == bioRow || - position == versionRow || position == dataRow || position == chatRow || - position == questionRow || position == devicesRow || position == filtersRow || - position == faqRow || position == policyRow || position == sendLogsRow || - position == clearLogsRow || position == switchBackendRow || position == setAvatarRow || - position == nekoRow; - } int type = holder.getItemViewType(); return type != 1 && type != 5 && type != 7 && type != 9 && type != 10 && type != 11 && type != 12 && type != 13; } @@ -6456,16 +6403,6 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. return 2; } else if (position == userInfoRow || position == channelInfoRow) { return 3; - } else if (position == settingsTimerRow || position == settingsKeyRow || position == reportRow || - position == subscribersRow || position == administratorsRow || position == blockedUsersRow || - position == addMemberRow || position == joinRow || position == unblockRow || - position == sendMessageRow || position == notificationRow || position == privacyRow || - position == languageRow || position == dataRow || position == chatRow || - position == questionRow || position == devicesRow || position == filtersRow || - position == faqRow || position == policyRow || position == sendLogsRow || - position == clearLogsRow || position == switchBackendRow || position == setAvatarRow || - position == nekoRow || position == stickersRow) { - return 4; } else if (position == notificationsDividerRow) { return 5; } else if (position == notificationsRow) { @@ -6485,7 +6422,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter. } else if (position == versionRow) { return 14; } - return 0; + return 4; } } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java index 3c94cd5ee..da00fd938 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java @@ -304,7 +304,7 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente NotificationCenter.getInstance(currentAccount).addObserver(this, NotificationCenter.didUpdateConnectionState); final SharedPreferences preferences = MessagesController.getGlobalMainSettings(); - useProxySettings = SharedConfig.proxyEnabled && !SharedConfig.proxyList.isEmpty(); + useProxySettings = SharedConfig.proxyEnabled && !proxyList.isEmpty(); useProxyForCalls = preferences.getBoolean("proxy_enabled_calls", false); updateRows(true); @@ -728,7 +728,7 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente editor.putBoolean("proxy_enabled_calls", useProxyForCalls); editor.apply(); } else if (position >= proxyStartRow && position < proxyEndRow) { - SharedConfig.ProxyInfo info = SharedConfig.proxyList.get(position - proxyStartRow); + SharedConfig.ProxyInfo info = proxyList.get(position - proxyStartRow); useProxySettings = true; SharedConfig.setCurrentProxy(info); updateRows(true); @@ -952,13 +952,14 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente } private void updateRows(boolean notify) { + proxyList = SharedConfig.getProxyList(); rowCount = 0; useProxyRow = rowCount++; useProxyDetailRow = rowCount++; connectionsHeaderRow = rowCount++; - if (!SharedConfig.proxyList.isEmpty()) { + if (!proxyList.isEmpty()) { proxyStartRow = rowCount; - rowCount += SharedConfig.proxyList.size(); + rowCount += proxyList.size(); proxyEndRow = rowCount; } else { proxyStartRow = -1; @@ -1255,7 +1256,7 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente if (currentConnectionState != state) { currentConnectionState = state; if (listView != null && SharedConfig.currentProxy != null) { - int idx = SharedConfig.proxyList.indexOf(SharedConfig.currentProxy); + int idx = proxyList.indexOf(SharedConfig.currentProxy); if (idx >= 0) { RecyclerListView.Holder holder = (RecyclerListView.Holder) listView.findViewHolderForAdapterPosition(idx + proxyStartRow); if (holder != null && holder.itemView instanceof TextDetailProxyCell) { @@ -1271,7 +1272,7 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente updateRows(true); } else { SharedConfig.ProxyInfo proxyInfo = (SharedConfig.ProxyInfo) args[0]; - int idx = SharedConfig.proxyList.indexOf(proxyInfo); + int idx = proxyList.indexOf(proxyInfo); if (idx >= 0) { RecyclerListView.Holder holder = (RecyclerListView.Holder) listView.findViewHolderForAdapterPosition(idx + proxyStartRow); if (holder != null && holder.itemView instanceof TextDetailProxyCell) { @@ -1336,9 +1337,11 @@ public class ProxyListActivity extends BaseFragment implements NotificationCente } case 5: { TextDetailProxyCell cell = (TextDetailProxyCell) holder.itemView; - SharedConfig.ProxyInfo info = SharedConfig.proxyList.get(position - proxyStartRow); - cell.setProxy(info); - cell.setChecked(SharedConfig.currentProxy == info); + try { + SharedConfig.ProxyInfo info = proxyList.get(position - proxyStartRow); + cell.setProxy(info); + cell.setChecked(SharedConfig.currentProxy == info); + } catch (IndexOutOfBoundsException e) {} break; } } diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/database/Nitrites.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/database/Nitrites.kt index 5803e7a17..e1edcc398 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/database/Nitrites.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/database/Nitrites.kt @@ -23,9 +23,11 @@ fun mkDatabase(name: String): Nitrite { .filePath(file.path) .openOrCreate()!! - } + }.onFailure { - file.deleteRecursively() + file.deleteRecursively() + + } return Nitrite.builder().compressed() .filePath(file.path) diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/FileUtil.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/FileUtil.kt index a3f058960..d59bf9b3e 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/FileUtil.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/utils/FileUtil.kt @@ -206,6 +206,10 @@ object FileUtil { FileLog.d("lib extracted with default abi$index ($abi): $execFile") + }.onFailure { + + FileLog.d("$abi: ${it.message ?: it.javaClass.simpleName}") + } } diff --git a/bin/init_release.sh b/bin/init_release.sh new file mode 100755 index 000000000..cb767df4b --- /dev/null +++ b/bin/init_release.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +function assemble() { + + ./gradlew TMessagesProj:assembleFullRelease \ + TMessagesProj:assembleFullReleaseNoGcm \ + TMessagesProj:assembleMiniRelease \ + TMessagesProj:assembleMiniReleaseNoGcm \ + TMessagesProj:assembleMiniNoEmojiRelease \ + TMessagesProj:assembleMiniNoEmojiReleaseNoGcm + + return $? + +} + +#./gradlew TMessagesProj:assembleRelease \ +# TMessagesProj:assembleReleaseNoGcm + +assemble && +assemble \ No newline at end of file diff --git a/bin/publish_release_apks.sh b/bin/publish_release_apks.sh index 4266aee87..80eaf8111 100755 --- a/bin/publish_release_apks.sh +++ b/bin/publish_release_apks.sh @@ -10,7 +10,7 @@ if [ ! -x "$(command -v ghr)" ]; then fi -rm -rf build/apks && -mkdir -p build/apks && -find TMessagesProj/build/outputs/apk -name "*.apk" -exec cp {} build/apks \; && -ghr -delete -n "$1" "$1" build/apks/ \ No newline at end of file +rm -rf build/release && +mkdir -p build/release && +find TMessagesProj/build/outputs/apk -name "*.apk" -exec cp {} build/release \; && +ghr -delete -n "$1" "$1" build/release \ No newline at end of file diff --git a/bin/release.sh b/bin/release.sh index cc3197e03..04789a647 100755 --- a/bin/release.sh +++ b/bin/release.sh @@ -1,23 +1,6 @@ #!/usr/bin/env bash -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_release_apks.sh "$1" #&& -#./bin/publish_repo_apks.sh && -#./bin/publish_play.sh \ No newline at end of file +./bin/init_release.sh && +./bin/publish_release_apks.sh "$1" && +./bin/publish_repo_apks.sh && +./bin/publish_play.sh \ No newline at end of file diff --git a/bin/binary_libs.sh b/bin/update_libs.sh similarity index 100% rename from bin/binary_libs.sh rename to bin/update_libs.sh