This commit is contained in:
Josia Pietsch 2024-10-18 20:15:52 +02:00
commit 77800b27c3
Signed by: jrpie
GPG key ID: E70B571D66986A2D
43 changed files with 224 additions and 349 deletions

View file

@ -1,31 +1,32 @@
--- ---
name: Bug report name: Bug report
about: Create a report to help improve this app about: Create a report to help improve this app
title: '' title: '[bug] '
labels: bug labels: bug
assignees: '' assignees: ''
--- ---
**Describe the bug** # Describe the bug
A clear and concise description of what the bug is. A clear and concise description of what the bug is.
**To Reproduce** # To Reproduce
Steps to reproduce the behavior: Steps to reproduce the behavior:
1. Go to '...' 1. Go to '...'
2. Click on '....' 2. Click on '....'
3. Scroll down to '....' 3. Scroll down to '....'
4. See error 4. See error
**Expected behavior** # Expected behavior
A clear and concise description of what you expected to happen. A clear and concise description of what you expected to happen.
**Screenshots** # Screenshots
If applicable, add screenshots to help explain your problem. If applicable, add screenshots to help explain your problem.
**Smartphone (please complete the following information):** # Smartphone (please complete the following information)
- Device: [e.g. Samsung A7] - Device: [e.g. Samsung A7]
- Android Version: [e.g. Marshmallow, 6.0 or API 23] - Android Version: [e.g. Marshmallow, 6.0 or API 23]
- µLauncher Version: [e.g. j-0.0.11 or version code 25]
**Additional info** # Additional info
Add any other info or comments about the problem here. Add any other info or comments about the problem here.

View file

@ -1,20 +1,20 @@
--- ---
name: Feature request name: Feature request
about: Suggest an idea for this project about: Suggest an idea for this project
title: '' title: '[feature] '
labels: enhancement labels: enhancement
assignees: '' assignees: ''
--- ---
**Is your feature request related to a problem? Please describe.** # Mandatory: Please describe the problem to be solved
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] (Remove this text: Add a clear and concise description of the addressed problem. Don't say "add a button such that ... " but **why** this button should be added. This is very important as it allows to discuss alternative solutions.)
**Describe the solution you'd like** # Optional: Describe the solution you would suggest
A clear and concise description of what you want to happen. (Remove this text: A description of the solution, e.g. "add a button to the settings activity. When clicking that button ..." )
**Describe alternatives you've considered** # Optional: Describe alternative solutions you've considered
A clear and concise description of any alternative solutions or features you've considered. (Remove this text: A description of any alternative solutions or features you've considered.)
**Additional info** # Optional: Additional info
Add any other info, comments or screenshots about the feature request here. (Remove this text: Add any other info, comments or screenshots about the feature request here.)

1
.gitignore vendored
View file

@ -40,6 +40,7 @@ captures/
# IntelliJ # IntelliJ
*.iml *.iml
.idea/*
.idea/workspace.xml .idea/workspace.xml
.idea/tasks.xml .idea/tasks.xml
.idea/other.xml .idea/other.xml

View file

@ -1,129 +0,0 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" alias="false" withSubpackages="false" />
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings>
<codeStyleSettings language="XML">
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
<codeStyleSettings language="kotlin">
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</codeStyleSettings>
</code_scheme>
</component>

View file

@ -1,5 +0,0 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

6
.idea/compiler.xml generated
View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>

View file

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DeviceTable">
<option name="columnSorters">
<list>
<ColumnSorterState>
<option name="column" value="Name" />
<option name="order" value="ASCENDING" />
</ColumnSorterState>
</list>
</option>
</component>
</project>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="BintrayJCenter" />
<option name="name" value="BintrayJCenter" />
<option name="url" value="https://jcenter.bintray.com/" />
</remote-repository>
<remote-repository>
<option name="id" value="Google" />
<option name="name" value="Google" />
<option name="url" value="https://dl.google.com/dl/android/maven2/" />
</remote-repository>
</component>
</project>

6
.idea/kotlinc.xml generated
View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="2.0.0" />
</component>
</project>

10
.idea/migrations.xml generated
View file

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

23
.idea/misc.xml generated
View file

@ -1,23 +0,0 @@
<project version="4">
<component name="DesignSurface">
<option name="filePathToZoomLevelMap">
<map>
<entry key="app/src/main/res/layout/list.xml" value="0.21331521739130435" />
<entry key="app/src/main/res/layout/list_apps.xml" value="0.1757852077001013" />
<entry key="app/src/main/res/layout/settings.xml" value="0.21331521739130435" />
</map>
</option>
</component>
<component name="EntryPointsManager">
<list size="1">
<item index="0" class="java.lang.String" itemvalue="eu.jonahbauer.android.preference.annotations.Preferences" />
</list>
</component>
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

View file

@ -1,6 +1,10 @@
<!-- Shields from shields.io --> <!-- Shields from shields.io -->
<!--[![][shield-release]][latest-release] --> [![][shield-release]][latest-release]
[![][shield-license]][license] [![][shield-license]][license]
[![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)][matrix]
[![Chat on Discord](https://img.shields.io/badge/discord-join%20chat-007ec6.svg?style=flat)][discord]
# μLauncher # μLauncher
@ -28,7 +32,7 @@ Or download the latest APK from the [Releases Section](https://github.com/jrpie/
There are several ways to contribute to this app: There are several ways to contribute to this app:
* You can add or improve [translations][toolate]. * You can add or improve [translations][toolate].
* If you find a bug or have an idea for a new feature you can open an [issue][issues]. Please note that I work on this project in my free time. Thus I might not respond immediately and not all ideas will be implemented. * If you find a bug or have an idea for a new feature you can [join the Matrix chat][matrix] or open an [issue][issues]. Please note that I work on this project in my free time. Thus I might not respond immediately and not all ideas will be implemented.
* You can implement a new feature yourself: * You can implement a new feature yourself:
- Create a fork of this repository: [![][shield-gh-fork]][fork] - Create a fork of this repository: [![][shield-gh-fork]][fork]
- Create a new branch named `feature/<your feature>` of `fix/<your fix>` and commit your changes. - Create a new branch named `feature/<your feature>` of `fix/<your fix>` and commit your changes.
@ -77,14 +81,15 @@ There are several ways to contribute to this app:
<!-- Shields and Badges --> <!-- Shields and Badges -->
[shield-release]: https://img.shields.io/github/v/release/jrpie/Launcher?style=flat [shield-release]: https://img.shields.io/github/v/release/jrpie/Launcher?style=flat
[latest-release]: https://github.com/jrpie/Launcher/releases/latest
[shield-contribute]: https://img.shields.io/badge/contributions-welcome-007ec6.svg?style=flat [shield-contribute]: https://img.shields.io/badge/contributions-welcome-007ec6.svg?style=flat
[shield-license]: https://img.shields.io/badge/license-MIT-007ec6?style=flat [shield-license]: https://img.shields.io/badge/license-MIT-007ec6?style=flat
[shield-gh-watch]: https://img.shields.io/github/watchers/jrpie/Launcher?label=Watch&style=social [shield-gh-watch]: https://img.shields.io/github/watchers/jrpie/Launcher?label=Watch&style=social
[shield-gh-star]: https://img.shields.io/github/stars/jrpie/Launcher?label=Star&style=social [shield-gh-star]: https://img.shields.io/github/stars/jrpie/Launcher?label=Star&style=social
[shield-gh-fork]: https://img.shields.io/github/forks/jrpie/Launcher?label=Fork&style=social [shield-gh-fork]: https://img.shields.io/github/forks/jrpie/Launcher?label=Fork&style=social
[matrix]: https://s.jrpie.de/launcher-matrix
[discord]: https://s.jrpie.de/launcher-discord
<!-- Helpful resources --> <!-- Helpful resources -->

View file

@ -23,8 +23,8 @@ android {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 35 targetSdkVersion 35
compileSdk 35 compileSdk 35
versionCode 24 versionCode 26
versionName "j-0.0.10" versionName "j-0.0.12"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }

View file

@ -39,6 +39,7 @@
</activity> </activity>
<activity <activity
android:name="de.jrpie.android.launcher.ui.list.ListActivity" android:name="de.jrpie.android.launcher.ui.list.ListActivity"
android:configChanges="orientation|screenSize"
android:windowSoftInputMode="adjustResize" > android:windowSoftInputMode="adjustResize" >
</activity> </activity>
<activity <activity
@ -51,7 +52,6 @@
<category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.DEFAULT"/>
</intent-filter> </intent-filter>
</activity> </activity>
</application> </application>
</manifest> </manifest>

View file

@ -9,5 +9,6 @@ class Application : android.app.Application() {
val preferences = PreferenceManager.getDefaultSharedPreferences(this) val preferences = PreferenceManager.getDefaultSharedPreferences(this)
LauncherPreferences.init(preferences, this.resources) LauncherPreferences.init(preferences, this.resources)
} }
} }

View file

@ -96,9 +96,13 @@ fun getIntent(packageName: String, context: Context): Intent? {
} }
/* --- */ /* --- */
fun getUserFromId(user: Int?, context: Context): UserHandle? { fun getUserFromId(user: Int?, context: Context): UserHandle {
/* TODO: this is an ugly hack.
Use userManager#getUserForSerialNumber instead (breaking change to SharedPreferences!)
*/
val userManager = context.getSystemService(Service.USER_SERVICE) as UserManager val userManager = context.getSystemService(Service.USER_SERVICE) as UserManager
return userManager.userProfiles.firstOrNull { it.hashCode() == user } val profiles = userManager.userProfiles
return profiles.firstOrNull { it.hashCode() == user } ?: profiles[0]
} }
@ -106,10 +110,10 @@ fun uninstallApp(appInfo: AppInfo, activity: Activity) {
val packageName = appInfo.packageName.toString() val packageName = appInfo.packageName.toString()
val user = appInfo.user val user = appInfo.user
Log.i("Launcher", "uninstalling $packageName ($user)") Log.i("Launcher", "uninstalling $appInfo")
val intent = Intent(Intent.ACTION_UNINSTALL_PACKAGE) val intent = Intent(Intent.ACTION_UNINSTALL_PACKAGE)
intent.data = Uri.parse("package:$packageName") intent.data = Uri.parse("package:$packageName")
getUserFromId(user, activity)?.let { user -> getUserFromId(user, activity).let { user ->
intent.putExtra(Intent.EXTRA_USER, user) intent.putExtra(Intent.EXTRA_USER, user)
} }

View file

@ -39,7 +39,7 @@ interface Action {
val id = gesture.id val id = gesture.id
val preferences = LauncherPreferences.getSharedPreferences() val preferences = LauncherPreferences.getSharedPreferences()
var actionId = preferences.getString("$id.app", "")!! val actionId = preferences.getString("$id.app", "")!!
var u: Int? = preferences.getInt("$id.user", INVALID_USER) var u: Int? = preferences.getInt("$id.user", INVALID_USER)
u = if (u == INVALID_USER) null else u u = if (u == INVALID_USER) null else u
@ -48,7 +48,7 @@ interface Action {
fun resetToDefaultActions(context: Context) { fun resetToDefaultActions(context: Context) {
val editor = LauncherPreferences.getSharedPreferences().edit() val editor = LauncherPreferences.getSharedPreferences().edit()
Gesture.values().forEach { gesture -> Gesture.entries.forEach { gesture ->
context.resources context.resources
.getStringArray(gesture.defaultsResource) .getStringArray(gesture.defaultsResource)
.map { fromId(it, null) } .map { fromId(it, null) }
@ -96,7 +96,7 @@ interface Action {
fun fromIntent(data: Intent): Action? { fun fromIntent(data: Intent): Action? {
val value = data.getStringExtra("action_id") ?: return null val value = data.getStringExtra("action_id") ?: return null
var user = data.getIntExtra("user", INVALID_USER) val user = data.getIntExtra("user", INVALID_USER)
return fromId(value, user) return fromId(value, user)
} }
} }

View file

@ -65,6 +65,12 @@ enum class LauncherAction(
R.drawable.baseline_notifications_24, R.drawable.baseline_notifications_24,
::expandNotificationsPanel ::expandNotificationsPanel
), ),
EXPAND_SETTINGS_PANEL(
"launcher:expandSettingsPanel",
R.string.list_other_expand_settings_panel,
R.drawable.baseline_settings_applications_24,
::expandSettingsPanel
),
NOP("launcher:nop", R.string.list_other_nop, R.drawable.baseline_not_interested_24, {}); NOP("launcher:nop", R.string.list_other_nop, R.drawable.baseline_not_interested_24, {});
override fun invoke(context: Context, rect: Rect?): Boolean { override fun invoke(context: Context, rect: Rect?): Boolean {
@ -170,7 +176,24 @@ private fun expandNotificationsPanel(context: Context) {
} catch (e: Exception) { } catch (e: Exception) {
Toast.makeText( Toast.makeText(
context, context,
context.getString(R.string.alert_cant_expand_notifications_panel), context.getString(R.string.alert_cant_expand_status_bar_panel),
Toast.LENGTH_LONG
).show()
}
}
private fun expandSettingsPanel(context: Context) {
/* https://stackoverflow.com/a/31898506 */
try {
@Suppress("SpellCheckingInspection")
val statusBarService: Any? = context.getSystemService("statusbar")
val statusBarManager = Class.forName("android.app.StatusBarManager")
val showStatusBar = statusBarManager.getMethod("expandSettingsPanel")
showStatusBar.invoke(statusBarService)
} catch (e: Exception) {
Toast.makeText(
context,
context.getString(R.string.alert_cant_expand_status_bar_panel),
Toast.LENGTH_LONG Toast.LENGTH_LONG
).show() ).show()
} }

View file

@ -4,6 +4,7 @@ import android.app.Service
import android.content.Context import android.content.Context
import android.content.pm.LauncherActivityInfo import android.content.pm.LauncherActivityInfo
import android.content.pm.LauncherApps import android.content.pm.LauncherApps
import android.util.Log
import de.jrpie.android.launcher.getUserFromId import de.jrpie.android.launcher.getUserFromId
/** /**
@ -19,13 +20,13 @@ class AppInfo(val packageName: CharSequence, val activityName: CharSequence?, va
var ret = "$packageName;$u" var ret = "$packageName;$u"
activityName?.let { ret += ";$activityName" } activityName?.let { ret += ";$activityName" }
return ret; return ret
} }
override fun equals(other: Any?): Boolean { override fun equals(other: Any?): Boolean {
if(other is AppInfo) { if(other is AppInfo) {
return other.user == user && other.packageName == packageName return other.user == user && other.packageName == packageName
&& other.activityName == activityName; && other.activityName == activityName
} }
return super.equals(other) return super.equals(other)
} }
@ -38,11 +39,10 @@ class AppInfo(val packageName: CharSequence, val activityName: CharSequence?, va
context: Context context: Context
): LauncherActivityInfo? { ): LauncherActivityInfo? {
val launcherApps = context.getSystemService(Service.LAUNCHER_APPS_SERVICE) as LauncherApps val launcherApps = context.getSystemService(Service.LAUNCHER_APPS_SERVICE) as LauncherApps
return getUserFromId(user, context)?.let { userHandle -> val userHandle = getUserFromId(user, context)
launcherApps.getActivityList(packageName.toString(), userHandle).firstOrNull { app -> val activityList = launcherApps.getActivityList(packageName.toString(), userHandle)
app.name == activityName || activityName == null || activityName == "" return activityList.firstOrNull { app -> app.name == activityName }
} ?: activityList.firstOrNull()
}
} }

View file

@ -51,7 +51,7 @@ import eu.jonahbauer.android.preference.annotations.serializer.PreferenceSeriali
@PreferenceGroup(name = "display", prefix = "settings_display_", suffix = "_key", value = { @PreferenceGroup(name = "display", prefix = "settings_display_", suffix = "_key", value = {
@Preference(name = "screen_timeout_disabled", type = boolean.class, defaultValue = "false"), @Preference(name = "screen_timeout_disabled", type = boolean.class, defaultValue = "false"),
@Preference(name = "full_screen", type = boolean.class, defaultValue = "true"), @Preference(name = "full_screen", type = boolean.class, defaultValue = "true"),
@Preference(name = "rotate_screen", type = boolean.class, defaultValue = "false"), @Preference(name = "rotate_screen", type = boolean.class, defaultValue = "true"),
}), }),
@PreferenceGroup(name = "functionality", prefix = "settings_functionality_", suffix = "_key", value = { @PreferenceGroup(name = "functionality", prefix = "settings_functionality_", suffix = "_key", value = {
@Preference(name = "search_auto_launch", type = boolean.class, defaultValue = "true"), @Preference(name = "search_auto_launch", type = boolean.class, defaultValue = "true"),

View file

@ -64,7 +64,8 @@ class HomeActivity : UIObject, AppCompatActivity(),
private var clockTimer = Timer() private var clockTimer = Timer()
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super<AppCompatActivity>.onCreate(savedInstanceState)
super<UIObject>.onCreate()
// Try to restore old preferences // Try to restore old preferences
migratePreferencesToNewVersion(this) migratePreferencesToNewVersion(this)

View file

@ -37,16 +37,17 @@ fun setWindowFlags(window: Window, homeScreen: Boolean) {
} }
interface UIObject { interface UIObject {
fun onStart() { fun onCreate() {
if (this is Activity) { if (this is Activity) {
setWindowFlags(window, isHomeScreen()) setWindowFlags(window, isHomeScreen())
requestedOrientation = if (!LauncherPreferences.display().rotateScreen()) {
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT if (!LauncherPreferences.display().rotateScreen()) {
} else { requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
}
} }
}
}
fun onStart() {
setOnClicks() setOnClicks()
adjustLayout() adjustLayout()
} }

View file

@ -50,7 +50,8 @@ class ListActivity : AppCompatActivity(), UIObject {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super<AppCompatActivity>.onCreate(savedInstanceState)
super<UIObject>.onCreate()
// get info about which action this activity is open for // get info about which action this activity is open for
intent.extras?.let { bundle -> intent.extras?.let { bundle ->
@ -109,6 +110,9 @@ class ListActivity : AppCompatActivity(), UIObject {
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
// ensure that the activity closes then an app is launched
// and when the user navigates to recent apps
finish() finish()
} }

View file

@ -1,5 +1,6 @@
package de.jrpie.android.launcher.ui.list.apps package de.jrpie.android.launcher.ui.list.apps
import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.graphics.Rect import android.graphics.Rect
@ -36,6 +37,7 @@ import de.jrpie.android.launcher.uninstallApp
* @param intention - why the list is displayed ("view", "pick") * @param intention - why the list is displayed ("view", "pick")
* @param forGesture - the action which an app is chosen for (when the intention is "pick") * @param forGesture - the action which an app is chosen for (when the intention is "pick")
*/ */
@SuppressLint("NotifyDataSetChanged")
class AppsRecyclerAdapter( class AppsRecyclerAdapter(
val activity: Activity, val activity: Activity,
val root: View, val root: View,

View file

@ -44,7 +44,9 @@ class SettingsActivity : AppCompatActivity(), UIObject {
private lateinit var binding: SettingsBinding private lateinit var binding: SettingsBinding
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super<AppCompatActivity>.onCreate(savedInstanceState)
super<UIObject>.onCreate()
// Initialise layout // Initialise layout
binding = SettingsBinding.inflate(layoutInflater) binding = SettingsBinding.inflate(layoutInflater)

View file

@ -30,7 +30,8 @@ import de.jrpie.android.launcher.ui.tutorial.tabs.TutorialFragmentUsage
class TutorialActivity : AppCompatActivity(), UIObject { class TutorialActivity : AppCompatActivity(), UIObject {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super<AppCompatActivity>.onCreate(savedInstanceState)
super<UIObject>.onCreate()
// Initialise layout // Initialise layout
setContentView(R.layout.tutorial) setContentView(R.layout.tutorial)

View file

@ -138,6 +138,7 @@
<string name="settings">Einstellungen</string> <string name="settings">Einstellungen</string>
<string name="ic_menu_alt">Mehr Optionen</string> <string name="ic_menu_alt">Mehr Optionen</string>
<string name="list_other_expand_notifications_panel">Benachrichtigungen</string> <string name="list_other_expand_notifications_panel">Benachrichtigungen</string>
<string name="alert_cant_expand_notifications_panel">Fehler: Die Funktion \"Benachrichtigungen\" wird von deinem Gerät leider nicht unterstützt.</string> <string name="alert_cant_expand_status_bar_panel">Fehler: Diese Funktion wird von deinem Gerät leider nicht unterstützt.</string>
<string name="settings_clock_show_seconds">Sekunden anzeigen</string> <string name="settings_clock_show_seconds">Sekunden anzeigen</string>
<string name="list_other_expand_settings_panel">Schnelleinstellungen</string>
</resources> </resources>

View file

@ -7,7 +7,7 @@
--> -->
<string name="alert_cant_open_title">Impossible d\'ouvrir l\'application</string> <string name="alert_cant_open_title">Impossible d\'ouvrir l\'application</string>
<string name="alert_cant_open_message">Souhaitez-vous modifier ses paramètres ?</string> <string name="alert_cant_open_message">Souhaitez-vous modifier ses paramètres ?</string>
<string name="toast_cant_open_message">Ouvrez les paramètres pour choisir une application pour cette action</string> <string name="toast_cant_open_message">Ouvrez les paramètres pour associer une action à ce geste</string>
<!-- <!--
- -
- Settings - Settings
@ -83,7 +83,7 @@
- List (Launchers app drawer) - List (Launchers app drawer)
- -
--> -->
<string name="list_title_view">Applications</string> <string name="list_title_view">Toutes les Applications</string>
<string name="list_title_pick">Choisir App</string> <string name="list_title_pick">Choisir App</string>
<string name="list_tab_app">Applications</string> <string name="list_tab_app">Applications</string>
<string name="list_tab_other">Autre</string> <string name="list_tab_other">Autre</string>
@ -93,7 +93,7 @@
<string name="list_not_removed">Impossible de désinstaller l\'application</string> <string name="list_not_removed">Impossible de désinstaller l\'application</string>
<string name="list_apps_search_hint">Chercher des applications</string> <string name="list_apps_search_hint">Chercher des applications</string>
<string name="list_other_settings">Réglages du launcher</string> <string name="list_other_settings">Réglages du launcher</string>
<string name="list_other_list">Applications</string> <string name="list_other_list">Toutes les Applications</string>
<string name="list_other_volume_up">Augmenter le volume</string> <string name="list_other_volume_up">Augmenter le volume</string>
<string name="list_other_volume_down">Diminuer le volume</string> <string name="list_other_volume_down">Diminuer le volume</string>
<string name="list_other_track_next">Musique : passer au titre suivant</string> <string name="list_other_track_next">Musique : passer au titre suivant</string>
@ -140,4 +140,24 @@
<string name="settings_clock_flip_date_time">Échanger la date et l\'heure</string> <string name="settings_clock_flip_date_time">Échanger la date et l\'heure</string>
<string name="settings_clock_date_visible">Afficher la date</string> <string name="settings_clock_date_visible">Afficher la date</string>
<string name="settings_clock_localized">Utiliser le format de date local</string> <string name="settings_clock_localized">Utiliser le format de date local</string>
<string name="settings_launcher_section_apps">Applis</string>
<string name="settings_theme_background">Fond d\'écran (liste d\'applications et réglages)</string>
<string name="settings_theme_font">Police</string>
<string name="settings_theme_monochrome_icons">Icônes d\'applications monochromes</string>
<string name="settings_clock_show_seconds">Afficher les secondes</string>
<string name="settings_display_rotate_screen">Rotation de l\'écran</string>
<string name="list_other_expand_notifications_panel">Afficher le panneau de notifications</string>
<string name="settings_apps_hidden">Applications cachées</string>
<string name="list_title_favorite">Applications favorites</string>
<string name="list_title_hidden">Applications masquées</string>
<string name="list_app_favorite_add">Ajouter aux favoris</string>
<string name="list_app_favorite_remove">Retirer des favoris</string>
<string name="list_app_hidden_add">Cacher</string>
<string name="list_app_hidden_remove">Montrer</string>
<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="list_other_expand_settings_panel">Réglages rapides</string>
</resources> </resources>

View file

@ -1,38 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<!-- <!--
- -
- Home - Home
- -
--> -->
<string name="alert_cant_open_title">Não é possível abrir o aplicativo</string> <string name="alert_cant_open_title">Não foi possível abrir o app</string>
<string name="alert_cant_open_message">Quer alterar as suas configurações?</string> <string name="alert_cant_open_message">Quer alterar as suas configurações?</string>
<string name="toast_cant_open_message">Abra as configurações para escolher uma ação para esse gesto</string>
<string name="toast_cant_open_message">Abrir as configurações para escolher uma aplicação para esta ação</string>
<!-- <!--
- -
- Settings - Settings
- -
--> -->
<string name="settings_title">Configurações</string> <string name="settings_title">Configurações</string>
<string name="settings_tab_app">Apps</string> <string name="settings_tab_app">Apps</string>
<string name="settings_tab_launcher">Launcher</string> <string name="settings_tab_launcher">Launcher</string>
<string name="settings_tab_meta">Meta</string> <string name="settings_tab_meta">Meta</string>
<!-- <!--
- -
- Settings : Apps - Settings : Apps
- -
--> -->
<string name="settings_gesture_up">Deslizar para cima</string> <string name="settings_gesture_up">Deslizar para cima</string>
<string name="settings_gesture_double_up">Duplo para cima</string> <string name="settings_gesture_double_up">2 dedos para cima</string>
<string name="settings_gesture_down">Deslizar para baixo</string> <string name="settings_gesture_down">Deslizar para baixo</string>
<string name="settings_gesture_double_down">Duplo para baixo</string> <string name="settings_gesture_double_down">2 dedos para baixo</string>
<string name="settings_gesture_left">Deslizar para esquerda</string> <string name="settings_gesture_left">Deslizar para esquerda</string>
<string name="settings_gesture_double_left">Duplo para esquerda</string> <string name="settings_gesture_double_left">2 dedos para esquerda</string>
<string name="settings_gesture_right">Deslizar para direita</string> <string name="settings_gesture_right">Deslizar para direita</string>
<string name="settings_gesture_double_right">Duplo para direita</string> <string name="settings_gesture_double_right">2 dedos para direita</string>
<string name="settings_gesture_right_top_edge">Deslizar para direita (Cima)</string> <string name="settings_gesture_right_top_edge">Deslizar para direita (Cima)</string>
<string name="settings_gesture_right_bottom_edge">Deslizar para direita (Baixo)</string> <string name="settings_gesture_right_bottom_edge">Deslizar para direita (Baixo)</string>
<string name="settings_gesture_left_bottom_edge">Deslizar para esquerda (Baixo)</string> <string name="settings_gesture_left_bottom_edge">Deslizar para esquerda (Baixo)</string>
@ -41,56 +38,42 @@
<string name="settings_gesture_up_right_edge">Deslizar para cima (Borda direita)</string> <string name="settings_gesture_up_right_edge">Deslizar para cima (Borda direita)</string>
<string name="settings_gesture_down_left_edge">Deslizar para baixo (Borda esquerda)</string> <string name="settings_gesture_down_left_edge">Deslizar para baixo (Borda esquerda)</string>
<string name="settings_gesture_down_right_edge">Deslizar para baixo (Borda direita)</string> <string name="settings_gesture_down_right_edge">Deslizar para baixo (Borda direita)</string>
<string name="settings_gesture_vol_up">Aumentar o volume</string> <string name="settings_gesture_vol_up">Aumento de volume</string>
<string name="settings_gesture_vol_down">Diminuir o volume</string> <string name="settings_gesture_vol_down">Diminuição de volume</string>
<string name="settings_gesture_double_click">Duplo clique</string> <string name="settings_gesture_double_click">Toque duplo</string>
<string name="settings_gesture_long_click">Clique longo</string> <string name="settings_gesture_long_click">Toque longo</string>
<string name="settings_gesture_date">Clique em Data</string> <string name="settings_gesture_date">Toque em Data</string>
<string name="settings_gesture_time">Clique em Tempo</string> <string name="settings_gesture_time">Toque em Tempo</string>
<string name="settings_apps_choose">Selecione um app</string>
<string name="settings_apps_choose">Selecionar o aplicativo</string> <string name="settings_apps_view_all">Ver todos os apps</string>
<string name="settings_apps_view_all">Ver todos os aplicativos</string>
<string name="settings_apps_install">Instalar aplicativos</string> <string name="settings_apps_install">Instalar aplicativos</string>
<string name="settings_apps_toast_store_not_found">Loja não encontrada</string> <string name="settings_apps_toast_store_not_found">Loja não encontrada</string>
<!-- <!--
- -
- Settings : Launcher - Settings : Launcher
- -
--> -->
<string name="settings_launcher_section_appearance">Aparência</string> <string name="settings_launcher_section_appearance">Aparência</string>
<string name="settings_theme_color_theme">Tema</string> <string name="settings_theme_color_theme">Tema</string>
<string-array name="settings_theme_color_theme_items"> <string-array name="settings_theme_color_theme_items">
<item>Padrão</item> <item>Padrão</item>
<item>Escuro</item> <item>Escuro</item>
</string-array> </string-array>
<string name="settings_clock_time_visible">Mostrar Horário</string> <string name="settings_clock_time_visible">Mostrar Horário</string>
<string name="settings_clock_date_visible">Mostrar Data</string> <string name="settings_clock_date_visible">Mostrar Data</string>
<string name="settings_clock_localized">Use formato de data localizado</string> <string name="settings_clock_localized">Use formato de data localizado</string>
<string name="settings_clock_flip_date_time">Inverter data e hora</string> <string name="settings_clock_flip_date_time">Inverter data e hora</string>
<string name="settings_theme_wallpaper">Escolha um papel de parede</string> <string name="settings_theme_wallpaper">Escolha um papel de parede</string>
<string name="settings_launcher_change_wallpaper">Alterar papel de parede</string> <string name="settings_launcher_change_wallpaper">Alterar papel de parede</string>
<string name="settings_launcher_section_display">Exibição</string> <string name="settings_launcher_section_display">Exibição</string>
<string name="settings_display_screen_timeout_disabled">Manter a tela ligada</string> <string name="settings_display_screen_timeout_disabled">Manter a tela ligada</string>
<string name="settings_display_full_screen">Usar tela cheia</string> <string name="settings_display_full_screen">Usar tela cheia</string>
<string name="settings_launcher_section_functionality">Funções</string> <string name="settings_launcher_section_functionality">Funções</string>
<string name="settings_enabled_gestures_double_swipe">Deslize com 2 dedos</string>
<string name="settings_enabled_gestures_double_swipe">Ações de deslizar duas vezes</string>
<string name="settings_enabled_gestures_edge_swipe">Ações de deslizar nas bordas</string> <string name="settings_enabled_gestures_edge_swipe">Ações de deslizar nas bordas</string>
<string name="settings_functionality_auto_launch">Iniciar resultados da pesquisa</string> <string name="settings_functionality_auto_launch">Iniciar resultados da pesquisa</string>
<string name="settings_functionality_auto_keyboard">Iniciar teclado para pesquisa</string> <string name="settings_functionality_auto_keyboard">Mostrar teclado para pesquisa</string>
<string name="settings_launcher_sensitivity">Sensibilidade</string> <string name="settings_launcher_sensitivity">Sensibilidade</string>
<!-- <!--
- -
- Settings : Meta - Settings : Meta
@ -98,51 +81,36 @@
--> -->
<string name="settings_general_choose_home_screen">Definir o μLauncher como tela inicial</string> <string name="settings_general_choose_home_screen">Definir o μLauncher como tela inicial</string>
<string name="settings_meta_cant_select_launcher">Informações do aplicativo</string> <string name="settings_meta_cant_select_launcher">Informações do aplicativo</string>
<string name="settings_meta_cant_select_launcher_msg">Seu dispositivo não suporta esse recurso. Gerenciar detalhes do aplicativo em vez disso?</string> <string name="settings_meta_cant_select_launcher_msg">Seu dispositivo não é compatível com esse recurso. Gerenciar detalhes do app em vez disso?</string>
<string name="settings_meta_show_tutorial">Ver tutorial do launcher</string> <string name="settings_meta_show_tutorial">Ver tutorial do launcher</string>
<string name="settings_meta_reset">Redefinir configuraçãos</string> <string name="settings_meta_reset">Redefinir configuraçãos</string>
<string name="settings_meta_reset_confirm">Você vai descartar todas as suas preferências. Continuar?</string> <string name="settings_meta_reset_confirm">Você vai descartar todas as suas preferências. Continuar?</string>
<string name="settings_meta_report_bug">Reportar um bug</string> <string name="settings_meta_report_bug">Reportar um bug</string>
<string name="settings_meta_fork_contact">Entre em contato com o desenvolvedor do fork</string> <string name="settings_meta_fork_contact">Entre em contato com o desenvolvedor do fork</string>
<string name="settings_meta_privacy">Política de Privacidade</string> <string name="settings_meta_privacy">Política de Privacidade</string>
<string name="settings_meta_contact">Entre em contato com o desenvolvedor original</string> <string name="settings_meta_contact">Entre em contato com o desenvolvedor original</string>
<string name="settings_meta_discord">Junte-se a nós no discord!</string> <string name="settings_meta_discord">Junte-se a nós no discord!</string>
<!-- <!--
- -
- List (Launchers app drawer) - List (Launchers app drawer)
- -
--> -->
<string name="list_title_view">Todos os aplicativos</string> <string name="list_title_view">Todos os apps</string>
<string name="list_title_pick">Escolha o aplicativo</string> <string name="list_title_pick">Escolha um app</string>
<string name="list_tab_app">Aplicativos</string> <string name="list_tab_app">Aplicativos</string>
<string name="list_tab_other">Outro</string> <string name="list_tab_other">Outros</string>
<string name="list_app_delete">Desinstalar</string> <string name="list_app_delete">Desinstalar</string>
<string name="list_app_info">Informações do aplicativo</string> <string name="list_app_info">Informações do aplicativo</string>
<string name="list_removed">O app selecionado foi removido</string>
<string name="list_removed">O aplicativo selecionado foi removido</string> <string name="list_not_removed">Não foi possível remover o app</string>
<string name="list_not_removed">Não é possível remover o aplicativo</string>
<string name="list_apps_search_hint">Pesquisar Aplicativos</string> <string name="list_apps_search_hint">Pesquisar Aplicativos</string>
<string name="list_other_settings">Configurações do Launcher</string> <string name="list_other_settings">Configurações do Launcher</string>
<string name="list_other_list">Todos os aplicativos</string> <string name="list_other_list">Todos os apps</string>
<string name="list_other_volume_up">Music: Mais alto</string> <string name="list_other_volume_up">Música: Mais alto</string>
<string name="list_other_volume_down">Music: Mais silencioso</string> <string name="list_other_volume_down">Música: Mais silencioso</string>
<string name="list_other_track_next">Music: Próximo</string> <string name="list_other_track_next">Música: Próximo</string>
<string name="list_other_track_previous">Music: Anterior</string> <string name="list_other_track_previous">Música: Anterior</string>
<string name="list_other_nop">Não faça nada</string> <string name="list_other_nop">Não faça nada</string>
<!-- <!--
- -
- Tutorial - Tutorial
@ -150,25 +118,38 @@
--> -->
<string name="tutorial_title">Tutorial</string> <string name="tutorial_title">Tutorial</string>
<string name="tutorial_start_text">Tire alguns segundos para aprender a usar este Launcher!</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_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">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_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_usage_title">Uso</string> <string name="tutorial_usage_title">Uso</string>
<string name="tutorial_usage_text">Sua tela inicial contém a data e a hora locais. Sem distração.</string> <string name="tutorial_usage_text">Sua tela inicial contém a data e a hora locais. Sem distração.</string>
<string name="tutorial_usage_text_2">Você pode iniciar seus aplicativos com um único toque ou pressionamento de botão. Escolha alguns no próximo slide.</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>
<string name="tutorial_setup_title">Configurar</string> <string name="tutorial_setup_title">Configurar</string>
<string name="tutorial_setup_text">Selecionamos alguns aplicativos padrões para você. Se quiser, você pode alterá-los agora.</string> <string name="tutorial_setup_text">Selecionamos alguns aplicativos padrões para você. Se quiser, você pode alterá-los agora.</string>
<string name="tutorial_setup_text_2">Você também pode alterar sua seleção mais tarde.</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_title">Vamos!</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">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_button">Começar</string> <string name="tutorial_finish_button">Começar</string>
<string name="settings">Configurações</string> <string name="settings">Configurações</string>
<string name="ic_menu_alt">Mais opçõ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="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>
<string name="settings_launcher_section_date_time">Data e hora</string>
<string name="settings_clock_show_seconds">Mostrar segundos</string>
<string name="settings_display_rotate_screen">Girar a tela</string>
<string name="settings_launcher_section_apps">Apps</string>
<string name="settings_apps_hidden">Apps ocultos</string>
<string name="list_title_favorite">Apps favoritos</string>
<string name="list_title_hidden">Apps ocultos</string>
<string name="list_app_favorite_add">Adicione aos favoritos</string>
<string name="list_app_hidden_add">Ocultar</string>
<string name="list_app_hidden_remove">Mostrar</string>
<string name="list_other_list_favorites">Apps favoritos</string>
<string name="list_other_expand_notifications_panel">Expandir painel de notificações</string>
<string name="snackbar_app_hidden">App está oculto. Você pode torná-lo visível nas configurações.</string>
<string name="undo">Desfazer</string>
</resources> </resources>

View file

@ -12,7 +12,7 @@
<string name="settings_gesture_down">下滑</string> <string name="settings_gesture_down">下滑</string>
<string name="alert_cant_open_title">无法打开应用</string> <string name="alert_cant_open_title">无法打开应用</string>
<string name="alert_cant_open_message">要更改其设置吗?</string> <string name="alert_cant_open_message">要更改其设置吗?</string>
<string name="toast_cant_open_message">打开设置,为该操作绑定一个应用程序</string> <string name="toast_cant_open_message">打开设置,为该手势绑定一个应用程序</string>
<string name="settings_tab_app">应用程序</string> <string name="settings_tab_app">应用程序</string>
<string name="settings_tab_launcher">启动器</string> <string name="settings_tab_launcher">启动器</string>
<string name="settings_tab_meta">杂项</string> <string name="settings_tab_meta">杂项</string>
@ -29,7 +29,7 @@
<string name="settings_gesture_up_left_edge">上滑(左边缘)</string> <string name="settings_gesture_up_left_edge">上滑(左边缘)</string>
<string name="settings_gesture_up_right_edge">上滑(右边缘)</string> <string name="settings_gesture_up_right_edge">上滑(右边缘)</string>
<string name="settings_gesture_down_left_edge">下滑(左边缘)</string> <string name="settings_gesture_down_left_edge">下滑(左边缘)</string>
<string name="settings_gesture_down_right_edge">下滑两次(右边缘)</string> <string name="settings_gesture_down_right_edge">下滑(右边缘)</string>
<string name="settings_gesture_vol_up">音量加</string> <string name="settings_gesture_vol_up">音量加</string>
<string name="settings_gesture_vol_down">音量减</string> <string name="settings_gesture_vol_down">音量减</string>
<string name="settings_gesture_double_click">双击</string> <string name="settings_gesture_double_click">双击</string>
@ -103,4 +103,13 @@
<string name="settings_clock_time_visible">显示时间</string> <string name="settings_clock_time_visible">显示时间</string>
<string name="settings_clock_date_visible">显示日期</string> <string name="settings_clock_date_visible">显示日期</string>
<string name="settings_clock_flip_date_time">翻转日期和时间</string> <string name="settings_clock_flip_date_time">翻转日期和时间</string>
<string name="settings_theme_background">背景(应用列表和设置)</string>
<string name="settings_theme_font">字体</string>
<string name="settings_theme_monochrome_icons">黑白应用图标</string>
<string name="settings_clock_show_seconds">显示秒</string>
<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>
</resources> </resources>

View file

@ -204,7 +204,8 @@
<string name="settings">Settings</string> <string name="settings">Settings</string>
<string name="ic_menu_alt">More options</string> <string name="ic_menu_alt">More options</string>
<string name="alert_cant_expand_notifications_panel">Error: Can\'t expand status bar.\nThis 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_cant_expand_status_bar_panel">Error: Can\'t expand status bar.\nThis 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="snackbar_app_hidden">App hidden. You can make it visible again in settings.</string> <string name="snackbar_app_hidden">App hidden. You can make it visible again in settings.</string>
<string name="undo">Undo</string> <string name="undo">Undo</string>
<string name="list_other_expand_settings_panel">Quick Settings</string>
</resources> </resources>

View file

@ -118,7 +118,7 @@
android:title="@string/settings_display_full_screen"/> android:title="@string/settings_display_full_screen"/>
<SwitchPreference <SwitchPreference
android:key="@string/settings_display_rotate_screen_key" android:key="@string/settings_display_rotate_screen_key"
android:defaultValue="false" android:defaultValue="true"
android:title="@string/settings_display_rotate_screen"/> android:title="@string/settings_display_rotate_screen"/>
<SwitchPreference <SwitchPreference
android:key="@string/settings_display_screen_timeout_disabled_key" android:key="@string/settings_display_screen_timeout_disabled_key"

View file

@ -2,7 +2,7 @@
buildscript { buildscript {
ext.kotlin_version = '2.0.0' ext.kotlin_version = '2.0.0'
ext.android_plugin_version = '8.5.1' ext.android_plugin_version = '8.7.0'
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
@ -10,7 +10,7 @@ buildscript {
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:8.5.2' classpath 'com.android.tools.build:gradle:8.7.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "com.android.tools.build:gradle:$android_plugin_version" classpath "com.android.tools.build:gradle:$android_plugin_version"

View file

@ -1,3 +1,4 @@
* Favorite apps * Favorite apps
* Option to hide apps * Option to hide apps
* Support for apps with multiple main activities * Support for apps with multiple main activities
* Fixed layout of settings on small screens

View file

@ -0,0 +1 @@
bugfix

View file

@ -0,0 +1,15 @@
- Traduction en chinois (merci, yzqzss !)
- Traduction améliorée en français (merci, toby-bro !)
- Traduction améliorée en allemand
Toutes les applications :
- Suppression des trois points dans la liste des applications (utilisez un long clic à la place)
- Appuyer sur entrer ouvre la première application correspondant à la requête
- Correction du contournement pour le bug lors de l'ouverture du clavier en mode plein écran
- Suppression de l'option de désinstallation pour les applications système
- Le bouton d'accueil fonctionne correctement maintenant
Paramètres :
- Correction des paramètres pour les petits écrans
- Suppression du réglage de sensibilité (tout le monde le mettait de toute façon à maximum)
- Refonte des paramètres de date et d'heure

View file

@ -0,0 +1,8 @@
* Ajout d'options pour le thème de couleur, la police, l'arrière-plan, les icônes monochromes
* Ajout d'options pour la date et l'heure
* Ajout d'une option pour autoriser la rotation
* Amélioration de l'algorithme de recherche
* Traduction en portugais brésilien - merci, Jonatas de Almeida Barros !
* Correction d'un bug : les applications sélectionnées disparaissaient des paramètres
* Amélioration de la qualité du code
* Traductions mises à jour

View file

@ -0,0 +1,4 @@
* Applications favorites
* Option de cacher des applications
* Prise en charge des applications avec plusieurs activités principales
* Correction de la mise en page des paramètres sur les petits écrans

View file

@ -0,0 +1 @@
Correction de bugs

View file

@ -0,0 +1 @@
µLauncher

View file

@ -0,0 +1 @@
Correção de bugs

View file

@ -0,0 +1 @@
Uma tela inicial minimalista e sem distrações para Android.

View file

@ -0,0 +1 @@
µLauncher