Related
This is the place where you can post and talk about your own personal cm7 builds, aka KANGS, experimental ideas and such.
PURPOSE: keeping the main CM7 thread clean.
THIS
Subscribed although I can't build myself. This matter is too interesting not to follow. I think bk201 his posts are the ones that I pay most attention to and I hope he will not be discouraged by this 'ban' but will keep us informed here.
Taptalked u see
Taptalked u see
Zatta said:
Subscribed although I can't build myself. This matter is too interesting not to follow. I think bk201 his posts are the ones that I pay most attention to and I hope he will not be discouraged by this 'ban' but will keep us informed here.
Taptalked u see
Taptalked u see
Click to expand...
Click to collapse
yep, love those posts too
Zatta said:
Subscribed although I can't build myself. This matter is too interesting not to follow. I think bk201 his posts are the ones that I pay most attention to and I hope he will not be discouraged by this 'ban' but will keep us informed here.
Taptalked u see
Taptalked u see
Click to expand...
Click to collapse
Setting up a build environment isn't that hard. If you need help, please let me know.
siky_dude said:
This is the place where to talk about your own personal cm7 builds, aka KANGS.
PURPOSE: keeping the main CM7 thread clean.
THIS
Click to expand...
Click to collapse
sorry for all the trouble.
currently testing:
I426982b3, I16a40854, Idb544452
feedback: have to test this some more, but didn't work when i tried the first time. there could be a popup informing user that bootanim was imported sucessfully or not, also fps rate dropped quite a bit after 1 or 2 seconds previewing chosen bootanim. that worked, but when i rebooted bootanim was still the default. don't know if i did something wrong though.
If0476af0, If5485caf
feedback: no errors on output, but icon on statusbar doesn't show. profiles feature keeps working fine, with this on or off.
Idf1cb09f, I89bdbc11
feedback: working flawlessly. 3 or 4 seconds less on boot process.
I52fcd648
feedback: downloaded Third Blade from market (~49mb), no issues downloading or installing. internal/external sdcard unaffected. no more need for this maybe?
I4427e3f2
feedback: working without issues; from what i understand this a function that gets string lenght (for example from a user input, not so sure here); any way to get a more technical comparison? a math test to cpu perhaps?
I92569aa2
feedback: also working, and solved original issue.
Ic0b39c23
feedback: no compile errors, no issues until now, seamless.
Id3e68a75, I2e365a33
feedback: working; does what's described. will test further for conflict with HSPA setting introduced by pawitp.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I461e90ac, I70d846ab, I76632c87
feedback: working; need more time to check for improvements on battery runtime.
Very good work. Have you been commenting on gerrit also? That would useful for the peer reviewers.
jose.celestino said:
Very good work. Have you been commenting on gerrit also? That would useful for the peer reviewers.
Click to expand...
Click to collapse
I haven't, the devs said i shouldn't if i didn't have anything to contribute.
more in testing
I5cb28b08
feedback: no issues to report, seamless
Ic395fae3
feedback: fixes skewed preview on camera when launching it from lockscreen custom app starter, with auto-rotation/90º active.
I985c4573
feedback: looks good, seamless on the end user i guess
I923fa5aa
feedback: still working fine, that nice terminal
just saw this, will test later:
I7ccd5e2c
Jens1969 said:
Setting up a build environment isn't that hard. If you need help, please let me know.
Click to expand...
Click to collapse
Do you think we should get a little bit more constructive/extensive (based on the wiki, sure) on build tips? setting up the buildenv isn't hard at all (just bandwith/time consuming), but 'repo' cannot be trusted for anything else than 'repo sync', and git can be a bit overwhelming. I've been practicing, so i'm getting better at git, branching, merging and fixing conflicts when they occur.
and another one up for testing
I412f9bba - benchmark fans, let's go
For me the limit is my hardware. A notebook /w ubuntu (yeah!), but also 2 years old, 512 mb ram, 160 gb hd. Don't think that will do.
Taptalked u see
Zatta said:
For me the limit is my hardware. A notebook /w ubuntu (yeah!), but also 2 years old, 512 mb ram, 160 gb hd. Don't think that will do.
Taptalked u see
Click to expand...
Click to collapse
hmm, i used to build on a p4 with 2gb ram. linux holds its ground, it will not give up on you, even if you're browsing (don't watch flvs though ) or listen to music... i hope.
still, if you find something you want to see tested, write it down, someone will test it (if it doesn't get approved before that ) and share feedback.
---------- Post added at 10:06 PM ---------- Previous post was at 09:13 PM ----------
Received call, screen didn't wake up. pressed home once, no reaction, pressed power button twice, screen woke up and i was able to awnser the call.
http://pastebin.com/4PuAd31R
I/power ( 208): *** set_screen_state 0
D/SurfaceFlinger( 208): About to give-up screen, flinger = 0xeb108
D/KeyguardViewMediator( 208): wakeWhenReadyLocked(26)
I/power ( 208): *** set_screen_state 1
I/power ( 208): *** set_screen_state 1
Click to expand...
Click to collapse
i'm curious, what's KeyguardViewMediator?
quote from cm forums, user danielck78
Try this. Press on the sensor or somewhere near it. Try to press harder for about 2 seconds. Try if the screen turn back on.
Click to expand...
Click to collapse
edit: i'm with ring lockscreen. never happened before, but i've merged a couple of commits which are related to lockscreen stuff, note that i'm not saying that they are the cause. i'll try with vanilla kernel too (merged a couple of commits from zach 2.6.35.x towards battery runtime, although i don't think they're to blame since i had them for like 3 builds, that makes at least a week and a half using it)
bk201doesntexist said:
Do you think we should get a little bit more constructive/extensive (based on the wiki, sure) on build tips? setting up the buildenv isn't hard at all (just bandwith/time consuming), but 'repo' cannot be trusted for anything else than 'repo sync', and git can be a bit overwhelming.
Click to expand...
Click to collapse
Trying to get into CM7/SGS development, there seems no way around git. But git doesn't like me.
ATM I manage to 'sync repo' and cherry-pick commits. But get lost often. As you said: git is not easy.
So, I'd like this to be a place to talk about (maybe) upcoming changes and also to get some help with development related tasks.
On the long run, this could be a starting point to attract (or grow!) more SGS programmers.
I461e90ac: looks very promising. Switched to UMTS only and lost only 5% in two hour. Will see what I lose overnight.
bk201doesntexist said:
i'm curious, what's KeyguardViewMediator?
Click to expand...
Click to collapse
* Mediates requests related to the keyguard. This includes queries about the
* state of the keyguard, power management events that effect whether the keyguard
* should be shown or reset, callbacks to the phone window manager to notify
* it of when the keyguard is showing, and events from the keyguard view itself
* stating that the keyguard was succesfully unlocked.
At wakeWhenReadyLocked(26), the keyguard was notified that it may need to do something about a keypress, 26 is the keycode of the pressed key, KEYCODE_POWER = Power Key (http://developer.android.com/reference/android/view/KeyEvent.html).
jose.celestino said:
* Mediates requests related to the keyguard. This includes queries about the
* state of the keyguard, power management events that effect whether the keyguard
* should be shown or reset, callbacks to the phone window manager to notify
* it of when the keyguard is showing, and events from the keyguard view itself
* stating that the keyguard was succesfully unlocked.
At wakeWhenReadyLocked(26), the keyguard was notified that it may need to do something about a keypress, 26 is the keycode of the pressed key, KEYCODE_POWER = Power Key (http://developer.android.com/reference/android/view/KeyEvent.html).
Click to expand...
Click to collapse
thanks for the link (xda limit ) this whole section of the website looks like a nice place to learn.
anyways, another question while we follow the trail: at line 27 of the pastebin, set_screen_state 1 comes in, and this should have waken the screen, right?
as it didn't, then i pressed HOME, and WindowManager says there's a ringing incoming call already (because call Notification already has a fullScreenIntent right, that's why we can't leave the incoming call screen), so it can't pass that button press request further. i still don't get why power
set_screen_state 0 at line 43, without me pressing it, that's the thing.
edit: just now, phone was sleeping, and screen came up fine for a phone call. no issue. lol
Jens1969 said:
Trying to get into CM7/SGS development, there seems no way around git. But git doesn't like me.
ATM I manage to 'sync repo' and cherry-pick commits. But get lost often. As you said: git is not easy.
So, I'd like this to be a place to talk about (maybe) upcoming changes and also to get some help with development related tasks.
On the long run, this could be a starting point to attract (or grow!) more SGS programmers.
I461e90ac: looks very promising. Switched to UMTS only and lost only 5% in two hour. Will see what I lose overnight.
Click to expand...
Click to collapse
i'll try to get something going on the git side, although surely i need to improve as well. i now think cherry-picking/branches is easier than fixing conflicts. i'm managing myself through, you'll see, it's actually not that hard. it definately is easier for someone who knows how to code, but that's a given, i guess.
definately, i agree with you about the objective of this thread. i would add as well help improve users so that they can help themselves, maybe we'll turn into the devs of tomorrow (pretty utopic schedule that is, but still), maybe not, but we all learn something more out of it - knowledge has no place - while helping out the community, and making some more mistakes along the way.
I461e90ac looks promising indeed. i'll give one more cycle to it.
edit: i was bored so... in Ie259e6da, if we edit:
device/samsung/aries-common/AriesParts/res/values/arrays.xml to:
Code:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="backlight_timeout_entries">
<item>Off</item>
<item>Default (1.6 seconds)</item>
<item>2 seconds</item>
<item>5 seconds</item>
<item>10 seconds</item>
<item>15 seconds</item>
<item>30 seconds</item>
<item>Never</item>
</string-array>
<string-array name="backlight_timeout_entries_values" translatable="false">
<item>0</item>
<item>1600</item>
<item>2000</item>
<item>5000</item>
<item>10000</item>
<item>15000</item>
<item>30000</item>
<item>-1</item>
</string-array>
</resources>
would it be enough to turn off the leds entirely from AriesParts, while still having led notif, of course? or do we need to go kernel level, (i noticed drivers/input/keyboard/cypress-touchkey.c, like pawitp did here)?
i think only editing the xml doesn't do the trick like it should, does it? maybe if we changed this:
Code:
static void bl_set_timeout() {
if (bl_timeout > 0) {
mod_timer(&bl_timer, jiffies + msecs_to_jiffies(bl_timeout));
}
}
to
Code:
static void bl_set_timeout() {
if (bl_timeout ≥ 0) {
mod_timer(&bl_timer, jiffies + msecs_to_jiffies(bl_timeout));
}
}
no good? or would it still need something else? or is it completely way off and would make my phone melt
this doesn't look promising.. Void, seems to me that's the same as 'we don't need this'?
Code:
static void bl_off(struct work_struct *bl_off_work);
i think i will start doing some serious e-learning on coding.. once i get more "comfortable" at work and can relax a bit.
guys,i have been on cm7.1 from the day cm7.1 stable released and now Im on nightly 165,and i keep facing a problem (so do my 4friends)-the google framework service forcing problem
First i know a data wipe or wiping all the gapps and those apps that regard to account syncing ,but it sometimes work for a period(1day or less)and sometimes dun even works
can someone give me some helps ?
I'm on nightly 165 with stock kernel
Changed dpi with nitrality to 182dpi
leejack218 said:
guys,i have been on cm7.1 from the day cm7.1 stable released and now Im on nightly 165,and i keep facing a problem (so do my 4friends)-the google framework service forcing problem
First i know a data wipe or wiping all the gapps and those apps that regard to account syncing ,but it sometimes work for a period(1day or less)and sometimes dun even works
can someone give me some helps ?
I'm on nightly 165 with stock kernel
Changed dpi with nitrality to 182dpi
Click to expand...
Click to collapse
this is definitely the wrong thread for this. Answer in the q&a thread.
Edit: link to that is in my sig.
Taptalked u see
bk201doesntexist said:
edit: i was bored so... in Ie259e6da, if we edit:
device/samsung/aries-common/AriesParts/res/values/arrays.xml to:
Code:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="backlight_timeout_entries">
<item>Off</item>
<item>Default (1.6 seconds)</item>
<item>2 seconds</item>
<item>5 seconds</item>
<item>10 seconds</item>
<item>15 seconds</item>
<item>30 seconds</item>
<item>Never</item>
</string-array>
<string-array name="backlight_timeout_entries_values" translatable="false">
<item>0</item>
<item>1600</item>
<item>2000</item>
<item>5000</item>
<item>10000</item>
<item>15000</item>
<item>30000</item>
<item>-1</item>
</string-array>
</resources>
would it be enough to turn off the leds entirely from AriesParts, while still having led notif, of course?
Click to expand...
Click to collapse
No, that's the screen timeout.
or do we need to go kernel level, (i noticed drivers/input/keyboard/cypress-touchkey.c, like pawitp did here)?
Click to expand...
Click to collapse
You need this patch to get BACKLIGHT_TIMEOUT from userspace as it is hardcoded to 1600 (ms). Then you need another patch to set the value in CMParts or, in this case, AriesParts.
Don't know if 0 would turn it off though.
this doesn't look promising.. Void, seems to me that's the same as 'we don't need this'?
Code:
static void bl_off(struct work_struct *bl_off_work);
Click to expand...
Click to collapse
void means you don't care for the function return
EDIT: "Then you need another patch to set the value in CMParts", failed to see that that was the one you posted and included the arrays.xml. Disregard everything I said before that.
Yes if you edit that array, you will control the led backlight timer. Lowest you can go is 1. (0 is always on)
To test values do : echo 1 > /sys/class/misc/notification/bl_timeout
To turn it off however, some kernel "hacking" will be required
Oh, so that array is actually for the touchkeys backlight timeout. My bad.
And that's were it is read from userspace then, nice.
Daneshm90 said:
Yes if you edit that array, you will control the led backlight timer. Lowest you can go is 1. (0 is always on)
To test values do : echo 1 > /sys/class/misc/notification/bl_timeout
To turn it off however, some kernel "hacking" will be required
Click to expand...
Click to collapse
I'm confused. If 0 is always on, what's -1?
edit: Or did you mean -1 is always on?
edit2: (follow up on the next page) actually anything below 1 (since bl_timeout needs to be greater but not equal to 0) will make touchkey bl stay on forever.
Hi,
watchmaker (Link) is a great tool and simple faces are created quickly, but we need more.
with formulas is much more possible and I want to collect them here.
regards
starbase64
example clock > http://facerepo.com/app/faces/details/chronograph-by-starbase64-iv-14a70b5fa2b
rotate "WA" battery:
Code:
-{bl}*360/100
WA battery icon:
Code:
'{bc}' == 'Charging' and 7 or {bl} >= 90 and 1 or {bl} >= 70 and 2 or {bl} >= 50 and 3 or {bl} >= 30 and 4 or {bl} >= 10 and 5 or 6
rotate "PH" battery:
Code:
-{pbl}*360/100
PH battery icon:
Code:
'{bc}' == 'Charging' and 7 or {pbl} >= 90 and 1 or {pbl} >= 70 and 2 or {pbl} >= 50 and 3 or {pbl} >= 30 and 4 or {pbl} >= 10 and 5 or 6
rotate seconds circle:
Code:
-{drss}
rotate minutes circle
Code:
-{drm}
rotate minutes circle
Code:
-{drh}
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
example clock > http://facerepo.com/app/faces/details/summer-time-14acd7a68f6
watch battery in percent
Code:
{blp}
wacht battery in percent with opacity > if lower 15 percent (copy this code to opacity setting)
Code:
{bl} < 15 and 100 or 0
wacht battery in percent with opacity > if lower 50 percent (copy this code to opacity setting)
Code:
{bl} < 50 and 100 or 0
wacht battery in percent with opacity > if charger connectet (copy this code to opacity setting)
Code:
'{bl}' == 'Charging' and 100 or 0
works also with phone battery {pbl} and {pbc}
you need 4 battery in percent letters with various opacity formula.
example clock > http://facerepo.com/app/faces/details/mechanic-v-14ad47f4ec5
this formula show or hide a pic in a defined time:
Code:
{dh23}<=18 and {dh23}>= 6 and [COLOR="Red"][B]50[/B][/COLOR] 0 or
example: a black square with this formula in opacity setting, will dim your clock at night.
The red number is the opacity setting, higher = stronger
example clock > http://facerepo.com/app/faces/details/night-and-day-ii-14adcd8cb74
change background automatically with sunrise and sunset...
copy formula to opacity from the second image (opacity for the first image =100):
Code:
{wsrp}>={dtp} and 100 or {wssp}<{dtp} and 100 or 0
thanks to Klaus Koehler (G+) for helping to find the right formula
Help creating formula in watchmaker:
1) formula for showing wind chill . Formula for metric wind chill calculation:
Twind_chill = 13.12 + 0.6215*T - 11.37*(v0.16) + 0.3965*T*(v0.16)
T=temp, V= windspeed.
2) Formula, showing arrow up when rising temp (or barometric pressure), arrow down, falling temp/barometric pressure. No ide how to create this....if possible...
example watch > http://facerepo.com/app/faces/details/night-and-day-iii-14ae9343b9c
blinking text for temperature lower than 4C°
Code:
{ds}%2 == 0 and 100 and {wt}< 4 and 100 or 0
Copy code to opacity setting!
@espenjoh
no idea at the moment
To show a Different Day of the Week
This code will show tomorrow's day of the week in 3 letter day of the week form.
{ddw0}==0 and 'Mon' or {ddw0}==1 and 'Tue' or {ddw0}==2 and 'Wed' or {ddw0}==3 and 'Thu' or {ddw0}==4 and 'Fri' or {ddw0}==5 and 'Sat' or 'Sun'
Copy code into text field.
This piece of code is very useful at rotating a sun/moon cycle indicator. But this does not simply imply the sun rises at a quarter of the day and sets at 3 quarters, in stead the sun rises and sets just like in real life.
Code:
{dtp} < {wsrp} and (-180 + ({dtp}/{wsrp})*90) or {dtp} <= {wssp} and (-90 + (({dtp} - {wsrp})/({wssp} - {wsrp}))*180) or {dtp} <= 1 and (90 + (({dtp} - {wssp})/(1 - {wssp})*90))
This can be used at indicators where at 0° the sun is at his highest point.
Some self-made examples are:
http://facerepo.com/app/faces/details/epic-sun-moon-cycle-clock-14b06fdac8c
http://facerepo.com/app/faces/details/steampunk-2-14ad939e2b3
http://facerepo.com/app/faces/details/steampunk-14aaa686824
---------- Post added at 12:09 PM ---------- Previous post was at 11:48 AM ----------
This rotates objects according to gravity, but it doesn't work a hundred per cent and needs improvement. Anyone any ideas?
Code:
{say} > 0 and ({sax}+10)/20*360/2+270 or {say} <= 0 and 360-({sax}+10)/20*360/2+270
Example: http://facerepo.com/app/faces/details/andy-with-moving-arms-14ae3ad326a
Probably not correct place to post but haven't had any luck elsewhere. I would like to use the Style Clock 1 on my gear s but use my own background. cant find location of that clock to do so. Can someone please point me in right direction
@lusciousbeard
open watchmaker tap on the clock an choose "Customize Copy"...
starbase64 said:
@lusciousbeard
open watchmaker tap on the clock an choose "Customize Copy"...
Click to expand...
Click to collapse
I want to use the stock clock that comes with gear manager. Its called Style clock 1. I just want my own background with that clock.
Don't know if this is a a forumla but trying to change the watch face based on a variable.
In tasker have WM Change Watch plugin selected, select which watch face and If %Batt <65%
The attempt is that when the battery is 65% or less the watch face changes
I'd like to add a second location and the current forecast for that location.
formula for celsius and fahrenheit in same clock.
F = ({wt}/5)*9+32
C = (({wt}-32)/9)*5
Is it possible to display active tasker profiles etc. ?
Can someone help, I want to make a few different sub dials. How can I change the rotational value for the watch and phone battery to be 160 or so degrees instead of following a full 360. I want to split the dial with two hands, have each devices battery on the dial, once for each side. The left side having and Full down to Empty running from the 11 Oclock spot down to 7, then mirroring the other side for the other battery
The second dial I wanted a 360 - 7 point where the hand changed each day (for day of week dial)
I am not the best at writing code and was having trouble figuring out how to write this
I realize your post is 4 months old, but . . .
mikeschevelle said:
Can someone help, I want to make a few different sub dials. How can I change the rotational value for the watch and phone battery to be 160 or so degrees instead of following a full 360. I want to split the dial with two hands, have each devices battery on the dial, once for each side. The left side having and Full down to Empty running from the 11 Oclock spot down to 7, then mirroring the other side for the other battery
Click to expand...
Click to collapse
It's a math problem. x/160 = y/360.
y is the rotational value based on a full circle ({drs}, {drm}, or {drh} in watchmaker)
x is the rotational value based on your 160 degree arc. If you solve for x, you get x=.444y
so you can enter the following in a rotation field to get any object to show seconds over your 160 degree arc:
Code:
.444 * {drs}
The second dial I wanted a 360 - 7 point where the hand changed each day (for day of week dial)
Click to expand...
Click to collapse
360/7 = 51.429, so each day would be 51.429 degrees. Set your rotation value to:
Code:
{ddw0} * 51.429
In the Watchmaker Reddit, I posted about saving battery life https://www.reddit.com/r/WatchMaker/comments/3liwww/tips_to_improve_battery_life/
I noticed that I was losing 5-6% battery life per hour with a watchface I made. When I switched to a very simple face with no bells and whistles, I lost closer to 3% per hour. I did some experimenting to figure out how to reduce battery usage with my more complicated face. Here's what I learned:
- Watchmaker still executes positioning code for elements that are not visible. For example, if you enter "{ds}+2" as the rotation for an element that is only visible in bright mode, watchmaker will still do the math once a second while it's in dim mode.
- How frequently an object updates is determined by what watchmaker tag is in the object properties. If no tag is in the properties, it will not update. So if you set the rotation of a hand to "{ds}+2" watchmaker will do the math every second and the hand will move every second. Now lets say you create a function called var_ds() that returns the {ds}+2. Setting the rotation of the hand to "var_ds()" will cause the hand not to rotate. There is no watchmaker tag in the rotation field, so the function is never called and the rotation value never updates. Setting rotation to "var_ds({ds})" will cause the function to be called and the hand to rotate every second. Setting rotation to "var_ds({dm})" will cause the function to be called and the hand to move once a minute - even if the function is still returning values based on {ds}.
Using this info, I was able to come up with some possible optimizations to improve battery life:
1) If you're using lots of math or code to place an object, add "if is_bright" to your code so that it won't be executed while the screen is dim. If you do this, you should initialize the variable is_bright to 1 to prevent weirdness.
2) To control the frequency of updates, stick your code in a function and call it with a tag that represents the frequency you want. For example, I wanted my minute hand to stop on minute marks rather than move smoothly. I wrote a function:
Code:
function var_rotation (r)
return 6*math.floor({drm}/6)
end
The "r" variable is never used in the function, but it lets me control how often the function is called. Previously when I used "6*math.floor({drm}/6)" directly as a rotation value, the expression was evaluated whenever {drm} updated - I'm guessing at least once a second - even though the hand was only actually moving once a minute. Now, my rotation value is var_rotation({dm}). The {dm} causes my function to be called only once a minute which makes a lot more sense for a hand that's only moving once a minute
3) If I had multiple objects using var_rotation() to rotate, I might add a conditional statement to make sure the bulk of the code only runs once a minute:
function var_rotation (r)
Code:
if not (var_lastran == {dm}) then
var_result = 6*math.floor({drm}/6)
end
return var_result
end
If there is a recent result, this simply returns that result instead if recalculating it. If the result is older than a minute, it calculates a new result.
For the particular watchface I was working on, only optimization #2 applied, but based on my initial testing, I'm down to around 3% battery/hour. Hopefully this info helps someone else
Click to expand...
Click to collapse
SEE UPDATE BELOW
After doing some more digging on surfaceflinger, atd, and their related libs, I found some interesting entries in a "strings" analysis of libinputflinger.so. Loads of stuff on touch calibration. I noticed some repeated strings that looked like they're assigned to different properties. You can see this clearly by entering:
Code:
strings /system/lib/libinputflinger.so | grep -iE '(^touch\.|[ ][ ]touch\.)'| sed -e 's/^[ \t]*//' | sort -n | uniq
The terminal returns
Code:
touch.coverage.calibration
touch.coverage.calibration: box
touch.coverage.calibration: none
touch.deviceType
touch.distance.calibration
touch.distance.calibration: none
touch.distance.calibration: scaled
touch.distance.scale
touch.distance.scale: %0.3f
touch.gestureMode
touch.orientation.calibration
touch.orientation.calibration: interpolated
touch.orientation.calibration: none
touch.orientation.calibration: vector
touch.orientationAware
touch.pressure.calibration
touch.pressure.calibration: amplitude
touch.pressure.calibration: none
touch.pressure.calibration: physical
touch.pressure.scale
touch.pressure.scale: %0.3f
touch.size.bias
touch.size.bias: %0.3f
touch.size.calibration
touch.size.calibration: area
touch.size.calibration: box
touch.size.calibration: diameter
touch.size.calibration: geometric
touch.size.calibration: none
touch.size.isSummed
touch.size.isSummed: %s
touch.size.scale
touch.size.scale: %0.3f
touch.wake
I looked up some of strings on the net, and lo and behold, they're build.prop entries! You can see the props above that have different strings to assign to them. The ones with a "%0.3f" refer to a number value, and the one with "%s" is a boolean 0/1.
I've only done a little testing, but I found a baseline of improvement values to make our touch screens more responsive. Some of the properties I couldn't find info on, so I'm testing some values like touch.distance.scale. I feel like I have definitely noticed improvements though. I'm no longer so pissed off using my phone, and the frequency of misses overall seems significantly lower. It's acceptable now. Here's what I'm using now at the end of my build.prop:
Code:
##### touch ######
touch.deviceType=touchScreen
# (geometric, diameter, box, area)
touch.size.calibration=geometric
touch.size.scale=100
# (amplitude, physical, none)
touch.pressure.calibration=amplitude
touch.pressure.scale=0.1
touch.gestureMode=pointer
# (interpolated, vector, none)
touch.orientation.calibration=interpolated
# (box, none)
touch.coverage.calibration=box
For detailed information on these touch properties, read here(search for the property you're interested in; the page is pretty long). Some are self-explanatory and others we'll just need to test more. Check them out and see if any calibration values make a significant change. Just copy the above code and paste to the bottom of /system/build.prop with a nice file manager like Solid Explorer. Warning: Adding these entries in the build.prop will change the default touch properties. You can always change them back to stock by removing or commenting the entries from build.prop. I assume most values are aafe, but I can't be sure.
Also worth noting. I found some additional build.prop values to make Android snappier. The fling/swipe velocity make a big difference. Not sure what the others correlate to.
Code:
##### touch related #####
view.touch_slop=2
view.scroll_friction=1.5
view.minimum_fling_velocity=25
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000
ro.min_pointer_dur=8
windowsmgr.max_events_per_sec=200
EDIT: For detailed information on these touch properties, read here.
I'm gonna add some "profiles" of touch settings to use down here.
This one is for a Nexus 4 I believe. I'm trying it out now, and it seems pretty good. My goal is to emulate the touch experience I had with that phone.
Code:
##### touch ######
touch.deviceType=touchScreen
touch.orientationAware=1
# (geometric, diameter, box, area)
touch.size.calibration=diameter
touch.size.scale=10
touch.size.bias=0
touch.size.isSummed=0
# (amplitude, physical, none)
touch.pressure.calibration=amplitude
touch.pressure.scale=0.005
touch.gestureMode=pointer
# (interpolated, vector, none)
touch.orientation.calibration=none
UPDATE
Hey guys, so here's an update to what I've found out about the touch screen and its issues. I apologize for my low activity on xda. I've been real busy working on some linux projects.
First, in order for the touch.* settings to work, they need to be put in an .idc (input device configuration) file with the name of the device. For the G4, that is: /system/usr/idc/touch_dev.idc.
If you have another phone or want to check, you can get the name of your touch screen device with the terminal command:
Code:
for i in /dev/input/event*; do j="$(getevent -i $i | grep -i touch)"; j=${j#*name: }; [[ -z $j ]] || echo ${j//\"/}; done
Before you go try out the .idc file, I want to warn you that certain settings will disable the touch screen. If this happens, you'll need to use adb to delete or move /system/usr/idc/touch_dev.idc somewhere else so that it doesn't get loaded when the phone boots. These are some settings you must NOT change in the .idc file:
Code:
touch.deviceType = touchScreen
touch.coverage.calibration = box
These are the settings I'm currently using:
Code:
touch.deviceType = touchScreen
touch.orientationAware = 1
touch.size.calibration = diameter
touch.size.scale = 1
touch.size.bias = 0
touch.size.isSummed = 0
touch.pressure.calibration = physical
touch.pressure.scale = 0.001
touch.orientation.calibration = none
touch.distance.calibration = none
touch.distance.scale = 0
touch.coverage.calibration = box
touch.gestureMode = spots
MultitouchSettleInterval = 1ms
MultitouchMinDistance = 1px
TapInterval = 1ms
TapSlop = 1px
I'm not sure if the Multitouch* and Tap* settings work or if adding more values from libinputflinger will work. There's little documentation on using settings that don't begin with "touch." You might have to do some experimentation and try other entries in the "strings /system/lib/libinputflinger.so" readout. I would also try using the first settings I posted if these don't seem to help.
Another thing I found out is that this phone performs better with low entropy. You can monitor your current entropy level in the terminal:
Code:
watch "cat /proc/sys/kernel/random/entropy_avail"
It's usually around 2000+ and peaks at 4096 with high activity which is where I think lag comes in. I found that lowering it to under 1000 average cut out the lag spikes I was getting:
Code:
echo 16 > /proc/sys/kernel/random/read_wakeup_threshold
echo 16 > /proc/sys/kernel/random/write_wakeup_threshold
I went ahead and added that to an init.d script. This doesn't have any side effects I've noticed besides possible increased battery life, since the "hwrng" process that generates entropy has no work to do. In case you don't have init.d, make sure busybox is installed, run this command in the terminal, and you'll have init.d startup:
Code:
mount -o remount,rw /system; echo "sleep 300 && run-parts /system/etc/init.d" >> /system/etc/init.qcom.post_boot.sh; mount -o remount,ro /system
One last thing to mention. The touch device has a little section in sysfs under: /sys/devices/virtual/input/lge_touch. There's some interesting information you can find there, values you can change, and tests you can run. Any file with a name ending in "test" can be run by opening the file, yes sysfs files are weird like this. All tests pass for me except "abs_test":
Code:
cat /sys/devices/virtual/input/lge_touch/abs_test
> ========RESULT=======
> Absolute Sensing Short Test : RESULT: Fail
> Absolute Sensing Open Test : RESULT: Fail
I haven't seen other people with or without touch screen issues run this test, so it may or may not be an indicator that something's wrong with the touch screen or its kernel-side drivers. By the way, this doesn't require superuser. You can check this on any device and even use a good text editor like QuickEdit to open the file and generate test results.
At this point, I'm fairly content with the new improvements I've made, but my best bet on a complete fix would be upgraded touch drivers. The "Advanced In-Cell Touch" device this phone uses is pretty new. There's a good chance this technology has drivers that don't have all the bugs worked out. This is something we'll have to wait on. On the other hand, if LGE handed over a bootloader unlock method and some source files, I'd be just fine with that too.
What "issues" is this attempting to fix
kyle1867 said:
What "issues" is this attempting to fix
Click to expand...
Click to collapse
Probably the horrible touch response many users experience.
Is this something that we can copy and paste into the end of the build prop, or is it replacing stuff that is already there?
Sent from my LG-H811 using XDA Free mobile app
Wow nice job man.
Is it possible to address the swipe registering as taps through this or do you think this will also address it?
Harmtan2 said:
Is this something that we can copy and paste into the end of the build prop, or is it replacing stuff that is already there?
Sent from my LG-H811 using XDA Free mobile app
Click to expand...
Click to collapse
You'll have to add almost all of them.
Yes bro am too facing the touch problem in my intex aqua star power. The problem is when we keep the finger the screen shakes and also in 100% of my usage 20% touch mismatches . On first i irritated and now i habituated with this touch. [emoji28]
Sent from my Aqua Star Power using Tapatalk
The build.prop edits seem to be making the difference. ?
Sent From My LG G4
Rydah805 said:
The build.prop edits seem to be making the difference. ?
Sent From My LG G4
Click to expand...
Click to collapse
would you say that double tap to wake is improved as well?
esmenikmatixx said:
would you say that double tap to wake is improved as well?
Click to expand...
Click to collapse
Hmm, you know what, it is.
Sent From My LG G4
esmenikmatixx said:
would you say that double tap to wake is improved as well?
Click to expand...
Click to collapse
I would say so I have all these except the new ones he posted an an script from another post an I do see some improvements defiantly double tap to wake
GUGUITOMTG4 said:
You'll have to add almost all of them.
Click to expand...
Click to collapse
Soooo... can you run through this with me? I'm not a novice but I'm trying to figure out how to add them? I can't simply text edit the build.prop on my phone or pull/push from my computer?
This post is the reason why I'm glad we now have root.
Akomack said:
Soooo... can you run through this with me? I'm not a novice but I'm trying to figure out how to add them? I can't simply text edit the build.prop on my phone or pull/push from my computer?
Click to expand...
Click to collapse
Yes, you can manually edit it and or push pull it, but sometimes it causes bootloop when edited as a plain text. I would suggest using a build prop editor app from Play Store (I use Build Prop Editor by JRummy. It's Also built in in Rom Toolbox). You will have to copy-paste line by line. I'm gonna try those settings, but in my case, my screen sometimes misses when the phone gets hot. I attribute my touchscreen issues to the Lag LG injected on thermal files.
GUGUITOMTG4 said:
Yes, you can manually edit it and or push pull it, but sometimes it causes bootloop when edited as a plain text. I would suggest using a build prop editor app from Play Store (I use Build Prop Editor by JRummy. It's Also built in in Rom Toolbox). You will have to copy-paste line by line. I'm gonna try those settings, but in my case, my screen sometimes misses when the phone gets hot. I attribute my touchscreen issues to the Lag LG injected on thermal files.
Click to expand...
Click to collapse
Do you have to be rooted to do that?
Hendrycks said:
Do you have to be rooted to do that?
Click to expand...
Click to collapse
Yes you do
Sent from my LG-H811 using Tapatalk
Hi,
yesterday I bought a G4 H815.
I have the following problem: If my phone is on the bed next to me, or lying on a table, the touchscreen response is terrible. If I'm holding it in my hand, there's no problem. If it's charging and so lying on the bed, there's no problem either.
I took a few photos with my Optimus Black, since I could't take any screenshots of the issue:
this is with my phone lying on the bed:
and here holding it in my hands, producing no problems at all.
what is this? It's bloody annonying and totally unacceptable from a phone of this level, And yes... I would use it without holding it, just placing it on my bed next to me, but you can see how it is performing like so...
is my display faulty, or what?
Thanks man.
It's indeed more responsive. Especially double tap to wake is working good now.
*justintime* said:
Thanks man.
It's indeed more responsive. Especially double tap to wake is working good now.
Click to expand...
Click to collapse
I didnt feel a difference can you post a screenshot of your buildprop? Thanks in advance
Maybe im doing it wrong
Sent from my LG-H811 using Tapatalk
Just edit with es file Explorer.
And get the build.prop in the system folder. Not the other one.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Every one of the RAW images I've taken with this device, regardless of the camera app, produces a dark line on the far right when viewed in Lightroom and Photoshop. Anyone else experience this? I've tried more than one manual camera app with the same result, but it does seem that the Snapseed app can see and edit the DNG on the phone without the green line present. Leads me to believe this is some kind of issue with Adobe so just wondered if anyone else had encountered it. I also tried disabling any import presets but that didn't change anything. Have a look at the attached samples to see what I mean.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I have encountered it, but I have not tried to fix it. Sorry.
I am also not convinced it is an Adobe issue. Open some of the DNGs in explorer, they should be around 25 megabytes give or take. But I often see them as low as 2 kilobyes, obviously that isn't right so there must be something else along the chain wrong.
staticx57 said:
I have encountered it, but I have not tried to fix it. Sorry.
I am also not convinced it is an Adobe issue. Open some of the DNGs in explorer, they should be around 25 megabytes give or take. But I often see them as low as 2 kilobyes, obviously that isn't right so there must be something else along the chain wrong.
Click to expand...
Click to collapse
Ok I don't seem to be having that issue luckily. But as a further test I downloaded a simple Windows conversion utility last night and used it to convert one of the DNG files to JPG and it worked fine. I mean, the colours and general processing were absolute crap, but there was no dark line so whatever problem I'm having certainly doesn't appear to be with the RAW file from the 6P. And as I said, Snapseed edits them without a problem.
After work today I'll post in the Adobe support forums and see if I get any information there.
evo5ive said:
Every one of the RAW images I've taken with this device, regardless of the camera app, produces a dark line on the far right when viewed in Lightroom and Photoshop. Anyone else experience this? I've tried more than one manual camera app with the same result, but it does seem that the Snapseed app can see and edit the DNG on the phone without the green line present. Leads me to believe this is some kind of issue with Adobe so just wondered if anyone else had encountered it. I also tried disabling any import presets but that didn't change anything. Have a look at the attached samples to see what I mean.
Click to expand...
Click to collapse
can upload sample raw file
defcomg said:
can upload sample raw file
Click to expand...
Click to collapse
Sure, try these. Just ran a few more tests and it seems Snapseed is in fact picking up the dark band. BUT, when I shoot either the standard camera app or output to JPG in the manual apps the resulting images do NOT show the dark band. Seems to be a problem that only occurs when the device saves the RAW file.
Uploaded from my PC
Uploaded from phone
evo5ive said:
Sure, try these. Just ran a few more tests and it seems Snapseed is in fact picking up the dark band. BUT, when I shoot either the standard camera app or output to JPG in the manual apps the resulting images do NOT show the dark band. Seems to be a problem that only occurs when the device saves the RAW file.
Uploaded from my PC
Uploaded from phone
Click to expand...
Click to collapse
The Problem is the Active Area DNG Tag the darker area should not be visible somehow Active Area Tag is conflicting with Default crop size tag http://www.barrypearson.co.uk/articles/dng/specification.htm. dcraw based apps seem to use active area tag and ignore the default crop tag so the band is not visible
6P DNG Header
Code:
ExifTool Version Number : 9.69
File Name : ProShot_20151126_143708.dng
Directory : C:/Users/GeorgeKiarie/Downloads
File Size : 24 MB
File Modification Date/Time : 2015:11:26 22:20:33+02:00
File Access Date/Time : 2015:11:26 22:17:54+02:00
File Creation Date/Time : 2015:11:26 22:17:54+02:00
File Permissions : rw-rw-rw-
File Type : DNG
MIME Type : image/x-adobe-dng
Exif Byte Order : Little-endian (Intel, II)
Subfile Type : Full-resolution Image
Image Width : 4080
Image Height : 3028
Bits Per Sample : 16
Compression : Uncompressed
Photometric Interpretation : Color Filter Array
Make : Huawei
Camera Model Name : Nexus 6P
Strip Offsets : (Binary data 25901 bytes, use -b option to extract)
Orientation : Horizontal (normal)
Samples Per Pixel : 1
Rows Per Strip : 1
Strip Byte Counts : (Binary data 15139 bytes, use -b option to extract)
X Resolution : 72
Y Resolution : 72
Planar Configuration : Chunky
Resolution Unit : inches
Software : google/angler/angler:6.0/MDB08L/2343525:user/release-keys
Modify Date : 2015:11:24 01:13:03
XMP Toolkit : Adobe XMP Core 5.6-c011 79.156380, 2014/05/21-23:38:37
Creator Tool : google/angler/angler:6.0/MDB08L/2343525:user/release-keys
Rating : 0
Metadata Date : 2015:11:26 14:46:24-04:00
Date Created : 2015:11:24 01:13:03
Document ID : E76921AC715FABD3C153F15B23AEEA74
Original Document ID : E76921AC715FABD3C153F15B23AEEA74
Instance ID : xmp.iid:42b35b1d-eeff-ea44-a7be-becf042fbc8c
Format : image/dng
Raw File Name : ProShot_20151126_143708.dng
Version : 9.3
Has Settings : False
Has Crop : False
Already Applied : False
Photographic Sensitivity : 100
History Action : saved
History Instance ID : xmp.iid:42b35b1d-eeff-ea44-a7be-becf042fbc8c
History When : 2015:11:26 14:46:24-04:00
History Software Agent : Adobe Photoshop Camera Raw 9.3 (Windows)
History Changed : /metadata
CFA Repeat Pattern Dim : 2 2
CFA Pattern 2 : 0 1 1 2
Exposure Time : 1/110
F Number : 2.0
Exif Version : 0221
Shutter Speed Value : 1/110
Aperture Value : 2.0
GPS Version ID : 2.3.0.0
GPS Latitude Ref : North
GPS Longitude Ref : West
GPS Time Stamp : 18:37:11
GPS Date Stamp : 2015:11:26
ISO : 100
Date/Time Original : 2015:11:24 01:13:03
Focal Length : 4.7 mm
TIFF-EP Standard ID : 1 0 0 0
DNG Version : 1.4.0.0
DNG Backward Version : 1.1.0.0
Unique Camera Model : Nexus 6P-Huawei-google
CFA Plane Color : Red,Green,Blue
CFA Layout : Rectangular
Black Level Repeat Dim : 2 2
Black Level : 52 52 52 52
White Level : 1023
Default Scale : 1 1
Default Crop Origin : 8 8
Default Crop Size : 4016 3008
Color Matrix 1 : 0.8125 -0.2265625 -0.125 -0.3203125 1.265625 0.0390625 -0.0390625 0.2265625 0.453125
Color Matrix 2 : 1.0078125 -0.2890625 -0.21875 -0.5625 1.6328125 -0.046875 -0.0703125 0.2109375 0.640625
Camera Calibration 1 : 1 0 0 0 1 0 0 0 0.9921875
Camera Calibration 2 : 1 0 0 0 1 0 0 0 0.9921875
As Shot Neutral : 0.46875 1 0.6328125
Calibration Illuminant 1 : D65
Calibration Illuminant 2 : Standard Light A
Active Area : 2 48 3026 4080
Forward Matrix 1 : 0.578125 0.21875 0.1640625 0.15625 0.84375 0 -0.015625 -0.2890625 1.1328125
Forward Matrix 2 : 0.6875 0.015625 0.265625 0.2109375 0.6796875 0.1015625 0 -0.5390625 1.3671875
Opcode List 2 : (Binary data 3908 bytes, use -b option to extract)
Opcode List 3 : (Binary data 4 bytes, use -b option to extract)
Noise Profile : 0.00020673168 1.8208447e-006 0.00020673168 1.8208447e-006 0.00020673168 1.8208447e-006
Aperture : 2.0
CFA Pattern : [Red,Green][Green,Blue]
GPS Date/Time : 2015:11:26 18:37:11Z
GPS Latitude : 13 deg 4' 13.48" N
GPS Longitude : 59 deg 33' 59.05" W
GPS Position : 13 deg 4' 13.48" N, 59 deg 33' 59.05" W
Image Size : 4080x3028
Shutter Speed : 1/110
Focal Length : 4.7 mm
Light Value : 8.8
Moto Nexus 6 DNG Header
Code:
ExifTool Version Number : 9.69
File Name : paraiso.dng
Directory : C:/Users/GeorgeKiarie/Pictures/DNG/other
File Size : 25 MB
File Modification Date/Time : 2015:08:04 02:07:42+02:00
File Access Date/Time : 2015:08:04 02:04:32+02:00
File Creation Date/Time : 2015:08:04 02:04:32+02:00
File Permissions : rw-rw-rw-
File Type : DNG
MIME Type : image/x-adobe-dng
Exif Byte Order : Little-endian (Intel, II)
Subfile Type : Full-resolution Image
Image Width : 4208
Image Height : 3120
Bits Per Sample : 16
Compression : Uncompressed
Photometric Interpretation : Color Filter Array
Image Description :
Make : motorola
Camera Model Name : Nexus 6
Strip Offsets : (Binary data 26769 bytes, use -b option to extract)
Orientation : Horizontal (normal)
Samples Per Pixel : 1
Rows Per Strip : 1
Strip Byte Counts : (Binary data 15599 bytes, use -b option to extract)
X Resolution : 72
Y Resolution : 72
Planar Configuration : Chunky
Resolution Unit : inches
Software : google/shamu/shamu:5.0/LRX21O/1570415:user/release-keys
Modify Date : 1970:01:22 17:47:12
CFA Repeat Pattern Dim : 2 2
CFA Pattern 2 : 2 1 1 0
Copyright :
Exposure Time : 1/1653
F Number : 2.0
ISO : 40
Date/Time Original : 1970:01:22 17:47:12
Focal Length : 3.8 mm
TIFF-EP Standard ID : 1 0 0 0
DNG Version : 1.4.0.0
DNG Backward Version : 1.1.0.0
Unique Camera Model : Nexus 6-motorola-google
CFA Plane Color : Red,Green,Blue
CFA Layout : Rectangular
Black Level Repeat Dim : 2 2
Black Level : 64 64 64 64
White Level : 1023
Default Scale : 1 1
Default Crop Origin : 8 8
Default Crop Size : 4200 3112
Color Matrix 1 : 0.6953125 -0.0859375 -0.09375 -0.4609375 1.296875 0.1328125 -0.109375 0.2578125 0.5390625
Color Matrix 2 : 1.21875 -0.4296875 -0.25 -0.4609375 1.5 0.015625 -0.046875 0.21875 0.609375
Camera Calibration 1 : 1 0 0 0 1 0 0 0 1
Camera Calibration 2 : 1 0 0 0 1 0 0 0 1
As Shot Neutral : 0.5390625 1 0.6640625
Calibration Illuminant 1 : D65
Calibration Illuminant 2 : Standard Light A
Forward Matrix 1 : 0.7578125 0.0859375 0.1171875 0.2734375 0.828125 -0.1015625 0.015625 -0.28125 1.0859375
Forward Matrix 2 : 0.6328125 0.046875 0.28125 0.1640625 0.7578125 0.078125 -0.046875 -0.640625 1.5078125
Opcode List 2 : (Binary data 3908 bytes, use -b option to extract)
Noise Profile : 0.00051471478 0 0.00051471478 0 0.00051471478 0
Aperture : 2.0
CFA Pattern : [Blue,Green][Green,Red]
Image Size : 4208x3120
Shutter Speed : 1/1653
Focal Length : 3.8 mm
Light Value : 14.0
when opening nexus 6 dng in PS /LR the image res is 4200 x 3112 but on dcraw based apps res is 4208 x 3120 now had moto added Active area tag i believe there would have been a dark area on pixels that go past 4200.
on lightroom pc DNG Recover Edge plugin should make it go away .
it would be interseting to see how the header of a 5x or 6p without that issue looks like
defcomg said:
The Problem is the Active Area DNG Tag the darker area should not be visible somehow Active Area Tag is conflicting with Default crop size tag http://www.barrypearson.co.uk/articles/dng/specification.htm. dcraw based apps seem to use active area tag and ignore the default crop tag so the band is not visible
when opening nexus 6 dng in PS /LR the image res is 4200 x 3112 but on dcraw based apps res is 4208 x 3120 now had moto added Active area tag i believe there would have been a dark area on pixels that go past 4200.
on lightroom pc DNG Recover Edge plugin should make it go away .
it would be interseting to see how the header of a 5x or 6p without that issue looks like
Click to expand...
Click to collapse
Very interesting, thanks for that. I'll look into that plugin for sure. So I'm assuming the problem lies in the RAW tag generated by the phone, and if that's the case it means it could be fixed with a simple software patch, correct? Just trying to get my info straight so I can submit a bug report to Google. (Bit embarrassed to admit that I'm a photographer by profession yet know very little about the technical workings of RAW formats )
evo5ive said:
Very interesting, thanks for that. I'll look into that plugin for sure. So I'm assuming the problem lies in the RAW tag generated by the phone, and if that's the case it means it could be fixed with a simple software patch, correct? Just trying to get my info straight so I can submit a bug report to Google. (Bit embarrassed to admit that I'm a photographer by profession yet know very little about the technical workings of RAW formats )
Click to expand...
Click to collapse
yeah its a simple software issue that can be rectified with a patch
hi all again,
still in "beta", but seems works fine enough to public and allow to use this format even more effective than in vendors watch faces.
what does mean "TBUI"? it's just a tag in watch face (further "wf") file, what allow you identify it. you may find it at the end of all of this type of watch faces. just open it in any editor/viewer, go at the end of the file and you'll se it:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
it's a very flexible format, perhaps a next version of "PUSH" (yep, a similar tag again). at least it looks similar but have more powerful abilities.
this format allow you to use in any combinations a lot of elements such as:
- clock hands (as discrete as smooth)
- digital data: time markers (49 in variants), sensors data (48 in variants)
- sequential frame-based elements (time, month, progress-bars, rolled-up elements... - 30 items)
- localizeable tags (chinesse/non chinesse)
- animations (sequential frames)
- buttons to call device menu items
- internal wf configuration (ability to enable/disable some groups of elements "on the fly")
and you not limited in one item per type (if you want).
but before to continue, to be honest I'd must warn:
WARNING - theoretically you may brick your device and may not recover it without special knowledge. while I'd investigated this format it happed few times in case of wrong frames compression. now it's solved and must not happens, but chances still not a zero. for sample, few days ago I've known what a zero mirror point for clock hands may cause stuck your device too. I did set a foolproof protection for exactly this issue, but can't check all of possibilities because of over 150 available elements.
ok. if you'd not escaped yet, let's continue.
Spoiler: few screenshots of interface
editor was maked closer to the file format as maximum as possible, so you must understand few basic definitions:
- frame - just an image
- char set - required for elements what uses strings to display. technically. it's a group of assignments frames to characters/symbols. if you use some char set for element, then each char in string what must be displayed, would be replaced by assigned frame. if the char would not assigned, than it'll be skipped.
- ui element - a part of a wf what do something. display some sort of data or mark some region for some action.
- region - rarely uses. if you not in plane to make a hard wf, than you may just ignore it. treat it as "layer". it assign new start point of a coordinate for child elements, but have no affect for sequential of global drawing queue and not cut elements if it's draws out of region area. each region have it's own "sets" - a group of elements what must be shown at once. what det must be shown, may be configured by special element class.
so in this case, editor have a 4 "subeditors": "UI" ("UI items" and "Regions") and "Resources" ("Char Sets" and "Frames")
main interface controls:
horizontal control panel:
"X" - remove element
"A" - add new element as next
"U" - up at one position
"D" - down at one position
"+"/"-" - expand/collapse element
vertical control panel (for ui items editor only):
"+"/"-" - expand/collapse element
"H" - hide element on branch
"L" - ignore element on branch (would be displayed, but would be ignored by mouse)
available classes:
Spoiler: Overlay
just a frame as is. used parameters:
Code:
Target ID - id of a frame
Parent Region ID - as named
Set ID - as named for region assigned in "Parent Region ID"
Spoiler: ClockHands
used parameters:
Code:
Target ID - id of a first frame in chain or alone frame id
X, Y - top left corner coordinates
X2, Y2 - coordinates of a mirror/rotate point
Parent Region ID - as named
Set ID - as named for region assigned in "Parent Region ID"
elements:
CHHoursHand16, CHMinutesHand16, CHSecondsHand16 - uses 16 sequential frames from "N" to "E". works as a discrete clock hands. all other frames would be used as a mirrored via lines goes through mirror point (x2, y2)
CHHoursHand1, CHMinutesHand1, CHSecondsHand1 - uses only one frame ("N"). would be rotated around x2, y2. works as a discrete clock hands. a lot of cpu usage - reduce size of a frame as possible.
CHHoursHandSmooth, CHMinutesHandSmooth, CHSecondsHandSmooth - uses only one frame ("N"). would be rotated around x2, y2. works as a smooth clock hands. a lot of cpu usage - reduce size of a frame as possible.
Spoiler: Char2FrameTime
various elements what display time parts (hours, minutes, seconds, date, month, year, day of the week in different variants) as a numeric values
used parameters:
Code:
Target ID - id of a char set
X, Y - top left corner coordinates
X2, Y2 - used only for calendar table parts as a size of a cell
Align - align of an element to x, y point
Parent Region ID - as named
Set ID - as named for region assigned in "Parent Region ID"
Params 1 - second field only - kerning (interval between chars)
Spoiler: Char2FrameStatistic
various elements what display sensors data (steps, hear rate, o2, battery level etc. in different variants) as a numeric values
used parameters:
Code:
Target ID - id of a char set
X, Y - top left corner coordinates
Align - align of an element to x, y point
Parent Region ID - as named
Set ID - as named for region assigned in "Parent Region ID"
Params 1 - second field only - kerning (interval between chars)
Spoiler: Localizable
elements what display various tags for chinesse and non-chenesse localizations ("am/pm","bpp","o2","km"/"ml" etc. )
each item must have two sequential frames: for "chinesse" locale, then for "non-chinesse" locale.
useless if you have no plans to make a chinesse variant.
used parameters:
Code:
Target ID - id of a first frame (chinesse)
X, Y - top left corner coordinates
Align - align of an element to x, y point
Parent Region ID - as named
Set ID - as named for region assigned in "Parent Region ID"
Spoiler: SequentialFrames
various elements displays some data as sequential frames. like a progress-bars of some data, month etc.
used parameters:
Code:
Target ID - id of a first frame in chain
X, Y - top left corner coordinates
Parent Region ID - as named
Set ID - as named for region assigned in "Parent Region ID"
Spoiler: Specialized
some sort of elements what not assigned to any other classes
used parameters:
Code:
Target ID - id of a first frame in chain
X, Y - top left corner coordinates
Parent Region ID - as named
Set ID - as named for region assigned in "Parent Region ID"
Spoiler: OverlayGroup
not analyzed yet
Spoiler: Button
uses to call internal watch menus if exists
used parameters:
Code:
X, Y - top left corner coordinates
X2, Y2 - width and height of a button
Parent Region ID - as named
Set ID - as named for region assigned in "Parent Region ID"
Spoiler: RegionSettings
selecting id of a set what must be shown in appropriate region. works like a button, but have a some specific.
used parameters:
Code:
X, Y - top left corner coordinates
X2, Y2 - width and height of a button
Region Type - how it must be used - via internal config or by tap
Params 1 - for "RSConfig" only. first field as a count of a selectable items
Params 2 - for "RSConfig" only. list of frames id what would be used as a thumbnails for selection menu
sorry for so short manual, it's a bit hard to write that's all on not my first language. you may use an original watch faces to learn how it works in details or ask me here or in pm.
~200 original watch faces for dm50 (466x466) available on my gdrive you may use it as a sample or just a template/resources.
download link TBUIWFTool.zip
Spoiler: list of tested compatible devices
- DM50, Lemfo (466х466)
- HD11, Huadai (240x280)
- HK28 (368х448)
- HK46 (360x360)
- i20, Colmi (360x360)
- i30, Colmi (390?x390?)
- i31, Colmi (466x466)
- C60, Colmi (240x280)
- C80, Colmi (368x448)
- LA24, Linwear, Tiroki (360х360)
- LF26 Max, Lemfo (360х360)
- Vibe 7 Pro, Zeblaze (466x466)
- x7, Gejian (360x360)
Spoiler: not tested devices with TBUI wf
- Dizo Watch R, Realme (360х360)
- HK3Pro (360х360)
- L20, microwear (240x280)
- W3Pro+, XO (360х360)
all devices except dm50 tested by other users, not by me.
watch face for sample:
it was maked by request (converted from push 240x240 to tbui 360x360) and because my watch have a 466x466 resolution it looks shifted. but on 360x360 would be fine.
if you hold tap on display to get watch face selector, you'll see a little gear icon at bottom of preview:
tap it and you'll enter in internal config menu:
you can setup:
- ability to show/hide weather applet
- using static or roll-up month/day elements
- using battery level by 10% or by 1%
- select discrete seconds clock hand or smooth
also it have a few buttons in regular mode:
- weather (by tap weather applet)
- data (by tap steps)
- heart rate (by tap heart or it's numbers)
- timer (by center of a clock)
Very good
I tried running the tool in a clean Windows 11 VM, and it wont start. Does it require a runtime or framework (eg, .NET, Python, etc.) to be installed?
EDIT: Nevermind, Windows' had blocked the file. Anyone else has this problem, right-click->propoerties->unblock. Windows does not give a helpful error message when failing to run. FYI I also got a hit in Windows Defender, which immediately deleted this when I first downloaded it. I scanned in in Kaspersky online and it appears to be clean, so it appears to be a false-positive, but that might have something to do with why Windows is making it so hard to run it.
danjayh said:
...Does it require a runtime or framework (eg, .NET, Python, etc.) to be installed?
...
Click to expand...
Click to collapse
.net 4.7.2 only.
danjayh said:
...FYI I also got a hit in Windows Defender, which immediately deleted this when I first downloaded it...
Click to expand...
Click to collapse
I use it on win 10 and never seen nothing similar. also never heard about this issue (shared on other forum from march).
also it's not finished and would be updated. m.b. even not an once.
Great work... But how I can upload to Colmi i30?
Thanks!
EDIT: Learned to upload and all ok, thanks again!
It's possible to easy convert 466px to 390px? Or need export and import resized all frames?
Jean-DrEaD said:
It's possible to easy convert 466px to 390px? Or need export and import resized all frames?
Click to expand...
Click to collapse
no. resizing in ".net" is a... not a good quality point. you must resize frames via external specialized tools. I use a xnview (for sample). it have a fine enough algorithms and batch processing.
with next build you'll be allowed to remove all frames by one click (already implemented in debugging build). also I'll integrate local browser (at first) for viewing graphical resources of local watch face files and export it or import to current watch face.
at this time, in debugging build it supports push format for viewing too (editing not in plans, just only as sourse of images). seems public build would be able at this week.
in plans some other formats and add web browser too.