GithubHelp home page GithubHelp logo

openlauncherteam / openlauncher Goto Github PK

View Code? Open in Web Editor NEW
1.4K 73.0 413.0 30.41 MB

Customizable and Open Source Launcher for Android

License: Apache License 2.0

Java 99.54% Makefile 0.46%
android launcher drawer app customization hacktoberfest

openlauncher's Introduction

graphic

Project discontinued

The OpenLauncher project is discontinued. The original project author has left the project many years ago and didn't come back. Also the project has not seen active development for years, or at least no considerable interest by the community to contribute. Technology doesn't stop in time and the Android platforms regulary gets new things that are expected by launchers. As well active development is require to support newer Android versions. I (@gsantner) have been taking the time to keeping the project alive for many years, from now on I stop doing that. Move on and don't consider this codebase as it's dated. You likely are better off starting something fresh or fork a other more recent launcher project.

The suggestion is to use a different, active maintained launcher. If you are happy still with OpenLauncher as it is, feel free to keep using it as long you like to. If the latest release does not work, feel free to try a older version. BUT don't expect any future project changes. The last release can be downloaded from F-Droid.

All the best, Gregor.

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

License

The app is licensed with Apache 2.0.

openlauncher's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openlauncher's Issues

Remove apps from dock/desktop after uninstall.

I just noticed that apps shortcuts stay on the desktop after I uninstall them. For now it is no problem to remove them manually, but I think they should be deleted automatically once the app is removed.

Option to change the background color of the status bar

Hi,
I have a bright background on my phone and all of the status bar icons are white so i cannot see them. Is it possible to make the background of the status bar black or to change the color of those icon ?

Thank you very much for the work anyway !

Keep it up

Regards

Bad widget scaling/sizing

I tried with 3 types of clock widgets now, I cannot accomplish to add clock widget to a desktop using openlauncher. Scaling/sizing doesnt work. I'm on latest HEAD. The first image is OpenLauncher, the second e.g. Nova. Tried it also with Trebuchet, it's not a problem of the widget(s) itself.

Thanks for this really nice project!

tmp_29878-screenshot_20170329-0341091995214708

tmp_29878-screenshot_20170329-0354121059640947

Please cleanup repo and fix gitignore

Please cleanup repo (with e.g. BFG - (https://rtyley.github.io/bfg-repo-cleaner/)) to remove previous artifacts, which do account a lot of space that should not be checked in a repo. To do this, you have to force push afterwards.

As you can see, one already needs 114 MB to download the latest state of the app, which is a lot. I can really think of persons being not able to submit simple patches, because of need to download so much stuff, which can make problem e.g. on mobile networks.
grafik

You can find an appropiate gitignore e.g. on https://www.gitignore.io/ or https://github.com/gsantner/memetastic/blob/master/.gitignore

First a commit needs to cleanup current version + adding gitignore. BFG (e.g. strip blobs) will then remove old binaries - not currently checked in on master - files from history. (it will never touch current HEAD).

Reduce & Merge Activity contents

Currently there are very much fragments and activity in here, containing a lot of code duplicates. E.g. there is no need to have Acitivy_hideapps.java in here. Should all be integrated in one.

Of course, e.g. settings need to have it's own activity/fragment. And maybe some kind of common BaseActivity/Fragment. I tried to understand whats going on, but thats really hard to currenty, because it's hard to guess what gets really called/executed.

This should be one of our top priority issues, before integrating any new feature. Else this gets more bad with each new stuff, and at a certain point the project will become unmaintainable if not done.

Cancel does not Cancel

Android 7.1.1 (LineageOS)
OpenLauncher alpha2_patch2 (f-droid)

What is happening:

In the settings, any option that has an ok/cancel button, the cancel option saves the settings instead of reverting to original settings

  • open launcher settings
  • select App Drawer -> Size ( defaults to Columns 4 / Rows 5)
  • move the slider to change the size, e.g. Rows to 6
  • touch Cancel
  • Open the setting again
  • Rows is still 6 instead of being set back to 5

What should happen

The use of the cancel button should revert any changes to settings instead of making them active.

Allow dock sizes lower than 5

Could you lower the limit for the dock size to 4?
Now that swipe to open drawer works as expected I would like to get rid of the app drawer icon in the dock and only have the 4 app shortcuts.
I assume this should not be to hard to implement ...

Crash when reducing amount of dock elements (alpha3)

I had a dock with the amount of 7 elements.
Not all positions were used: X X X X _ X X
I reduced it to 6 elements and OpenLauncher started crashing.
It does not help to increase the amount again, it crashes whenever it gets started.

crash on restart

OpenLauncher will crash after every reboot without recourse, here is the error message. After the launcher is restarted everything works fine.

Build version: alpha3 Build date: 1979-11-30 00:00:00 Current date: 2017-04-05 21:10:33 Device: Motorola XT1575

Stack trace:
java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at com.benny.openlauncher.widget.CellContainer.onDraw(CellContainer.java:299)
at android.view.View.draw(View.java:17189)
at android.view.View.updateDisplayListIfDirty(View.java:16171)
at android.view.View.draw(View.java:16955)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16166)
at android.view.View.draw(View.java:16955)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1379)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16166)
at android.view.View.draw(View.java:16955)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16166)
at android.view.View.draw(View.java:16955)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16166)
at android.view.View.draw(View.java:16955)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.updateDisplayListIfDirty(View.java:16166)
at android.view.View.draw(View.java:16955)
at android.view.ViewGroup.drawChild(ViewGroup.java:3727)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3513)
at android.view.View.draw(View.java:17192)
at com.android.internal.policy.DecorView.draw(DecorView.java:753)
at android.view.View.updateDisplayListIfDirty(View.java:16171)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:648)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:654)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:762)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2800)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2608)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2215)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6343)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
at android.view.Choreographer.doCallbacks(Choreographer.java:686)
at android.view.Choreographer.doFrame(Choreographer.java:621)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6126)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

It's crushed on Android 6.0

Hey buddy.
I try build this project and run it on Android 6.0,buy It will be crushed when you open other apps.
But your complied apk will not crush.

Here is stack trace:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.io.File.mkdir()' on a null object reference at android.app.ContextImpl.openFileOutput(ContextImpl.java:400) at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:183) at com.bennyv4.project2.util.Tools.writeToFile(Tools.java:139) at com.bennyv4.project2.util.LauncherSettings.writeSettings(LauncherSettings.java:97) at com.bennyv4.project2.Home.onPause(Home.java:341) at android.app.Activity.performPause(Activity.java:6363) at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1311) at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3367) at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3340)  at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3315)  at android.app.ActivityThread.-wrap13(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5417)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:117) 

Search bar / date on the desktop

Android 7.1.1 (LineageOS)
OpenLauncher alpha2_patch2 (f-droid)

What is happening:

On the desktop I have the date in the upper left corner of all desktops and does nothing and no discernible search bar. If I go to settings and turn off Search bar, The date disappears. Also one widget, for SeriesGuide, grows from taking 3 rows when search bar is enabled to 4 when it is disabled. The widget also loses all the size adjustment options when you long press on it.

F-Droid

Would you consider submitting this app to F-Droid?

Keep app icons layout on launcher when using Adopted Storage feature

I have an issue where apps that have been installed to Adopted storage get removed on reboot because the system loads quicker then the SD card can be mounted. I'd like to see an feature where you can "save" app layouts so everything doesn't get cleared on a reboot.

Moto X Pure
LineageOS 14.1

Request needed permissions

I just noticed that the hide apps feature only works if I enable the Storage permissions manually.
Which is because the list of apps to hide is saved in /sdcard/launcher.backup/appfilter.txt and not with the rest of the app data in /data/data/com.benny.openlauncher/files. Is this the intended behaviour?

  1. If yes the app should request the Storage permission at some point, if not the storage location should be moved.
  2. Why does the app implement the Phone and Contacts permissions?

Remove droprown stays on top

Sometimes the remove/delete top dropdown stay there/doesnt hide after deselecting. Even when clicking on some options. I'm on latest HEAD.

tmp_29878-screenshot_20170329-034129416148782

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.

Change size dialog bug (gfx)

Every change size dialog is shaking up and down and does not show changes until closed and reopened.
Android 5.1.1 (Stock)
Screen: 480x854
Build: 1st one in F-Droid repo

Searchbar on desktop

When I disable the search bar on the desktop, open the app drawer and go back to the desktop, the search bar is there again, although it is still disabled in the settings.

Change some of the launcher items for planned features.

I have been digging though home activity trying to fix issue #22 and have a few ideas for launcher items. It looks like shortcuts are used on the desktop while apps are only for the app drawer, correct? There is also a LAUNCHER_APP_DRAWER type that is used to open the app drawer. It would be a good idea to genericise the LAUNCHER_APP_DRAWER type to ACTION so that we more easily add features for this type in the future. It might also reduce bugs if the GROUP type behavior was changed to a container item that holds items rather than an app item that has an array of intents.

We could implement this with the creation of two new items, a group item and an action item, or by modifying the current item to hold different attributes. Action items will only hold the number of the launcher action that they correspond to, and group items will contain an array of items. With this change, app and shortcut items will no longer need to hold an array of intents, only the single intent that they need to open. This should reduce the amount of bugs relating to folders on the desktop and will make issues with items a lot easier to debug.

Visual artifacts on widgets when clicking on desktop

When I have a widget added to the desktop, it sometimes happens, that the widgets gets tinted blue when I click the desktop (somewhere, not on the widget).

Also when I longlick a widget, I somtimes get an "insert" popup and the keyboard opens instead that I can move and resize the widget.

Launcher Crashes when you drag a icon to the dock

When you go to add a app from the vertical app drawer or in all apps mode to the dock the app sometimes crashes here's the logcat:

02-04 10:52:52.061 15892-15892/com.benny.openlauncher E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        Process: com.benny.openlauncher, PID: 15892
                                                                        java.lang.NullPointerException: Attempt to read from field 'int android.graphics.Point.y' on a null object reference
                                                                            at com.benny.openlauncher.widget.CellContainer.getPeekDirectionFromCoordinate(CellContainer.java:84)
                                                                            at com.benny.openlauncher.widget.CellContainer.peekItemAndSwap(CellContainer.java:101)
                                                                            at com.benny.openlauncher.widget.Desktop.onDrag(Desktop.java:172)
                                                                            at android.view.View.callDragEventHandler(View.java:20898)
                                                                            at android.view.View.dispatchDragEvent(View.java:20889)
                                                                            at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1510)
                                                                            at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1492)
                                                                            at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1492)
                                                                            at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1492)
                                                                            at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1492)
                                                                            at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1492)
                                                                            at android.view.ViewGroup.dispatchDragEvent(ViewGroup.java:1492)
                                                                            at android.view.ViewRootImpl.handleDragEvent(ViewRootImpl.java:5551)
                                                                            at android.view.ViewRootImpl.-wrap7(ViewRootImpl.java)
                                                                            at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3668)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                            at android.os.Looper.loop(Looper.java:154)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)




I email Benny About it but wanted to open a issue in case another developer could look into it  


Thanks in advance!

Drawer backgroud colors

Currently OpenLauncher allows you to tweak the blackground color of the Drawer but it still leaves a large area where the app icons are displayed, in white.

I would like to suggest that this what area also be updated when a user selects a color change

The app drawer can't be opened under specific conditions.

To reproduce the issue, set OpenLauncher as the default home. Next, click on OpenLauncher in the app drawer to open what I think is a second instance of the app. When in the second instance of the app, if home is pressed the first instance is opened and the app drawer icon doesn't work. The second instance of the app will also show up in the recent app list now and when swiped away will also cause the app drawer in the first instance to break. As far as I can tell, the issue only shows up when OpenLauncher is set as the default home.

searchbar independent of gapps

It would be nice to have a searchbar which searches contactacts and apps and messages at the same time , without gaps.
The code of one of the simple launchers (like kiss) could maybe be reused.

Thanks for the app anyway, a fully customizable launcher was definitely missing in fdroid 👍

Dialog with sliders doesn't open correctly

When I open the dialog with sliders it sometimes doesn't display it at all and other times when it does appear it hides and reappears over and over really fast so that you can't change the settings.

The bug happens on Galaxy S5 6.0.1 but not on Nexus 5 7.1.1.

issue when you turn off device and your on a empty page in all apps mode

I found another bug this one is when your in all apps mode and there are no apps on a screen and you turn off the device with the page with no apps active and turn it back on all the apps are gone except the ones on the dock. I think that if we make it to where if there are no apps on a page that page goes away in all apps mode only! That's just my thoughts on the matter :)

App name remain unchanged after the group was left empty

To reproduce the error

  1. Drag an app over another
  2. Open the group
  3. Drag a app out
  4. The app name will remain "Unnamed"

The problematic code is around the GroupPopupView in the removeItem method
The code from 268 to 286 was able to set the Drawable of the app item back to an normal app item, but the name just wont change.

Covers (Action Launcher 3 feature)

An alternative to regular app folders whereby you can choose to have an indicator (or none) on an app icon (see app folders at top, covers at bottom):

covers

Then swiping on the app in a certain direction will open the cover to reveal an app folder that looks like this:

covers

This could be extended in the future to require a sequence of taps, multiple directional swipes in a sequence, multi-finger swipe etc.

lockable homescreen(s)

Hi!
How about making the homescreen(s) lockable to prevent moving
or deleting the icons and widgets by error?

Moving widgets to a full page

Moving a widget to a full page will give an "Insufficient Space" error, but the widget actually stays on that screen, overlapping any icons or other widgets that are already there. It should instead be sent back to the page it was picked up from.

Using Alpha 3 on F-Droid.

[Feature request] Hide App labels on Desktop

I've recently started using OpenLauncher on my Nexus 5X and I really like it so far.

The only request I have (since a hide apps feature is already in development) is an option to hide the labels of Apps on the Desktop (similar to the hide label option for the Dock).

Thanks and keep up the great work!

alpha4 crashes when clickin on "all apps"

Using the current alpha 4 on my Fairphone2 with Andoid6 (M) I experience a crash of openlauncher when I press the "dots" button to show all apps. The same crash occurs when I use the button via the sidebar. Is there any way to get helpful logs for you? This phone is not rooted so alogcat will probably not help?!

Issue adding new icon to empty space on the desktop.

When a new icon is automatically removed from the desktop after being uninstalled, some value is not being updated that sets that space to empty. This causes any attempts to add a new icon to the same location to fail with the error "not enough space" even though the icon was removed. I am not sure where the issue is yet in the code.

Remove app icon is showing up in all apps mode in the launcher

I was testing the all apps mode in the launcher and found a bug. When you drag a app around the remove option comes up as well as the uninstall. but when an app is installed from the play store and you go to drag it around the only option that shows up is the remove option uninstall does not show up. is there any way to remove the remove option from all apps mode?

Thanks in advance!

Moving Widgets Requires 1 Unnecessary Space to the Right of Destination Under Condition

To trigger this bug, first, place 2 widgets. (It may also trigger w/ a widget & a shortcut, but I didn't test.) Resize them as necessary in order to allow them to fit side-by-side. Put one widget on the far right-hand part of the screen, then try to place the other immediately to the left of it. The user will get an "Insufficient space" error.

Using Alpha 3 on F-Droid.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.