FORUMS
Remove All Ads from XDA

[APP] [ROOT] OnePlus Dark Mode Toggler (QS Tile, Auto-switch on Sunrise/Sunset, etc.)

31 posts
Thanks Meter: 24
 
By MOARStuff, Member on 5th January 2020, 09:07 PM
Post Reply Email Thread
Hello XDA Community,

This is my first post in the XDA OnePlus 7/Pro Forums! After many months of development, I'm finally ready to reveal my app to the world. I've already published the app to the Play Store and I highly recommend grabbing it from there, as it will ensure you get the latest updates the fastest. Now, this app is something I'd always wanted on my OnePlus phone, and I've heard many requests from users on forums for OnePlus to add this feature. However, as far as I know, no app with similar functionality existed for OnePlus phones... until today.

About the app itself:
This app allows OnePlus users running Android 10 to set a Quick Settings tile that allows them to switch between the OP system-wide light and dark themes (this will affect all supported OnePlus, Google, and user apps, just like the actual setting in 'Customization > Tone' does). In addition, I've added in automatic theme switching based on time of day, meaning that when it's sunset, the phone will automatically switch over to dark theme, and when it's sunrise, the phone will automatically switch over to light theme. This aforementioned feature is toggleable, so if you discover that you don't like it, you can always disable it (as there are some drawbacks to this feature, discussed below). Also, I've added automatic wallpaper switching when the themes are changed, allowing for custom wallpapers depending on whether the light or dark theme is active (also toggleable, in case you don't want this feature).

Note about auto-switch feature:
Due to the stubbornness of System UI, when this feature is enabled and the phone is off and the phone detects sunrise/sunset, it has to quickly turn on the screen, then turn it off, in order to ensure that Ambient Display continues to work after switching themes. This only happens when the screen is off, and the screen "flicker" is almost unnoticeable from the sheer speed at which it occurs (but, if you stare at your screen when it's off for long enough during sunrise/sunset, you may notice it happen briefly). In addition, the auto-switch may kick in while the screen is on, which COULD, in very RARE CIRCUMSTANCES, cause you to lose some temporary unsaved work on your phone. I've never encountered this (at least, yet), but I have heard it is possible for things like the Google search bar or other small text inputs, etc.


After much thought, I decided to make the app free to use with no ads and no (paid) "premium" features. I am an independent developer and full-time high school student; if you found my app useful, please do consider donating to me through PayPal: paypal.me/opdarktoggler.

Grab the app from the Play Store (highly recommended): https://play.google.com/store/apps/d...arkmodetoggler, or download the app from the apk posted below.
Attached Files
File Type: apk opdarkmodetoggler-v1.4.apk - [Click for QR Code] (4.08 MB, 68 views)
The Following 9 Users Say Thank You to MOARStuff For This Useful Post: [ View ] Gift MOARStuff Ad-Free
5th January 2020, 09:40 PM |#3  
Gordietm's Avatar
Senior Member
Flag Toronto
Thanks Meter: 410
 
More
This is amazing. I've been missing this coming from my pixel 2 xl. I think a lot of people are looking for an app like this.
Thank you, it should be included in OOS.

If you want to add some themes, PitchBlack and Flux work really well on OOS 10. I use them all the time.
5th January 2020, 10:17 PM |#4  
OP Member
Thanks Meter: 24
 
Donate to Me
More
Quote:
Originally Posted by Gordietm

This is amazing. I've been missing this coming from my pixel 2 xl. I think a lot of people are looking for an app like this.
Thank you, it should be included in OOS.

If you want to add some themes, PitchBlack and Flux work really well on OOS 10. I use them all the time.

Thank you for the suggestion! If you dont mind, can you try running "su" then do "cmd overlay list" in a terminal emulator when you get the chance and post the output here? It would really help me to add support for those themes.
5th January 2020, 10:20 PM |#5  
Gordietm's Avatar
Senior Member
Flag Toronto
Thanks Meter: 410
 
More
:/ $ su
:/ # cmd overlay list
com.oneplus.calculator
[x] com.oneplus.calculator.basiccolorblack.overlay

net.oneplus.weather
--- net.oneplus.weather.basiccolorwhite.overlay
--- net.oneplus.weather.basiccolorblack.overlay

com.oneplus.gamespace
[x] com.oneplus.gamespace.black.overlay
[ ] com.oneplus.gamespace.white.overlay

com.google.android.googlequicksearchbox
[x] com.google.android.googlequicksearchbox.SwiftDark. OxygenOS

com.oneplus.card
[x] com.oneplus.card.black.overlay
[ ] com.oneplus.card.white.overlay

com.oneplus.note
--- com.oneplus.note.black.overlay
--- com.oneplus.note.white.overlay

com.oneplus.account
[ ] com.oneplus.account.basiccolorwhite.overlay
[x] com.oneplus.account.basiccolorblack.overlay

com.oneplus.soundrecorder
--- com.oneplus.soundrecorder.black.overlay
--- com.oneplus.soundrecorder.white.overlay

com.oneplus.deskclock
[ ] com.oneplus.deskclock.white.overlay
[x] com.oneplus.deskclock.black.overlay

com.oneplus.security
[ ] com.oneplus.security.white.overlay
[x] com.oneplus.security.black.overlay

com.oneplus.wifiapsettings
[ ] com.oneplus.wifiapsettings.basiccolorwhite.overlay
[x] com.oneplus.wifiapsettings.basiccolorblack.overlay

android
[ ] com.android.internal.display.cutout.emulation.corn er
[ ] com.android.internal.display.cutout.emulation.doub le
[ ] com.android.theme.icon.square
[ ] com.android.internal.systemui.navbar.gestural_wide _back
[ ] com.android.theme.color.cinnamon
[ ] com.android.theme.icon_pack.rounded.android
[ ] com.android.internal.display.cutout.emulation.tall
[ ] com.android.theme.color.black
[ ] com.android.theme.color.green
[ ] com.android.theme.color.ocean
[ ] com.android.theme.color.space
[ ] com.android.internal.systemui.navbar.threebutton
[ ] android.ui.overlay.ct
[ ] com.android.internal.systemui.navbar.twobutton
[ ] com.android.internal.systemui.navbar.gestural_extr a_wide_back
[ ] android.telephony.overlay.cmcc
[ ] com.android.theme.icon.teardrop
[ ] com.android.theme.font.notoserifsource
[ ] com.android.theme.icon_pack.filled.android
[ ] com.android.theme.icon.squircle
[x] com.android.internal.systemui.navbar.gestural
[ ] com.android.theme.color.orchid
[ ] com.android.theme.color.purple
[x] com.android.theme.icon.circle
[ ] com.android.theme.icon.roundedrect
[ ] com.android.internal.systemui.navbar.gestural_narr ow_back
[ ] com.android.theme.icon_pack.circular.android
[ ] android.LivWhite.SolidNewAndroidBlue4285f4.OxygenO S10
[ ] android.PitchBlack.BC05GoogleDarkOceanTranslucentS ystemUIOFFAndroid10Stockwithouttrack.Android10OOS
[x] android.SwiftDark.Oxygen.OxygenOS

com.android.mms
--- com.android.mms.overlay.cmcc
--- com.android.mms.overlay.ct

com.android.launcher3
--- com.android.theme.icon_pack.rounded.launcher
--- com.android.theme.icon_pack.filled.launcher
--- com.android.theme.icon_pack.circular.launcher

com.android.settings.intelligence
[ ] com.android.settings.intelligence.basiccolorwhite. overlay
[x] com.android.settings.intelligence.basiccolorblack. overlay
[ ] com.android.settings.intelligence.LivWhite.OxygenO S10
[ ] com.android.settings.intelligence.PitchBlack.Andro id10OOS
[x] com.android.settings.intelligence.SwiftDark.Oxygen OS

com.oneplus.simcontacts
[ ] com.oneplus.simcontacts.basiccolorwhite.overlay
[x] com.oneplus.simcontacts.basiccolorblack.overlay

com.google.android.permissioncontroller
[x] com.google.android.overlay.modules.permissioncontr oller

com.twitter.android
[ ] com.twitter.android.PitchBlack.Android10OOS
[x] com.twitter.android.SwiftDark.OxygenOS

com.oneplus.sound.tuner
[ ] com.oneplus.sound.tuner.basiccolorwhite.overlay
[x] com.oneplus.sound.tuner.basiccolorblack.overlay

com.android.cellbroadcastreceiver
[x] com.android.cellbroadcastreceiver.overlay.common
[ ] com.android.cellbroadcastreceiver.basiccolorwhite. overlay
[x] com.android.cellbroadcastreceiver.basiccolorblack. overlay

com.android.server.telecom
[x] com.android.server.telecom.overlay.common
[ ] com.android.server.telecom.basiccolorwhite.overlay
[x] com.android.server.telecom.basiccolorblack.overlay

com.android.dialer
[ ] com.android.dialer.basiccolorwhite.overlay
[x] com.android.dialer.basiccolorblack.overlay

com.oneplus.filemanager
[ ] com.oneplus.filemanager.white.overlay
[x] com.oneplus.filemanager.black.overlay

com.google.android.gms
[x] com.google.android.gms.SwiftDark.OxygenOS

com.oneplus.screenrecord
[ ] com.oneplus.screenrecord.white.overlay
[x] com.oneplus.screenrecord.black.overlay

com.xda.labs
[ ] com.xda.labs.PitchBlack.Android10OOS
[x] com.xda.labs.SwiftDark.OxygenOS

com.oneplus.aod
[ ] com.oneplus.aod.basiccolorwhite.overlay
[x] com.oneplus.aod.basiccolorblack.overlay

com.oneplus.mms
[ ] com.oneplus.mms.basiccolorwhite.overlay
[x] com.oneplus.mms.basiccolorblack.overlay

com.android.settings
[ ] com.android.settings.basiccolorwhite.overlay
[ ] com.android.settings.overlay.cmcc
[x] com.android.settings.basiccolorblack.overlay
[ ] com.android.settings.overlay.ct
[ ] com.android.theme.icon_pack.filled.settings
[ ] com.android.theme.icon_pack.circular.settings
[ ] com.android.theme.icon_pack.rounded.settings
[ ] com.android.settings.FluxWhite.OxygenOS10
[ ] com.android.settings.PitchBlack.Android10OOS
[x] com.android.settings.SwiftDark.OxygenOS
[ ] com.android.settings.Flux.OxygenOS10

com.oneplus.cloud
--- com.oneplus.cloud.basiccolorwhite.overlay
--- com.oneplus.cloud.basiccolorblack.overlay

com.android.wallpaper
--- com.android.theme.icon_pack.circular.themepicker
--- com.android.theme.icon_pack.filled.themepicker

com.qualcomm.location.XT
--- com.qualcomm.qti.optinoverlay

com.oneplus.opbackup
[ ] com.oneplus.opbackup.white.overlay
[x] com.oneplus.opbackup.black.overlay

com.android.phone
[x] com.android.phone.overlay.common
[ ] com.android.phone.basiccolorwhite.overlay
[x] com.android.phone.basiccolorblack.overlay

com.oneplus.contacts
[ ] com.oneplus.contacts.basiccolorwhite.overlay
[x] com.oneplus.contacts.basiccolorblack.overlay

com.android.emergency
[ ] com.android.emergency.basiccolorwhite.overlay
[x] com.android.emergency.basiccolorblack.overlay

com.android.systemui
[x] com.android.systemui.overlay.common
[ ] com.android.theme.icon_pack.rounded.systemui
[ ] com.oneplus.aodnotification.overlay.purple
[ ] com.oneplus.aodnotification.overlay.red
[ ] com.android.systemui.overlay.cmcc
[ ] com.oneplus.aodnotification.overlay.gold
[ ] com.android.theme.icon_pack.filled.systemui
[ ] com.android.theme.icon_pack.circular.systemui
[ ] com.android.systemui.overlay.ct
[ ] com.android.systemui.tiles.LivWhite.OxygenOS10
[ ] com.android.systemui.tiles.LivDark.OxygenOS10
[ ] com.android.systemui.statusbars.LivWhite.OxygenOS1 0
[ ] com.android.systemui.PitchBlack.Translucentnotific ationsOFF.Android10OOS
[ ] com.android.systemui.LivWhite.OxygenOS10
[ ] com.android.systemui.statusbars.LivDark.OxygenOS10
[x] com.android.systemui.SwiftDark.OxygenOS

com.qualcomm.qti.networksetting
--- com.android.networksettings.overlay.ct

com.oneplus.calendar
--- com.oneplus.calendar.white.overlay
--- com.oneplus.calendar.black.overlay

com.android.bluetooth
[x] com.android.bluetooth.overlay.common

net.oneplus.launcher
[ ] net.oneplus.launcher.white.overlay
[x] net.oneplus.launcher.black.overlay

:/ #
5th January 2020, 10:56 PM |#6  
OP Member
Thanks Meter: 24
 
Donate to Me
More
I just thought of something even better! Ill add in the option for users to input their own substratum themes for light and dark themes straight into the app. That way, users can choose which substratum themes they want to be enabled for light mode and which they want for dark mode. Stay tuned for v1.2!
The Following 2 Users Say Thank You to MOARStuff For This Useful Post: [ View ] Gift MOARStuff Ad-Free
5th January 2020, 11:56 PM |#7  
Gordietm's Avatar
Senior Member
Flag Toronto
Thanks Meter: 410
 
More
Quote:
Originally Posted by MOARStuff

I just thought of something even better! Ill add in the option for users to input their own substratum themes for light and dark themes straight into the app. That way, users can choose which substratum themes they want to be enabled for light mode and which they want for dark mode. Stay tuned for v1.2!

Great idea.
So let's say I'm on the light mode using Flux White and I switch to dark mode using Flux. How will your app disable the Flux White overlays and enable the Flux overlays?
6th January 2020, 06:30 AM |#8  
OP Member
Thanks Meter: 24
 
Donate to Me
More
I'm working on the update for v1.2 right now. God willing, I'll have it done by tomorrow to post. I'm also going to release a major UI overhaul with this new version - really don't like how the current UI looks. Will also be adding in support for the custom Substratum themes. Im thinking of having the user input the name of their substratum theme (e.g. Flux or Pitch Black) as usually the overlays themselves are named after the name of the theme, if that makes sense (another e.g. Flux Black overlays are named package.FluxBlack.something).
The Following 4 Users Say Thank You to MOARStuff For This Useful Post: [ View ] Gift MOARStuff Ad-Free
6th January 2020, 10:25 AM |#9  
jimmy123322's Avatar
Senior Member
Flag Moscow
Thanks Meter: 687
 
Donate to Me
More
Quote:
Originally Posted by MOARStuff

I'm working on the update for v1.2 right now. God willing, I'll have it done by tomorrow to post. I'm also going to release a major UI overhaul with this new version - really don't like how the current UI looks. Will also be adding in support for the custom Substratum themes. Im thinking of having the user input the name of their substratum theme (e.g. Flux or Pitch Black) as usually the overlays themselves are named after the name of the theme, if that makes sense (another e.g. Flux Black overlays are named package.FluxBlack.something).

Great App, i missed it! Can I somehow help with the translation into Russian?
7th January 2020, 03:00 AM |#10  
OP Member
Thanks Meter: 24
 
Donate to Me
More
Quote:
Originally Posted by jimmy123322

Great App, i missed it! Can I somehow help with the translation into Russian?

I'm glad you like the app! I could definitely use some help with Russian translation. If you're down for it, I can post all the strings in the thread later, and you can just paste the Russian translation in this thread or DM me it and I'll most likely be able to have the translation up in a day or two for version 1.3. Don't worry, I won't forget to credit you!
8th January 2020, 12:19 PM |#11  
hellcat50's Avatar
Senior Member
Thanks Meter: 480
 
Donate to Me
More
Quote:
Originally Posted by MOARStuff

I'm glad you like the app! I could definitely use some help with Russian translation. If you're down for it, I can post all the strings in the thread later, and you can just paste the Russian translation in this thread or DM me it and I'll most likely be able to have the translation up in a day or two for version 1.3. Don't worry, I won't forget to credit you!

I have some suggestions for the app: 1. add a option to manually set a location or choose the time when to switch the theme 2. Instead of switching to the completely white theme, add a option to instead use the colorful theme option (the partially white theme)

Other than that I like the app so far.
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes