mirror of
https://github.com/jrpie/Launcher.git
synced 2025-04-12 15:24:31 +02:00
Compare commits
8 commits
9f3142cb69
...
d6355afc54
Author | SHA1 | Date | |
---|---|---|---|
d6355afc54 | |||
0a9890111c | |||
b2e7e4cacf | |||
d62815be12 | |||
768d27a7bb | |||
a227a40b6e | |||
f280d36667 | |||
![]() |
3973f1338f |
11 changed files with 140 additions and 47 deletions
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -1,38 +0,0 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a report to help improve this app
|
||||
title: '[bug] '
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
# Describe the bug
|
||||
|
||||
<!-- A clear and concise description of what the bug is. -->
|
||||
|
||||
# To Reproduce
|
||||
|
||||
<!--
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
-->
|
||||
|
||||
# Expected behavior
|
||||
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
# Screenshots
|
||||
<!-- If applicable, add screenshots to help explain your problem. -->
|
||||
|
||||
# Smartphone (please complete the following information)
|
||||
- Device: <!-- e.g. Fairphone 5 -->
|
||||
- Android Version: <!-- e.g. Marshmallow, 6.0 or API 23 -->
|
||||
- µLauncher Version: <!-- e.g. j-0.0.11 or version code 25 -->
|
||||
|
||||
# Additional info
|
||||
|
||||
<!-- Add any other info or comments about the problem here. -->
|
50
.github/ISSUE_TEMPLATE/bug_report.yaml
vendored
Normal file
50
.github/ISSUE_TEMPLATE/bug_report.yaml
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
name: Bug report
|
||||
description: Create a report to help improve this app
|
||||
title: '[bug] '
|
||||
labels: bug
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for helping to improve µLauncher!
|
||||
- type: textarea
|
||||
id: bug
|
||||
attributes:
|
||||
label: Describe the Bug
|
||||
description: What happened?
|
||||
placeholder: A clear and concise description of what the bug is.
|
||||
render: markdown
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: Expected Behavior
|
||||
description: What did you expect to happen instead?
|
||||
render: markdown
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: reproduce
|
||||
attributes:
|
||||
label: To Reproduce
|
||||
description: What steps are required to reproduce the bug?
|
||||
render: markdown
|
||||
placeholder: |
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: device
|
||||
attributes:
|
||||
label: Your Device
|
||||
description: |
|
||||
What device are you using? Adding this information helps to reproduce the bug.
|
||||
You can copy this from µLauncher > Settings > Meta > Report Bug.
|
||||
render: markdown
|
||||
validations:
|
||||
required: false
|
|
@ -23,8 +23,8 @@ android {
|
|||
minSdkVersion 21
|
||||
targetSdkVersion 35
|
||||
compileSdk 35
|
||||
versionCode 36
|
||||
versionName "j-0.0.20"
|
||||
versionCode 37
|
||||
versionName "0.0.21"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package de.jrpie.android.launcher
|
|||
import android.app.Activity
|
||||
import android.app.Service
|
||||
import android.app.role.RoleManager
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
|
@ -16,6 +17,7 @@ import android.os.UserHandle
|
|||
import android.os.UserManager
|
||||
import android.provider.Settings
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import de.jrpie.android.launcher.actions.Action
|
||||
import de.jrpie.android.launcher.actions.Gesture
|
||||
import de.jrpie.android.launcher.apps.AppInfo
|
||||
|
@ -83,14 +85,18 @@ fun getPrivateSpaceUser(context: Context): UserHandle? {
|
|||
val userManager = context.getSystemService(Context.USER_SERVICE) as UserManager
|
||||
val launcherApps = context.getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
|
||||
return userManager.userProfiles.firstOrNull { u ->
|
||||
launcherApps.getLauncherUserInfo(u)?.userType == UserManager.USER_TYPE_PROFILE_PRIVATE
|
||||
launcherApps.getLauncherUserInfo(u)?.userType == UserManager.USER_TYPE_PROFILE_PRIVATE
|
||||
}
|
||||
}
|
||||
|
||||
fun openInBrowser(url: String, context: Context) {
|
||||
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
|
||||
intent.putExtras(Bundle().apply { putBoolean("new_window", true) })
|
||||
context.startActivity(intent)
|
||||
try {
|
||||
context.startActivity(intent)
|
||||
} catch (_: ActivityNotFoundException) {
|
||||
Toast.makeText(context, R.string.toast_activity_not_found_browser, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
|
||||
fun openTutorial(context: Context) {
|
||||
|
|
|
@ -2,6 +2,7 @@ package de.jrpie.android.launcher.actions
|
|||
|
||||
import android.app.AlertDialog
|
||||
import android.app.Service
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.LauncherApps
|
||||
|
@ -34,7 +35,11 @@ class AppAction(val app: AppInfo) : Action {
|
|||
|
||||
context.packageManager.getLaunchIntentForPackage(packageName)?.let {
|
||||
it.addCategory(Intent.CATEGORY_LAUNCHER)
|
||||
context.startActivity(it)
|
||||
try {
|
||||
context.startActivity(it)
|
||||
} catch (_: ActivityNotFoundException) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
package de.jrpie.android.launcher.ui.list.apps
|
||||
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.fragment.app.Fragment
|
||||
import de.jrpie.android.launcher.R
|
||||
import de.jrpie.android.launcher.apps.AppFilter
|
||||
|
@ -91,7 +93,16 @@ class ListFragmentApps : Fragment(), UIObject {
|
|||
|
||||
if (LauncherPreferences.functionality().searchWeb()) {
|
||||
val i = Intent(Intent.ACTION_WEB_SEARCH).putExtra("query", query)
|
||||
activity?.startActivity(i)
|
||||
try {
|
||||
activity?.startActivity(i)
|
||||
} catch (_: ActivityNotFoundException) {
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
R.string.toast_activity_not_found_search_web,
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
}
|
||||
|
||||
} else {
|
||||
appsRecyclerAdapter.selectItem(0)
|
||||
}
|
||||
|
|
|
@ -76,10 +76,12 @@
|
|||
-
|
||||
-->
|
||||
<string name="settings_launcher_section_appearance">Aussehen</string>
|
||||
<string name="settings_clock_color">Farbe</string>
|
||||
<string name="settings_clock_time_visible">Zeit anzeigen</string>
|
||||
<string name="settings_clock_date_visible">Datum anzeigen</string>
|
||||
<string name="settings_clock_localized">Lokalisiertes Datumsformat verwenden</string>
|
||||
<string name="settings_clock_flip_date_time">Datum und Uhrzeit tauschen</string>
|
||||
<string name="settings_theme_color_theme_item_dynamic">Dynamisch</string>
|
||||
<string name="settings_theme_text_shadow">Textschatten</string>
|
||||
<string name="settings_theme_background">Hintergrund (Alle Apps und Einstellungen)</string>
|
||||
<string name="settings_theme_background_item_solid">Einfarbig</string>
|
||||
|
@ -103,6 +105,7 @@
|
|||
<string name="settings_enabled_gestures_edge_swipe">Kantenaktionen</string>
|
||||
<string name="settings_enabled_gestures_edge_swipe_edge_width">Kantenbreite</string>
|
||||
<string name="settings_functionality_auto_launch">Suchergebnis starten</string>
|
||||
<string name="settings_functionality_search_web_summary">Beim Durchsuchen der Apps Enter drücken um stattdessen im Internet zu suchen</string>
|
||||
<string name="settings_functionality_auto_keyboard">Tastatur automatisch öffnen</string>
|
||||
<string name="settings_launcher_sensitivity">Empfindlichkeit</string>
|
||||
<!--
|
||||
|
@ -123,6 +126,7 @@
|
|||
<string name="settings_meta_report_bug">Einen Fehler melden</string>
|
||||
<string name="settings_meta_discord">Unserem Discord beitreten</string>
|
||||
<string name="settings_meta_contact">Entwickler kontaktieren</string>
|
||||
<string name="dialog_report_bug_create_report">Report erstellen</string>
|
||||
<string name="settings_meta_fork_contact">Entwickler des Fork kontaktieren</string>
|
||||
<string name="settings_meta_join_chat">Dem µLauncher-Chat beitreten</string>
|
||||
<string name="settings_meta_privacy">Datenschutzerklärung</string>
|
||||
|
@ -143,9 +147,11 @@
|
|||
<string name="list_removed">Die App wurde entfernt</string>
|
||||
<string name="list_not_removed">Die App konnte nicht entfernt werden</string>
|
||||
<string name="list_apps_search_hint">Anwendungen suchen</string>
|
||||
<string name="list_apps_search_hint_no_auto_launch">Suchen (kein Schnellstart)</string>
|
||||
<string name="list_other_settings">µLauncher Einstellungen</string>
|
||||
<string name="list_other_list">Alle Anwendungen</string>
|
||||
<string name="list_other_list_favorites">Favoriten</string>
|
||||
<string name="list_other_toggle_private_space_lock">Privaten Bereich (ent)sperren</string>
|
||||
<string name="list_other_volume_up">Musik: Lauter</string>
|
||||
<string name="list_other_volume_down">Musik: Leiser</string>
|
||||
<string name="list_other_track_next">Musik: Weiter</string>
|
||||
|
@ -186,6 +192,7 @@
|
|||
<string name="list_app_hidden_add">Verstecken</string>
|
||||
<string name="list_other_lock_screen">Bildschirm sperren</string>
|
||||
<string name="alert_requires_android_m">Diese Funktionalität benötigt Android 6 oder neuer.</string>
|
||||
<string name="alert_requires_android_v">Diese Funktionalität benötigt Android 15 oder neuer.</string>
|
||||
<string name="snackbar_app_hidden">Die App wurde versteckt. Sie kann in den Einstellungen wieder sichtbar gemacht werden.</string>
|
||||
<string name="toast_device_admin_not_enabled">µLauncher muss Geräteadministrator sein, um den Bildschirm sperren zu dürfen.</string>
|
||||
<string name="device_admin_explanation">Dies ist erforderlich, damit µLauncher den Bildschirm spreen kann.</string>
|
||||
|
@ -195,6 +202,7 @@
|
|||
<string name="settings_actions_lock_method">Methode zum Sperren des Bildschirms wählen</string>
|
||||
<string name="dialog_rename_ok">Ok</string>
|
||||
<string name="dialog_rename_title">%1$s umbenennen</string>
|
||||
<string name="toast_private_space_default_home_screen">µLauncher muss als Standardlauncher eingerichtet sein um auf den privaten Bereich zugreifen zu können.</string>
|
||||
<string name="toast_lock_screen_not_supported">Fehler: Auf diesem Gerät kann der Bildschirm nicht mittels Bedienungshilfe gesperrt werden. Bitte stattdessen Geräteadministrator verwenden.</string>
|
||||
<string name="accessibility_service_name">µLauncher - Bildschirm sperren</string>
|
||||
<string name="alert_lock_screen_failed">Fehler: Bildschirm konnte nicht gesperrt werden.</string>
|
||||
|
@ -236,6 +244,7 @@
|
|||
<string name="settings_theme_background_item_transparent">Transparent</string>
|
||||
<string name="settings_theme_background_item_dim">Dimmen</string>
|
||||
<string name="settings_theme_background_item_blur">Weichzeichnen</string>
|
||||
<string name="settings_apps_hide_paused_apps">Pausierte Apps verstecken</string>
|
||||
<string name="settings_list_layout">Layout der Appliste</string>
|
||||
<string name="settings_list_layout_item_default">Standard</string>
|
||||
<string name="settings_list_layout_item_text">Text</string>
|
||||
|
@ -243,5 +252,29 @@
|
|||
<string name="settings_theme_font_item_sans_serif">Serifenlos</string>
|
||||
<string name="settings_theme_font_item_serif">Serif</string>
|
||||
<string name="settings_theme_font_item_monospace">Monospace</string>
|
||||
<string name="dialog_consent_accessibility_ok">Bedienungshilfe aktivieren</string>
|
||||
<string name="dialog_cancel">Abbrechen</string>
|
||||
<string name="settings_functionality_auto_launch_summary">Leertaste drücken um diese Funktion zu unterdrücken.</string>
|
||||
<string name="settings_functionality_search_web">Im Internet suchen</string>
|
||||
<string name="dialog_report_bug_title">Bug melden</string>
|
||||
<string name="dialog_report_bug_button_clipboard">In Zwischenablage kopieren</string>
|
||||
<string name="toast_private_space_locked">Privater Bereich gesperrt</string>
|
||||
<string name="toast_private_space_unlocked">Privater Bereich entsperrt</string>
|
||||
<string name="toast_private_space_not_available">Der private Bereich ist nicht verfügbar</string>
|
||||
<string name="dialog_select_color_red">Rot</string>
|
||||
<string name="dialog_select_color_alpha">Transparenz</string>
|
||||
<string name="dialog_select_color_blue">Blau</string>
|
||||
<string name="dialog_select_color_green">Grün</string>
|
||||
<string name="dialog_select_color_ok">Ok</string>
|
||||
<string name="dialog_select_color_color_hex">Farbe</string>
|
||||
<string name="dialog_choose_color_title">Farbe wählen</string>
|
||||
<string name="settings_meta_licenses">Open Source Lizenzen</string>
|
||||
<string name="legal_info_title">Open Source Lizenzen</string>
|
||||
<string name="toast_activity_not_found_search_web">Keine App gefunden um die Suche durchzuführen.</string>
|
||||
<string name="toast_activity_not_found_browser">URL kann nicht geöffnet werden: kein Browser gefunden.</string>
|
||||
<string name="dialog_consent_accessibility_privileges">Mir ist bewusst, dass µLauncher hierdurch weitreichende Berechtigungen erhält.</string>
|
||||
<string name="dialog_consent_accessibility_other_options">Mir ist bewusst, dass Alternativen existieren (Geräteadministrator oder der Power-Button).</string>
|
||||
<string name="dialog_consent_accessibility_consent">Ich willige ein, dass µLauncher eine Bedienungshilfe für Zwecke verwendet, die nicht unter Barrierefreiheit fallen.</string>
|
||||
<string name="dialog_consent_accessibility_data_collection">Ich willige ein, dass µLauncher keine Daten sammelt.</string>
|
||||
<string name="dialog_consent_accessibility_title">Bedienungshilfe aktivieren</string>
|
||||
</resources>
|
|
@ -258,4 +258,17 @@
|
|||
<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>
|
||||
<string name="settings_apps_hide_paused_apps">Ocultar apps pausados</string>
|
||||
<string name="list_other_toggle_private_space_lock">Ativar o Espaço privado</string>
|
||||
<string name="alert_requires_android_v">Essa funcionalidade requer o Android 15.0 ou mais recente.</string>
|
||||
<string name="toast_private_space_locked">Espaço privado trancado</string>
|
||||
<string name="toast_private_space_unlocked">Espaço privado liberado</string>
|
||||
<string name="toast_private_space_not_available">Espaço privado indisponível</string>
|
||||
<string name="toast_private_space_default_home_screen">O µLauncher precisa ser definido como a tela inicial padrão para poder usar Espaço privado.</string>
|
||||
<string name="dialog_report_bug_button_clipboard">Copiar para memória</string>
|
||||
<string name="dialog_report_bug_security_info">Não relate vulnerabilidades de segurança publicamente no GitHub, use o seguinte:</string>
|
||||
<string name="dialog_report_bug_button_security">Relatar vulnerabilidade de segurança</string>
|
||||
<string name="dialog_report_bug_create_report">Criar relatório</string>
|
||||
<string name="dialog_report_bug_title">Relatar um bug</string>
|
||||
<string name="dialog_report_bug_info">Obrigado por ajudar a melhorar o µLauncher!\nConsidere adicionar as seguintes informações ao relatório de bug:</string>
|
||||
</resources>
|
|
@ -136,6 +136,8 @@
|
|||
<string name="settings_enabled_gestures_edge_swipe_summary">Swipe at the edge of the screen</string>
|
||||
<string name="settings_enabled_gestures_edge_swipe_edge_width">Edge width</string>
|
||||
<string name="settings_functionality_auto_launch">Launch search results</string>
|
||||
<string name="settings_functionality_auto_launch_summary">Press space to disable this feature temporarily.</string>
|
||||
|
||||
<string name="settings_functionality_search_web">Search the web</string>
|
||||
<string name="settings_functionality_search_web_summary">Press return while searching the app list to launch a web search.</string>
|
||||
<string name="settings_functionality_auto_keyboard">Start keyboard for search</string>
|
||||
|
@ -253,8 +255,8 @@
|
|||
<string name="settings">Settings</string>
|
||||
<string name="ic_menu_alt">More options</string>
|
||||
<string name="alert_cant_expand_status_bar_panel">Error: Can\'t expand status bar. This action is using functionality that is not part of the published Android API. Unfortunately, it does not seem to work on your device.</string>
|
||||
<string name="alert_requires_android_m">This functionality requires Android 6.0 or later.</string>
|
||||
<string name="alert_requires_android_v">This functionality requires Android 15.0 or later.</string>
|
||||
<string name="alert_requires_android_m">This functionality requires Android 6 or later.</string>
|
||||
<string name="alert_requires_android_v">This functionality requires Android 15 or later.</string>
|
||||
<string name="snackbar_app_hidden">App hidden. You can make it visible again in settings.</string>
|
||||
<string name="undo">Undo</string>
|
||||
<string name="list_other_expand_settings_panel">Quick Settings</string>
|
||||
|
@ -328,5 +330,7 @@
|
|||
<string name="dialog_cancel">Cancel</string>
|
||||
<string name="settings_meta_licenses">Open Source Licenses</string>
|
||||
<string name="legal_info_title">Open Source Licenses</string>
|
||||
<string name="toast_activity_not_found_search_web">No app found to handle search.</string>
|
||||
<string name="toast_activity_not_found_browser">Can\'t open URL: no browser found.</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -92,7 +92,8 @@
|
|||
<SwitchPreference
|
||||
android:key="@string/settings_functionality_search_auto_launch_key"
|
||||
android:defaultValue="true"
|
||||
android:title="@string/settings_functionality_auto_launch" />
|
||||
android:title="@string/settings_functionality_auto_launch"
|
||||
android:summary="@string/settings_functionality_auto_launch_summary" />
|
||||
<SwitchPreference
|
||||
android:key="@string/settings_functionality_search_web_key"
|
||||
android:title="@string/settings_functionality_search_web"
|
||||
|
|
8
fastlane/metadata/android/en-US/changelogs/37.txt
Normal file
8
fastlane/metadata/android/en-US/changelogs/37.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
* basic support for private space (Android 15)
|
||||
* reintroduced light theme
|
||||
* improved Portuguese translation (thank you, "Vossa Excelencia"!)
|
||||
* improved German translation
|
||||
* added version name to settings
|
||||
* dialog for bug reports
|
||||
* improved clock performance
|
||||
* fixed some bugs
|
Loading…
Add table
Reference in a new issue