yashsingh1/xdaforums huggingface dataset:
[G1 Android Development] :
As far as I know Wysie is aware of this and working on it as we speak, read his posts on the previous page he acknowledges the problem.

If it is a huge issue switch back to v2.50 its what I have done till the bug is fixed :D
[G1 Android Development] romeovn:
Thank you

You make it great ! Thanks
[G1 Android Development] deeznart:
select multiple contacts for sms?

hello guys,

on new years eve, i tried to text my friends on my contacts list wishing them a happy new year. the problem was and still is, i was not able to select multiple recipients from the contacts list. i had to go to contacts add one and after i select the contact it takes me back to the compose message window where i had to go back to the contacts window to select another. once i was done selecting all the contacts by going back and forth from those 2 windows more than 20 times each. i was finally able to hit send! i could've sworn i was able to select multiple recipients with a check box feature... guess i was wrong. could anyone point me in the right direction please? thanks in advance!
[G1 Android Development] Wysie:
deeznart: I have never seen the ability to checkbox select multiple recipients. You sure you weren't using another client such as Handcent? :)
[G1 Android Development] deeznart:
ohhhh you might be right! sorry about the mistake, and thanks for the quick reply! =)
[G1 Android Development] 2dorr:
I saw, I read it, but if we are more to say we have the problem, he can check it easily. If only one person says it has lag, then maybe is a problem only on that phone.
[G1 Android Development] swivel:
I concur. I'm getting tons of Force Close/Waits with this latest update. I'm sure it will be fixed soon though.
[G1 Android Development] Wysie:
adair, shadowch31: I'm working on fixing the stupid lag.. It's much better already, but still slower than default. Am pushing 2.5 back to compare..
[G1 Android Development] :
WYSIE!!!

And as awalys fella we appreciate all the effort you put into it for us, you have made such a difference to the phone with this mod. Its devs like you that have made all the difference to the g1 and without you and others continued dedicatiion we would all still be stuck in the dark google ages!

Big Thank you Wysie
[G1 Android Development] Sleeepy2:
What, it's been over an hour and no updates.

lol just joking works great for me.

love your work.

Thanks
[G1 Android Development] pconwell:
@shadowch31,

I knew about that, but thanks for replying. I did mean on the all contacts page. I thought I saw an option a while back that let you display the contacts org on that screen.

It's not a big deal, and it's not even really an option that I think would be very useful (like you said, a lot of stuff is already on the screen). The reason I asked was because I have a lot of contacts with similar names (my brother and my boss, for one) and it might be nice to easily see that I'm calling my brother at 1am, and not my boss.

Another thought I just had... What if there was an option you could set per contact that would pop up "Do you really want to call THIS person?"

This would be useful for the above situation, but sometimes I was to keep numbers in my phone so I know not to answer (annoying coworkers), but I run the risk of accidentally calling them. So.... maybe a "Do you really want to call/answer this person?" pop-up?
[G1 Android Development] Wysie:
Ok, after much coding and testing, I found out the source of the lag, and that is when querying for a contact id (which I use so that all numbers under the same contact are grouped together). Honestly, there is nothing much I can do since the query process is a must, but using some caching I've managed to reduce the lag to 1.5 to 2 seconds instead of the previous 6+ seconds.

Please try 2.52 BETA 2 and report back. Thanks :)!

Link: http://dl.dropbox.com/u/263378/Contacts_wysie_2.52_beta2_apk.zip
[G1 Android Development] :
F

That has made a massive difference fella and everything is working as it should. As you say still a small delay but worth it considering what it is doing. Thank you so much fella another amazing piece of work.

Clocked over 20 openings average time 1.72 seconds - making around a 70% reduction in lag. Quality work as always, thank you.
[G1 Android Development] lilithpro:
Ok, this time i checked twice that the file has been correctly replaced!

The startup time (pressing the green phone button -> list display) is 11secs. With 372 Entries of 27 contacts and therefore, groups. I cannot see any speedup, the delay is about the same as in the previous beta.

How do you realize the caching? Do you store once queried numbers for faster access in memory to not have to do the id lookup for each duplicate entry of that number again?
[G1 Android Development] :
327 entries from 27 contacts! Have you never heard of the clear call log options? :D

No wondering it's taking so long, surely that amount in a call log would slow up even the default contacts to a degree surely? I understand you want the groups as we all do but if the delay is that large maybe to bench mark you need to clear for a better picture of how many logs it handles until delays are evident.
[G1 Android Development] lilithpro:
I get that, i just wanted to point out that i dont notice any speed difference between the last two betas.

The normal contacts was fine, since it loaded just the visible entries.

Also, i got about 600 sms, which are grouped in the same way, but much faster. I dont want to blame Wysie for my full calllog, but try to find a way to have it useful even with many entries and as fast as the messaging app.
[G1 Android Development] :
Messaging was created to use groups. Contacts was not and didn't contain the framework for three other tabs ;) if it wasn't for Wsyie nagging geesun we still wouldn't have groups lol.

Just out of curiosity to eleminate things to try and get a speed increase for you, have you unchecked most of the extras in the preference? I found that having the contact pictures caused a lag for me so I removed them from call log and noticed a big difference and to be honest I like it better without the pics in call log.
[G1 Android Development] lilithpro:
unchecking these didnt get me any speed improvement.

Just to clarify, wysie's work is awesome! He does put a lot of enthusiasm in it and does not rest until everything is perfect. Me telling him things and making suggestions is not to have him make ME the best contacts replacement but to help his development by giving tips and maybe ideas for improvement and speedup.

This is the way i see it:

There are alot of entries in the call log. Loading these is necessary, no possible speedup there. Then there are the numbers, each of which has to be matched to a contact via its id. This has to be done once per unique number, so for my 27 contacts with, say, 40 unique numbers, thats 40 id queries. The grouping and display should not take much time.

Interestingly, the first version which grouped the same numbers and not by id, was a lot faster. So reducing ID lookup is key and if wysie's current version does it the way i wrote above, another step would be saving the once queried entries for later request (userdata?), since the association of a number to a contact does not really change.
[G1 Android Development] :
Aahhh I see what your getting at. Basically the same way windows indexes search files for faster searching, this could possibly create an I.d query index and use that for reference. Whenever a contact is added or changed it could possibly be set to update the index.

Very nice idea if its possible, would cut lag out almost completely.
[G1 Android Development] :
Edit: Don't mean to sound like I'm having a go I'm just trying every posibility to try and help out. Less time Wysie spends answering questions the more time he has to code ;) lol

I'm just a noob fella with a passion for learning and probably get into things to far but just learning and sharing fella, sorry nothing I suggested helped :( I'll leave it to the expert ;)
[G1 Android Development] Vlad83:
Suggestion

Can you host somewhere other than mediafire? I am having probs with pc and phone downloads... AndroidSpin is a good place...

Edit: lol Just noticed you did exactly that
[G1 Android Development] cacheinjection:
hey wysie,

if ya want some space on ma server just let me know, ill hook you up with a folder.

cache
[G1 Android Development] Wysie:
lilithpro, shadowch31: That is exactly what I'm doing, using a SparseArray to index contacts that have been found... :(
[G1 Android Development] :
In that case lilithpro I return you to my first suggestion... Learn what the 'Clear call log' button is for :D lol

@Wysie well you have managed to cut the delay I experienced as stated in my earlier post and that is with 56 calls using eight groups, no contact pictures in call log. You have done an amazing job fella please don't think we ain't greatful just throwing random idea's out there. I know this will be bugging the hell out of you.
[G1 Android Development] Wysie:
I know why it isn't faster for lilithpro. The reason is because SparseArray uses integer as a key, and the max value is 2 147 483 647. I previously used the phone number as the integer key, and store the person's id (so there's no need to requery) as the value. I'm sure some of lilithpro's phone numbers exceeds that 2147483647 number, thus they are not stored. I've changed and used Hashtable instead, the drawback and advantage at the same time is the space required in memory is more since String > int. Some other minor issues too but I believe it's a better choice than SparseArray for most of you.

I'm running it with about 200+ calls in my log, and the load time is about 1.5 seconds to 2 now. Also, I do NOT clear the cache when you go from Call log to another tab, so returning to it is faster. The disadvantage is if you were to go to Call log, and say your Call log has an entry "Android" with the number "1234567". If you were to then go to say, Contacts, and remove the number "1234567" from "Android", or move "1234567" to another contact, say "Wysie", and after than, go to Call log again, it will still show Android (since the cache is not cleared). Of course, you can simply quite Contacts and start it again to "fix" it. I'm thinking of making this a preference.

I intend to release BETA 3 soon, give it a shot and let me know what you think.

Lastly, before I make a final release, do you all want Unknown numbers to be grouped together? The same question applies for Private numbers.
[G1 Android Development] :
I guess my windows programmed brain is anal in the respect is that any change to a program gets a restart for me so this wouldn't be a problem. Maybe a pop-up with the option to exit and restart or cancel when you edit a contact and it saves if possible would be a good way to go and saves silly questions bound to arise.

Also grouping unknown and private would be fantastic and would tidy up the call log to perfection in my eyes.
[G1 Android Development] vincentlee6148:
Quick dial

Why increase the quick dial(one button dial like the htc hero dial),it is convenient! Exzmple I can press "8" to dial my friend!;)
[G1 Android Development] vincentlee6148:
SORRY! I MEAN THAT CAN INCREASE THE QUICK DIAL!:p
[G1 Android Development] Wysie:
Contacts 2.53 BETA out.

Unzip and push apk.

http://dl.dropbox.com/u/263378/Contacts_wysie_2.52_BETA3_apk.zip

Check preferences for some settings. Please report back, thanks.
[G1 Android Development] trumanhw:
Suggestion:

NO DUPLICATES of ENTRIES in call history. Only displayed -- if click --> hold, choose "show call log" for the entry.

Or maybe have an option to show all history. But normally, I only need to see my active call list.. and definitely NOT duplicates.

Thanks, I think your app is awesome by the way. :D
[G1 Android Development] swivel:
Perfect! No need for duplicates. Problem solved. When a call is placed or received, that number is brought to the top of the call log, and all previous logs of the number are removed/ignored unless specifically asked for.
[G1 Android Development] lilithpro:
Yeah! Great!

Starting takes about 3-4secs now, about double to your 200+ entries. Switching to contacts and back to log is almost instant.

Thats where my next suggestion comes in:

As you already offer an option to clear the number cache, can you keep the cache over application restarts? What matters to me is the speed the application opens, if i have to wait 5secs everytime i hit the call button this is really annoying. If possible, you should keep the cache so that it can be used on app start and offer a button or menu entry to clear the cache if something has changed.

Also, i second trumanhw's idea of ignoring all duplicates, but displaying them at request.

again, great improvement of beta 3 over beta 2!!
[G1 Android Development] :
It definately feels a lot snappier now Wysie, well worked out fella. Thanks as always fella muchly appreciated.
[G1 Android Development] matata86:
Beta3-> Unfortunately for me when entering the call log alert "not responding" ... :-( (
[G1 Android Development] Wysie:
Ok, beta 3 broke favourites tho lol. Will fix it later. Good suggestions, will look into it.

Also, can you all help me check if the alphabetical separators is working fine? I got a pm that D is displayed as Ď..
[G1 Android Development] lilithpro:
Favorites are working for me. Separators too, D is D
[G1 Android Development] Wysie:
Lilith: try going to contacts then Favs
[G1 Android Development] tnpapadakos:
after updating, fix_permissions and then reboot, favorites came back for me

with alphabet separators
[G1 Android Development] tnpapadakos:
unfortunately, now i get a force close (android.process.acore stopped unexpectedly) whenever i either try to dial a number, call from contacts, call from favorites...however, i can make a call by using one of the direct dial shortcuts i have on my desktop...weird

any ideas? i want to keep this, and not have to roll back to 2.51

tried to fix permissions in terminal, now thats coming up "file not found"

fixed mismatches in amonra recovery, rebooted, still same thing
[G1 Android Development] Wysie:
tnpapadakos: I've no idea, without a logcat... I suggest you simply reflash or re-push it, follow the instructions in the first post.

On another note, 2.6 will be out in a while. Expect much better performance. The option to always clear cache is now removed (redundant). Some explanation for those who are interested:

On first load, Call log will try to load the cache from file (serialized Hashtable). It'll fail since it's the first time loading, and as such will instantiate a new Hashtable. It will then populate this Hashtable with all the hits, and once done, save it to a file (which will be loaded on the next time you start Call log). To prevent outdated entries, if any edit is done to any contact, the saved file is deleted. Thus, the call log will be a little slow again. I believe this is a reasonable compromise :). Thanks for all the suggestions :)!

Regarding the quick/speed dial function, I will not implement it... What's the use of Favourites? ;)
[G1 Android Development] zipsniperwizard:
Please, could you also implement a feature to sort contacts based on Last name, First name and Nickname?
[G1 Android Development] tjhart85:
I now actually prefer first name based, but I can imagine that would be one hellava inconvenience if you know a lot of 'Bob's' for example.

I remember being really shocked when I got the G1 and didn't see this option built-in.
[G1 Android Development] Wysie:
zipsniperwizard: The way Android stores the Contacts, is by name :(. No firstname, lastname etc... It'll be very inefficient to compare and sort for every single contact.

On a better note, 2.6 is out. All those on 2.51, go update now for a much better performance :)!
[G1 Android Development] lilithpro:
The problem with this is, that google contacts does not separately store firstname and surname. So for displaying last, first you would need to parse the name and put the string after the last space in front, followed by a comma and the rest. this would work in most standard cases, but would make for example company names really hard to find.

This is the one thing i did still not get used to, i still browse the list for the first letter of the surname, until realizing i need to look for the first name...

Its just caused by google's laziness for implementing good contact management with separate fields.

@wysie:

just tested and it is really fast now. Great work.

I noticed one bug: (a very small, minor one, not really needed to fix!)

If multiple contacts have the same number registered, only one gets the entry enumerated for the number of calls, but the entries are in both contact's groups. (like i said, minor, doesnt bother me)
[G1 Android Development] :
Bored of telling you how great you are ;)

Fantasic work and I know how hard you worked on the array/hash table problem and big thank you for that and all these little touches I'm seeing making it look all purrtttyyyy!

Legend!
[G1 Android Development] matata86:
2.6 Call log -> nor responding. :(((
[G1 Android Development] :
Try re-installing as it works fine for me.
[G1 Android Development] FatBoyExtraordinaire:
Flashing this when I get home.
[G1 Android Development] bfreexxx:
2.6 for enom's AOSP

great work wysie!

can we get a version for enom's AOSP? (w/ slider bug fix)

... enom? care to chime in?

thanks guys!
[G1 Android Development] ArniPL:
I installed 2.6 and now I'm getting process.acore not responding every time when I try to open call log. Then, I switched back to 2.5 and still getting acore not responding. Now I can't get my Contacts.apk to work properly. Any ideas?

Note, that I cleared dalvik-cache, and deleted com.android.contacts/shared_prefs and com.android.providers.contacts/shared_prefs and still no luck.
[G1 Android Development] :
Can you get a call log please?

This dosen't appear to be a general problem more just a few users.

Also what way did you install? And what rom are you using?
[G1 Android Development] tnpapadakos:
cant get log collector to work...sends me a blank 0kb file

gonna wipe and redo all
[G1 Android Development] mrandroid:
I have a theory but I need to make sure i'm not going to mess this thing up lol... I have a Behold 2 with uses TouchWizContacts.apk w/ a .odex file too....

If i delete TouchWizContacts (the apk and the odex) and rename this Contacts.apk to TouchWizContacts.apk and push it back into my phone... would this work?

If that doesn't work... could I just push this Contacts.apk into my phone and give it a shot... can you have 2 contact apps? Is it like having 2 Home Launchers and choosing which to use?
[G1 Android Development] tnpapadakos:
well, after i did wipe data, i tried to see if it fixed it, and it did

wysie 2.6 working

cyanogen 4.2.12.2 remained in force

just gotta set up a few odds and ends

we're back
[G1 Android Development] Sabdart:
There is a small difference between the UK and US versions, different cluster addresses :( Perhaps changing this to configuration would be possible in a later update.
[G1 Android Development] mer6:
Any possibility for a Nexus One version (or does it already support it technically since it's just the Dialer/Contacts)?
[G1 Android Development] Wysie:
bfreexxx: I forgot to push to github. Going to do that now, please bug enom in his TheOfficial ROM thread :P.

ArniPL: I need a logcat...

Sabdart: I already added in Hullumail UK... Please check.

mer6: I may get to it when I've the time, school's starting next week :(. Hopefully someone ports my code to 2.0/2.1 in the meantime!
[G1 Android Development] gchat:
Not grouping numbers

Thank you Wysie for this nearly perfect Contacts app. Grouping the call logs is very useful. However is there any way not to group numbers while dialing them for example while dialing 123456 it shows up like 1-234-5. The US style is a little bit confusing for us Europeans :-).

Again thank you for your really nice work.
[G1 Android Development] matata86:
wysie, unfortunately even the latest version of my call log when you open the reports "not responding" ... What should I do? My rom is Dwang 1.17.1 ...
[G1 Android Development] lilithpro:
Set your locale to English (United Kingdom) or your local language, not English (US), then the grouping will not show.
[G1 Android Development] gchat:
Thanks lilithpro. Worked like a charm.
[G1 Android Development] d0g:
Search - group?

LOVE the call log grouping! THANK YOU!

Issue: When using search button, it does not find all contacts -- it seems to only search in group "My Contacts."

Is this a bug or a 'feature' ?

However, using the keyboard to search DOES find matches in displayed group.
[G1 Android Development] ArniPL:
Here's a logcat after pressing call button:

I/ActivityManager( 2327): Starting activity: Intent { act=android.intent.action.CALL_BUTTON flg=0x10000000 cmp=com.android.contacts/.DialtactsActivity }
D/dalvikvm( 2758): GC freed 32637 objects / 1697032 bytes in 330ms
E/ActivityThread( 2758): Failed to find provider info for call_log
E/ActivityThread( 2758): Failed to find provider info for call_log
W/dalvikvm( 2758): threadid=27: thread exiting with uncaught exception (group=0x4001e170)
E/AndroidRuntime( 2758): Uncaught handler: thread AsyncQueryWorker exiting due to uncaught exception
E/AndroidRuntime( 2758): java.lang.IllegalArgumentException: Unknown URI content://call_log/calls
E/AndroidRuntime( 2758): at android.content.ContentResolver.update(ContentResolver.java:559)
E/AndroidRuntime( 2758): at android.content.AsyncQueryHandler$WorkerHandler.handleMessage(AsyncQueryHandler.java:99)
E/AndroidRuntime( 2758): at com.android.contacts.RecentCallsListActivity$QueryHandler$CatchingWorkerHandler.handleMessage(RecentCallsListActivity.java:826)
E/AndroidRuntime( 2758): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 2758): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 2758): at android.os.HandlerThread.run(HandlerThread.java:60)
I/Process ( 2327): Sending signal. PID: 2758 SIG: 3
I/dalvikvm( 2758): threadid=7: reacting to signal 3
I/dalvikvm( 2758): Wrote stack trace to '/data/anr/traces.txt'

I attached traces.txt for that process too.
[G1 Android Development] tiggerbcn:
Hello Wysie, congratulations for your big work, every day better, I would be possible to modify the alphabetical separative bar as in the screenshot that I put you here?

The question is that the color of the bar is very similar to the background nd does not differ well, and it would be to put it in a gray color and with the centered letters and if it was possible of another color and a major size.

I put an screenshot to you so that you see what I mean.

Thank you very much
[G1 Android Development] Wysie:
It seems to be the default Contacts behaviour =|.
[G1 Android Development] oMszKikiIzWavyo:
Hey Wysie I Just Noticed Something, When There Isn't No Pictures, Grouping,Dial Button, Numbers, Alphabetical Order Showing Its Faster But When It Is, Its Three To Five Seconds Slower. Do You Have Any Suggestions?, I'm Using Dwang 1.17.1.
[G1 Android Development] uberingram:
Installed the latest last night. One word: Amazing.

Many thanks for your hard work on an amazing product. :D
[G1 Android Development] ArniPL:
Wysie: Did you look into my logcat? Do you have any suggestions of what may be wrong?
[G1 Android Development] Wysie:
oMszKikiIzWavyo: The one causing most of the lag is pictures... :).

Update: 2.61 out. See attached screenshot for some changes.
[G1 Android Development] nolageek:
That's hot. Love it. :)
[G1 Android Development] matata86:
in Dwang rom v 2.61 in call log allways not responding... :-(((
[G1 Android Development] polyrhythmic:
This Dialer looks awesome. Have there been any efforts to compile it for Eclair? I run Eclair and this makes my dialer look weak :p
[G1 Android Development] tjhart85:
GREAT!

2.6.1 is working great for me! I downloaded the update.zip for it and flashed it on in & I'm using Cyanogen 4.2.12.2 in case that matters to anyone.

I love how the date/time is now prioritized!

I also like how (for all my contacts anyways), the entire name is on the line without it effecting size/flow of everything.

So, the only issues I had with it have been completely fixed!

THANKS!