diff --git a/package-lock.json b/package-lock.json index 144f137d6..984ea8d0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,6 +100,7 @@ "babel-loader": "^10.1.1", "com.foxdebug.acode.rk.auth": "file:src/plugins/auth", "com.foxdebug.acode.rk.customtabs": "file:src/plugins/custom-tabs", + "com.foxdebug.acode.rk.exec.proot": "file:src/plugins/proot", "com.foxdebug.acode.rk.exec.terminal": "file:src/plugins/terminal", "com.foxdebug.acode.rk.plugin.plugincontext": "file:src/plugins/pluginContext", "cordova-android": "^15.0.0", @@ -5157,6 +5158,10 @@ "resolved": "src/plugins/custom-tabs", "link": true }, + "node_modules/com.foxdebug.acode.rk.exec.proot": { + "resolved": "src/plugins/proot", + "link": true + }, "node_modules/com.foxdebug.acode.rk.exec.terminal": { "resolved": "src/plugins/terminal", "link": true @@ -10502,6 +10507,12 @@ "dev": true, "license": "MIT" }, + "src/plugins/proot": { + "name": "com.foxdebug.acode.rk.exec.proot", + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, "src/plugins/sdcard": { "name": "cordova-plugin-sdcard", "version": "1.1.0", diff --git a/package.json b/package.json index fb4f4a2b4..09ec587b0 100644 --- a/package.json +++ b/package.json @@ -75,6 +75,7 @@ "babel-loader": "^10.1.1", "com.foxdebug.acode.rk.auth": "file:src/plugins/auth", "com.foxdebug.acode.rk.customtabs": "file:src/plugins/custom-tabs", + "com.foxdebug.acode.rk.exec.proot": "file:src/plugins/proot", "com.foxdebug.acode.rk.exec.terminal": "file:src/plugins/terminal", "com.foxdebug.acode.rk.plugin.plugincontext": "file:src/plugins/pluginContext", "cordova-android": "^15.0.0", diff --git a/src/cm/commandRegistry.js b/src/cm/commandRegistry.js index 498d09d26..4b4302711 100644 --- a/src/cm/commandRegistry.js +++ b/src/cm/commandRegistry.js @@ -436,6 +436,14 @@ function registerCoreCommands() { requiresView: true, run: pasteCommand, }); + + addCommand({ + name: "share", + description: "Share", + readOnly: true, + requiresView: true, + run: shareCommand, + }); addCommand({ name: "problems", description: "Show errors and warnings", @@ -1293,6 +1301,31 @@ function pasteCommand(view) { return true; } +function shareCommand(view) { + const resolvedView = resolveView(view); + if (!resolvedView) return false; + + const { state } = resolvedView; + const ranges = state.selection.ranges; + const segments = []; + + ranges.forEach((range) => { + if (range.empty) { + const line = state.doc.lineAt(range.head); + segments.push(state.doc.sliceString(line.from, line.to)); + return; + } + + segments.push(state.doc.sliceString(range.from, range.to)); + }); + + const textToShare = segments.join("\n"); + + system.shareText(textToShare, console.log, console.error); + + return true; +} + function selectWordCommand(view) { const resolvedView = resolveView(view); if (!resolvedView) return false; diff --git a/src/lang/ar-ye.json b/src/lang/ar-ye.json index 43dc1b7e7..363115452 100644 --- a/src/lang/ar-ye.json +++ b/src/lang/ar-ye.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "لا تتم مزامنة الإضافات المشتراة مع حساب Acode الخاص بك. استخدم نفس حساب Google في متجر Play لاستعادة عملية الشراء.", "iap-pro-purchase-warning": "لن تتم مزامنة عملية الشراء هذه مع حساب Acode الخاص بك. استخدم نفس حساب Google في متجر Play لاستعادة عملية الشراء.", "confirm-login": "لم تقم بتسجيل الدخول إلى Acode، هل تريد تسجيل الدخول الآن؟" diff --git a/src/lang/be-by.json b/src/lang/be-by.json index 6bd8c9b7d..1a79af82b 100644 --- a/src/lang/be-by.json +++ b/src/lang/be-by.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Набытыя плагіны не сінхранізуюцца з вашым уліковым запісам Acode. Выкарыстоўвайце той жа ўліковы запіс Google у Play Store для аднаўлення пакупкі.", "iap-pro-purchase-warning": "Гэтая пакупка не будзе сінхранізавана з вашым уліковым запісам Acode. Выкарыстоўвайце той жа ўліковы запіс Google у Play Store для аднаўлення пакупкі.", "confirm-login": "Вы не ўвайшлі ў Acode, увайсці зараз?" diff --git a/src/lang/bn-bd.json b/src/lang/bn-bd.json index 80003ccbe..35b4fd6e2 100644 --- a/src/lang/bn-bd.json +++ b/src/lang/bn-bd.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "ক্রয়কৃত প্লাগইনগুলি আপনার Acode অ্যাকাউন্টের সাথে সিঙ্ক হয় না। আপনার ক্রয় পুনরুদ্ধার করতে প্লে স্টোরে একই Google অ্যাকাউন্ট ব্যবহার করুন।", "iap-pro-purchase-warning": "এই ক্রয়টি আপনার Acode অ্যাকাউন্টের সাথে সিঙ্ক হবে না। আপনার ক্রয় পুনরুদ্ধার করতে প্লে স্টোরে একই Google অ্যাকাউন্ট ব্যবহার করুন।", "confirm-login": "আপনি Acode-এ সাইন ইন করেননি, এখন সাইন ইন করবেন?" diff --git a/src/lang/cs-cz.json b/src/lang/cs-cz.json index 79dd3651e..78f7a5ec9 100644 --- a/src/lang/cs-cz.json +++ b/src/lang/cs-cz.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Zakoupené pluginy nejsou synchronizovány s vaším účtem Acode. Pro obnovení nákupu použijte stejný účet Google v Obchodě Play.", "iap-pro-purchase-warning": "Tento nákup nebude synchronizován s vaším účtem Acode. Pro obnovení nákupu použijte stejný účet Google v Obchodě Play.", "confirm-login": "Nejste přihlášeni do Acode, přihlásit se nyní?" diff --git a/src/lang/de-de.json b/src/lang/de-de.json index 7c8d07732..f70d92229 100644 --- a/src/lang/de-de.json +++ b/src/lang/de-de.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Gekaufte Plugins werden nicht mit Ihrem Acode-Konto synchronisiert. Verwenden Sie dasselbe Google-Konto im Play Store, um Ihren Kauf wiederherzustellen.", "iap-pro-purchase-warning": "Dieser Kauf wird nicht mit Ihrem Acode-Konto synchronisiert. Verwenden Sie dasselbe Google-Konto im Play Store, um Ihren Kauf wiederherzustellen.", "confirm-login": "Sie sind nicht bei Acode angemeldet, jetzt anmelden?" diff --git a/src/lang/en-us.json b/src/lang/en-us.json index c071f5fd4..93d33c44b 100644 --- a/src/lang/en-us.json +++ b/src/lang/en-us.json @@ -81,6 +81,7 @@ "settings saved": "Settings saved", "show line numbers": "Show line numbers", "show hidden files": "Show hidden files", + "show share button": "Show share button", "show spaces": "Show spaces", "soft tab": "Soft tab", "sort by name": "Sort by name", @@ -672,6 +673,7 @@ "settings-info-editor-rtl-text": "Switch right-to-left behavior per line.", "settings-info-editor-scroll-settings": "Adjust scrollbar size, speed, and gesture behavior.", "settings-info-editor-shift-click-selection": "Extend selection with Shift + tap or click.", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "settings-info-editor-show-spaces": "Display visible whitespace markers.", "settings-info-editor-soft-tab": "Insert spaces instead of tab characters.", "settings-info-editor-tab-size": "Set how many spaces each tab step uses.", diff --git a/src/lang/es-sv.json b/src/lang/es-sv.json index 2aa9ba415..ab5f182d6 100644 --- a/src/lang/es-sv.json +++ b/src/lang/es-sv.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Los plugins comprados no se sincronizan con tu cuenta de Acode. Usa la misma cuenta de Google en Play Store para restaurar tu compra.", "iap-pro-purchase-warning": "Esta compra no se sincronizará con tu cuenta de Acode. Usa la misma cuenta de Google en Play Store para restaurar tu compra.", "confirm-login": "No has iniciado sesión en Acode, ¿iniciar sesión ahora?" diff --git a/src/lang/fr-fr.json b/src/lang/fr-fr.json index d869c06b9..5d9b1fb01 100644 --- a/src/lang/fr-fr.json +++ b/src/lang/fr-fr.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Les plugins achetés ne sont pas synchronisés avec votre compte Acode. Utilisez le même compte Google dans le Play Store pour restaurer votre achat.", "iap-pro-purchase-warning": "Cet achat ne sera pas synchronisé avec votre compte Acode. Utilisez le même compte Google dans le Play Store pour restaurer votre achat.", "confirm-login": "Vous n'êtes pas connecté à Acode, vous connecter maintenant ?" diff --git a/src/lang/he-il.json b/src/lang/he-il.json index 0ab5247b4..ca2b96ead 100644 --- a/src/lang/he-il.json +++ b/src/lang/he-il.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "תוספים שנרכשו אינם מסונכרנים עם חשבון Acode שלך. השתמש באותו חשבון Google בחנות Play כדי לשחזר את הרכישה שלך.", "iap-pro-purchase-warning": "רכישה זו לא תסונכרן עם חשבון Acode שלך. השתמש באותו חשבון Google בחנות Play כדי לשחזר את הרכישה שלך.", "confirm-login": "אינך מחובר ל-Acode, להתחבר עכשיו?" diff --git a/src/lang/hi-in.json b/src/lang/hi-in.json index 29d3a8e1a..08835fe92 100644 --- a/src/lang/hi-in.json +++ b/src/lang/hi-in.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "खरीदे गए प्लगइन आपके Acode खाते से सिंक नहीं होते हैं। अपनी खरीदारी पुनर्स्थापित करने के लिए Play Store में उसी Google खाते का उपयोग करें।", "iap-pro-purchase-warning": "यह खरीदारी आपके Acode खाते से सिंक नहीं होगी। अपनी खरीदारी पुनर्स्थापित करने के लिए Play Store में उसी Google खाते का उपयोग करें।", "confirm-login": "आप Acode में साइन इन नहीं हैं, अभी साइन इन करें?" diff --git a/src/lang/hu-hu.json b/src/lang/hu-hu.json index b5d35cff8..088e4669f 100644 --- a/src/lang/hu-hu.json +++ b/src/lang/hu-hu.json @@ -731,6 +731,8 @@ "plugin-not-supported": "A bővítmény nem támogatott", "plugin-not-supported-info": "A bővítmény az Acode egy régebbi verziójához készült.", "login-to-view": "Jelentkezzen be a megtekintéséhez…", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "A megvásárolt bővítmények nem szinkronizálódnak az Acode-fiókjával. Használja ugyanazt a Google-fiókot a Play Áruházban a vásárlás visszaállításához.", "iap-pro-purchase-warning": "Ez a vásárlás nem lesz szinkronizálva az Acode-fiókjával. Használja ugyanazt a Google-fiókot a Play Áruházban a vásárlás visszaállításához.", "confirm-login": "Nincs bejelentkezve az Acode-ba, bejelentkezik most?" diff --git a/src/lang/id-id.json b/src/lang/id-id.json index 3846066e5..db81bc422 100644 --- a/src/lang/id-id.json +++ b/src/lang/id-id.json @@ -728,6 +728,8 @@ "settings-info-editor-auto-close-tags": "Menyisipkan tag penutup di berkas HTML, XML, Vue, Angular, dan templat PHP secara otomatis.", "ui zoom": "Pembesaran UI", "settings-info-app-ui-zoom": "Skalakan teks di seluruh antarmuka Acode.", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "plugin-not-supported": "Plugin tidak didukung", "plugin-not-supported-info": "Plugin dibuat untuk versi lama dari Acode.", "login-to-view": "Mohon login untuk melihat ini...", diff --git a/src/lang/ir-fa.json b/src/lang/ir-fa.json index 1998b63fb..79f859acf 100644 --- a/src/lang/ir-fa.json +++ b/src/lang/ir-fa.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "افزونه‌های خریداری شده با حساب Acode شما همگام‌سازی نمی‌شوند. برای بازیابی خرید خود از همان حساب Google در فروشگاه Play استفاده کنید.", "iap-pro-purchase-warning": "این خرید با حساب Acode شما همگام‌سازی نخواهد شد. برای بازیابی خرید خود از همان حساب Google در فروشگاه Play استفاده کنید.", "confirm-login": "شما وارد Acode نشده‌اید، اکنون وارد شوید؟" diff --git a/src/lang/it-it.json b/src/lang/it-it.json index a59ffd2bd..a8b42a8da 100644 --- a/src/lang/it-it.json +++ b/src/lang/it-it.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "I plugin acquistati non vengono sincronizzati con il tuo account Acode. Usa lo stesso account Google nel Play Store per ripristinare l'acquisto.", "iap-pro-purchase-warning": "Questo acquisto non verrà sincronizzato con il tuo account Acode. Usa lo stesso account Google nel Play Store per ripristinare l'acquisto.", "confirm-login": "Non hai effettuato l'accesso ad Acode, accedere ora?" diff --git a/src/lang/ja-jp.json b/src/lang/ja-jp.json index 39a952f8a..337d4cd0f 100644 --- a/src/lang/ja-jp.json +++ b/src/lang/ja-jp.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "購入したプラグインはAcodeアカウントと同期されません。購入を復元するには、Playストアで同じGoogleアカウントを使用してください。", "iap-pro-purchase-warning": "この購入はAcodeアカウントと同期されません。購入を復元するには、Playストアで同じGoogleアカウントを使用してください。", "confirm-login": "Acodeにサインインしていません。今すぐサインインしますか?" diff --git a/src/lang/ko-kr.json b/src/lang/ko-kr.json index 8a020ec05..33b5fb84c 100644 --- a/src/lang/ko-kr.json +++ b/src/lang/ko-kr.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "구매한 플러그인은 Acode 계정과 동기화되지 않습니다. 구매를 복원하려면 Play 스토어에서 동일한 Google 계정을 사용하세요.", "iap-pro-purchase-warning": "이 구매는 Acode 계정과 동기화되지 않습니다. 구매를 복원하려면 Play 스토어에서 동일한 Google 계정을 사용하세요.", "confirm-login": "Acode에 로그인되어 있지 않습니다. 지금 로그인하시겠습니까?" diff --git a/src/lang/ml-in.json b/src/lang/ml-in.json index 6aeed871c..7f85c9bf0 100644 --- a/src/lang/ml-in.json +++ b/src/lang/ml-in.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "വാങ്ങിയ പ്ലഗിനുകൾ നിങ്ങളുടെ Acode അക്കൗണ്ടുമായി സമന്വയിപ്പിക്കില്ല. നിങ്ങളുടെ വാങ്ങൽ പുനഃസ്ഥാപിക്കാൻ Play Store-ൽ അതേ Google അക്കൗണ്ട് ഉപയോഗിക്കുക.", "iap-pro-purchase-warning": "ഈ വാങ്ങൽ നിങ്ങളുടെ Acode അക്കൗണ്ടുമായി സമന്വയിപ്പിക്കില്ല. നിങ്ങളുടെ വാങ്ങൽ പുനഃസ്ഥാപിക്കാൻ Play Store-ൽ അതേ Google അക്കൗണ്ട് ഉപയോഗിക്കുക.", "confirm-login": "നിങ്ങൾ Acode-ൽ സൈൻ ഇൻ ചെയ്തിട്ടില്ല, ഇപ്പോൾ സൈൻ ഇൻ ചെയ്യണോ?" diff --git a/src/lang/mm-unicode.json b/src/lang/mm-unicode.json index b66c0068b..13849736c 100644 --- a/src/lang/mm-unicode.json +++ b/src/lang/mm-unicode.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "ဝယ်ယူထားသော ပလပ်အင်များသည် သင့် Acode အကောင့်နှင့် ထပ်တူပြု၍မရပါ။ သင့်ဝယ်ယူမှုကို ပြန်လည်ရယူရန် Play Store တွင် တူညီသော Google အကောင့်ကို အသုံးပြုပါ။", "iap-pro-purchase-warning": "ဤဝယ်ယူမှုသည် သင့် Acode အကောင့်နှင့် ထပ်တူပြုမည်မဟုတ်ပါ။ သင့်ဝယ်ယူမှုကို ပြန်လည်ရယူရန် Play Store တွင် တူညီသော Google အကောင့်ကို အသုံးပြုပါ။", "confirm-login": "သင်သည် Acode သို့ အကောင့်ဝင်ထားခြင်းမရှိပါ၊ ယခု အကောင့်ဝင်မလား။" diff --git a/src/lang/mm-zawgyi.json b/src/lang/mm-zawgyi.json index 76f47d83a..fd4f19c3b 100644 --- a/src/lang/mm-zawgyi.json +++ b/src/lang/mm-zawgyi.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "ဝယ္ယူထားေသာ ပလပ္အင္မ်ားသည္ သင့္ Acode အေကာင့္ႏွင့္ ထပ္တူျပဳ၍မရပါ။ သင့္ဝယ္ယူမႈကို ျပန္လည္ရယူရန္ Play Store တြင္ တူညီေသာ Google အေကာင့္ကို အသုံးျပဳပါ။", "iap-pro-purchase-warning": "ဤဝယ္ယူမႈသည္ သင့္ Acode အေကာင့္ႏွင့္ ထပ္တူျပဳမည္မဟုတ္ပါ။ သင့္ဝယ္ယူမႈကို ျပန္လည္ရယူရန္ Play Store တြင္ တူညီေသာ Google အေကာင့္ကို အသုံးျပဳပါ။", "confirm-login": "သင္သည္ Acode သို႔ အေကာင့္ဝင္ထားျခင္းမရွိပါ၊ ယခု အေကာင့္ဝင္မလား။" diff --git a/src/lang/pl-pl.json b/src/lang/pl-pl.json index 94d5668e2..2d5b1f2ae 100644 --- a/src/lang/pl-pl.json +++ b/src/lang/pl-pl.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Zakupione wtyczki nie są synchronizowane z Twoim kontem Acode. Użyj tego samego konta Google w Sklepie Play, aby przywrócić zakup.", "iap-pro-purchase-warning": "Ten zakup nie zostanie zsynchronizowany z Twoim kontem Acode. Użyj tego samego konta Google w Sklepie Play, aby przywrócić zakup.", "confirm-login": "Nie jesteś zalogowany do Acode, zalogować się teraz?" diff --git a/src/lang/pt-br.json b/src/lang/pt-br.json index 9103358d9..11b1a7fbf 100644 --- a/src/lang/pt-br.json +++ b/src/lang/pt-br.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Plugins comprados não são sincronizados com sua conta Acode. Use a mesma conta do Google na Play Store para restaurar sua compra.", "iap-pro-purchase-warning": "Esta compra não será sincronizada com sua conta Acode. Use a mesma conta do Google na Play Store para restaurar sua compra.", "confirm-login": "Você não está conectado ao Acode, conectar agora?" diff --git a/src/lang/pu-in.json b/src/lang/pu-in.json index 9c030ae15..f8b7be42d 100644 --- a/src/lang/pu-in.json +++ b/src/lang/pu-in.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "ਖਰੀਦੇ ਗਏ ਪਲੱਗਇਨ ਤੁਹਾਡੇ Acode ਖਾਤੇ ਨਾਲ ਸਿੰਕ ਨਹੀਂ ਹੁੰਦੇ। ਆਪਣੀ ਖਰੀਦ ਨੂੰ ਬਹਾਲ ਕਰਨ ਲਈ Play Store ਵਿੱਚ ਉਹੀ Google ਖਾਤਾ ਵਰਤੋ।", "iap-pro-purchase-warning": "ਇਹ ਖਰੀਦ ਤੁਹਾਡੇ Acode ਖਾਤੇ ਨਾਲ ਸਿੰਕ ਨਹੀਂ ਹੋਵੇਗੀ। ਆਪਣੀ ਖਰੀਦ ਨੂੰ ਬਹਾਲ ਕਰਨ ਲਈ Play Store ਵਿੱਚ ਉਹੀ Google ਖਾਤਾ ਵਰਤੋ।", "confirm-login": "ਤੁਸੀਂ Acode ਵਿੱਚ ਸਾਈਨ ਇਨ ਨਹੀਂ ਹੋ, ਹੁਣੇ ਸਾਈਨ ਇਨ ਕਰੋ?" diff --git a/src/lang/ru-ru.json b/src/lang/ru-ru.json index f83d4b2a9..3a361009a 100644 --- a/src/lang/ru-ru.json +++ b/src/lang/ru-ru.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Купленные плагины не синхронизируются с вашей учетной записью Acode. Используйте ту же учетную запись Google в Play Store для восстановления покупки.", "iap-pro-purchase-warning": "Эта покупка не будет синхронизирована с вашей учетной записью Acode. Используйте ту же учетную запись Google в Play Store для восстановления покупки.", "confirm-login": "Вы не вошли в Acode, войти сейчас?" diff --git a/src/lang/tl-ph.json b/src/lang/tl-ph.json index e8740a376..a1f928757 100644 --- a/src/lang/tl-ph.json +++ b/src/lang/tl-ph.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Ang mga biniling plugin ay hindi naka-sync sa iyong Acode account. Gamitin ang parehong Google account sa Play Store upang maibalik ang iyong pagbili.", "iap-pro-purchase-warning": "Ang pagbiling ito ay hindi masi-sync sa iyong Acode account. Gamitin ang parehong Google account sa Play Store upang maibalik ang iyong pagbili.", "confirm-login": "Hindi ka naka-sign in sa Acode, mag-sign in ngayon?" diff --git a/src/lang/tr-tr.json b/src/lang/tr-tr.json index 4c05a82ee..ad6e03f16 100644 --- a/src/lang/tr-tr.json +++ b/src/lang/tr-tr.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Satın alınan eklentiler Acode hesabınızla senkronize edilmez. Satın alımınızı geri yüklemek için Play Store'da aynı Google hesabını kullanın.", "iap-pro-purchase-warning": "Bu satın alım Acode hesabınızla senkronize edilmeyecektir. Satın alımınızı geri yüklemek için Play Store'da aynı Google hesabını kullanın.", "confirm-login": "Acode'a giriş yapmadınız, şimdi giriş yapmak ister misiniz?" diff --git a/src/lang/uk-ua.json b/src/lang/uk-ua.json index c22eb58e8..9faffac63 100644 --- a/src/lang/uk-ua.json +++ b/src/lang/uk-ua.json @@ -731,6 +731,8 @@ "ui zoom": "Масштабування інтерфейсу користувача", "settings-info-app-ui-zoom": "Масштабування тексту в інтерфейсі Acode.", "login-to-view": "Будь ласка, увійдіть для перегляду цього...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Придбані плагіни не синхронізуються з вашим обліковим записом Acode. Використовуйте той самий обліковий запис Google у Play Store для відновлення покупки.", "iap-pro-purchase-warning": "Ця покупка не буде синхронізована з вашим обліковим записом Acode. Використовуйте той самий обліковий запис Google у Play Store для відновлення покупки.", "confirm-login": "Ви не ввійшли в Acode, увійти зараз?" diff --git a/src/lang/uz-uz.json b/src/lang/uz-uz.json index f3846d1ab..c7d51b15b 100644 --- a/src/lang/uz-uz.json +++ b/src/lang/uz-uz.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Sotib olingan plaginlar Acode hisobingiz bilan sinxronlanmaydi. Xaridingizni tiklash uchun Play Store'da xuddi shu Google hisobidan foydalaning.", "iap-pro-purchase-warning": "Ushbu xarid Acode hisobingiz bilan sinxronlanmaydi. Xaridingizni tiklash uchun Play Store'da xuddi shu Google hisobidan foydalaning.", "confirm-login": "Siz Acode'ga kirmagansiz, hozir kirasizmi?" diff --git a/src/lang/vi-vn.json b/src/lang/vi-vn.json index ab0f5a3c7..afd451c4a 100644 --- a/src/lang/vi-vn.json +++ b/src/lang/vi-vn.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "Các plugin đã mua không được đồng bộ hóa với tài khoản Acode của bạn. Sử dụng cùng một tài khoản Google trên Play Store để khôi phục giao dịch mua của bạn.", "iap-pro-purchase-warning": "Giao dịch mua này sẽ không được đồng bộ hóa với tài khoản Acode của bạn. Sử dụng cùng một tài khoản Google trên Play Store để khôi phục giao dịch mua của bạn.", "confirm-login": "Bạn chưa đăng nhập vào Acode, đăng nhập ngay bây giờ?" diff --git a/src/lang/zh-cn.json b/src/lang/zh-cn.json index 208e689c6..d70e525a4 100644 --- a/src/lang/zh-cn.json +++ b/src/lang/zh-cn.json @@ -731,6 +731,8 @@ "plugin-not-supported": "不支持该插件", "plugin-not-supported-info": "该插件仅适用于旧版本的 Acode。", "login-to-view": "请先登录以查看此内容……", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "购买的插件不会同步到您的 Acode 账户。请在 Play 商店中使用相同的 Google 账户来恢复您的购买。", "iap-pro-purchase-warning": "此购买不会同步到您的 Acode 账户。请在 Play 商店中使用相同的 Google 账户来恢复您的购买。", "confirm-login": "您尚未登录 Acode,立即登录?" diff --git a/src/lang/zh-hant.json b/src/lang/zh-hant.json index 3c43fe0bc..b35db25bb 100644 --- a/src/lang/zh-hant.json +++ b/src/lang/zh-hant.json @@ -731,6 +731,8 @@ "plugin-not-supported": "不支持該插件", "plugin-not-supported-info": "該插件僅適用於舊版本的 Acode。", "login-to-view": "請先登錄以查看此內容……", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "購買的插件不會同步到您的 Acode 帳戶。請在 Play 商店中使用相同的 Google 帳戶來恢復您的購買。", "iap-pro-purchase-warning": "此購買不會同步到您的 Acode 帳戶。請在 Play 商店中使用相同的 Google 帳戶來恢復您的購買。", "confirm-login": "您尚未登入 Acode,立即登入?" diff --git a/src/lang/zh-tw.json b/src/lang/zh-tw.json index 0466ef231..237a93667 100644 --- a/src/lang/zh-tw.json +++ b/src/lang/zh-tw.json @@ -731,6 +731,8 @@ "plugin-not-supported": "Plugin not supported", "plugin-not-supported-info": "The plugin was created for older version of Acode.", "login-to-view": "Please login to view this...", + "show share button": "Show share button", + "settings-info-editor-show-share-button": "Show share button in selection menu.", "iap-plugin-purchase-warning": "購買的插件不會同步到您的 Acode 帳戶。請在 Play 商店中使用相同的 Google 帳戶來恢復您的購買。", "iap-pro-purchase-warning": "此購買不會同步到您的 Acode 帳戶。請在 Play 商店中使用相同的 Google 帳戶來恢復您的購買。", "confirm-login": "您尚未登入 Acode,立即登入?" diff --git a/src/lib/selectionMenu.js b/src/lib/selectionMenu.js index 53b8a966e..b54dc193d 100644 --- a/src/lib/selectionMenu.js +++ b/src/lib/selectionMenu.js @@ -1,3 +1,5 @@ +import appSettings from "lib/settings"; + const exec = (command) => { const { editor } = editorManager; editor.execCommand(command); @@ -42,6 +44,13 @@ export default function selectionMenu() { "all", true, ), + appSettings.get("showShareButton") && + item( + () => exec("share"), + , + "selected", + true, + ), item( (color) => acode.exec("insert-color", color), , @@ -54,7 +63,7 @@ export default function selectionMenu() { true, ), ...items, - ]; + ].filter(Boolean); } /** diff --git a/src/lib/settings.js b/src/lib/settings.js index b092daf40..e14f8886d 100644 --- a/src/lib/settings.js +++ b/src/lib/settings.js @@ -192,6 +192,7 @@ class Settings { }, developerMode: false, shiftClickSelection: false, + showShareButton: true, }; this.value = structuredClone(this.#defaultSettings); } diff --git a/src/plugins/system/android/com/foxdebug/system/System.java b/src/plugins/system/android/com/foxdebug/system/System.java index 61096a5c4..e985fe76c 100644 --- a/src/plugins/system/android/com/foxdebug/system/System.java +++ b/src/plugins/system/android/com/foxdebug/system/System.java @@ -114,6 +114,13 @@ import android.content.pm.PackageManager; import android.os.Build; +import android.content.Intent; + +import org.apache.cordova.CallbackContext; +import org.apache.cordova.CordovaPlugin; + +import org.json.JSONArray; +import org.json.JSONException; public class System extends CordovaPlugin { @@ -234,6 +241,27 @@ public void run() { case "set-intent-handler": setIntentHandler(callbackContext); return true; + + case "shareText": + String text = args.getString(0); + + cordova.getActivity().runOnUiThread(() -> { + try { + Intent shareIntent = new Intent(Intent.ACTION_SEND); + shareIntent.setType("text/plain"); + shareIntent.putExtra(Intent.EXTRA_TEXT, text); + + cordova.getActivity().startActivity( + Intent.createChooser(shareIntent, "Share") + ); + + callbackContext.success(); + + } catch (Exception e) { + callbackContext.error(e.getMessage()); + } + }); + return true; case "set-ui-theme": this.cordova.getActivity() .runOnUiThread( diff --git a/src/plugins/system/www/plugin.js b/src/plugins/system/www/plugin.js index 7ff70f551..519b4f988 100644 --- a/src/plugins/system/www/plugin.js +++ b/src/plugins/system/www/plugin.js @@ -30,6 +30,9 @@ module.exports = { getInstaller: function (success, error) { cordova.exec(success, error, 'System', 'getInstaller', []); }, + shareText: function (text, success, error) { + cordova.exec(success, error, 'System', 'shareText', [text]); + }, getNativeLibraryPath: function (success, error) { diff --git a/src/settings/editorSettings.js b/src/settings/editorSettings.js index cf31d2bb7..48697205a 100644 --- a/src/settings/editorSettings.js +++ b/src/settings/editorSettings.js @@ -196,6 +196,13 @@ export default function editorSettings() { info: strings["settings-info-editor-shift-click-selection"], category: categories.cursorSelection, }, + { + key: "showShareButton", + text: strings["show share button"], + checkbox: values.showShareButton ?? true, + info: strings["settings-info-editor-show-share-button"], + category: categories.cursorSelection, + }, { key: "rtlText", text: strings["line based rtl switching"],