mirror of
https://github.com/jrpie/Launcher.git
synced 2025-04-04 19:34:30 +02:00
Compare commits
6 commits
e8d2be4494
...
c7895830e7
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c7895830e7 | ||
![]() |
14766fe1d9 | ||
![]() |
b9a59c9e37 | ||
![]() |
2d03bdbbef | ||
![]() |
09b12834a9 | ||
23f8cfb70e |
9 changed files with 144 additions and 37 deletions
|
@ -3,6 +3,8 @@ package de.jrpie.android.launcher
|
|||
import android.app.Activity
|
||||
import android.app.Service
|
||||
import android.app.role.RoleManager
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.LauncherApps
|
||||
|
@ -151,3 +153,21 @@ fun saveListActivityChoice(data: Intent?) {
|
|||
Gesture.byId(forGesture)?.let { Action.setActionForGesture(it, Action.fromIntent(data)) }
|
||||
}
|
||||
|
||||
|
||||
// used for the bug report button
|
||||
fun getDeviceInfo(): String {
|
||||
return """
|
||||
µLauncher version: ${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})
|
||||
Android version: ${Build.VERSION.RELEASE} (sdk ${Build.VERSION.SDK_INT})
|
||||
Model: ${Build.MODEL}
|
||||
Device: ${Build.DEVICE}
|
||||
Brand: ${Build.BRAND}
|
||||
Manufacturer: ${Build.MANUFACTURER}
|
||||
""".trimIndent()
|
||||
}
|
||||
|
||||
fun copyToClipboard(context: Context, text: String) {
|
||||
val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clipData = ClipData.newPlainText("Debug Info", text)
|
||||
clipboardManager.setPrimaryClip(clipData);
|
||||
}
|
|
@ -7,9 +7,14 @@ import android.os.Bundle
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import de.jrpie.android.launcher.BuildConfig
|
||||
import de.jrpie.android.launcher.R
|
||||
import de.jrpie.android.launcher.copyToClipboard
|
||||
import de.jrpie.android.launcher.databinding.SettingsMetaBinding
|
||||
import de.jrpie.android.launcher.getDeviceInfo
|
||||
import de.jrpie.android.launcher.openInBrowser
|
||||
import de.jrpie.android.launcher.preferences.resetPreferences
|
||||
import de.jrpie.android.launcher.ui.LegalInfoActivity
|
||||
|
@ -88,13 +93,37 @@ class SettingsFragmentMeta : Fragment(), UIObject {
|
|||
|
||||
// report a bug
|
||||
binding.settingsMetaButtonReportBug.setOnClickListener {
|
||||
openInBrowser(
|
||||
getString(R.string.settings_meta_report_bug_link),
|
||||
requireContext()
|
||||
)
|
||||
val deviceInfo = getDeviceInfo()
|
||||
AlertDialog.Builder(context, R.style.AlertDialogCustom).apply {
|
||||
setView(R.layout.dialog_report_bug)
|
||||
setTitle(R.string.dialog_report_bug_title)
|
||||
setPositiveButton(R.string.dialog_report_bug_create_report) { _, _ ->
|
||||
openInBrowser(
|
||||
getString(R.string.settings_meta_report_bug_link),
|
||||
requireContext()
|
||||
)
|
||||
}
|
||||
setNegativeButton(R.string.dialog_cancel) { _, _ -> }
|
||||
}.create().also { it.show() }.apply {
|
||||
val info = findViewById<TextView>(R.id.dialog_report_bug_device_info)
|
||||
val buttonClipboard = findViewById<Button>(R.id.dialog_report_bug_button_clipboard)
|
||||
val buttonSecurity = findViewById<Button>(R.id.dialog_report_bug_button_security)
|
||||
info.text = deviceInfo
|
||||
buttonClipboard.setOnClickListener {
|
||||
copyToClipboard(requireContext(), deviceInfo)
|
||||
}
|
||||
info.setOnClickListener {
|
||||
copyToClipboard(requireContext(), deviceInfo)
|
||||
}
|
||||
buttonSecurity.setOnClickListener {
|
||||
openInBrowser(
|
||||
getString(R.string.settings_meta_report_vulnerability_link),
|
||||
requireContext()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// join chat
|
||||
binding.settingsMetaButtonJoinChat.setOnClickListener {
|
||||
openInBrowser(
|
||||
|
@ -104,7 +133,6 @@ class SettingsFragmentMeta : Fragment(), UIObject {
|
|||
}
|
||||
|
||||
|
||||
|
||||
// contact developer
|
||||
binding.settingsMetaButtonContact.setOnClickListener {
|
||||
openInBrowser(
|
||||
|
@ -134,5 +162,7 @@ class SettingsFragmentMeta : Fragment(), UIObject {
|
|||
startActivity(Intent(this.context, LegalInfoActivity::class.java))
|
||||
}
|
||||
|
||||
binding.settingsMetaTextVersion.text = BuildConfig.VERSION_NAME
|
||||
|
||||
}
|
||||
}
|
||||
|
|
53
app/src/main/res/layout/dialog_report_bug.xml
Normal file
53
app/src/main/res/layout/dialog_report_bug.xml
Normal file
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
style="@style/AlertDialogDanger"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="20dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/dialog_report_bug_info"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/dialog_report_bug_info" />
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="20dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/dialog_report_bug_device_info"
|
||||
android:padding="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="Version: ?\nAndroid Version: ?" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/dialog_report_bug_button_clipboard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/dialog_report_bug_button_clipboard" />
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="20dp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/dialog_report_bug_security_info"/>
|
||||
<Button
|
||||
android:id="@+id/dialog_report_bug_button_security"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/dialog_report_bug_button_security" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
|
@ -1,11 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ScrollView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/settings_meta_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:context=".ui.settings.meta.SettingsFragmentMeta">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -91,5 +91,16 @@
|
|||
android:text="@string/settings_meta_licenses"
|
||||
android:textAllCaps="false" />
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="32sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/settings_meta_text_version"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAlignment="textEnd"
|
||||
tools:text="v1.2.3" />
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
|
@ -107,7 +107,7 @@
|
|||
<string name="tutorial_start_text">Prenez quelques instants pour apprendre à utiliser ce \'launcher\' !</string>
|
||||
<string name="tutorial_concept_title">Concept</string>
|
||||
<string name="tutorial_concept_text">Launcher vous offre un environnement minimaliste, efficace et sans distraction.\n\nIl ne vous coûte rien, ne contient aucune publicité, ne recueille pas de données personnelles.</string>
|
||||
<string name="tutorial_concept_text_2">L\'application est open-source (sous licence MIT) et disponible sur GitHub !\n\nN\'hésitez pas à y faire un tour !</string>
|
||||
<string name="tutorial_concept_text_2">L\'application est open-source (sous licence MIT) et disponible sur GitHub !\n\nN\'hésitez pas à y faire un tour !</string>
|
||||
<string name="tutorial_usage_title">Utilisation</string>
|
||||
<string name="tutorial_usage_text">Sur votre écran d\'accueil vous ne trouverez rien d\'autre que la date et l\'heure : rien qui pourrait vous distraire.</string>
|
||||
<string name="tutorial_usage_text_2">Vous pouvez ouvrir des applications en effectuant des mouvelents latéraux sur l\'écran ou en appuyant sur les touches de volume. Vous pourrez en définir le comportement dans le panneau suivant.</string>
|
||||
|
@ -115,12 +115,7 @@
|
|||
<string name="tutorial_setup_text">Voici quelques paramètres par défaut. Vous pouvez les changer dès à présent :</string>
|
||||
<string name="tutorial_setup_text_2">Vous pourrez bien sûr tout reconfigurer plus tard.</string>
|
||||
<string name="tutorial_finish_title">C\'est parti !</string>
|
||||
<string name="tutorial_finish_text">Vous êtes prêt à démarrer !
|
||||
\n
|
||||
\nJ\'espère que cette application vous sera précieuse !
|
||||
\n
|
||||
\n- Finn M Glas
|
||||
\n(le développeur originel) et Josia (le développeur de la branche μLauncher)</string>
|
||||
<string name="tutorial_finish_text">Vous êtes prêt à démarrer ! \n \nJ\'espère que cette application vous sera précieuse ! \n \n- Finn M Glas \n(le développeur originel) et Josia (le développeur de la branche μLauncher)</string>
|
||||
<string name="tutorial_finish_button">Démarrer</string>
|
||||
<string name="settings">Réglages</string>
|
||||
<string name="ic_menu_alt">Plus d\'options</string>
|
||||
|
@ -154,8 +149,7 @@
|
|||
<string name="list_other_list_favorites">Applications Favorites</string>
|
||||
<string name="snackbar_app_hidden">Appli cachée. Vous pouvez l\'afficher à nouveau depuis les réglages.</string>
|
||||
<string name="undo">Défaire</string>
|
||||
<string name="alert_cant_expand_status_bar_panel">Erreur : impossible d\'afficher la barre de statut.
|
||||
\nCette action utilise des fonctionalités qui ne sont pas officiellement dans l\'API Android. Malheuresement ça ne semble pas fonctionner sur votre appareil.</string>
|
||||
<string name="alert_cant_expand_status_bar_panel">Erreur : impossible d\'afficher la barre de statut. \nCette action utilise des fonctionalités qui ne sont pas officiellement dans l\'API Android. Malheuresement ça ne semble pas fonctionner sur votre appareil.</string>
|
||||
<string name="list_other_expand_settings_panel">Réglages rapides</string>
|
||||
<string name="list_other_torch">Basculer l\'état de la lampe</string>
|
||||
<string name="settings_theme_color_theme_item_dynamic">Dynamique</string>
|
||||
|
|
|
@ -118,8 +118,8 @@
|
|||
<string name="tutorial_title">Tutorial</string>
|
||||
<string name="tutorial_start_text">Tire alguns segundos para aprender a usar este Launcher!</string>
|
||||
<string name="tutorial_concept_title">Conceito</string>
|
||||
<string name="tutorial_concept_text">O Launcher foi projetado para ser minimalista, eficiente e livre de distrações.\n\nEle é livre de pagamentos, anúncios e serviços de rastreamento.</string>
|
||||
<string name="tutorial_concept_text_2">O aplicativo é de código aberto (licença MIT) e está disponível no GitHub!\n\nNão deixe de conferir o repositório!</string>
|
||||
<string name="tutorial_concept_text">O Launcher foi criado para ser minimalista, eficiente e livre de distrações. Ele é livre de pagamentos, anúncios e serviços de rastreamento.</string>
|
||||
<string name="tutorial_concept_text_2">O app é de código aberto (licença MIT) e está disponível no GitHub! Não deixe de conferir o repositório!</string>
|
||||
<string name="tutorial_usage_title">Uso</string>
|
||||
<string name="tutorial_usage_text">Sua tela inicial contém a data e hora local. Sem distração.</string>
|
||||
<string name="tutorial_usage_text_2">Você pode iniciar seus aplicativos com um toque único ou pressionando um botão. Escolha algumas ações no próximo slide.</string>
|
||||
|
@ -127,13 +127,12 @@
|
|||
<string name="tutorial_setup_text">Selecionamos alguns aplicativos padrão para você. Se quiser, você pode alterá-los agora:</string>
|
||||
<string name="tutorial_setup_text_2">Você também pode alterar suas escolhas mais tarde.</string>
|
||||
<string name="tutorial_finish_title">Vamos lá!</string>
|
||||
<string name="tutorial_finish_text">Você está pronto para começar!\n\nEspero que isso seja de grande valor para você!\n\n- Finn (que criou o Launcher)\n\te Josia (que fez algumas melhorias e mantém o fork μLauncher)</string>
|
||||
<string name="tutorial_finish_text">Tá todo pronto para começar! Espero que isso seja de grande valor para você! - Finn (que criou o Launcher) \te Josia (que fez algumas melhorias e tb mantém o fork do μLauncher)</string>
|
||||
<string name="tutorial_finish_button">Começar</string>
|
||||
<string name="settings">Configurações</string>
|
||||
<string name="ic_menu_alt">Mais opções</string>
|
||||
<string name="list_app_favorite_remove">Remover dos favoritos</string>
|
||||
<string name="alert_cant_expand_status_bar_panel">Erro: Não foi possível expandir a barra de status.
|
||||
\nEssa ação usa uma funcionalidade que não faz parte da API do Android publicada. Infelizmente, ela não vai funcionar no seu dispositivo.</string>
|
||||
<string name="alert_cant_expand_status_bar_panel">Erro: Não foi possível expandir a barra de status. Essa ação usa uma funcionalidade que não faz parte da API do Android publicado. Infelizmente, isto não vai funcionar no seu dispositivo.</string>
|
||||
<string name="settings_theme_background">Fundo (lista de apps e configurações)</string>
|
||||
<string name="settings_theme_font">Fonte</string>
|
||||
<string name="settings_theme_monochrome_icons">Ícones de apps monocromáticos</string>
|
||||
|
@ -257,4 +256,6 @@
|
|||
<string name="settings_functionality_search_web">Pesquise na internet</string>
|
||||
<string name="settings_functionality_search_web_summary">Ao buscar na lista de apps toque no Enter para iniciar uma pesquisa na internet.</string>
|
||||
<string name="list_apps_search_hint_no_auto_launch">Busca (sem inicialização automática)</string>
|
||||
<string name="settings_meta_licenses">Licenças de código aberto</string>
|
||||
<string name="legal_info_title">Licenças de código aberto</string>
|
||||
</resources>
|
|
@ -64,9 +64,7 @@
|
|||
<string name="list_title_pick">选择应用</string>
|
||||
<string name="tutorial_start_text">花几秒时间学下咋用这个启动器吧!</string>
|
||||
<string name="tutorial_concept_title">概念</string>
|
||||
<string name="tutorial_concept_text_2">该应用是开源的(MIT许可),并在 GitHub 上可用!
|
||||
\n
|
||||
\n一定要来看看代码仓库!</string>
|
||||
<string name="tutorial_concept_text_2">该应用是开源的(MIT许可),并在 GitHub 上可用! \n \n一定要来看看代码仓库!</string>
|
||||
<string name="tutorial_usage_title">使用方法</string>
|
||||
<string name="tutorial_usage_text">您的主屏幕仅包含本地日期和时间,没有其它纷纷扰扰。</string>
|
||||
<string name="tutorial_setup_title">设置</string>
|
||||
|
@ -87,17 +85,10 @@
|
|||
<string name="list_other_track_next">音乐:下一首</string>
|
||||
<string name="list_other_nop">啥也不干</string>
|
||||
<string name="tutorial_title">教程</string>
|
||||
<string name="tutorial_concept_text">μLauncher 的设计是最小、高效且无干扰。
|
||||
\n
|
||||
\n它不付费、无广告、不追踪。</string>
|
||||
<string name="tutorial_concept_text">μLauncher 的设计是最小、高效且无干扰。 \n \n它不付费、无广告、不追踪。</string>
|
||||
<string name="tutorial_usage_text_2">您只需滑动屏幕或按下按钮即可启动应用程序。在下一步向导中选择一些应用程序。</string>
|
||||
<string name="settings_general_choose_home_screen">将 μLauncher 设为默认桌面</string>
|
||||
<string name="tutorial_finish_text">您已经准备好开始了!
|
||||
\n
|
||||
\n我希望这对你有很大的价值!
|
||||
\n
|
||||
\n- Finn (Launcher 的作者)
|
||||
\n以及 Josia(做了一些改进并维护了 μLauncher 分支)</string>
|
||||
<string name="tutorial_finish_text">您已经准备好开始了! \n \n我希望这对你有很大的价值! \n \n- Finn (Launcher 的作者) \n以及 Josia(做了一些改进并维护了 μLauncher 分支)</string>
|
||||
<string name="settings_enabled_gestures_double_swipe">双滑动作</string>
|
||||
<string name="settings_clock_localized">使用本地日期格式</string>
|
||||
<string name="settings_clock_time_visible">显示时间</string>
|
||||
|
@ -110,8 +101,7 @@
|
|||
<string name="settings_display_rotate_screen">旋转屏幕</string>
|
||||
<string name="settings_launcher_section_apps">应用</string>
|
||||
<string name="list_other_expand_notifications_panel">展开通知面板</string>
|
||||
<string name="alert_cant_expand_status_bar_panel">错误:无法打开通知栏。
|
||||
\n这个动作使用的功能并非现有的 Android API的一部分。不幸的是,它似乎不适用于您的设备。</string>
|
||||
<string name="alert_cant_expand_status_bar_panel">错误:无法打开通知栏。 \n这个动作使用的功能并非现有的 Android API的一部分。不幸的是,它似乎不适用于您的设备。</string>
|
||||
<string name="list_other_torch">开关手电筒</string>
|
||||
<string name="alert_no_torch_found">未检测到带闪光灯的摄像头。</string>
|
||||
<string name="alert_torch_access_exception">错误:无法访问闪光灯。</string>
|
||||
|
|
|
@ -154,7 +154,8 @@
|
|||
-
|
||||
-->
|
||||
<string name="settings_meta_link_github" translatable="false">https://github.com/jrpie/Launcher</string>
|
||||
<string name="settings_meta_report_bug_link" translatable="false">https://github.com/jrpie/Launcher/issues/new/choose</string>
|
||||
<string name="settings_meta_report_bug_link" translatable="false">https://github.com/jrpie/Launcher/issues/new?template=bug_report.md</string>
|
||||
<string name="settings_meta_report_vulnerability_link" translatable="false">https://github.com/jrpie/Launcher/security/policy</string>
|
||||
<string name="settings_meta_fork_contact_url" translatable="false">https://s.jrpie.de/contact</string>
|
||||
<string name="settings_meta_privacy_url" translatable="false">https://s.jrpie.de/android-legal</string>
|
||||
<string name="settings_meta_contact_url" translatable="false">https://www.finnmglas.com/contact/</string>
|
||||
|
|
|
@ -169,6 +169,13 @@
|
|||
<string name="settings_meta_view_code">View source code</string>
|
||||
<string name="settings_meta_report_bug">Report a bug</string>
|
||||
|
||||
<string name="dialog_report_bug_title">Report a bug</string>
|
||||
<string name="dialog_report_bug_info">Thank you for helping to improve µLauncher!\nPlease consider adding the following information to your bug report:</string>
|
||||
<string name="dialog_report_bug_button_clipboard">Copy to clipboard</string>
|
||||
<string name="dialog_report_bug_security_info">Please do not report security vulnerabilities publicly on GitHub, but use the following instead:</string>
|
||||
<string name="dialog_report_bug_button_security">Report a security vulnerability</string>
|
||||
<string name="dialog_report_bug_create_report">Create report</string>
|
||||
|
||||
<string name="settings_meta_fork_contact">Contact the developer of the fork</string>
|
||||
<string name="settings_meta_join_chat">Join µLauncher chat</string>
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue