simonalveteg / minute-launcher Goto Github PK
View Code? Open in Web Editor NEWMinimal digital wellbeing launcher for Android. 100% free and open source. Written in jetpack compose.
License: MIT License
Minimal digital wellbeing launcher for Android. 100% free and open source. Written in jetpack compose.
License: MIT License
When attempting to open an app, have the confirmation button be disabled for x seconds (countdown showing). Settable time for each app?
AppInfo can be compressed to the title-bar without losing any functionality. Unnecessary to have two different modals that do almost the same thing.
Could show:
Titlebar with app name, favorite-icon and info-icon.
App usage stats
Buttons at the bottom for opening or cancelling (as in AppConfirmation). Lock screen instead of cancel?
Move to some sort of enum class?
Add apks to the release tab at least.
More over it would be nice to see this app on f-droid.
Instead of "x used for y minutes" show a bar graph of the usage. Switchable between day/week, with day having one bar per hour and week having one bar per day.
While the usage timer is counting down, increase the intensity of the animation
Animation should continue indefinitely when the timer is done, but the intensity level stops changing. The longer the timer for the app, the more intense the animation will have become.
Instead of animating the sheet basically just disappears.
Material 3 bottom sheets have been released, and might solve the problem
When opening an app after searching for it and then returning to the home screen, the app list is still visible, and scrolled to the position of the opened app.
Whenever an app is opened the screen state should return to the default.
Would be nice if the favorites would fade in and animate slightly when the user returns to the home screen. Not sure how this should be implemented. Launched effect? Some connection between onResume (or equivalent) and compose?
Currently leaves a lot to be desired. The app should have its own style, and the typography of different elements should differ in more than just size and color (e.g usage text and app title).
Good examples include Flow Launcher and Niagara Launcher
Instead of revealing all apps and a search box, the top part of the screen can show some information about your phone usage, while the bottom shows recently installed apps. A FAB is visible which when pressed reveals the app list and a search box.
Positive:
Negative:
Basic functionality is there, looks like ass.
To make setup quicker, a screen showing all apps and the option to adjust the timer would be very useful. Feels unrealistic to expect the user to wait 10 seconds before removing the timer on every app that has a timer set.
Alternatively, don't add a timer by default, but I'd rather have to opt out than opt in.
If there is a screen, add a 10 second timer before getting access to it to avoid it being an easy way to bypass the timer to open an app. Add some nice text like "take a look around while you wait", or "this countdown is for your own sake"?
Shouldn't be com.example.android or whatever..
The favorite app list is a bit too stiff and stops moving a bit too quickly. Would look better if it moved a bit more, look at Niagara launcher for inspiration
Update app list when a new app is installed by listening to ACTION_PACKAGE_ADDED
When adding a favorite its order get sets to 0, should be set to the current max + 1
Solution provided https://stackoverflow.com/questions/10589528/how-can-i-programmatically-expand-the-notifications-bar-in-my-android-app is deprecated for later versions of android? (10 year old answer..)
Must be possible since other launchers have the functionality.
links:
https://stackoverflow.com/questions/32928809/expand-notifications-panel-programmatically-android
https://issuetracker.google.com/issues/111024346
https://stackoverflow.com/a/51616031
In Niagara launcher, the content that is revealed when swiping up is also affected by the offset on the favorites list, which makes the motion continue through the transition. As it is now the motion of the favorites gets interrupted by the app list sliding down the screen.
For some reason when I've tried adding build types the app launches but is completely blank and unresponsive.
Release version should be minimized and needs a signing config
Common gesture that might be appreciated
For some reason some app titles are completely wrong, such as "4.0dip" for caustic and "res/mipmap-anydpi-v26/ic_launcher.xml" for desmos. Almost as if the label has been replaced with the path to the app icon?
redirect to stock whatever-it's-called?
It takes some time for the bottom sheet to leave the composition, during which it seems to block all interaction with the (now completely visible) home screen. Not sure if this is a mistake in my implementation or not.
From the documentation it seems like the sheet won't leave composition until after it has been hidden (to not interrupt the animation), but once it's hidden it waits a bit too long before disappearing. By not setting bottom windowinsets to 0.dp you can see exactly when it leaves the composition.
Would be very basic functionality and work kind of like Niagara Launcher does it. No grid or anything, just a resizeable box for a widget
Right now you have to wait for the usage timer to count down before you can uninstall the app by going to the app info. The app can be opened from app info, so it can't be accessible before the timer has run out.
Add the option to uninstall the app
Show app info might be unnecessary since you can access it from the recents apps screen?
When it's always in the same place muscle memory kicks in and you can open the app without needing to think about whether you actually want to. Two options:
Knowing you've opened an app 30 times already might make it easier to resist
At 00:31 it claims apps that haven't been opened yet have been used for 21 minutes. I saw a stackoverflow post where someone mentioned that the usagestats come in UTC, maybe the implementation fails to take timezone into account?
Another stackoverflow post claimed that the usagestats aren't that reliable and that it is better to do a "manual query" and sum it up yourself.
I never use light mode, and the app has been designed using dark mode. I always have my phone in dark mode so I never notice how shit the light version of the app is.
It would be annoying to fix all the colors for light mode and make it look good, especially since I'll never use it myself.
If I disable light mode I won't have to maintain two different color schemes, and can spend more time on other features.
Will probably disable light mode at some point.
Not sure exactly why, or when it happens. Perhaps after typing something, turning of the screen and then coming back a while later?
Currently needs to access the viewModel in order to get usage information for apps. Might need an overhaul of the database, which will probably need to happen once the usage graphs get implemented anyway.
RippleTheme is deprecated and should be replaced with indication api somehow. Check if it's possible to have the ripple only affect the text and not the transparent background?
Is there a reason to use persistent storage instead of room? Annoying to work with compared to room
Current implementation is janky and not the intended use of animatedvisibility.
Cleaner?
Stackoverflow: https://stackoverflow.com/questions/36238481/android-usagestatsmanager-not-returning-correct-daily-results/50647945#50647945
only relevant for api < 21?
Remember that the timestamps are in UTC
Need to request permissions, enable accessibility service etc.
Instead of opening settings screen, the home state changes so that the four swipe apps are indicated by boxes that can be clicked on in order to change which app the gesture opens. The list of favorites should also turn reorderable.
Transition using AnimateVisibility maybe? Two completely different composables, one for normal and one for editing? Maybe better to pass down a screen-state to make it easier to update the layout in the future
It is possible to add a small summary that displays in the list of accessibility services.
Something like "Screen locking service"
Also improve the written description that's shown when clicking on the service
Right now the order is the same as they were added. Reordering the UI would also need to reorder the list that is saved in datastore.
.expand() function does absolutely nothing, despite all other uiEvents working. In the example below both logs get logged
Log.d("MAIN_SCREEN","expand sheet $bottomSheetScaffoldState")
bottomSheetScaffoldState.bottomSheetState.expand()
Log.d("MAIN_SCREEN","sheet expanded $bottomSheetScaffoldState")
Can't figure out the source of the issue, seems to be the scaffold state not responding?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.