diff options
| author | Kenny Root <kenny@the-b.org> | 2014-10-18 17:46:22 -0700 | 
|---|---|---|
| committer | Kenny Root <kenny@the-b.org> | 2014-10-18 17:46:41 -0700 | 
| commit | bbc1e5a8d932629d8bbce1b1610901a187957fb9 (patch) | |
| tree | e876cf2efb5d47aeeea05921c671406506a80bdb /src | |
| parent | 34cd9778e0da1d45723ef76f00840c648f743239 (diff) | |
| download | connectbot-bbc1e5a8d932629d8bbce1b1610901a187957fb9.tar.gz connectbot-bbc1e5a8d932629d8bbce1b1610901a187957fb9.tar.bz2 connectbot-bbc1e5a8d932629d8bbce1b1610901a187957fb9.zip | |
Add class hiding for KeyEvent debugging
Change-Id: Id34acf00f9ec538d81b72b970ae1990c6ed36510
Diffstat (limited to 'src')
| -rw-r--r-- | src/org/connectbot/service/KeyEventUtil.java | 57 | 
1 files changed, 54 insertions, 3 deletions
| diff --git a/src/org/connectbot/service/KeyEventUtil.java b/src/org/connectbot/service/KeyEventUtil.java index 8ad645d..1362afa 100644 --- a/src/org/connectbot/service/KeyEventUtil.java +++ b/src/org/connectbot/service/KeyEventUtil.java @@ -16,6 +16,8 @@   */  package org.connectbot.service; +import android.annotation.TargetApi; +import android.os.Build;  import android.view.KeyEvent;  public class KeyEventUtil { @@ -75,10 +77,60 @@ public class KeyEventUtil {  		return sb.append('"').toString();  	} +	private static class ClassCompat { +		private static final ClassCompat INSTANCE; +		static { +			if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { +				INSTANCE = new HCMR2AndNewer(); +			} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) { +				INSTANCE = new HCMR1AndNewer(); +			} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { +				INSTANCE = new GingerbreadAndNewer(); +			} else { +				INSTANCE = new ClassCompat(); +			} +		} + +		private ClassCompat() { +		} + +		public static void appendExtras(StringBuilder d, int keyCode, KeyEvent event) { +			INSTANCE.appendForApi(d, keyCode, event); +		} + +		protected void appendForApi(StringBuilder d, int keyCode, KeyEvent event) { +		} + +		@TargetApi(9) +		private static class GingerbreadAndNewer extends ClassCompat { +			@Override +			protected void appendForApi(StringBuilder d, int keyCode, KeyEvent event) { +				super.appendForApi(d, keyCode, event); +				d.append(", source=").append(event.getSource()); + +			} +		} +		@TargetApi(12) +		private static class HCMR1AndNewer extends GingerbreadAndNewer { +			protected void appendForApi(StringBuilder d, int keyCode, KeyEvent event) { +				super.appendForApi(d, keyCode, event); +				d.append(", keyCodeToString=").append(KeyEvent.keyCodeToString(keyCode)); +			} +		} + +		@TargetApi(13) +		private static class HCMR2AndNewer extends HCMR1AndNewer { +			@Override +			protected void appendForApi(StringBuilder d, int keyCode, KeyEvent event) { +				super.appendForApi(d, keyCode, event); +				d.append(", modifiers=").append(Integer.toHexString(event.getModifiers())); +			} +		} +	} +  	public static String describeKeyEvent(int keyCode, KeyEvent event) {  		StringBuilder d = new StringBuilder();  		d.append("keyCode=").append(keyCode); -		d.append(", keyCodeToString=").append(KeyEvent.keyCodeToString(keyCode));  		d.append(", event.toString=").append(event.toString());  		d.append(", action=").append(event.getAction());  		d.append(", characters=").append(printableRepresentation(event.getCharacters())); @@ -88,11 +140,10 @@ public class KeyEventUtil {  		d.append(", printingKey=").append(event.isPrintingKey());  		d.append(", keyCode=").append(event.getKeyCode());  		d.append(", metaState=0x").append(Integer.toHexString(event.getMetaState())); -		d.append(", modifiers=0x").append(Integer.toHexString(event.getModifiers()));  		d.append(", number=").append((int) event.getNumber());  		d.append(", scanCode=").append(event.getScanCode()); -		d.append(", source=").append(event.getSource());  		d.append(", unicodeChar=").append(event.getUnicodeChar()); +		ClassCompat.appendExtras(d, keyCode, event);  		return d.toString();  	}  } | 
