GithubHelp home page GithubHelp logo

cococr300 / flauncher Goto Github PK

View Code? Open in Web Editor NEW
20.0 6.0 1.0 8.1 MB

Fork of https://gitlab.com/flauncher/flauncher

License: GNU General Public License v3.0

Ruby 0.09% JavaScript 0.09% Dart 93.54% Java 6.27%

flauncher's Introduction

FLauncher (fork)

This is a fork of the GitLab repository at: https://gitlab.com/flauncher/flauncher.

FLauncher is an open-source alternative launcher for Android TV, built with Flutter.

Download

Get the latest build from the releases page, you can look for older builds on the actions tab, where they are uploaded as artifacts.

Features

For a list of the changes introduced by this fork from the original, see the CHANGELOG file.

  • No ads
  • Customizable categories
  • Manually reorder apps within categories
  • Wallpaper support
  • Open "Android Settings"
  • Open "App info"
  • Uninstall app
  • Clock
  • Switch between row and grid for categories
  • Support for non-TV (sideloaded) apps
  • Navigation sound feedback
  • Force stop app

Screenshots

Set FLauncher as default launcher

Method 1: remap the Home button

This is the "safer" and easiest way. Use Button Mapper to remap the Home button of the remote to launch FLauncher.

Method 2: disable the default launcher

⚠️ Disclaimer ⚠️

You are doing this at your own risk, and you'll be responsible in any case of malfunction on your device.

The following commands have been tested on Chromecast with Google TV only. This may be different on other devices.

Once the default launcher is disabled, press the Home button on the remote, and you'll be prompted by the system to choose which app to set as default.

Disable default launcher

# Disable com.google.android.apps.tv.launcherx which is the default launcher on CCwGTV
$ adb shell pm disable-user --user 0 com.google.android.apps.tv.launcherx
# com.google.android.tungsten.setupwraith will then be used as a 'fallback' and will automatically
# re-enable the default launcher, so disable it as well
$ adb shell pm disable-user --user 0 com.google.android.tungsten.setupwraith

Re-enable default launcher

$ adb shell pm enable com.google.android.apps.tv.launcherx
$ adb shell pm enable com.google.android.tungsten.setupwraith

Known issues

On Chromecast with Google TV (maybe others), the "YouTube" remote button will stop working if the default launcher is disabled. As a workaround, you can use Button Mapper to remap it correctly.

Wallpaper

Because Android's WallpaperManager is not available on some Android TV devices, FLauncher implements its own wallpaper management method.

Please note that changing wallpaper requires a file explorer to be installed on the device in order to pick a file.

Support the original author: etienn01

Buy Me A Coffee

flauncher's People

Contributors

etienn01 avatar cococr300 avatar amasciul avatar fboulay avatar casasfernando avatar

Stargazers

 avatar  avatar Chris Sutcliff avatar  avatar Tarek Hasan Faruk avatar Broadband avatar  avatar  avatar Peter avatar  avatar ThisUser avatar  avatar  avatar Scott Liu avatar Rajesh G avatar Tao Zhang avatar  avatar  avatar Prankhouz avatar Faheem Pervez avatar

Watchers

Lucian avatar Kağan Üstüngel avatar  avatar Tao Zhang avatar  avatar  avatar

Forkers

tpdi

flauncher's Issues

Add an online wallpaper provider

This fork removed Unsplash service (which was a feature I liked most) as it was proprietary licensed. You can use Openverse by WordPress instead. All Openverse content is under a Creative Commons license or is in the public domain. Also, its API is licensed under MIT.

I will love to have the feature to randomly change wallpaper from a selected category.

Expose the settings app when it's not present in queries

Most applications are excluded from queries if a category is set for the "intent" used in this code.

private List<ResolveInfo> queryIntentActivities(boolean sideloaded) {
Intent intent;
String category;
if (sideloaded) {
category = Intent.CATEGORY_LAUNCHER;
}
else {
category = Intent.CATEGORY_LEANBACK_LAUNCHER;
}
// NOTE: Would be nice to query the applications that match *either* of the above categories
// but from the addCategory function documentation, it says that it will "use activities
// that provide *all* the requested categories"
intent = new Intent(Intent.ACTION_MAIN, null)
.addCategory(category);
List<ResolveInfo> resolveInfoList = getPackageManager()
.queryIntentActivities(intent, 0);
return resolveInfoList;
}

Is it because of this? Some of the suggestions in that documentation are applied in the application's manifest, but is it really working? Or does the settings application not declare a "launcher" category in some systems? Like it seems to do in my TV.

Removal of "banner" and "icon" columns from "apps" table?

In 16e09d2 you (CocoCR300) removed "banner" and "icon" columns from "apps" table.

What was the rationale for that, and what are the consequences? I'm guessing these can be dynamically loaded from apps, and so we don't need then in the table?

I ask because I'm working at fixing the tests to being them up to date with your changes, and even after removing all (I think?) references to "banner" and "icon", I'm getting a SQL exception when I run the migration tests, ironically that 'alter table drop column banner;' is failing. (For the remaining tests I've removed references to Crashlytics/Firebase and to code in WallpaperService and SettingsServie, that you changed.) Once the tests are fixed, I'll submit a PR, and an additional PR adding a setting to suppress the "keyclick" sound.

Thanks!

Reduce app startup time

Find out what's taking most of the time for the app to initialize:

  • Set up the platform channels.
  • Connect to the database.
  • Anything else...

Unable to install

I downloaded and sideloaded the app onto my TCL Google TV, but when I try to install it asks me if I want to update the original flauncher to your app. I choose yes and then get a message saying that it could not install. I've tried the universal apk. Do I need to uninstall the original flauncher first (I will then loose all my settings?)

Another question (I've only tried this with the original flauncher): I have installed Termux on my TV and connected using bluetooth keyboard. I've then typed the two commands "adb shell pm disable-user....". But I get the error "No devices/emulators found". Not sure what I'm doing wrong.

Feature Requests

  1. Is there a new way perhaps to open an app with an airmouse remote in mouse mode?
    If you use an airmouse, you need to disable mouse mode otherwise you can't open an app with the DPAD_CENTER button.
    If mouse mode is enabled, you have to long press DPAD_CENTER and then click open on the right side menu and can't directly open an app.

Possible fixes
https://github.com/flutter/flutter/pull/138240
https://github.com/flutter/flutter/issues/1670
https://github.com/ImranR98/Obtainium/commit/734a1aeb01273113500e49c8e7bcf2f97db2f124
Last comment for touch and long-press support.
https://stackoverflow.com/questions/63408139/flutter-android-tv-app-unable-to-select-using-d-pad

  1. Backup/Restore FLauncher Settings
    See https://gitlab.com/flauncher/flauncher/-/merge_requests/91

  2. Renaming a Category later to a Blank Category Doesn't Make it Hidden
    Renaming a Category later to a Blank Category starting with '_' doesn't make it hidden.
    See https://github.com/4v3ngR/aLauncher to add spacers with a blank category.

  3. Parental Control Feature
    Parental Control Feature with a 4 digit pin to hide apps.

Update application list and home page when removing apps

Running the latest release, when removing an app that has a launcher on my home page, the launcher remains but with no icon.
Similarly, it also remains (forever ?) in F Launcher's application list, unless I set it to "hide", in which case it now lives (forever ?) in the hidden apps list.

If one wants to manage the app list themsef, they need to
1 - uninstall the app
2 - delete the launcher from the home page
3 - hide the app from the applications menu

Ideally, I think step 2 should follow automatically after step 1, and step 3 should rather be something like "automatically delete the entry from the app menu" instead of putting it in the hidden application list.

PS : Thank you this fork and for updating the original app !

System specs:

  • TCL 50C645
  • Android 11
  • armeabi-v7a

Can't configure hour format or select format specifiers

The "Date and time format" screen is not fully accessible using an Android TV remote. I can press the Down key on the remote to move the cursor into the date format field, but at that point the virtual keyboard obscures the hour format field and the format specifier drop-down menu. There seems to be no way to move past that date field into the hour format field, nor move past the hour field to select a format specifier? But maybe I'm missing something here...

I managed to get the date & time format set to my liking by using a ScrCpy session from within adbLink. (Even that was painful due to the non-standard key layout of the adbLink virtual Keypad, but that's somebody else's problem.)

Not sure how to improve this interface... Maybe put the date and hour format fields side-by-side and allow movement between the two fields via the Left and Right keys on the remote, and the arrow keys on the virtual keyboard?

A few feature requests...

Here are a few feature requests (please let me know if you prefer to see such requests at you comment on the orig. author's GitLab page):

  • detailed diff/changelog against the original version at GitLab (I can sort of figure this out by combing through the code, but still...)
  • change timeout on splashscreen with option to eliminate entirely
  • built-in Android Settings tile that can be added directly to the home screen (instead of having to navigate to that via the "gear" menu)
  • bring back Ambient Mode with an option to disable? :^)
  • an additional Donate button here on GitHub for your own work on this fork?

Thanks for your time!

Option to hide the current date

I would like the option to hide the current date or the option to use a space as date.
Currently i use a . as date.
I like that the current time is shown. But perhaps others would like the option to hide the current time.

Unable to longpress

Previously, you were able to longpress apps to organize & sort them. This appears to be broken with the latest release?

Device: NVIDIA Shield TV Pro 2019

Version: Latest

Please let me know if you need any other details :)

F-Droid

Any plans to try to get this on F-Droid? Would be great to have it available there.

Since Firebase and Unsplash are removed, this should meet the inclusion criteria. @IzzySoft can probably confirm or help if needed.

Cool to see FLauncher being forked and revived without Google Firebase and any other nonsense, especially since the original project is dead, great work here! @CocoCR300

High CPU Usage

Flauncher has twice the CPU usage compared to other launcers.

Projectivity:
PID USER PR NI VIRT RES SHR S[%CPU] %MEM TIME+ ARGS
5118 u0_a127 10 -10 1.3G 104M 64M S 20.6 5.3 96:19.53 com.spocky.pro+
3279 system -3 -8 138M 16M 8.9M S 10.6 0.8 48:54.12 surfaceflinger

Flauncher(FORK):
PID USER PR NI VIRT RES SHR S[%CPU] %MEM TIME+ ARGS
6055 u0_a0 10 -10 1.2G 182M 108M S 41.0 9.3 1:22.82 me.efesser.fla+
3279 system -3 -8 138M 16M 8.9M S 13.0 0.8 49:23.53 surfaceflinger

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.