From cde015b3d424b0d83030f11432ad0a0589014bd5 Mon Sep 17 00:00:00 2001 From: Jake Hamby Date: Wed, 19 Jan 2011 14:53:44 -0800 Subject: [PATCH] Display correct HID icon for pointing and misc. devices Added placeholder icons and code for non-keyboard HID devices. ic_bt_pointing_hid.png - pointing device ic_bt_misc_hid.png - gamepad, remote control, card reader, etc. Bug: 3137982 Change-Id: Iac7a53a6fbafa9c6ed794a29aa330da314d580d8 --- res/drawable-hdpi/ic_bt_misc_hid.png | Bin 0 -> 1525 bytes res/drawable-hdpi/ic_bt_pointing_hid.png | Bin 0 -> 1525 bytes res/drawable-mdpi/ic_bt_misc_hid.png | Bin 0 -> 954 bytes res/drawable-mdpi/ic_bt_pointing_hid.png | Bin 0 -> 954 bytes .../bluetooth/CachedBluetoothDevice.java | 28 ++++++++++++++++-- 5 files changed, 25 insertions(+), 3 deletions(-) create mode 100755 res/drawable-hdpi/ic_bt_misc_hid.png create mode 100755 res/drawable-hdpi/ic_bt_pointing_hid.png create mode 100755 res/drawable-mdpi/ic_bt_misc_hid.png create mode 100755 res/drawable-mdpi/ic_bt_pointing_hid.png diff --git a/res/drawable-hdpi/ic_bt_misc_hid.png b/res/drawable-hdpi/ic_bt_misc_hid.png new file mode 100755 index 0000000000000000000000000000000000000000..ea8234a2443b41f73d2e77a6d12ccfc460444a7d GIT binary patch literal 1525 zcmV=0f;s2;??i%YfFZtE=P9&CO~c5D?wn z-J-R%Rbb9kW=~H~`2k#BUW&cFJ+ZN|LFI=|Pfs6IRaM=ut*s3=G&G31x;o+Ydi8fT zO%th9N}QaWh_kb^)vK$k`TF|$-=Nr9e}BJdZ*LbKkLP9pD2hTWi+DUv3MG@tsivl; zFQLZYpU?L+ z6bgAMfL6CN=nWbJyfk=a5+OA+FfgEd!{u^W2H>%qH0$f@K3MKoF#Uo88OIc8*ARZc zUknZoijIyBFF;IhZ*PZ@JCETdt*fi+e;~>NV0L!a4{QAmm*0WqbtO2QRI;|VHa+BO zYHG%iQ@0RaA0x3fdZMgVXl`!K4dwqrjNha3NY?xeVL2qTaJ$|5lLJXBGMSA2EF=%S z_0U9q#lZU!y(@Eq@*H~rf}b=tHs0&)?WMH}Dq<+VimDPd$|pgwoK9d(m>}{E@?>d6 z1dW4U@9yr-pi=3EaO{Ek`S}o(SnurY^s>qn8w7xNKY`#^+4JzgXOQ)KApmmh@9&G9 zot-p3eu(@~8A|j#@;s5AjhZ z%QZL3q6RZleqmu@2ubx&THZ_n8S66MN%DL4Tp?l(v9ciq$MJp$z?}ggBP5lZ@n|NT z#LbFU&$c!_z&ZYAg$HF}k8wlx1o=2BqhRtm8Coru$H&Lqq3@y`{zIiXpbQiAE~|;; zWj5G~zytU3@w<{eu(-GwMEC@$fECM;SWV!uXQ=H&s}nzi#}hkz_%4jchA>dF2M~{8 zHd!oXR`(0$3S)R=WaRB`nyZ|p9TsxA!J%oqjjw7+0HF9Sw!3zAS_&p%-6{ZN3;=Fa z6SfL^l3N`#9NrI>>;Wj^r!sZ`7**#>(2MMOeE%AcpY0k009qX-F~h)Y^T}-qVCgtp z4XG@7pqeNQ3E5s)8GP65eUAx)q}@)FrILpohMvp;h7IRr%V7Dqi1na^lMwpXZnv2) zSxZUctUOShRH0QV(5m2K0POIQ-a{0;E_ojahr!`TVwnRbC zsl1iG$=0h5B1pWd6V+6q@EA?K8)rMAQr~yC}yr{e;4?=Q`j*gb^W-gUVX%P4o8Z%y< zJcBTw1Y&1M#X(HiN$CAt9y@LEu?v7_RJs>&JpAK1DcvlzR)8eOrgmOPKnT=LL8(PQ|TM zo3a7OZpx%^Sn~~(j{r~vq45ETr>JnwQZ|MPJha0##<@W_{fDUXA6W%J1waKr1%RXR bp8x{@i*MR^2pGq800000NkvXXu0mjfMDD<6 literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/ic_bt_pointing_hid.png b/res/drawable-hdpi/ic_bt_pointing_hid.png new file mode 100755 index 0000000000000000000000000000000000000000..ea8234a2443b41f73d2e77a6d12ccfc460444a7d GIT binary patch literal 1525 zcmV=0f;s2;??i%YfFZtE=P9&CO~c5D?wn z-J-R%Rbb9kW=~H~`2k#BUW&cFJ+ZN|LFI=|Pfs6IRaM=ut*s3=G&G31x;o+Ydi8fT zO%th9N}QaWh_kb^)vK$k`TF|$-=Nr9e}BJdZ*LbKkLP9pD2hTWi+DUv3MG@tsivl; zFQLZYpU?L+ z6bgAMfL6CN=nWbJyfk=a5+OA+FfgEd!{u^W2H>%qH0$f@K3MKoF#Uo88OIc8*ARZc zUknZoijIyBFF;IhZ*PZ@JCETdt*fi+e;~>NV0L!a4{QAmm*0WqbtO2QRI;|VHa+BO zYHG%iQ@0RaA0x3fdZMgVXl`!K4dwqrjNha3NY?xeVL2qTaJ$|5lLJXBGMSA2EF=%S z_0U9q#lZU!y(@Eq@*H~rf}b=tHs0&)?WMH}Dq<+VimDPd$|pgwoK9d(m>}{E@?>d6 z1dW4U@9yr-pi=3EaO{Ek`S}o(SnurY^s>qn8w7xNKY`#^+4JzgXOQ)KApmmh@9&G9 zot-p3eu(@~8A|j#@;s5AjhZ z%QZL3q6RZleqmu@2ubx&THZ_n8S66MN%DL4Tp?l(v9ciq$MJp$z?}ggBP5lZ@n|NT z#LbFU&$c!_z&ZYAg$HF}k8wlx1o=2BqhRtm8Coru$H&Lqq3@y`{zIiXpbQiAE~|;; zWj5G~zytU3@w<{eu(-GwMEC@$fECM;SWV!uXQ=H&s}nzi#}hkz_%4jchA>dF2M~{8 zHd!oXR`(0$3S)R=WaRB`nyZ|p9TsxA!J%oqjjw7+0HF9Sw!3zAS_&p%-6{ZN3;=Fa z6SfL^l3N`#9NrI>>;Wj^r!sZ`7**#>(2MMOeE%AcpY0k009qX-F~h)Y^T}-qVCgtp z4XG@7pqeNQ3E5s)8GP65eUAx)q}@)FrILpohMvp;h7IRr%V7Dqi1na^lMwpXZnv2) zSxZUctUOShRH0QV(5m2K0POIQ-a{0;E_ojahr!`TVwnRbC zsl1iG$=0h5B1pWd6V+6q@EA?K8)rMAQr~yC}yr{e;4?=Q`j*gb^W-gUVX%P4o8Z%y< zJcBTw1Y&1M#X(HiN$CAt9y@LEu?v7_RJs>&JpAK1DcvlzR)8eOrgmOPKnT=LL8(PQ|TM zo3a7OZpx%^Sn~~(j{r~vq45ETr>JnwQZ|MPJha0##<@W_{fDUXA6W%J1waKr1%RXR bp8x{@i*MR^2pGq800000NkvXXu0mjfMDD<6 literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_bt_misc_hid.png b/res/drawable-mdpi/ic_bt_misc_hid.png new file mode 100755 index 0000000000000000000000000000000000000000..b84d9447738478b608a90245af7d16c675648202 GIT binary patch literal 954 zcmV;r14aCaP)68cX!W>jg9@hw*s@Xv+B{&QCd~icsLvue!pM1TrN}I zi;D}fzrQbv#iGzOE$j376653J+MN}cpPyGxPfwS7dV18pzCPjgdVdQ!90Kmve>sSO zum}SSGGcvwU2JY{YLFQk9UawdE09j7J?H1=Utw{)zrX(vt2uYO-8mB1;ER#y0ofaC zYikTm7JN?=iA2R#62ijC*4EZIVyRn73*`aDUt#YX=dd<{{k+UW8OkCb;-E=<`e3;X zGntIi*x2}niH5|}50?o!LCdbq<(%JY`6x>aViD7_0&wwj2>ILE+Vr^AQZ>;$20!L5 zelz1G2C;}~IRs>8!ZFdza)j|Mm&>1$$z+!Mp-?E^-rjD?OAKORj|wbUQUFOa?D2U1 zin}pTlA^b_Hv;eo*RtEq2Cgk_1W3k2zaOJDFB{MJ0Ykb zi<@o&1Q_Y_z`y`ouqYG?EU~GZN}3fxOgjo}15CL|fs>OHA=muj;i29ekZkolwr!^h zaz=-%M^aC?mCwMmqyU5#jn-OQ+hz$@k4I|Li*`EUA_Pi^onLl!?Sb;ztXozqiieko zY1spjNQC$Kv~k(gT7{C*6H!h|elzn>6=S-JY3oHa4UjAoh+y=DL3?|9Vs&*jWH4eL z<~Ny#GF90uvF>yo=ks|L7A(U$6&K32RlB>pVq;^2*R8(Bbr{U%}?|HhqUcEEsY`thwS$HB5i^a5iJxU3H!=J&TcetL*EiElV zz9&dVzvmu#$V-{q4!8U!G{(xxiUM!Egr$6xs?^VL6o~F#g4GLygM68cX!W>jg9@hw*s@Xv+B{&QCd~icsLvue!pM1TrN}I zi;D}fzrQbv#iGzOE$j376653J+MN}cpPyGxPfwS7dV18pzCPjgdVdQ!90Kmve>sSO zum}SSGGcvwU2JY{YLFQk9UawdE09j7J?H1=Utw{)zrX(vt2uYO-8mB1;ER#y0ofaC zYikTm7JN?=iA2R#62ijC*4EZIVyRn73*`aDUt#YX=dd<{{k+UW8OkCb;-E=<`e3;X zGntIi*x2}niH5|}50?o!LCdbq<(%JY`6x>aViD7_0&wwj2>ILE+Vr^AQZ>;$20!L5 zelz1G2C;}~IRs>8!ZFdza)j|Mm&>1$$z+!Mp-?E^-rjD?OAKORj|wbUQUFOa?D2U1 zin}pTlA^b_Hv;eo*RtEq2Cgk_1W3k2zaOJDFB{MJ0Ykb zi<@o&1Q_Y_z`y`ouqYG?EU~GZN}3fxOgjo}15CL|fs>OHA=muj;i29ekZkolwr!^h zaz=-%M^aC?mCwMmqyU5#jn-OQ+hz$@k4I|Li*`EUA_Pi^onLl!?Sb;ztXozqiieko zY1spjNQC$Kv~k(gT7{C*6H!h|elzn>6=S-JY3oHa4UjAoh+y=DL3?|9Vs&*jWH4eL z<~Ny#GF90uvF>yo=ks|L7A(U$6&K32RlB>pVq;^2*R8(Bbr{U%}?|HhqUcEEsY`thwS$HB5i^a5iJxU3H!=J&TcetL*EiElV zz9&dVzvmu#$V-{q4!8U!G{(xxiUM!Egr$6xs?^VL6o~F#g4GLygM { case BluetoothClass.Device.Major.PHONE: return R.drawable.ic_bt_cellphone; + + case BluetoothClass.Device.Major.PERIPHERAL: + return getHidClassDrawable(); } } else { Log.w(TAG, "mBtClass is null"); @@ -554,6 +557,20 @@ class CachedBluetoothDevice implements Comparable { return 0; } + private int getHidClassDrawable() { + switch (mBtClass.getDeviceClass()) { + case BluetoothClass.Device.PERIPHERAL_KEYBOARD: + case BluetoothClass.Device.PERIPHERAL_KEYBOARD_POINTING: + return R.drawable.ic_bt_keyboard_hid; + + case BluetoothClass.Device.PERIPHERAL_POINTING: + return R.drawable.ic_bt_pointing_hid; + + default: + return R.drawable.ic_bt_misc_hid; + } + } + /** * Fetches a new value for the cached BT class. */ @@ -661,9 +678,14 @@ class CachedBluetoothDevice implements Comparable { Map drawables = new HashMap(); for (Profile profile : mProfiles) { - LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager - .getProfileManager(mLocalManager, profile); - int iconResource = profileManager.getDrawableResource(); + int iconResource; + if (profile == Profile.HID && mBtClass != null) { + iconResource = getHidClassDrawable(); + } else { + LocalBluetoothProfileManager profileManager = LocalBluetoothProfileManager + .getProfileManager(mLocalManager, profile); + iconResource = profileManager.getDrawableResource(); + } if (iconResource != 0) { drawables.put(profile, mContext.getResources().getDrawable(iconResource)); }