diff options
author | David Kohen <kohen.d@gmail.com> | 2010-08-06 01:37:18 +0300 |
---|---|---|
committer | David Kohen <kohen.d@gmail.com> | 2010-08-06 01:40:27 +0300 |
commit | 5681468cf0eed28f8ec53567bcf755cbd70f0604 (patch) | |
tree | 442a6aa1d3b70f2c6f3edbd97d9379d3b6c9e0eb /tools/layoutlib/bridge/src/android/graphics | |
parent | 99977d30ec46148fba1f3aa7ab3c47f5043c76f4 (diff) | |
download | frameworks_base-5681468cf0eed28f8ec53567bcf755cbd70f0604.zip frameworks_base-5681468cf0eed28f8ec53567bcf755cbd70f0604.tar.gz frameworks_base-5681468cf0eed28f8ec53567bcf755cbd70f0604.tar.bz2 |
Even more reshaping integration...
Now the only bug visable is extra spaces in Arabic text... Hopefully I'll debug it tommorow.
Diffstat (limited to 'tools/layoutlib/bridge/src/android/graphics')
-rw-r--r-- | tools/layoutlib/bridge/src/android/graphics/Canvas.java | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/tools/layoutlib/bridge/src/android/graphics/Canvas.java b/tools/layoutlib/bridge/src/android/graphics/Canvas.java index 08092a2..d75ec79 100644 --- a/tools/layoutlib/bridge/src/android/graphics/Canvas.java +++ b/tools/layoutlib/bridge/src/android/graphics/Canvas.java @@ -646,109 +646,6 @@ public class Canvas extends _Original_Canvas { getGraphics2d().scale(sx, sy); } - public char[] bidiProcess(char[] text,int start,int src_count) { - String str; - String oldstr=new String(text,start,src_count); - boolean hasbidi=false; - int strlen=oldstr.length(); - char[] ca=new char[strlen]; - - oldstr.getChars(0, strlen, ca, 0); - for (int i=0;i<oldstr.length();i++){ - if (ca[i]>=FIRST_RIGHT_TO_LEFT&&ca[i]<=LAST_RIGHT_TO_LEFT){ - hasbidi=true; - break; - } - } - if (hasbidi) { - char[] ca2=new char[strlen]; - int count=0,srcindex=0; - boolean rtlmode=true; - for (int i=0;i<strlen;i++){ - srcindex=strlen-1-i; - if (ca[srcindex]>=FIRST_RIGHT_TO_LEFT&&ca[srcindex]<=LAST_RIGHT_TO_LEFT){ - ca2[i]=ca[srcindex]; - rtlmode=true; - } - else { - srcindex=strlen-1-i; - if (count==0) { - if (ca[srcindex]<='\u002f' || - (ca[srcindex]>'\u0039' && ca[srcindex]<='\u0040') || - (ca[srcindex]>'\u005a' && ca[srcindex]<='\u0060')|| - (ca[srcindex]>'\u007a' && ca[srcindex]<='\u00BF')) { - - if (rtlmode){ - switch (ca[srcindex]) { - case '[': - ca2[i]=']'; - break; - case ']': - ca2[i]='['; - break; - case '}': - ca2[i]='{'; - break; - case '{': - ca2[i]='}'; - break; - case '(': - ca2[i]=')'; - break; - case ')': - ca2[i]='('; - break; - case '>': - ca2[i]='<'; - break; - case '<': - ca2[i]='>'; - break; - default: - ca2[i]=ca[srcindex]; - break; - } - } else ca2[i]=ca[srcindex]; - } else { - - while (((srcindex-count)>=0)&&(ca[srcindex-count]<FIRST_RIGHT_TO_LEFT)){ - count++; - } - int index=0; - int punctuation_marks=0; - - while ((srcindex-(count)>=0) && - (ca[srcindex-(count-1)]<='\u002f' || - (ca[srcindex-(count-1)]>'\u0039' && ca[srcindex-(count-1)]<='\u0040') || - (ca[srcindex-(count-1)]>'\u005a' && ca[srcindex-(count-1)]<='\u0060')|| - (ca[srcindex-(count-1)]>'\u007a' && ca[srcindex-(count-1)]<='\u00BF'))){ - ca2[i+(count-1)]=ca[srcindex-(count-1)]; - count--; - punctuation_marks++; - } - - while (count>0){ - ca2[i+index]=ca[srcindex-(count-1)]; - count--; - index++; - } - count=index+punctuation_marks-1; - } - } - else { - count--; - } - rtlmode=false; - } - } - str=new String(ca2); - } else - { - str=new String(oldstr); - } - return str.toCharArray(); - - } public void drawText(char[] text, int index, int count, float x, float y, Paint paint, boolean bidi) { // WARNING: the logic in this method is similar to Paint.measureText. |