Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,772,940 Members 46,715 Now Online
XDA Developers Android and Mobile Development Forum

[APP][2.1+][12 AUG 2014] Ultimate Caller ID Screen HD [HD Caller ID/Video ID]

Tip us?
 
Thomas_BA
Old
#371  
Thomas_BA's Avatar
Senior Member
Thanks Meter 174
Posts: 832
Join Date: Dec 2009
Location: Buenos Aires
The problem that the Stock Caller screen appears before the UCS screen is i think normal and can only completely removed if the application has Root access. Most phones have this problem with Call Blocker or Filter. There will be one ring tone than the phone hangs up.
This behavior i have with ALL Full scree caller apps. As long the developer does not uses root function this behavior will always be there, for one less for an other more seconds.
 
lowveld
Old
#372  
lowveld's Avatar
Recognized Developer - OP
Thanks Meter 4751
Posts: 2,176
Join Date: Nov 2008

 
DONATE TO ME
Default Why the dafault phone will always show

Ok, it seems there's a lot of discussions about the default phone interface showing up before UCS, and some misleading information floating around. I will try to explain in detail why it is so, and why it will always be so. This will be a long explanation, with some technical information that most will not fully understand, but at least you'll have a source point to investigate from if you so wish.

1. Android is limited regarding "outside" app developers. No matter what google tells you, or how much hype is generated about it, the truth is that app developers are limited in some circumstances, comparing to full rom developers. As I am both, trust me on this.

2. The telephony interface (the part of Android that actually handles the calls) is not exposed in the android SDK. This means that following "proper" development guidelines, something like UCS would not even exist. There are no available classes/functions to pick up, hangup, mute calls, or any other operations regarding call handling.

3. Using some neat tricks, prior to Gingerbread, you could pretty much go around most of these limitations. As of Android V2.3, a further check was introduced: even if you manage to call the correct interfaces, Android checks if the caller is a system app, and if not, ignores it. This is why a lot of apps stopped working as of Gingerbread.

4. With the current set of limitations, I was able to build UCS as it is now, working from Android V2.1 to V4.0.3. Yes, It could do a lot more if I restricted it to Froyo.

So this is why the current feature set of UCS is somewhat limited when comparing with the default phone interface on your phone. This doesn't mean that in the future I won't find a magical workaround, but from where I'm standing now, it's not looking bright. But bottom line: It is currently impossible to fully replace the default phone interface, unless building the rom from scratch, to a specific device.
Note that the limitations to what app developers can do with the telephony interface has been a topic of complaint and frustration with google for years now. Given that they recently made it even worst with post Froyo, it's not looking as they will change it for better. In this particular area, iOS is better. I hate to admit it, but... suck it up.

So, trust me when I say we need the default interface to perform some functions. The following point, is why UCS only comes after the default. For this, you need some Android development notions. In lay terms, when something happens, the core system sends a broadcast to all apps interested that "something" has happened. This is the only way any external app has to know that a call i coming. The problem is that it is the default interface that sends that message, and it is capable of starting much faster than other apps.

So when UCS get's the message that a call is coming, the default interface is already showing up. Even if UCS is able to appear faster than the default, it would be pushed back when the default appears, and then bring itself back up front again. So, there's no way to hide the default interface. The only time that you won't see the default interface will be when the phone is locked. In that case the overhead of the lockscreen can make UCS fast enough to finish the boot process before anything shows.

Another thing: root access would give me some leeway to work with, but would not remove the fundamental limitations of UCS. I could try some more stuff, but it would have to be on a per-ROM basis, which pretty much invalidates even trying to do it in UCS. UCS is having about 5000 installations a day. If I screw up a condition that happens rarely, lets say for 1% of the users, I have 50 pissed of guys every day.

Up to know this is the default UCS behavior. UCS taking 5 seconds to show up is not normal, and indicates some sort of problem. In my setup, I never see the default interface, it only takes less than a second to go away, and unless I'm actually looking at the phone with it unlocked, it's gone by the time I pick up the phone.

This extreme delay could be caused by something else, I'll follow this up in further posts, and leave this one for reference for further questions about this topic.

Cheers
Check out my apps!

Ultimate Call Screen HD
FTL Launcher
Ultimate Contacts HD Sync

Twitter: @LowveldWare (Android Related) @buildroot (Personal)




The Following 6 Users Say Thank You to lowveld For This Useful Post: [ Click to Expand ]
 
lowveld
Old
(Last edited by lowveld; 26th April 2012 at 01:45 AM.)
#373  
lowveld's Avatar
Recognized Developer - OP
Thanks Meter 4751
Posts: 2,176
Join Date: Nov 2008

 
DONATE TO ME
Quote:
Originally Posted by hipher View Post
I have kept trying with every update of the app and still the same. Right now, this is one of few pay apps I have, but the only one I can't use. What's the point of this app if it does not allow me to choose the picture I want for the contacts? I would have expected at least some feedback on the crash log I attached.
Hi again,

Can you try the attached apk and see if it makes any difference in your setup?

UltimateCallScreen.apk

@ezippo: This could also make a difference for your random crashing, please try it out!

Thanks

--- edit ---

@hipher: apparently there is something wrong with your gallery app. Please also try to pick the file with some other application (like ES File Explorer) just to rule it out.
Check out my apps!

Ultimate Call Screen HD
FTL Launcher
Ultimate Contacts HD Sync

Twitter: @LowveldWare (Android Related) @buildroot (Personal)




 
badmoj0
Old
#374  
badmoj0's Avatar
Member
Thanks Meter 11
Posts: 69
Join Date: Apr 2011
Quote:
Originally Posted by ingenious247 View Post
badmoj0 - There may be a workaround for the stock dialer showing up

I am researching it now. Are you rooted? And what phone are you using?
I am rooted. My device is zte blade running the cyanogenmod 7.1 stable.
 
ingenious247
Old
#375  
Senior Member
Thanks Meter 569
Posts: 1,557
Join Date: Oct 2011
Quote:
Originally Posted by lowveld View Post
Ok, it seems there's a lot of discussions about the default phone interface showing up before UCS, and some misleading information floating around. I will try to explain in detail why it is so, and why it will always be so. This will be a long explanation, with some technical information that most will not fully understand, but at least you'll have a source point to investigate from if you so wish.

1. Android is limited regarding "outside" app developers. No matter what google tells you, or how much hype is generated about it, the truth is that app developers are limited in some circumstances, comparing to full rom developers. As I am both, trust me on this.

2. The telephony interface (the part of Android that actually handles the calls) is not exposed in the android SDK. This means that following "proper" development guidelines, something like UCS would not even exist. There are no available classes/functions to pick up, hangup, mute calls, or any other operations regarding call handling.

3. Using some neat tricks, prior to Gingerbread, you could pretty much go around most of these limitations. As of Android V2.3, a further check was introduced: even if you manage to call the correct interfaces, Android checks if the caller is a system app, and if not, ignores it. This is why a lot of apps stopped working as of Gingerbread.

4. With the current set of limitations, I was able to build UCS as it is now, working from Android V2.1 to V4.0.3. Yes, It could do a lot more if I restricted it to Froyo.

So this is why the current feature set of UCS is somewhat limited when comparing with the default phone interface on your phone. This doesn't mean that in the future I won't find a magical workaround, but from where I'm standing now, it's not looking bright. But bottom line: It is currently impossible to fully replace the default phone interface, unless building the rom from scratch, to a specific device.
Note that the limitations to what app developers can do with the telephony interface has been a topic of complaint and frustration with google for years now. Given that they recently made it even worst with post Froyo, it's not looking as they will change it for better. In this particular area, iOS is better. I hate to admit it, but... suck it up.

So, trust me when I say we need the default interface to perform some functions. The following point, is why UCS only comes after the default. For this, you need some Android development notions. In lay terms, when something happens, the core system sends a broadcast to all apps interested that "something" has happened. This is the only way any external app has to know that a call i coming. The problem is that it is the default interface that sends that message, and it is capable of starting much faster than other apps.

So when UCS get's the message that a call is coming, the default interface is already showing up. Even if UCS is able to appear faster than the default, it would be pushed back when the default appears, and then bring itself back up front again. So, there's no way to hide the default interface. The only time that you won't see the default interface will be when the phone is locked. In that case the overhead of the lockscreen can make UCS fast enough to finish the boot process before anything shows.

Another thing: root access would give me some leeway to work with, but would not remove the fundamental limitations of UCS. I could try some more stuff, but it would have to be on a per-ROM basis, which pretty much invalidates even trying to do it in UCS. UCS is having about 5000 installations a day. If I screw up a condition that happens rarely, lets say for 1% of the users, I have 50 pissed of guys every day.

Up to know this is the default UCS behavior. UCS taking 5 seconds to show up is not normal, and indicates some sort of problem. In my setup, I never see the default interface, it only takes less than a second to go away, and unless I'm actually looking at the phone with it unlocked, it's gone by the time I pick up the phone.

This extreme delay could be caused by something else, I'll follow this up in further posts, and leave this one for reference for further questions about this topic.

Cheers
What if root users pushed the apk to replace the system dialer? Perhaps if the other functions (dial pad for voicemail etc) were included then we could force it into or current ROM and replace the dialer completely.. Maybe that could be an option for a separate apk with a nominal price...hint hint

Sent from my T989 hunting for Siri Connor
 
hipher
Old
(Last edited by hipher; 26th April 2012 at 08:35 AM.)
#376  
Junior Member
Thanks Meter 0
Posts: 26
Join Date: Oct 2010
Location: Valencia
Quote:
Originally Posted by lowveld View Post
I sincerely apologize, I somehow missed your post with the logcat. I'm taking a look at it now, but just to make sure:

- Even though you can't see the picture, when you press save it gets saved and later on used?

I'm sorry if this wasn't you, but someone reported something similar. That is, the issue was visualization during the cropping phase, because it was actually working underneath.

Cheers
Thanks for replying. I'm sure in the end you'll figure out was going on!

Yes, if I hit save, the picture is saved. Furthermore, if i touch the screen in the cropping stage, although I can not see what I'm doing, I move and crop the pic. When I save it, usually is in horizontal position although the pic was taken with the phone in vertical position. But if I rotate the phone before pressing save I get the message "unfortunately the process com.lowvekd.ucs has stopped".

Today I just discovered something else : it seems to happen only with pictures taken with my phone (original Galaxy S almost 2 yearts old, not the best camera out there). If I select older pictures I have from other phone with crappy camera or pics I've been sent by whatsapp, it works just fine. I guess the resolution of the image might have something to do? I've tried copying one of my pictures to other folder, and it did'nt work. Also I have renamed the pic, no luck either. In that case, what I get, instead of a black screen at the cropping stage, is the default picture. Very weird...

Update: I answered before reading the second post. I already had tried picking the picture with other appa: OPI file explorer and QuickPick. Same result with all af them. I'll just try the app you attaches. I'll let you know if it works.

---------- Post added at 09:46 AM ---------- Previous post was at 09:27 AM ----------

Quote:
Originally Posted by lowveld View Post
Hi again,

Can you try the attached apk and see if it makes any difference in your setup?

Attachment 1025038

@ezippo: This could also make a difference for your random crashing, please try it out!

Thanks

--- edit ---

@hipher: apparently there is something wrong with your gallery app. Please also try to pick the file with some other application (like ES File Explorer) just to rule it out.
Good news: Now I see the picture!
Bad news: It keeps closing if I rotate the phone

Come one, you almost got it!

As I said in the previous post, If I choose pics from other source, it works. I just tried with one taken with the front camera, and it works fine (rotation included). What I don't get is why it always chooses the wrong orientation for the pictures: all the ones I try to choose are vertical but it gets them horizontal.
 
lowveld
Old
#377  
lowveld's Avatar
Recognized Developer - OP
Thanks Meter 4751
Posts: 2,176
Join Date: Nov 2008

 
DONATE TO ME
Quote:
Originally Posted by hipher View Post
Good news: Now I see the picture!
Bad news: It keeps closing if I rotate the phone

Come one, you almost got it!

As I said in the previous post, If I choose pics from other source, it works. I just tried with one taken with the front camera, and it works fine (rotation included). What I don't get is why it always chooses the wrong orientation for the pictures: all the ones I try to choose are vertical but it gets them horizontal.
Hi,

Glad we're getting somewhere... I think we have two different issues here. The picture not showing (but working underneath) was probably an ICS thing, related with hardware acceleration and your particular GPU. I think I got that one figure out.

The issue you get on rotating is an "out of memory" error in the java VM, which was the plague of UCS early versions. As I mentioned earlier, I thing the entire garbage collector when applied to bitmaps is broken on android. I keep trying to optimize the code, and do things I am not supposed to be doing to prevent it, but it's pretty much trial and error.

Let me try some more code optimizations and I'll get back to you on this (although meanwhile I'll probably release an intermediate version with the "image not showing" fix, as there are probably more people around with the same issue).

Cheers

P.S. As for the images being rotated, I'm 99% sure that is not actually my fault. UCS will show the image as it is saved, not as it is displayed by your gallery. What I mean is, when you take a picture with the phone sideways, the picture is most likely saved upright, together with information that it should be displayed on landscape. UCS is incapable of reading that information, and just displays it "as is". This is an example, but the reasoning can be applied to any incongruence between what you see on the gallery, and what actually tirns out on UCS.
Check out my apps!

Ultimate Call Screen HD
FTL Launcher
Ultimate Contacts HD Sync

Twitter: @LowveldWare (Android Related) @buildroot (Personal)




 
lowveld
Old
#378  
lowveld's Avatar
Recognized Developer - OP
Thanks Meter 4751
Posts: 2,176
Join Date: Nov 2008

 
DONATE TO ME
Default Theming guide added to post #3

Sorry it took so long. I think I got everything there, and it's not mean for the complete beginner...

Cheers
Check out my apps!

Ultimate Call Screen HD
FTL Launcher
Ultimate Contacts HD Sync

Twitter: @LowveldWare (Android Related) @buildroot (Personal)




The Following User Says Thank You to lowveld For This Useful Post: [ Click to Expand ]
 
jsmccabe78
Old
#379  
jsmccabe78's Avatar
Senior Member
Thanks Meter 378
Posts: 1,438
Join Date: May 2008

 
DONATE TO ME
Quote:
Originally Posted by lowveld View Post
Sorry it took so long. I think I got everything there, and it's not mean for the complete beginner...

Cheers
Curious if you are thinking of developing the theming capabilities more? Mainly layout and speakerphone and possible different layouts (say some with CID showing, others not.)

Realize you have bigger fish to fry...but curious.

Cheers.

Want to buy me a cup of coffee? Buy a theme!

Follow me on Twitter
 
lowveld
Old
#380  
lowveld's Avatar
Recognized Developer - OP
Thanks Meter 4751
Posts: 2,176
Join Date: Nov 2008

 
DONATE TO ME
Quote:
Originally Posted by jsmccabe78 View Post
Curious if you are thinking of developing the theming capabilities more? Mainly layout and speakerphone and possible different layouts (say some with CID showing, others not.)

Realize you have bigger fish to fry...but curious.

Cheers.
Hey,

Yes, target is to make everything I can configurable. Thinking on extending the "offset" philosophy to everything. E.g: now you can move the entire CID block around, target is to be able to change not the entire block but the individual components. Same for the buttons etc.

Also the buttons need to have their size configurable. It's a bit tricky to do these things and maintain backwards compatibility, but let's see!

Cheers
Check out my apps!

Ultimate Call Screen HD
FTL Launcher
Ultimate Contacts HD Sync

Twitter: @LowveldWare (Android Related) @buildroot (Personal)





The Following User Says Thank You to lowveld For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes