[MOD]V5 Multilanguage T9 dialer


I have latest jdk and java update 27. Your framework.jar worked for me but miui updated weekly so i need to learn how can i solve this problem. Is tool have any another log system or something?
I have a 64bit windows 7.

Only error i can see is

Mounting System...
mount: can't read '/etc/fstab': No such file or directory
 
And my installed javas are
30lnjlz.jpg
 
I've made some improvements that should solve problems to 64bit users but I'm unable to test it. Please give a try.
This is also a beta version with "manual" patch addition, if anyone is willing to try please download and give feedback.
*For manual patch just put framework.jar from your rom zip (/system/framework) in the root folder of the tool and run MIUI-T9-multi.bat. When prompted choose "On device".

Auto-T9_dialer-V1.4b.zip
 
ru\uk

Can you make russian\ukrainian version of mod? Please add this characters to russian mod:
Number 2: Ґ (0490); ґ (0491);
Number 3: Є (044); є (0454);
Number 4: І (046); і (0456); Ї (047); ї (0457);

Thank you for your mod.
 
I try both ways , its not worked. I try XP Mode (In Windows Ultimate) too. Always the samething happens. I just don't get it why don't work on me.
 
Can you make russian\ukrainian version of mod? Please add this characters to russian mod:
Number 2: Ґ (0490); ґ (0491);
Number 3: Є (044); є (0454);
Number 4: І (046); і (0456); Ї (047); ї (0457);

Thank you for your mod.

Sure, will do on the coming days.

I try both ways , its not worked. I try XP Mode (In Windows Ultimate) too. Always the samething happens. I just don't get it why don't work on me.

Try right click on the bat file and "run as administrator"

and if you get a new problem send me the log
 
classes\android\webkit\PluginList.smali[0,0] No enum constant org.jf.dexlib.Anno
tationVisibility.RUNT¦ME
classes\android\webkit\UrlInterceptHandler.smali[0,0] No enum constant org.jf.de
xlib.AnnotationVisibility.RUNT¦ME
classes\android\webkit\UrlInterceptRegistry.smali[0,0] No enum constant org.jf.d
exlib.AnnotationVisibility.RUNT¦ME
classes\android\webkit\URLUtil.smali[0,0] No enum constant org.jf.dexlib.Annotat
ionVisibility.RUNT¦ME
classes\android\webkit\WebChromeClient.smali[0,0] No enum constant org.jf.dexlib
.AnnotationVisibility.RUNT¦ME
classes\android\webkit\WebSettings.smali[0,0] No enum constant org.jf.dexlib.Ann
otationVisibility.RUNT¦ME
classes\android\webkit\WebView.smali[0,0] No enum constant org.jf.dexlib.Annotat
ionVisibility.RUNT¦ME
classes\android\webkit\WebViewClient.smali[0,0] No enum constant org.jf.dexlib.A
nnotationVisibility.RUNT¦ME
classes\android\widget\AbsListView$LayoutParams.smali[0,0] No enum constant org.
jf.dexlib.AnnotationVisibility.RUNT¦ME
classes\android\widget\AbsListView.smali[0,0] No enum constant org.jf.dexlib.Ann
otationVisibility.RUNT¦ME
classes\android\widget\AbsoluteLayout.smali[10,0] No enum constant org.jf.dexlib
.AnnotationVisibility.RUNT¦ME
classes\android\widget\AdapterView.smali[0,0] No enum constant org.jf.dexlib.Ann
otationVisibility.RUNT¦ME
classes\android\widget\AnalogClock.smali[0,0] No enum constant org.jf.dexlib.Ann
otationVisibility.RUNT¦ME
classes\android\widget\AutoCompleteTextView.smali[0,0] No enum constant org.jf.d
exlib.AnnotationVisibility.RUNT¦ME
classes\android\widget\Button.smali[0,0] No enum constant org.jf.dexlib.Annotati
onVisibility.RUNT¦ME
classes\android\widget\CheckedTextView.smali[0,0] No enum constant org.jf.dexlib
.AnnotationVisibility.RUNT¦ME
classes\android\widget\Chronometer.smali[0,0] No enum constant org.jf.dexlib.Ann
otationVisibility.RUNT¦ME
classes\android\widget\CompoundButton.smali[0,0] No enum constant org.jf.dexlib.
AnnotationVisibility.RUNT¦ME
classes\android\widget\DateTimeView.smali[0,0] No enum constant org.jf.dexlib.An
notationVisibility.RUNT¦ME
classes\android\widget\FrameLayout.smali[0,0] No enum constant org.jf.dexlib.Ann
otationVisibility.RUNT¦ME
classes\android\widget\ImageButton.smali[0,0] No enum constant org.jf.dexlib.Ann
otationVisibility.RUNT¦ME
classes\android\widget\ImageView.smali[0,0] No enum constant org.jf.dexlib.Annot
ationVisibility.RUNT¦ME
classes\android\widget\LinearLayout$LayoutParams.smali[0,0] No enum constant org
.jf.dexlib.AnnotationVisibility.RUNT¦ME
classes\android\widget\LinearLayout.smali[0,0] No enum constant org.jf.dexlib.An
notationVisibility.RUNT¦ME
classes\android\widget\ListView.smali[0,0] No enum constant org.jf.dexlib.Annota
tionVisibility.RUNT¦ME
classes\android\widget\ProgressBar.smali[0,0] No enum constant org.jf.dexlib.Ann
otationVisibility.RUNT¦ME
classes\android\widget\RelativeLayout$LayoutParams.smali[0,0] No enum constant o
rg.jf.dexlib.AnnotationVisibility.RUNT¦ME
classes\android\widget\RelativeLayout.smali[0,0] No enum constant org.jf.dexlib.
AnnotationVisibility.RUNT¦ME
classes\android\widget\RemoteViews$RemoteView.smali[23,0] No enum constant org.j
f.dexlib.AnnotationVisibility.RUNT¦ME
classes\android\widget\TableRow$LayoutParams.smali[0,0] No enum constant org.jf.
dexlib.AnnotationVisibility.RUNT¦ME
classes\android\widget\TextView.smali[0,0] No enum constant org.jf.dexlib.Annota
tionVisibility.RUNT¦ME
classes\android\widget\ViewFlipper.smali[0,0] No enum constant org.jf.dexlib.Ann
otationVisibility.RUNT¦ME
classes\com\android\internal\R$attr.smali[0,0] No enum constant org.jf.dexlib.An
notationVisibility.RUNT¦ME
classes\com\android\internal\R$drawable.smali[0,0] No enum constant org.jf.dexli
b.AnnotationVisibility.RUNT¦ME
classes\com\android\internal\R$styleable.smali[0,0] No enum constant org.jf.dexl
ib.AnnotationVisibility.RUNT¦ME
classes\com\android\internal\telephony\CommandsInterface.smali[0,0] No enum cons
tant org.jf.dexlib.AnnotationVisibility.RUNT¦ME
classes\com\android\internal\telephony\PhoneStateIntentReceiver.smali[0,0] No en
um constant org.jf.dexlib.AnnotationVisibility.RUNT¦ME
classes\com\android\internal\telephony\sip\SipCommandInterface.smali[0,0] No enu
m constant org.jf.dexlib.AnnotationVisibility.RUNT¦ME
classes\com\android\internal\view\menu\IconMenuItemView.smali[0,0] No enum const
ant org.jf.dexlib.AnnotationVisibility.RUNT¦ME
classes\com\android\internal\view\menu\MenuItemImpl.smali[0,0] No enum constant
org.jf.dexlib.AnnotationVisibility.RUNT¦ME
classes\com\android\internal\widget\TextProgressBar.smali[0,0] No enum constant
org.jf.dexlib.AnnotationVisibility.RUNT¦ME
Done.
Could not compile classes.dex, please send log.txt to roenano
Press any key to quit...

Patch Type -- On Device
Creating backup of framework.jar...
C:\Users\Root\Desktop\Auto-T9_dialer-V1.4b\framework.jar
1 dosya kopyaland
Done.
Extracting classes.dex...

7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18

Processing archive: framework.jar

Extracting classes.dex

Everything is Ok

Size: 7732748
Compressed: 3438892
Done.
Decompiling classes.dex...
Done.
Repalacing HanziToPinyin.smali...
C:\Users\Root\Desktop\Auto-T9_dialer-V1.4b\contents\HanziToPinyin-T9-TR.smali
1 dosya kopyaland
Done.
Compiling classes.dex...
Done.
Could not compile classes.dex, please send log.txt to roenano

When i try to run as administrator.
 
Hello,
it seems HanziToPinyin class changed on version 1.9.30, after language switch i received following exception on device.

Could someone provide any suggestions to resolve this error?

E/AndroidRuntime( 3560): FATAL EXCEPTION: AsyncTask #1
E/AndroidRuntime( 3560): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime( 3560): at android.os.AsyncTask$3.done(AsyncTask.java:200)
E/AndroidRuntime( 3560): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
E/AndroidRuntime( 3560): at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
E/AndroidRuntime( 3560): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
E/AndroidRuntime( 3560): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
E/AndroidRuntime( 3560): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
E/AndroidRuntime( 3560): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
E/AndroidRuntime( 3560): at java.lang.Thread.run(Thread.java:1019)
E/AndroidRuntime( 3560): Caused by: java.lang.NoSuchMethodError: com.android.internal.util.HanziToPinyin.get
E/AndroidRuntime( 3560): at com.android.providers.contacts.T9SearchSupport.generateT9Key(T9SearchSupport.java:2041)
E/AndroidRuntime( 3560): at com.android.providers.contacts.T9SearchSupport.insertT9SearchItem(T9SearchSupport.java:1992)
E/AndroidRuntime( 3560): at com.android.providers.contacts.T9SearchSupport.insertT9SearchItem(T9SearchSupport.java:1971)
E/AndroidRuntime( 3560): at com.android.providers.contacts.T9SearchSupport.rebuildAll(T9SearchSupport.java:1900)
E/AndroidRuntime( 3560): at com.android.providers.contacts.ContactsDatabaseHelper.rebuildT9Lookup(ContactsDatabaseHelper.java:2287)
E/AndroidRuntime( 3560): at com.android.providers.contacts.ContactsDatabaseHelper.setLocale(ContactsDatabaseHelper.java:2309)
E/AndroidRuntime( 3560): at com.android.providers.contacts.ContactsProvider2$1.doInBackground(ContactsProvider2.java:2312)
E/AndroidRuntime( 3560): at com.android.providers.contacts.ContactsProvider2$1.doInBackground(ContactsProvider2.java:2305)
E/AndroidRuntime( 3560): at android.os.AsyncTask$2.call(AsyncTask.java:185)
E/AndroidRuntime( 3560): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
E/AndroidRuntime( 3560): ... 4 more
 
I'd like to confirm:
the T9 mod causes a FC on android.process with the latest MIUI update.

I'll double-check to make sure, but it all points to this I'm afraid.
 
I have checked the old and a new version of HanziToPinyin.smali - there are lot of changes. What I finally did is to take the new file and to overwrite the function .method public static formatCharToT9(C)C with the function I took from the old file (I was working on Russian version). I have recompiled the framework.jar and now everything is working fine - no FCs during search and contact saving. If anyone need the modified Russian version, you can find it here: http://db.tt/6vaW19lx
 
I have checked the old and a new version of HanziToPinyin.smali - there are lot of changes. What I finally did is to take the new file and to overwrite the function .method public static formatCharToT9(C)C with the function I took from the old file (I was working on Russian version). I have recompiled the framework.jar and now everything is working fine - no FCs during search and contact saving. If anyone need the modified Russian version, you can find it here: http://db.tt/6vaW19lx

That's exactly what should be done!!
May be later today I'll update all languages.
 
My ROM only has spanish languaje so I can't change my locale to other than spanish.
How can I do this step?

If you go to Language selection there must be another language to select, I don't believe the dev of your rom has deleted the default (English) and Chinese languages from every app.

Anyway, if you go to your contacts settings You'll see at the end an option to re-build T9 index data, that should do the trick too!
 
If you go to Language selection there must be another language to select, I don't believe the dev of your rom has deleted the default (English) and Chinese languages from every app.

Anyway, if you go to your contacts settings You'll see at the end an option to re-build T9 index data, that should do the trick too!

Thanks roenano. I'll try that opcion when you fix all languages for the last version.
And no, I don't have another language to select in my rom, only spanish.
 
That's exactly what should be done!!
May be later today I'll update all languages.
Pls remember to fix vietnamese, the number 6 does not contain letter " ơ ".
So pls add it, I have been waiting for a long long time :D
Tks in adv, great job!
Tks so much!
 
New version is out!!!!!!

V1.4b3:
- Thanks to "lenny_kano" all languages have been merged!! So now no need to select yours, it will be one file for everyone.
- Updated hanzitopinyin.smali to latest.
- Potentially fixed missing character in Vietnamese (needs confirmation from users).
- Added ability to patch manually on computer.
- some small improvements to the tool code.
- Added a small check to verify if there was any change to the stock file that needs to be replaced. If there was any, you will get a WARNING message and will be asked to decide if to go ahead or quit.
*Some times the change is minor and it shouldn't affect the T9 patch, so I would recommend trying it and in case something goes wrong after pushing it to the device just restore the stock framework.jar.


Instructions:
For this to work you will need "java" and "adb drivers" (for "On device" patch) installed in your computer.
* Unzip the contents of "Auto-T9_dialer-V##.zip" to any folder in you computer.

On device
1- Reboot into recovery
2- Make a nandroid backup!!!
3- Connect your phone to the computer.
4- Run "MIUI-T9-multi.bat" and select "On device".
5- Wait for it to finish, it will take some time... It pulls framework.jar file from your device, de-compiles it, replaces a file, re-compiles framework.jar and pushes it back to your device. At the end you will get a "ALL Done.!" "Press any key to finish..." message.
6- Wipe Cache and Dalvik-Cache.
7- reboot.
9- Go to Contacts Settings and press "Re-build T9 index data" at the bottom.

On computer
1- Place framework.jar from /system/framework on your rom zip or device and put it on the tool's root folder (just next to the BAT file)
2- Run "MIUI-T9-multi.bat" and select "On computer".
3- Wait for it to finish, it will take some time... it de-compiles framework.jar, replaces a file, re-compiles it. At the end you will get a "ALL Done.!" "Press any key to finish..." message. The new patched framework.jar will be in 'generated' folder.
4- After installed (in any way you like) on the device you should go to Contacts Settings and press "Re-build T9 index data" at the bottom.


Download the tool:
1.9.30 or higher:
Auto-T9_dialer-V1.4b3.zip
 
Great work!
And including all languages is perfect idea too =) Even if i can't use :D
So we have all languages in one file can you planning to share framework.jar for future updates?
And i think my problem is that, i use the modded framework.jar. (in Miui.us releases) And i don'tknow how to use .odex files, so i can't use original chinese rom files.
Do we have any option for downloading original (not modded) framework.jar ?
 
In greek language the buttons is not correct(On number 6 is more than 5 letters)On your previews version was correct.
You can do something on this???
 
Great work!
And including all languages is perfect idea too =) Even if i can't use :D
So we have all languages in one file can you planning to share framework.jar for future updates?
And i think my problem is that, i use the modded framework.jar. (in Miui.us releases) And i don'tknow how to use .odex files, so i can't use original chinese rom files.
Do we have any option for downloading original (not modded) framework.jar ?

I don't believe your problem is related to miui.us modded framework, I think is related to your computer. I'll give a try patching a miui.us framework.
Anyway, you can always download miuiandroid rom and take the framework.jar from it.

Does it include Hebrew as well ?

Thanks

Now it does!! (see OP)

In greek language the buttons is not correct(On number 6 is more than 5 letters)On your previews version was correct.
You can do something on this???

I didn't really understood your problem... Can you be a bit more specific?
thanks!