This commit is contained in:
Josia Pietsch 2024-07-02 21:21:51 +02:00
parent 0ed2f0d020
commit e85f00d293
Signed by: jrpie
GPG key ID: E70B571D66986A2D
51 changed files with 439 additions and 515 deletions

2
.idea/compiler.xml generated
View file

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

10
.idea/deploymentTargetSelector.xml generated Normal file
View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetSelector">
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
</SelectionState>
</selectionStates>
</component>
</project>

6
.idea/kotlinc.xml generated Normal file
View file

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

2
.idea/misc.xml generated
View file

@ -9,7 +9,7 @@
</map> </map>
</option> </option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <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" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

263
.idea/other.xml generated Normal file
View file

@ -0,0 +1,263 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="direct_access_persist.xml">
<option name="deviceSelectionList">
<list>
<PersistentDeviceSelectionData>
<option name="api" value="27" />
<option name="brand" value="DOCOMO" />
<option name="codename" value="F01L" />
<option name="id" value="F01L" />
<option name="manufacturer" value="FUJITSU" />
<option name="name" value="F-01L" />
<option name="screenDensity" value="360" />
<option name="screenX" value="720" />
<option name="screenY" value="1280" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="28" />
<option name="brand" value="DOCOMO" />
<option name="codename" value="SH-01L" />
<option name="id" value="SH-01L" />
<option name="manufacturer" value="SHARP" />
<option name="name" value="AQUOS sense2 SH-01L" />
<option name="screenDensity" value="480" />
<option name="screenX" value="1080" />
<option name="screenY" value="2160" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="31" />
<option name="brand" value="samsung" />
<option name="codename" value="a51" />
<option name="id" value="a51" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy A51" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="google" />
<option name="codename" value="akita" />
<option name="id" value="akita" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 8a" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="samsung" />
<option name="codename" value="b0q" />
<option name="id" value="b0q" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S22 Ultra" />
<option name="screenDensity" value="600" />
<option name="screenX" value="1440" />
<option name="screenY" value="3088" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="32" />
<option name="brand" value="google" />
<option name="codename" value="bluejay" />
<option name="id" value="bluejay" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 6a" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="29" />
<option name="brand" value="samsung" />
<option name="codename" value="crownqlteue" />
<option name="id" value="crownqlteue" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Note9" />
<option name="screenDensity" value="420" />
<option name="screenX" value="2220" />
<option name="screenY" value="1080" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="samsung" />
<option name="codename" value="dm3q" />
<option name="id" value="dm3q" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S23 Ultra" />
<option name="screenDensity" value="600" />
<option name="screenX" value="1440" />
<option name="screenY" value="3088" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="google" />
<option name="codename" value="felix" />
<option name="id" value="felix" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel Fold" />
<option name="screenDensity" value="420" />
<option name="screenX" value="2208" />
<option name="screenY" value="1840" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="google" />
<option name="codename" value="felix_camera" />
<option name="id" value="felix_camera" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel Fold (Camera-enabled)" />
<option name="screenDensity" value="420" />
<option name="screenX" value="2208" />
<option name="screenY" value="1840" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="samsung" />
<option name="codename" value="gts8uwifi" />
<option name="id" value="gts8uwifi" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Tab S8 Ultra" />
<option name="screenDensity" value="320" />
<option name="screenX" value="1848" />
<option name="screenY" value="2960" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="google" />
<option name="codename" value="husky" />
<option name="id" value="husky" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 8 Pro" />
<option name="screenDensity" value="390" />
<option name="screenX" value="1008" />
<option name="screenY" value="2244" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="30" />
<option name="brand" value="motorola" />
<option name="codename" value="java" />
<option name="id" value="java" />
<option name="manufacturer" value="Motorola" />
<option name="name" value="G20" />
<option name="screenDensity" value="280" />
<option name="screenX" value="720" />
<option name="screenY" value="1600" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="google" />
<option name="codename" value="lynx" />
<option name="id" value="lynx" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 7a" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="31" />
<option name="brand" value="google" />
<option name="codename" value="oriole" />
<option name="id" value="oriole" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 6" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="google" />
<option name="codename" value="panther" />
<option name="id" value="panther" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 7" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="31" />
<option name="brand" value="samsung" />
<option name="codename" value="q2q" />
<option name="id" value="q2q" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Z Fold3" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1768" />
<option name="screenY" value="2208" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="samsung" />
<option name="codename" value="q5q" />
<option name="id" value="q5q" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy Z Fold5" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1812" />
<option name="screenY" value="2176" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="30" />
<option name="brand" value="google" />
<option name="codename" value="r11" />
<option name="id" value="r11" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel Watch" />
<option name="screenDensity" value="320" />
<option name="screenX" value="384" />
<option name="screenY" value="384" />
<option name="type" value="WEAR_OS" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="30" />
<option name="brand" value="google" />
<option name="codename" value="redfin" />
<option name="id" value="redfin" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 5" />
<option name="screenDensity" value="440" />
<option name="screenX" value="1080" />
<option name="screenY" value="2340" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="34" />
<option name="brand" value="google" />
<option name="codename" value="shiba" />
<option name="id" value="shiba" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel 8" />
<option name="screenDensity" value="420" />
<option name="screenX" value="1080" />
<option name="screenY" value="2400" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="33" />
<option name="brand" value="google" />
<option name="codename" value="tangorpro" />
<option name="id" value="tangorpro" />
<option name="manufacturer" value="Google" />
<option name="name" value="Pixel Tablet" />
<option name="screenDensity" value="320" />
<option name="screenX" value="1600" />
<option name="screenY" value="2560" />
</PersistentDeviceSelectionData>
<PersistentDeviceSelectionData>
<option name="api" value="29" />
<option name="brand" value="samsung" />
<option name="codename" value="x1q" />
<option name="id" value="x1q" />
<option name="manufacturer" value="Samsung" />
<option name="name" value="Galaxy S20" />
<option name="screenDensity" value="480" />
<option name="screenX" value="1440" />
<option name="screenY" value="3200" />
</PersistentDeviceSelectionData>
</list>
</option>
</component>
</project>

237
README.md
View file

@ -6,239 +6,38 @@
<!-- ENGLISH README --> <!-- ENGLISH README -->
# <a name="en"></a> Launcher :rocket: # <a name="en"></a> Launcher
**`English` | [`Deutsch`](#de) | [`Français`](#fr) | [`Español`](#es)** This is a fork of [finnmglas' Launcher][original-repo].
There are only some small changes:
## Concept
_Launcher_ is an android homescreen that lets you start other apps efficiently using swipe gestures and button presses. It is **minimal, efficient and free of distraction**.
Your homescreen only displays the date, time and a wallpaper (if you want one).
This app **costs you nothing**, is **ad-free** and does not collect, receive or share any personal data. It boosts your efficiency, no matter who you are!
So make the best of your time on the phone by downloading this Launcher:
[<img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" title="Download Launcher on Google Play" width="49%">][store-googleplay-badgecampain]
[<img alt="Get on F-Droid" src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" title="Download Launcher from F-droid" width="49%">][store-fdroid]
## Contributing
If _Launcher_ is useful to you, you are very welcome to help developing it! Join our [discord]!
### Testing
The easiest way to help improving this app is downloading it and testing. We need lots of feedback from you: You can either [review Launcher][store-googleplay] on Google Play or [open an issue][newissue] on GitHub.
### GitHub
Even if you can't find time for other contributions (code, feedback), please make sure to star _Launcher_, as it helps other developers and users find the app easier ^^
[![][shield-gh-star]][star]
### Contributing Code
To help developing Launcher, you will need a GitHub account ([create one][joingh]).
1. Create a fork of this repository.<br><br>[![][shield-gh-fork]][fork]
2. Create a new branch called `feature/[feature-name]` or `fix/[what-you-fix]`.
3. Commit your changes, fixes or improvements to the new branch.
4. Open a new pull request to the `master` branch of this repository.
### Sponsor :heart:
As the app is 100% free to the public, fees for distribution et cetera are paid by the developer himself. If _Launcher_ is valuable enough to you, you can also [support the project financially][financial] - **you as a sponsor make open-source possible in the first place!**
* The font has been changed to [Hack][hack-font].
* The search algorithm was modified to prefer
* small improvement of gesture detection.
--- ---
<!-- GERMAN README -->
# <a name="de"></a> Launcher :rocket:
**[`English`](#en) | `Deutsch` | [`Français`](#fr) | [`Español`](#es)**
## Konzept
_Launcher_ ist ein Startbildschirm für Android, der dir hilft, andere Apps durch Wischbewegungen und die Tasten deines Smartphones schnell andere Apps starten lässt. Er ist **minimal, effizient und frei von Ablenkung**.
Dein Startbildschirm zeigt nur Datum, Uhrzeit und ein Hintergrundbild (wenn du willst) an.
Die App **kostet dich nichts**, ist **frei von Werbung** und sammelt keine persönlichen Daten. Launcher hilft dir effizienter zu sein, egal wer du bist!
Mache das Beste aus deiner Zeit am Smartphone indem du diesen Launcher installierst:
[<img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" title="Launcher auf Google Play herunterladen" width="49%">][store-googleplay-badgecampain]
[<img alt="Get on F-Droid" src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" title="Launcher von F-droid herunterladen" width="49%">][store-fdroid-de]
## Mitwirkungen
Wenn _Launcher_ für dich nützlich ist, darfst du gerne auch bei der Entwicklung mithelfen! Schau einfach mal im [Launcher Discord][discord] vorbei (dort sprechen wir Englisch)!
### Testen
Am Einfachsten kannst du mithelfen, indem die die App herunterlädst und sie testest. Wir brauchen viel Feedback von dir: Du kannst entweder [eine Revision][store-googleplay] im Play-Store hinterlassen oder [ein Issue auf GitHub eröffnen][newissue].
### GitHub
Auch wenn du keine Zeit findest um mitzuwirken (Code, Feedback), kannst du _Launcher_ auf GitHub mit einem Stern markieren, da das anderen Entwicklern und Nutzern dabei hilft, diese App leichter zu finden ^^
[![][shield-gh-star]][star]
### Code einsenden
Um bei der Entwicklung von Launcher zu helfen, benötigst du einen GitHub Account ([erstelle einen][joingh]).
1. Erstelle ein fork dieses Repositories.<br><br>[![][shield-gh-fork]][fork]
2. Erstelle einen neuen Branch mit einem Namen wie`feature/[feature-name]` oder `fix/[what-you-fix]`.
3. Commite deine Änderungen, Fixes oder Verbesserungen auf dem neuen Branch.
4. Öffne eine neue Pull Request zum `master` Branch dieses Repositories.
### Finanzielle Unterstützung :heart:
Da diese App 100% gratis für jeden ist, werden Kosten für die Verbreitung, Entwicklung et cetera vom Entwickler übernommen. Wenn _Launcher_ für dich wertvoll ist, kannst du ihn auch [finanziell unterstützen][financial] - **du als Sponsor machst Open-Source erst möglich!**
--- ---
[hack-font]: https://sourcefoundry.org/hack/
[original-repo]: https://github.com/finnmglas/Launcher
<!-- FRENCH README -->
# <a name="fr"></a> Launcher :rocket:
**[`English`](#en) | [`Deutsch`](#de) | `Français` | [`Español`](#es)**
## Concept
_Launcher_ est un écran d'accueil Android qui vous permet de démarrer efficacement d'autres applications en utilisant des gestes de balayage et des pressions sur des boutons. Il est **minimal, efficace et sans distraction**.
Votre écran d'accueil affiche uniquement la date, l'heure et un fond d'écran (si vous en voulez un).
Cette application **ne vous coûte rien**, est **sans publicité** et ne collecte, ne reçoit ni ne partage aucune donnée personnelle. Cela booste votre efficacité, peu importe qui vous êtes!
Alors profitez au mieux de votre temps au téléphone en téléchargeant ce lanceur:
[<img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" title="Télécharger Launcher sur Google Play" width="49%">][store-googleplay-badgecampain]
[<img alt="Get on F-Droid" src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" title="Télécharger Launcher sur F-droid" width="49%">][store-fdroid-fr]
## Contribuant
Si _Launcher_ vous est utile, vous êtes les bienvenus pour contribuer à son développement! Rejoignez le [Launcher Discord][discord] (on y parle anglais)!
### Tester
Le moyen le plus simple d'aider à améliorer cette application est de la télécharger et de la tester. Nous avons besoin de beaucoup de commentaires de votre part: vous pouvez [réviser Launcher][store-googleplay] sur Google Play ou [ouvrir un issue][newissue] sur GitHub.
### GitHub
Même si vous ne trouvez pas de temps pour d'autres contributions (code, réviser), assurez-vous de mettre _Launcher_ en étoile, car cela aide les autres développeurs et utilisateurs à trouver l'application plus facilement ^^
[![][shield-gh-star]][star]
### Code contributeur
Pour aider à développer Launcher, vous aurez besoin d'un compte GitHub ([créer un][joingh]).
1. Créer un fork de ce repo.<br><br>[![][shield-gh-fork]][fork]
2. Créez une nouvelle branche appelée `feature/[feature-name]` or `fix/[what-you-fix]`.
3. Validez vos modifications, corrections ou améliorations dans la nouvelle branche.
4. Ouvrez une nouvelle pull request dans la branche `master` de ce repo.
### Sponsoriser :heart:
Comme l'application est 100% gratuite pour le public, les frais de distribution, etc. sont payés par le développeur lui-même. Si _Launcher_ est assez précieux pour vous, vous pouvez également [soutenir le projet financièrement][financial] - **vous, en tant que sponsor, rendez l'open-source possible en premier lieu!**
---
<!-- SPANISH README -->
# <a name="es"></a> Launcher :rocket:
**[`English`](#en) | [`Deutsch`](#de) | [`Français`](#fr) | `Español`**
## Concepto
_Launcher_ es una pantalla de inicio para android que permite iniciar otras aplicaciones de forma eficiente mediante gestos de deslizar y presionar en la pantalla. Es **minimalista, eficiente y libre de distracciones**.
La pantalla de inicio solo muestra la fecha, hora y un fondo de pantalla (si se desea uno).
Esta aplicación **no cuesta nada**, es **libre de anuncios** y no recopila, recibe o comparte información personal. Mejora tu eficiencia, sin importar quién seas!
Así que haz el mejor uso posible de tu tiempo con tu smartphone descargando este Launcher:
[<img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" title="Download Launcher on Google Play" width="49%">][store-googleplay-badgecampain]
[<img alt="Get on F-Droid" src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" title="Download Launcher from F-droid" width="49%">][store-fdroid]
## Contribuciones
Si _Launcher_ te resulta útil, tu ayuda en su desarrollo será muy bienvenida! Únete a nuestro [discord]!
### Testing
La forma más simple de mejorar la aplicación es descargándola y probándola. Necesitamos mucha ayuda de ti: Puedes [escribir una reseña][store-googleplay] en Google Play o [abrir un issue][newissue] en GitHub.
### GitHub
Incluso si no puedes hacerte un tiempo para otras contribuciones (código, reseñas), por favor asegúrate de darle una estrella a _Launcher_, y así ayudar a que otros desarrolladores y usuarios encuentren la app más fácilmente ^^
[![][shield-gh-star]][star]
### Contribuciones de Código
Para ayudar con el desarrollo de Launcher, necesitarás una cuenta de GitHub ([crea una][joingh]).
1. Crea un fork de este repositorio.<br><br>[![][shield-gh-fork]][fork]
2. Crea una nueva rama llamada `feature/[feature-name]` o `fix/[what-you-fix]`.
3. Commitear tus cambios, soluciones o mejoras a la rama nueva.
4. Abrir una nueva pull request a la rama `master` de este repositorio.
### Patrocinar :heart:
Como la aplicación es 100% gratuita, los costos de distribución et cetera son pagados por el desarrollador. Si _Launcher_ es lo suficientemente valioso para ti, puedes [apoyar el proyecto financieramente][financial] - **tú como patrocinador haces que el software de código abierto sea posible en primer lugar!**
---
<!-- Community -->
[shield-discord]: https://img.shields.io/badge/discord-join%20chat-007ec6.svg?style=flat
[discord]: https://discord.com/invite/jV2AhF8
<!-- Download links / stores --> <!-- Download links / stores -->
[store-googleplay]: https://play.google.com/store/apps/details?id=com.finnmglas.launcher [store-googleplay]: https://play.google.com/store/apps/details?id=de.jrpie.android.launcher
[store-googleplay-badgecampain]: https://play.google.com/store/apps/details?id=com.finnmglas.launcher&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1 [store-googleplay-badgecampain]: https://play.google.com/store/apps/details?id=de.jrpie.android.launcher&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1
[store-fdroid]: https://f-droid.org/packages/com.finnmglas.launcher/ [store-fdroid]: https://f-droid.org/packages/de.jrpie.android.launcher/
[store-fdroid-de]: https://f-droid.org/de/packages/com.finnmglas.launcher/
[store-fdroid-fr]: https://f-droid.org/fr/packages/com.finnmglas.launcher/
<!-- Author related and owned media -->
[financial]: https://sponsor.finnmglas.com
<!-- GitHub related -->
[fork]: https://github.com/finnmglas/Launcher/fork
[star]: https://github.com/finnmglas/Launcher/stargazers
[joingh]: https://github.com/join
[newissue]: https://github.com/finnmglas/Launcher/issues/new/choose
[issues]: https://github.com/finnmglas/Launcher/issues
[contributors]: https://github.com/finnmglas/Launcher/graphs/contributors
[theme-examples]: https://github.com/finnmglas/Launcher/blob/master/docs/README.md
[latest-release]: https://github.com/finnmglas/Launcher/releases/latest
<!-- Shields and Badges --> <!-- Shields and Badges -->
[shield-release]: https://img.shields.io/github/v/release/finnmglas/Launcher?style=flat [shield-release]: https://img.shields.io/github/v/release/jrpie/Launcher?style=flat
[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/finnmglas/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/finnmglas/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/finnmglas/Launcher?label=Fork&style=social [shield-gh-fork]: https://img.shields.io/github/forks/jrpie/Launcher?label=Fork&style=social
<!-- Helpful resources --> <!-- Helpful resources -->
[license]: https://github.com/finnmglas/Launcher/blob/master/LICENSE [license]: https://github.com/jrpie/Launcher/blob/master/LICENSE

View file

@ -3,15 +3,15 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android-extensions'
android { android {
compileSdkVersion 29 compileSdkVersion 33
buildToolsVersion "29.0.3" buildToolsVersion "30.0.3"
defaultConfig { defaultConfig {
applicationId "com.finnmglas.launcher" applicationId "de.jrpie.android.launcher"
minSdkVersion 16 minSdkVersion 16
targetSdkVersion 29 targetSdkVersion 33
versionCode 12 versionCode 13
versionName "v1.6.0" versionName "j-alpha-0.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }

View file

@ -0,0 +1,20 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "de.jrpie.android.launcher",
"variantName": "release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 12,
"versionName": "v1.6.0",
"outputFile": "app-release.apk"
}
],
"elementType": "File"
}

View file

@ -1,24 +0,0 @@
package com.finnmglas.launcher
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.finnmglas.launcher", appContext.packageName)
}
}

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.finnmglas.launcher"> package="de.jrpie.android.launcher">
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher package de.jrpie.android.launcher
import android.app.Activity import android.app.Activity
import android.app.AlertDialog import android.app.AlertDialog
@ -25,12 +25,12 @@ import android.widget.Button
import android.widget.ImageView import android.widget.ImageView
import android.widget.Switch import android.widget.Switch
import android.widget.Toast import android.widget.Toast
import com.finnmglas.launcher.list.ListActivity import de.jrpie.android.launcher.list.ListActivity
import com.finnmglas.launcher.list.apps.AppInfo import de.jrpie.android.launcher.list.apps.AppInfo
import com.finnmglas.launcher.list.apps.AppsRecyclerAdapter import de.jrpie.android.launcher.list.apps.AppsRecyclerAdapter
import com.finnmglas.launcher.settings.SettingsActivity import de.jrpie.android.launcher.settings.SettingsActivity
import com.finnmglas.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.settings.intendedSettingsPause
import com.finnmglas.launcher.tutorial.TutorialActivity import de.jrpie.android.launcher.tutorial.TutorialActivity
import kotlin.math.roundToInt import kotlin.math.roundToInt

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher package de.jrpie.android.launcher
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
@ -9,13 +9,13 @@ import android.provider.MediaStore
import android.view.* import android.view.*
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.GestureDetectorCompat import androidx.core.view.GestureDetectorCompat
import com.finnmglas.launcher.tutorial.TutorialActivity import de.jrpie.android.launcher.tutorial.TutorialActivity
import kotlinx.android.synthetic.main.home.* import kotlinx.android.synthetic.main.home.*
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
import kotlin.concurrent.fixedRateTimer import kotlin.concurrent.fixedRateTimer
import kotlin.math.abs import kotlin.math.abs
import com.finnmglas.launcher.BuildConfig.VERSION_NAME import de.jrpie.android.launcher.BuildConfig.VERSION_NAME
/** /**
* [HomeActivity] is the actual application Launcher, * [HomeActivity] is the actual application Launcher,
@ -134,7 +134,8 @@ class HomeActivity: UIObject, AppCompatActivity(),
} }
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK) { if (settingsIconShown) hideSettingsIcon() } if (keyCode == KeyEvent.KEYCODE_BACK) {
launch("launcher:choose", this) }
else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP)
launch(volumeUpApp, this,0, 0) launch(volumeUpApp, this,0, 0)
else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
@ -194,34 +195,10 @@ class HomeActivity: UIObject, AppCompatActivity(),
// Tooltip // Tooltip
override fun onSingleTapConfirmed(event: MotionEvent): Boolean { override fun onSingleTapConfirmed(event: MotionEvent): Boolean {
when(settingsIconShown) {
true -> {
hideSettingsIcon()
}
false -> {showSettingsIcon()}
}
return false return false
} }
private fun showSettingsIcon(){
if(!canReachSettings()) {
home_settings_icon.fadeRotateIn()
home_settings_icon.visibility = View.VISIBLE
settingsIconShown = true
tooltipTimer = fixedRateTimer("tooltipTimer", true, 10000, 1000) {
this@HomeActivity.runOnUiThread { hideSettingsIcon() }
}
}
}
private fun hideSettingsIcon(){
tooltipTimer.cancel()
home_settings_icon.fadeRotateOut()
home_settings_icon.visibility = View.INVISIBLE
settingsIconShown = false
}
override fun onTouchEvent(event: MotionEvent): Boolean { override fun onTouchEvent(event: MotionEvent): Boolean {
// Buffer / Debounce the pointer count // Buffer / Debounce the pointer count
@ -237,10 +214,7 @@ class HomeActivity: UIObject, AppCompatActivity(),
} }
override fun applyTheme() { override fun applyTheme() {
// Start by showing the settings icon
if (!settingsIconShown) showSettingsIcon()
home_settings_icon.setTextColor(vibrantColor)
home_container.setBackgroundColor(dominantColor) home_container.setBackgroundColor(dominantColor)
if (launcherPreferences.getString(PREF_WALLPAPER, "") != "") { if (launcherPreferences.getString(PREF_WALLPAPER, "") != "") {
@ -262,9 +236,6 @@ class HomeActivity: UIObject, AppCompatActivity(),
} }
override fun setOnClicks() { override fun setOnClicks() {
home_settings_icon.setOnClickListener() {
launch("launcher:settings", this, R.anim.bottom_up)
}
home_upper_view.setOnClickListener() { home_upper_view.setOnClickListener() {
when (launcherPreferences.getInt(PREF_DATE_FORMAT, 0)) { when (launcherPreferences.getInt(PREF_DATE_FORMAT, 0)) {

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher package de.jrpie.android.launcher
import android.app.Activity import android.app.Activity
import android.view.WindowManager import android.view.WindowManager

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.libraries // replace with your package package de.jrpie.android.launcher.libraries // replace with your package
// On GitHub: https://github.com/finnmglas/fontawesome-android // On GitHub: https://github.com/finnmglas/fontawesome-android
@ -6,7 +6,7 @@ import android.content.Context
import android.graphics.Typeface import android.graphics.Typeface
import android.util.AttributeSet import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatTextView import androidx.appcompat.widget.AppCompatTextView
import com.finnmglas.launcher.R import de.jrpie.android.launcher.R
/** [FontAwesome] is just a type of TextView with special functions: /** [FontAwesome] is just a type of TextView with special functions:
* *

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.list package de.jrpie.android.launcher.list
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
@ -7,16 +7,16 @@ import android.view.View
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import com.finnmglas.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.settings.intendedSettingsPause
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import kotlinx.android.synthetic.main.list.* import kotlinx.android.synthetic.main.list.*
import android.content.Context import android.content.Context
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter import androidx.fragment.app.FragmentPagerAdapter
import com.finnmglas.launcher.list.apps.ListFragmentApps import de.jrpie.android.launcher.list.apps.ListFragmentApps
import com.finnmglas.launcher.list.other.ListFragmentOther import de.jrpie.android.launcher.list.other.ListFragmentOther
import kotlinx.android.synthetic.main.home.* import kotlinx.android.synthetic.main.home.*
import kotlinx.android.synthetic.main.list_apps.* import kotlinx.android.synthetic.main.list_apps.*
@ -129,7 +129,7 @@ class ListSectionsPagerAdapter(private val context: Context, fm: FragmentManager
override fun getItem(position: Int): Fragment { override fun getItem(position: Int): Fragment {
return when (position){ return when (position){
0 -> ListFragmentApps() 0 -> ListFragmentApps()
1 -> ListFragmentOther() 1 -> de.jrpie.android.launcher.list.other.ListFragmentOther()
else -> Fragment() else -> Fragment()
} }
} }

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.list.apps package de.jrpie.android.launcher.list.apps
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.list.apps package de.jrpie.android.launcher.list.apps
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
@ -14,9 +14,9 @@ import android.widget.ImageView
import android.widget.PopupMenu import android.widget.PopupMenu
import android.widget.TextView import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import com.finnmglas.launcher.libraries.FontAwesome import de.jrpie.android.launcher.libraries.FontAwesome
import com.finnmglas.launcher.list.intendedChoosePause import de.jrpie.android.launcher.list.intendedChoosePause
import java.util.* import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.list.apps package de.jrpie.android.launcher.list.apps
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -6,9 +6,9 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import com.finnmglas.launcher.list.forApp import de.jrpie.android.launcher.list.forApp
import com.finnmglas.launcher.list.intention import de.jrpie.android.launcher.list.intention
import kotlinx.android.synthetic.main.list.* import kotlinx.android.synthetic.main.list.*
import kotlinx.android.synthetic.main.list_apps.* import kotlinx.android.synthetic.main.list_apps.*

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.list.other package de.jrpie.android.launcher.list.other
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -6,9 +6,9 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.finnmglas.launcher.R import de.jrpie.android.launcher.R
import com.finnmglas.launcher.dominantColor import de.jrpie.android.launcher.dominantColor
import com.finnmglas.launcher.getSavedTheme import de.jrpie.android.launcher.getSavedTheme
import kotlinx.android.synthetic.main.list_other.* import kotlinx.android.synthetic.main.list_other.*
/** /**
@ -33,7 +33,7 @@ class ListFragmentOther : Fragment() {
// set up the list / recycler // set up the list / recycler
val viewManager = LinearLayoutManager(context) val viewManager = LinearLayoutManager(context)
val viewAdapter = OtherRecyclerAdapter(activity!!) val viewAdapter = de.jrpie.android.launcher.list.other.OtherRecyclerAdapter(activity!!)
list_other_rview.apply { list_other_rview.apply {
// improve performance (since content changes don't change the layout size) // improve performance (since content changes don't change the layout size)

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.list.other package de.jrpie.android.launcher.list.other
/** /**
* Stores information used in [OtherRecyclerAdapter] rows. * Stores information used in [OtherRecyclerAdapter] rows.

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.list.other package de.jrpie.android.launcher.list.other
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
@ -8,10 +8,10 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.TextView import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.finnmglas.launcher.R import de.jrpie.android.launcher.R
import com.finnmglas.launcher.REQUEST_CHOOSE_APP import de.jrpie.android.launcher.REQUEST_CHOOSE_APP
import com.finnmglas.launcher.libraries.* import de.jrpie.android.launcher.libraries.*
import com.finnmglas.launcher.list.forApp import de.jrpie.android.launcher.list.forApp
/** /**
* The [OtherRecyclerAdapter] will only be displayed in the ListActivity, * The [OtherRecyclerAdapter] will only be displayed in the ListActivity,

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.settings package de.jrpie.android.launcher.settings
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
@ -6,15 +6,15 @@ import android.os.Bundle
import android.provider.Settings import android.provider.Settings
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import kotlinx.android.synthetic.main.settings.* import kotlinx.android.synthetic.main.settings.*
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter import androidx.fragment.app.FragmentPagerAdapter
import com.finnmglas.launcher.settings.actions.SettingsFragmentActions import de.jrpie.android.launcher.settings.actions.SettingsFragmentActions
import com.finnmglas.launcher.settings.launcher.SettingsFragmentLauncher import de.jrpie.android.launcher.settings.launcher.SettingsFragmentLauncher
import com.finnmglas.launcher.settings.meta.SettingsFragmentMeta import de.jrpie.android.launcher.settings.meta.SettingsFragmentMeta
var intendedSettingsPause = false // know when to close var intendedSettingsPause = false // know when to close

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.settings.actions package de.jrpie.android.launcher.settings.actions
/** /**
* Stores information used in [ActionsRecyclerAdapter] rows. * Stores information used in [ActionsRecyclerAdapter] rows.

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.settings.actions package de.jrpie.android.launcher.settings.actions
import android.content.ActivityNotFoundException import android.content.ActivityNotFoundException
import android.content.Intent import android.content.Intent
@ -9,9 +9,9 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import com.finnmglas.launcher.list.ListActivity import de.jrpie.android.launcher.list.ListActivity
import com.finnmglas.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.settings.intendedSettingsPause
import kotlinx.android.synthetic.main.settings_actions.* import kotlinx.android.synthetic.main.settings_actions.*

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.settings.actions package de.jrpie.android.launcher.settings.actions
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -6,8 +6,8 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import com.finnmglas.launcher.list.ListActivity import de.jrpie.android.launcher.list.ListActivity
import kotlinx.android.synthetic.main.settings_actions_recycler.* import kotlinx.android.synthetic.main.settings_actions_recycler.*
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
@ -15,8 +15,8 @@ import android.widget.Button
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.finnmglas.launcher.libraries.FontAwesome import de.jrpie.android.launcher.libraries.FontAwesome
import com.finnmglas.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.settings.intendedSettingsPause
import java.lang.Exception import java.lang.Exception
/** /**

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.settings.launcher package de.jrpie.android.launcher.settings.launcher
import android.Manifest import android.Manifest
import android.app.Activity import android.app.Activity
@ -20,8 +20,8 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.palette.graphics.Palette import androidx.palette.graphics.Palette
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import com.finnmglas.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.settings.intendedSettingsPause
import kotlinx.android.synthetic.main.settings_launcher.* import kotlinx.android.synthetic.main.settings_launcher.*

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.settings.meta package de.jrpie.android.launcher.settings.meta
import android.app.AlertDialog import android.app.AlertDialog
import android.content.ActivityNotFoundException import android.content.ActivityNotFoundException
@ -12,9 +12,9 @@ import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import com.finnmglas.launcher.tutorial.TutorialActivity import de.jrpie.android.launcher.tutorial.TutorialActivity
import com.finnmglas.launcher.settings.intendedSettingsPause import de.jrpie.android.launcher.settings.intendedSettingsPause
import kotlinx.android.synthetic.main.settings_meta.* import kotlinx.android.synthetic.main.settings_meta.*
/** /**
@ -66,11 +66,7 @@ class SettingsFragmentMeta : Fragment(), UIObject {
setButtonColor(settings_meta_button_reset_settings, vibrantColor) setButtonColor(settings_meta_button_reset_settings, vibrantColor)
setButtonColor(settings_meta_button_report_bug, vibrantColor) setButtonColor(settings_meta_button_report_bug, vibrantColor)
setButtonColor(settings_meta_button_contact, vibrantColor) setButtonColor(settings_meta_button_contact, vibrantColor)
setButtonColor(settings_meta_button_discord, vibrantColor) setButtonColor(settings_meta_button_fork_contact, vibrantColor)
settings_meta_icon_github.setTextColor(vibrantColor)
settings_meta_icon_store.setTextColor(vibrantColor)
settings_meta_icon_donate.setTextColor(vibrantColor)
} }
override fun setOnClicks() { override fun setOnClicks() {
@ -127,26 +123,6 @@ class SettingsFragmentMeta : Fragment(), UIObject {
.show() .show()
} }
// Icon onClicks
settings_meta_icon_github.setOnClickListener {
intendedSettingsPause = true
openNewTabWindow(
getString(R.string.settings_meta_link_github),
this.context!!
)
}
// rate app / open store
settings_meta_icon_store.setOnClickListener {
try {
val rateIntent = rateIntentForUrl("market://details")
intendedSettingsPause = true
startActivity(rateIntent)
} catch (e: ActivityNotFoundException) {
val rateIntent = rateIntentForUrl("https://play.google.com/store/apps/details")
intendedSettingsPause = true
startActivity(rateIntent)
}
}
// report a bug // report a bug
settings_meta_button_report_bug.setOnClickListener { settings_meta_button_report_bug.setOnClickListener {
@ -157,15 +133,6 @@ class SettingsFragmentMeta : Fragment(), UIObject {
) )
} }
// invite link to the discord server
settings_meta_button_discord.setOnClickListener {
intendedSettingsPause = true
openNewTabWindow(
getString(R.string.settings_meta_discord_url),
context!!
)
}
// contact developer // contact developer
settings_meta_button_contact.setOnClickListener { settings_meta_button_contact.setOnClickListener {
intendedSettingsPause = true intendedSettingsPause = true
@ -175,13 +142,14 @@ class SettingsFragmentMeta : Fragment(), UIObject {
) )
} }
// donate // contact fork developer
settings_meta_icon_donate.setOnClickListener { settings_meta_button_fork_contact.setOnClickListener {
intendedSettingsPause = true intendedSettingsPause = true
openNewTabWindow( openNewTabWindow(
getString(R.string.settings_meta_donate_url), getString(R.string.settings_meta_fork_contact_url),
context!! context!!
) )
} }
} }
} }

View file

@ -1,4 +1,4 @@
package com.finnmglas.launcher.tutorial package de.jrpie.android.launcher.tutorial
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
@ -9,8 +9,8 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter import androidx.fragment.app.FragmentPagerAdapter
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import com.finnmglas.launcher.tutorial.tabs.* import de.jrpie.android.launcher.tutorial.tabs.*
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import kotlinx.android.synthetic.main.tutorial.* import kotlinx.android.synthetic.main.tutorial.*

View file

@ -1,11 +1,11 @@
package com.finnmglas.launcher.tutorial.tabs package de.jrpie.android.launcher.tutorial.tabs
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import kotlinx.android.synthetic.main.tutorial_concept.* import kotlinx.android.synthetic.main.tutorial_concept.*
/** /**

View file

@ -1,12 +1,12 @@
package com.finnmglas.launcher.tutorial.tabs package de.jrpie.android.launcher.tutorial.tabs
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import com.finnmglas.launcher.BuildConfig.VERSION_NAME import de.jrpie.android.launcher.BuildConfig.VERSION_NAME
import kotlinx.android.synthetic.main.tutorial_finish.* import kotlinx.android.synthetic.main.tutorial_finish.*
/** /**

View file

@ -1,11 +1,11 @@
package com.finnmglas.launcher.tutorial.tabs package de.jrpie.android.launcher.tutorial.tabs
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import kotlinx.android.synthetic.main.tutorial_setup.* import kotlinx.android.synthetic.main.tutorial_setup.*
/** /**

View file

@ -1,11 +1,11 @@
package com.finnmglas.launcher.tutorial.tabs package de.jrpie.android.launcher.tutorial.tabs
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import kotlinx.android.synthetic.main.tutorial_start.* import kotlinx.android.synthetic.main.tutorial_start.*
/** /**

View file

@ -1,11 +1,11 @@
package com.finnmglas.launcher.tutorial.tabs package de.jrpie.android.launcher.tutorial.tabs
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.finnmglas.launcher.* import de.jrpie.android.launcher.*
import kotlinx.android.synthetic.main.tutorial_usage.* import kotlinx.android.synthetic.main.tutorial_usage.*
/** /**

View file

@ -44,19 +44,4 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.finnmglas.launcher.libraries.FontAwesome
android:id="@+id/home_settings_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fas_settings"
android:textColor="?attr/colorAccent"
android:textSize="36sp"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.95"
custom:type="solid" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -23,7 +23,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/list_settings" android:id="@+id/list_settings"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -55,7 +55,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/list_close" android:id="@+id/list_close"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View file

@ -33,7 +33,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/list_apps_row_menu" android:id="@+id/list_apps_row_menu"
android:layout_width="30sp" android:layout_width="30sp"
android:layout_height="0dp" android:layout_height="0dp"

View file

@ -7,7 +7,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="15sp"> android:layout_margin="15sp">
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/list_other_row_icon" android:id="@+id/list_other_row_icon"
android:layout_width="35sp" android:layout_width="35sp"
android:layout_height="35sp" android:layout_height="35sp"

View file

@ -33,7 +33,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/settings_close" android:id="@+id/settings_close"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -50,7 +50,7 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
custom:type="solid" /> custom:type="solid" />
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/settings_system" android:id="@+id/settings_system"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View file

@ -11,7 +11,7 @@
<fragment <fragment
android:id="@+id/settings_actions_rview_fragment" android:id="@+id/settings_actions_rview_fragment"
android:name="com.finnmglas.launcher.settings.actions.SettingsFragmentActionsRecycler" android:name="de.jrpie.android.launcher.settings.actions.SettingsFragmentActionsRecycler"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"

View file

@ -32,7 +32,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/settings_actions_row_icon" android:id="@+id/settings_actions_row_icon"
android:layout_width="@dimen/app_icon_side" android:layout_width="@dimen/app_icon_side"
android:layout_height="@dimen/app_icon_side" android:layout_height="@dimen/app_icon_side"
@ -55,7 +55,7 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/settings_actions_row_remove" android:id="@+id/settings_actions_row_remove"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View file

@ -36,62 +36,6 @@
android:text="@string/settings_meta_reset" android:text="@string/settings_meta_reset"
android:textAllCaps="false" /> android:textAllCaps="false" />
<LinearLayout
android:id="@+id/settings_meta_layout_icons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32sp"
android:layout_marginBottom="32sp"
android:gravity="center"
android:orientation="horizontal">
<com.finnmglas.launcher.libraries.FontAwesome
android:id="@+id/settings_meta_icon_store"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_weight="1"
android:gravity="center"
android:includeFontPadding="true"
android:paddingLeft="16sp"
android:paddingRight="16sp"
android:text="@string/fas_store"
android:textColor="?attr/colorAccent"
android:textSize="40sp"
custom:type="solid" />
<com.finnmglas.launcher.libraries.FontAwesome
android:id="@+id/settings_meta_icon_github"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_weight="1"
android:gravity="center"
android:includeFontPadding="true"
android:paddingLeft="16sp"
android:paddingRight="16sp"
android:text="@string/fab_github"
android:textColor="?attr/colorAccent"
android:textSize="40sp"
custom:type="brands" />
<com.finnmglas.launcher.libraries.FontAwesome
android:id="@+id/settings_meta_icon_donate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:includeFontPadding="true"
android:paddingLeft="16sp"
android:paddingRight="16sp"
android:text="@string/fas_heart"
android:textColor="?attr/colorAccent"
android:textSize="40sp"
custom:type="solid" />
</LinearLayout>
<Button <Button
android:id="@+id/settings_meta_button_report_bug" android:id="@+id/settings_meta_button_report_bug"
@ -101,12 +45,6 @@
android:text="@string/settings_meta_report_bug" android:text="@string/settings_meta_report_bug"
android:textAllCaps="false" /> android:textAllCaps="false" />
<Button
android:id="@+id/settings_meta_button_discord"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/settings_meta_discord"
android:textAllCaps="false" />
<Button <Button
android:id="@+id/settings_meta_button_contact" android:id="@+id/settings_meta_button_contact"
@ -115,4 +53,11 @@
android:text="@string/settings_meta_contact" android:text="@string/settings_meta_contact"
android:textAllCaps="false" /> android:textAllCaps="false" />
<Button
android:id="@+id/settings_meta_button_fork_contact"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/settings_meta_fork_contact"
android:textAllCaps="false" />
</LinearLayout> </LinearLayout>

View file

@ -37,7 +37,7 @@
custom:layout_constraintStart_toStartOf="parent" custom:layout_constraintStart_toStartOf="parent"
custom:layout_constraintTop_toTopOf="parent" /> custom:layout_constraintTop_toTopOf="parent" />
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/tutorial_close" android:id="@+id/tutorial_close"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View file

@ -36,7 +36,7 @@
<fragment <fragment
android:id="@+id/tutorial_setup_actions_rview_fragment" android:id="@+id/tutorial_setup_actions_rview_fragment"
android:name="com.finnmglas.launcher.settings.actions.SettingsFragmentActionsRecycler" android:name="de.jrpie.android.launcher.settings.actions.SettingsFragmentActionsRecycler"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginTop="32dp" android:layout_marginTop="32dp"

View file

@ -11,7 +11,7 @@
android:background="?attr/colorPrimary" android:background="?attr/colorPrimary"
tools:context=".tutorial.tabs.TutorialFragmentStart"> tools:context=".tutorial.tabs.TutorialFragmentStart">
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/tutorial_start_icon_right_2" android:id="@+id/tutorial_start_icon_right_2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -34,7 +34,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.finnmglas.launcher.libraries.FontAwesome <de.jrpie.android.launcher.libraries.FontAwesome
android:id="@+id/tutorial_start_icon_right" android:id="@+id/tutorial_start_icon_right"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View file

@ -100,7 +100,7 @@
<string name="settings_meta_reset">Zurücksetzen</string> <string name="settings_meta_reset">Zurücksetzen</string>
<string name="settings_meta_reset_confirm">All deine Einstellungen gehen verloren. Weitermachen?</string> <string name="settings_meta_reset_confirm">All deine Einstellungen gehen verloren. Weitermachen?</string>
<string name="settings_meta_link_github">https://github.com/finnmglas/Launcher#de</string> <string name="settings_meta_link_github">https://github.de.jrpie.android.launcher#de</string>
<string name="settings_meta_report_bug">Einen Fehler melden</string> <string name="settings_meta_report_bug">Einen Fehler melden</string>
@ -109,7 +109,6 @@
<string name="settings_meta_contact">Entwickler kontaktieren</string> <string name="settings_meta_contact">Entwickler kontaktieren</string>
<string name="settings_meta_contact_url">https://www.finnmglas.com/de/kontakt/</string> <string name="settings_meta_contact_url">https://www.finnmglas.com/de/kontakt/</string>
<string name="settings_meta_donate_url">https://www.finnmglas.com/de/sponsor</string>
<!-- <!--
- -

View file

@ -124,15 +124,13 @@
<string name="settings_meta_reset">Configuración por defecto</string> <string name="settings_meta_reset">Configuración por defecto</string>
<string name="settings_meta_reset_confirm">Todas sus preferencias se eliminarán. Desea continuar?</string> <string name="settings_meta_reset_confirm">Todas sus preferencias se eliminarán. Desea continuar?</string>
<string name="settings_meta_link_github">https://github.com/finnmglas/Launcher#en</string> <string name="settings_meta_link_github">https://github.de.jrpie.android.launcher#en</string>
<string name="settings_meta_report_bug">Reportar un error</string> <string name="settings_meta_report_bug">Reportar un error</string>
<string name="settings_meta_contact">Contactar al desarrollador</string> <string name="settings_meta_contact">Contactar al desarrollador</string>
<string name="settings_meta_contact_url">https://www.finnmglas.com/contact/</string> <string name="settings_meta_contact_url">https://www.finnmglas.com/contact/</string>
<string name="settings_meta_donate_url">https://www.finnmglas.com/sponsor</string>
<string name="settings_meta_discord">Unete a nuestro discord!</string> <string name="settings_meta_discord">Unete a nuestro discord!</string>
<!-- <!--

View file

@ -100,7 +100,7 @@
<string name="settings_meta_reset">Réinitialiser</string> <string name="settings_meta_reset">Réinitialiser</string>
<string name="settings_meta_reset_confirm">Vous allez supprimer toutes vos préférences. Continuer?</string> <string name="settings_meta_reset_confirm">Vous allez supprimer toutes vos préférences. Continuer?</string>
<string name="settings_meta_link_github">https://github.com/finnmglas/Launcher#fr</string> <string name="settings_meta_link_github">https://github.de.jrpie.android.launcher#fr</string>
<string name="settings_meta_report_bug">Signaler une erreur</string> <string name="settings_meta_report_bug">Signaler une erreur</string>
@ -109,7 +109,6 @@
<string name="settings_meta_contact">Contacter le développeur</string> <string name="settings_meta_contact">Contacter le développeur</string>
<string name="settings_meta_contact_url">https://www.finnmglas.com/fr/contact/</string> <string name="settings_meta_contact_url">https://www.finnmglas.com/fr/contact/</string>
<string name="settings_meta_donate_url">https://www.finnmglas.com/fr/sponsor</string>
<!-- <!--
- -

View file

@ -1,4 +1,4 @@
vim<resources> <resources>
<!-- <!--
- -
- General - General
@ -122,15 +122,17 @@ vim<resources>
<string name="settings_meta_reset">Reset Settings</string> <string name="settings_meta_reset">Reset Settings</string>
<string name="settings_meta_reset_confirm">You are going to discard all your preferences. Continue?</string> <string name="settings_meta_reset_confirm">You are going to discard all your preferences. Continue?</string>
<string name="settings_meta_link_github">https://github.com/finnmglas/Launcher#en</string> <string name="settings_meta_link_github">https://github.com/jrpie/Launcher</string>
<string name="settings_meta_report_bug">Report a bug</string> <string name="settings_meta_report_bug">Report a bug</string>
<string name="settings_meta_report_bug_link" translatable="false">https://github.com/finnmglas/Launcher/issues/new</string> <string name="settings_meta_report_bug_link" translatable="false">https://github.com/jrpie/Launcher/issues/new</string>
<string name="settings_meta_contact">Contact the developer</string> <string name="settings_meta_fork_contact">Contact the developer of the fork</string>
<string name="settings_meta_fork_contact_url">https://jrpie.de/contact/</string>
<string name="settings_meta_contact">Contact the original developer</string>
<string name="settings_meta_contact_url">https://www.finnmglas.com/contact/</string> <string name="settings_meta_contact_url">https://www.finnmglas.com/contact/</string>
<string name="settings_meta_donate_url">https://www.finnmglas.com/sponsor</string>
<string name="settings_meta_discord">Join us on discord!</string> <string name="settings_meta_discord">Join us on discord!</string>
<string name="settings_meta_discord_url" translatable="false">https://discord.com/invite/jV2AhF8</string> <string name="settings_meta_discord_url" translatable="false">https://discord.com/invite/jV2AhF8</string>

View file

@ -1,17 +0,0 @@
package com.finnmglas.launcher
import org.junit.Test
import org.junit.Assert.*
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB