Clover Coverage Report - AnCal Coverage Report
Coverage timestamp: gio dic 18 2014 12:18:42 EST
../../../../img/srcFileCovDistChart9.png 40% of files have more coverage
45   155   20   3,21
12   122   0,44   14
14     1,43  
1    
This report was generated with an evaluation server license. Purchase Clover or configure your license.
 
  KeyItem       Line # 9 45 20 88,7% 0.8873239
 
No Tests
 
1   
2    package pl.magot.vetch.widgets;
3   
4   
5    import android.graphics.RectF;
6    import android.view.*;
7   
8   
 
9    public class KeyItem
10    {
11    //key types
12    protected final static int kDefault = 0;
13    protected final static int kDefaultSpace = 1;
14    protected final static int kMode = 2;
15    protected final static int kDelete = 3;
16    protected final static int kAlphaCycle = 4;
17    protected final static int kReturn = 5;
18   
19    //fields
20    public String sChar = null;
21    public String sCharSmall = null;
22    public int iCode = KeyEvent.KEYCODE_UNKNOWN;
23    public boolean bAlt = false;
24    public int iType = kDefault;
25   
26    //fields
27    public RectF rectFocus = new RectF();
28    public RectF rectFrame = new RectF();
29   
30    //fields
31    public int iSymbolWidth = 0;
32    public int iSymbolHeight = 0;
33    public boolean bIsActive = false;
34   
35    //fields
36    private KeyItem keyDelete = null;
37    private KeyItem[] cycleKeys = null;
38    private int iCycleIndex = 0;
39    private long lClickTime = 0;
40   
41    //methods
 
42  310 toggle KeyItem(String sChar, int iCode, int iType, boolean bAlt)
43    {
44  310 this.sChar = sChar;
45  310 this.sCharSmall = sChar.toLowerCase();
46  310 this.iCode = iCode;
47  310 this.iType = iType;
48  310 this.bAlt = bAlt;
49    }
50   
 
51  5 toggle KeyItem(String sCycleSequence, final KeyItem[] cycleKeys)
52    {
53  5 this(sCycleSequence, 0, kAlphaCycle, false);
54  5 this.cycleKeys = cycleKeys;
55  5 this.keyDelete = new KeyItem("del", KeyEvent.KEYCODE_DEL, KeyItem.kDelete, false);
56    }
57   
 
58  285 toggle public void setSymbolSize(int iWidth, int iHeight)
59    {
60  285 iSymbolWidth = iWidth;
61  285 iSymbolHeight = iHeight;
62    }
63   
 
64  285 toggle public void setRectangle(int iLeft, int iTop, int iWidth, int iHeight)
65    {
66  285 rectFocus.set(iLeft, iTop, iLeft + iWidth, iTop + iHeight);
67  285 rectFrame.set(rectFocus);
68  285 rectFrame.inset(1, 1);
69    }
70   
 
71  3037 toggle public boolean isDefaultKey()
72    {
73  3037 return ((iType == kDefault) || (iType == kDefaultSpace));
74    }
75   
 
76  2976 toggle public boolean isSpaceKey()
77    {
78  2976 return (iType == kDefaultSpace);
79    }
80   
 
81  26 toggle public boolean isModeKey()
82    {
83  26 return (iType == kMode);
84    }
85   
 
86  0 toggle public boolean isCycleKey()
87    {
88  0 return (iType == kAlphaCycle);
89    }
90   
 
91  60 toggle public void sendKeyEvent(View targetView, int iAction, int iKeyCode)
92    {
93  60 KeyEvent event = new KeyEvent(iAction, iKeyCode);
94  60 targetView.dispatchKeyEvent(event);
95    }
96   
 
97  25 toggle public void sendKeyEventClick(View targetView)
98    {
99  25 sendKeyEvent(targetView, KeyEvent.ACTION_DOWN, iCode);
100  25 sendKeyEvent(targetView, KeyEvent.ACTION_UP, iCode);
101    }
102   
 
103  38 toggle public void sendKeyEventModifier(View targetView, int iAction, boolean bCapital)
104    {
105  38 if (bCapital)
106  10 sendKeyEvent(targetView, iAction, KeyEvent.KEYCODE_SHIFT_LEFT);
107  38 if (bAlt)
108  0 sendKeyEvent(targetView, iAction, KeyEvent.KEYCODE_ALT_LEFT);
109    }
110   
 
111  26 toggle public void sendKey(View targetView, boolean bCapital)
112    {
113  26 if (iType == kDefault)
114    {
115  19 sendKeyEventModifier(targetView, KeyEvent.ACTION_DOWN, bCapital);
116  19 sendKeyEventClick(targetView);
117  19 sendKeyEventModifier(targetView, KeyEvent.ACTION_UP, bCapital);
118    } else {
119  7 if (iType == kAlphaCycle)
120    {
121  1 sendKeyCycled(targetView);
122    } else {
123  6 sendKeyEventClick(targetView);
124    }
125    }
126    }
127   
 
128  1 toggle private int getCycleIndex()
129    {
130  1 if (iCycleIndex > (cycleKeys.length - 1))
131  0 iCycleIndex = 0;
132  1 int iout = iCycleIndex;
133  1 iCycleIndex++;
134  1 return iout;
135    }
136   
 
137  1 toggle private void sendKeyCycled(View targetView)
138    {
139  1 final long lDuration = System.currentTimeMillis() - lClickTime;
140   
141  1 if (lDuration > 500)
142    {
143  1 iCycleIndex = 0;
144    } else {
145  0 keyDelete.sendKey(targetView, false);
146    }
147   
148  1 final int index = getCycleIndex();
149   
150  1 lClickTime = System.currentTimeMillis();
151  1 KeyItem key = cycleKeys[index];
152  1 key.sendKey(targetView, false);
153    }
154   
155    }