This is an open source launcher project for Android devices that has been built completely from scratch

Overview

graphic

Description

This is an open source launcher project for Android devices that has been built completely from scratch. The main goal of this launcher is to find a healthy medium between customization and simplicity. At this point in time it implements most features required in a typical launcher but could benefit greatly from some general polish. If you would like to help out feel free to submit issues or ask about submitting a pull request with a feature you want to see in the launcher.

Status

If your instance is crashing frequently please update the app and reset the data and settings before creating an issue. This project is not actively developed at the moment since all of the main contributors either started working on other projects or find the current state of the launcher sufficient for daily use. If you would like to see a change please realize that it may not get added at all unless someone decides to write the functionality. Pull requests are welcome from anyone! Please ask about large features first, we can help navigate the codebase and talk about where best to add the functionality.

Features

  • Paged desktop
  • Dock
  • Drag and drop
  • Hide apps
  • Scrollable background
  • Search bar
  • Icon packs

Contributions

The project is always open for contributions and accepts pull requests. Please use the auto reformat feature in Android Studio before sending a pull request. Translations can be contributed on GitHub. You can use Stringlate to translate the project directly on your Android phone. It allows you to post the translations on GitHub with little effort.

Resources

Donation

License

The app is licensed with Apache 2.0.

Comments
  • Screens added to left of homescreen vanish after launcher restart

    Screens added to left of homescreen vanish after launcher restart

    Repro:

    1. Have a setup where the current homescreen is the left-most screen (screen 1 = homescreen)
    2. Drag one or more shortcuts/icons to the left to create a new screen (screen 1, screen 2 = homescreen)
    3. Restart OpenLauncher
    4. Result: The left-most screen (screen 1) is gone, and usually the icons that used to be there show up on the homescreen (screen 2). Depending on the arragement of the icons, they can overlap (graphical glitch) with existing icons.

    Setting the newly created left-most screen as the new homescreen does not make a difference. Neither does locking the setup.

    General information

    • App version: Version 0.5.10 (33) from F-Droid
    • Android Version: 7.1.2 (LineageOS 14.1)
    opened by tp0 31
  • Extract refactoring

    Extract refactoring

    So far this seems to work, I think I did not forget anything.

    • StaticSetup singleton is awful, I know, but it was the fastest solution without changing too much
    • small bugfix - search view close behaviour changed => close it if no text is in search view, clear text only otherwise

    TODO because of refactoring:

    • resource strings are just copied now, will be merged, but still, should be cleaned...
    opened by MFlisar 31
  • Fallback on a browser if no search app is installed

    Fallback on a browser if no search app is installed

    This is my implementation of a fallback online search using the ACTION_VIEW intent in case no search app is installed. The URI used for this search can be configured in the settings, by default Google is used.

    Fixes #158

    enhancement 
    opened by flocke 24
  • openlauncher app attach the camera( issue #497)

    openlauncher app attach the camera( issue #497)

    I tried the camera function in this application. Cameras use basic cameras and can use front and rear cameras. Also, taking pictures is stored in the internal storage. #497

    opened by saechimdaeki 18
  • Unable to compile project

    Unable to compile project

    General information

    • App version: 022a51b1aa5c5e8f7e5e5330d1e770c9c50955dc. Modified by Gregor Santner 2017. 03. 29. 23:27:58 Refactor project to use default android gradle project layout
    • Android Version: x

    Expected result

    What is expected? Compile project

    What does happen instead? Gradle error

    Screenshot about the error: `

    Settings are correct:

    Steps to reproduce

    • Use Android Studio to checkout the project
    • Follow Studio's instructions (to install necessary packages)
    • Gradle will start compile the project automatically and error raises at the end
    opened by bdevay 17
  • Master branch icon handling - no files in app's files directory

    Master branch icon handling - no files in app's files directory

    I'm talknig about copying icons to the app's files directory.

    Is this a beta feature that's not yet implemented completely? What's the goal of it?

    The master branch will crash when trying to create a folder because no icons are saved in the files directory. The folder's content will use the AppManager.App item and uses it's icon field, why not just use this field for the folder's icon as well?

    opened by MFlisar 17
  • Near-impossible to place items on the top row with persistent search bar removed

    Near-impossible to place items on the top row with persistent search bar removed

    Title pretty much says it. The Remove thing takes up the whole row in a 5x4 desktop with that persistent bar at the top disabled, leaving maybe a millimeter of space that I can use to place icons or widgets without them getting removed. I have a cheap phone w/ a 4.5 inch screen (LG Leon LTE), if it makes any difference.

    The remove thing needs to be shrunken down on the left & right sides so that it covers about half of a single icon's space.

    Using Alpha 3 on F-Droid.

    opened by Yowlen 17
  • Gesture controls on the desktop

    Gesture controls on the desktop

    Here is an initial workup for gesture controls on the desktop, currently there are a few issues.

    • [x] single click is implemented in a separate location and conflicts with the double click gesture
    • [x] other gestures (swipe down, swipe up, swipe left, swipe right, pinch, and unpinch) are not added yet
    • [x] minbar adds every LauncherAction instead of a select few as default
    • [x] no icon for OpenAppDrawer

    The only other action I have added right now is opening the app drawer, but it would be easy to add more in the future. I am still unsure of how to move the single click listener to the same location as the other listeners, which would be ideal. I can add the other gestures after I figure out these issues.

    The main action I want to add to LauncherActions is an action to open a specific app. Maybe the HideApps fragment could be modified to select apps. It could then get called by a launcher action to select an app to open for a specific gesture. I am still thinking about the best way to implement this.

    opened by dkanada 16
  • Weather

    Weather

    All,

    Here is a big PR, sorry about that. This uses the blank space in the SearchBar to provide a weather lookup if required; I have implemented 2 weather services so far; OpenWeather which is global and the Australian BOM site which is strictly for AU. It will dynamically add icons in to fill the available space.

    The AU site does not require an API Key, while the OpenWeather one does. I didn't want to register on your behalf, so the functionality is there to either embed it within the application, or ask the user to specify in the preferences.

    I think I have tested most cases; but it is pretty complicated, so I may have missed something. Single clicking on the icons will switch between daily and hourly (AU) or 3-hourly (OpenWeather). Double clicking will open the related Weather app for a full forecast rather than the limited one this provides. Long clicking allows you to select a stored location, location services, or to find a new location from that service. I haven't implemented the ability to remove a stored location as I need to think about the UI for this.

    Not sure if this is a problem for you or not, but I used forecastie from F-Droid as the open source preferred OpenWeather app, but this is not available in the Google Store. Not an issue if you have F-Droid installed, but fyi.

    Lastly, the Location Services uses the new Google Play APIs - if this is a problem I can revert to the AOSP version, let me know.

    Happy to discuss thoughts and concerns as always.

    Cheers, David

    opened by hobleyd 15
  • Widget cannot be deleted in state with text

    Widget cannot be deleted in state with text "widget cannot be added"

    Device: Xiaomi Mi8 OS: Android 8.1.0 MIUI 10 App: OpenLauncher-fdroid-0.6.0

    Reproducer

    • add widget
    • widget displays correctly
    • reboot device
    • widget stays black with text "widget cannot be added"
    • widget cannot be deleted (delete popup doesn't show when clicking it)
    opened by Catfriend1 14
  • Core changes

    Core changes

    Changes

    • Home: fixed time receiver unregistration
    • SearchBar: init recycler view improved
    • SearchBar Mode: added id to the enum => maybe the enum will be removed and replaced with a simple string...
    • Changed the core a little back => only settings management, gesture handling, dialogs, image loading and apps loading is extracted now; moved a little more code into the core for this
    • added enums for icon position (desktop or dock) and some constants (Definitions.java)
    • further adjusted setup and dependencies to fully support foreign image loader library like glide => I'm already successfully using glide in my app
    • adapter now clear their items correctly for smoother adapter scrolling appearance
    • popup label color added
    • logger added
    • notifyRemoveListeners corrected - it may be possible that apps are installed and deinstalled without updating the apps list in AppManager so we should not ignore the case where old list is not bigger than the new list + function moved to tool class
    • the beta image caching function can be disabled in the settings => no files will be copied or read from internal cache directory so no more error logs in this case and feature can simply be enabled in the future
    • fixed AppItemView image loading for async image loading
    • code cleaned
    • bugfix: drag & drop item from folder to desktop was showing the wrong view => this bug was introduced by my last refactoring
    • popup background color added to settings
    • dismiss popup on back press added

    Why did I change the setup class again

    I had some problems because my main idea was to implement all views myself because OLs views do not support as much customisation as my main app does. I had some problems so I decided to go a step back and try to use OLs views and only extract image loading. This means, the setup class is much cleaner and more clear now, but again I changed a lot... Sorry for this. The good thing is, I am successfully using the core in my own app with my own setup instance and glide as image async image loader so the current setup class proves to be useable and therefore makes sense now. Currently I'm successfully using it without any issues OL is not having as well...

    opened by MFlisar 14
  • Advertise and get one or more team members for help developing?

    Advertise and get one or more team members for help developing?

    Unfortunately this looks a bit like the app is dead and i think thats really unforutnate because i liked it a lot. Maybe you could advertise in reddit and somewhere to get a bit attention and a bit of development power to get this going again? Its a really good practical launcher and it would be a shame if it would be gone.

    opened by natrius 1
  • How to disable back gesture on main views

    How to disable back gesture on main views

    I started to enjoy OpenLauncher on my new phone, but one detail is a bit annoying: The back gesture is interfering with sliding desktops left an right.

    First experiments with the gesture exclusion API were promising - except that I quickly ran into that 200 dpi limitation when applying that on a per-view basis. I tried a lot but couldn't find out how to establish that screen-wide exclusions the API is also talking about ("The limit does not apply [...] to the input method and home activity"). The Pixel Launcher can apparently do that, also without stickily mode, but I can't inspect how it achieves that. Any suggestions?

    opened by jan-kiszka 5
  • not using full screen height with gesture navigation

    not using full screen height with gesture navigation

    General Information

    • OpenLauncher Version: v0.7.2
    • Android Version: 10
    • Custom ROM: /e/ OS
    • Install Source: F-Droid

    Description

    The app is not using the full screen height when gesture navigation is used.

    Screenshot_20221101-092023_OpenLauncher Screenshot_20221101-092039_OpenLauncher

    opened by adb-sh 1
  • [Feature request] Add default widget

    [Feature request] Add default widget

    Description

    I want to request a feature to add a default widget. I have tried custom make a widget provider and adding it by default (without user consent) but it does not work I am looking for a solution. I hope someone helps me. Thank you!

    opened by roboticvn 1
  • locked: Don't show

    locked: Don't show "uninstall" and "info", esp. not for shortcuts

    Closes: https://github.com/OpenLauncherTeam/openlauncher/issues/698


    This seems to have been a mixture of accidental implicit fall-through, and copy-pasted code in a little-used branch, and cases (unlocked and locked) getting out of sync. Removing not only "Uninstall" but also "Info" keeps consistency with the 0.7.4 behavior, and keeps the "locked" behavior of providing little avenue for clumsy users to get into areas they don't want to go.

    Status: This is a draft PR while I have not tested an of this. (I don't really do Android development, have no SDK for reformatting around, and rely on CI to do all the building for me, as little as I like depending on it). Tested and works.

    opened by chrysn 0
Owner
OpenLauncher Team
FOSS Launcher for Android
OpenLauncher Team
SlushFlicks has been built upon public APIs from IMDB.

SlushFlicks SlushFlicks has been built upon public APIs from IMDB. This application helps users to view trending, popular, upcoming and top-rated movi

Sifat Oshan 14 Jul 28, 2022
This assignment has been given to me for Android developer position at SonyLiv.

asssignmentSonyLiv This assignment has been given to me for Android developer position at SonyLiv. This codeis not full functional but can give a cont

Rudra Chouhan 0 Nov 21, 2021
This repository has been created to teach SOLID principles.

SOLID Principles Single Responsibility Each class should have only one purpose and not be filled with excessive functionality. Let's look at this Area

Ali Soleimani 2 Aug 15, 2022
Pixel Launcher Mods a root app for Android 12+ that enables you to add a number of features to the stock Pixel Launcher

A root app that enables you to add a number of features to the stock Pixel Launcher, without needing Xposed

Kieron Quinn 430 Jan 2, 2023
An Open-Source repository that contains all the Android Dev and Kotlin concepts and several projects on android ranging in difficulty making this repo completely beginner-friendly.

An Open-Source repository that contains all the Android Dev and Kotlin concepts and several projects on android ranging in difficulty making this repo completely beginner-friendly. The main aim of this repository is to help students who are learning Android Development or preparing for an Android Developer role-based job.

Mimo Patra 15 Dec 29, 2022
Free and Open Source Launcher.

Omega Launcher Free and Open Source Launcher Installation & Download Our builds are available on: Github: Releases or Actions (usually). F-Droid: Eith

Saul Henriquez 977 Jan 2, 2023
Minimal Android Launcher built with Kotlin.

Minimal Android Launcher A minimal launcher displaying only core apps you really need, with a note widget to quickly add reminders on your home screen

Jolene 0 Sep 10, 2022
FireApp is an open-source project that is built around Firebase Products, especially for learning purposes

FireApp is an open-source project that is built around Firebase Products, especially for learning purposes. This application is written entirely in Kotlin using Android Architecture Components and MVVM architecture pattern. You'll see in the code of this repo, how Firebase Products are working together.

Alex 45 Dec 18, 2022
Here OneSignal push and in-app-message have been implemented

OneSIgnal demo project Here we have implemented OneSignal inAppMessage and Push Notification ANDROID SDK SETUP WITH ONESIGNAL: https://documentation.o

Fakhrul Alam Siddiqei 2 Dec 7, 2022
A simple and minimal app to track how long you've been sober from anything you want.

Sobriety A simple and minimal app to track how long you've been sober from anything you want. I mostly designed this out of spite for "I Am Sober", wh

Katherine Rose 26 Nov 21, 2022
A simple and completely secured notes android app

Notes Our very first project A simple and completely secured notes app Your data is stored in a completely isolated mechanism which minimizes the risk

karan goyal 1 Nov 14, 2021
Yet another ToDo app, but the UI completely written in Jetpack Compose!

Yet another ToDo app, but the UI completely written in Jetpack Compose!

Wisnu Kurniawan 134 Dec 31, 2022
The only wallpaper app you need. No ads, Completely free ! I promise

WallUp An awesome app to download wallpapers for your phone. No ads ! I promise. Explore the docs » Report Bug · Request Feature Table of Contents Abo

Divyansh Dwivedi 6 Dec 3, 2022
Online Shopping Application which uses Augmented Reality(AR) for product trials, thus completely changing shopping experiences.

ShopOn This is an Android Native application which is developed as a solution for HackOn with Amazon 2022 for the problem statement related to shoppin

Akshat Kumar Verma 17 Dec 23, 2022
A sample demo app which has Clean Architecture with MVVM , UI built with Jetpack Compose

A sample demo app (two screen todo list app) which has Clean Architecture with MVVM , UI built with Jetpack Compose and includes Modern Android Development Best Practices with components

BHAVNA THACKER 21 Dec 13, 2022
Open Super dApp - Your gateway to the new digital commons. Integrated mobile messenger, Ethereum wallet, and Web 3.0 browser built on open, decentralized, and encrypted protocols.

A fully open source, open standard, decentralized "super app" including a secure, encrypted Matrix compatible messenger based off of the Element Messenger, and an Ethereum crypto wallet and web3 browser based off of Alpha Wallet.

2Gather 6 Jul 25, 2022
AudioNotes 📙 An open source simple audio note taking app built to demonstrate android development best practices.

AudioNotes ?? A simple open source audio note-taking ?? Android application built to describe the use of Modern Android development tools. ?? . Made w

Samson Achiaga 47 Dec 15, 2022
A Free, open source Contacts Butler App built with kotlin

Contacts Butler Do you have a bunch of contacts that are missing a lot of info such as names, emails, phone numbers, etc? Do you really know the conta

Android Contacts Butlers 1 Nov 30, 2021
GitTouch - An built with Flutter open-source app for GitHub, GitLab, Bitbucket, Gitea and Gitee(码云),

GitTouch - An built with Flutter open-source app for GitHub, GitLab, Bitbucket, Gitea and Gitee(码云)

GitTouch 1.3k Jan 8, 2023