diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java index b0878ac8c..43e4b5cf9 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java @@ -373,14 +373,6 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg private boolean drawBlockSelection; private LinkPath urlPath = new LinkPath(); - private static final int search_item = 1; - private static final int trans_item = 2; - private static final int share_item = 3; - private static final int open_item = 4; - private static final int settings_item = 5; - - public ActionBarMenuSubItem transMenu; - private int anchorsOffsetMeasuredWidth; TextSelectionHelper.ArticleTextSelectionHelper textSelectionHelper; @@ -4490,6 +4482,16 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg pages[0].getWebView().reload(); } } + + if (id == WebActionBar.trans_item) { + if (!pages[0].adapter.trans) { + updateTranslateButton(true); + ArticleTransKt.doTransLATE(this); + } else { + updateTranslateButton(false); + updatePaintSize(); + } + } }); actionBar.forwardButton.setOnClickListener(v -> { @@ -4751,6 +4753,14 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg }*/ } + public void updateTranslateButton(Boolean trans) { + if (actionBar == null || pages.length < 1) { + return; + } + actionBar.trans = trans; + pages[0].adapter.trans = trans; + } + private void updateSearchButtons() { if (searchResults == null && !pages[0].isWeb()) { return; @@ -6882,7 +6892,9 @@ public class ArticleViewer implements NotificationCenter.NotificationCenterDeleg private void cleanup() { trans = false; - transMenu.setTextAndIcon(LocaleController.getString("Translate", R.string.Translate), R.drawable.ic_translate); + if (actionBar != null) { + actionBar.trans = false; + } currentPage = null; blocks.clear(); photoBlocks.clear(); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ItemOptions.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ItemOptions.java index c83e00cbf..93fb178ef 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ItemOptions.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ItemOptions.java @@ -98,6 +98,8 @@ public class ItemOptions { private int foregroundIndex; private ActionBarPopupWindow.ActionBarPopupWindowLayout lastLayout; + public ActionBarMenuSubItem subItem; + public boolean swipeback; private ItemOptions(BaseFragment fragment, View scrimView, boolean swipeback) { @@ -229,7 +231,7 @@ public class ItemOptions { return this; } - ActionBarMenuSubItem subItem = new ActionBarMenuSubItem(context, false, false, resourcesProvider); + subItem = new ActionBarMenuSubItem(context, false, false, resourcesProvider); subItem.setPadding(dp(18), 0, dp(18), 0); if (iconResId != 0 || iconDrawable != null) { subItem.setTextAndIcon(text, iconResId, iconDrawable); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/web/WebActionBar.java b/TMessagesProj/src/main/java/org/telegram/ui/web/WebActionBar.java index 437ebdd56..2c728e55d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/web/WebActionBar.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/web/WebActionBar.java @@ -121,6 +121,9 @@ public class WebActionBar extends FrameLayout { public static final int history_item = 8; public static final int forward_item = 9; + public static final int trans_item = 100; + public boolean trans = false; + public WebActionBar(Context context, Theme.ResourcesProvider resourcesProvider) { super(context); this.resourcesProvider = resourcesProvider; @@ -197,6 +200,11 @@ public class WebActionBar extends FrameLayout { } if (menuType == ArticleViewer.PageLayout.TYPE_ARTICLE) { o.add(R.drawable.msg_openin, getString(R.string.OpenInExternalApp), click.run(open_item)); + if (trans) { + o.add(R.drawable.photo_undo, getString("UndoTranslate", R.string.UndoTranslate), click.run(trans_item)); + } else { + o.add(R.drawable.ic_translate, getString(R.string.Translate), click.run(trans_item)); + } o.add(R.drawable.msg_search, getString(R.string.Search), click.run(search_item)); o.add(R.drawable.msg_share, getString(R.string.ShareFile), click.run(share_item)); o.add(R.drawable.msg_settings_old, getString(R.string.Settings), click.run(settings_item)); diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/parts/ArticleTrans.kt b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/parts/ArticleTrans.kt index fec21121f..fbb5ef48b 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/parts/ArticleTrans.kt +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/parts/ArticleTrans.kt @@ -60,8 +60,7 @@ fun ArticleViewer.doTransLATE() { status.setOnCancelListener { - pages[0].adapter.trans = false - transMenu.setTextAndIcon(LocaleController.getString("Translate", R.string.Translate), R.drawable.ic_translate) + updateTranslateButton(false) cancel.set(true) transPool.close() @@ -135,9 +134,7 @@ fun ArticleViewer.doTransLATE() { cancel.set(true) status.dismiss() updatePaintSize() - pages[0].adapter.trans = false - transMenu.setTextAndIcon(LocaleController.getString("Translate", R.string.Translate), R.drawable.ic_translate) - + updateTranslateButton(false) AlertUtil.showTransFailedDialog(parentActivity, it is UnsupportedOperationException, it.message ?: it.javaClass.simpleName, Runnable { doTransLATE()