From d6cbfa18f869d0c49a293c75c40e1b37723191c6 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Tue, 31 Mar 2015 01:21:57 +0200 Subject: [PATCH 1/4] Update rotate drawable --- OsmAnd/res/layout/dash_parking_fragment.xml | 2 +- OsmAnd/res/values-large/sizes.xml | 2 +- .../plus/dashboard/DashLocationFragment.java | 6 +---- .../parkingpoint/DashParkingFragment.java | 8 +++++- .../osmand/plus/views/DirectionDrawable.java | 25 ++++++++++--------- 5 files changed, 23 insertions(+), 20 deletions(-) diff --git a/OsmAnd/res/layout/dash_parking_fragment.xml b/OsmAnd/res/layout/dash_parking_fragment.xml index 9abda1a58a..db362acbee 100644 --- a/OsmAnd/res/layout/dash_parking_fragment.xml +++ b/OsmAnd/res/layout/dash_parking_fragment.xml @@ -21,7 +21,7 @@ android:layout_marginLeft="@dimen/dashboard_parking_left_margin" android:layout_marginRight="@dimen/dashFavIconMargin" android:src="@drawable/ic_action_start_navigation" - android:scaleType="center" + android:scaleType="centerInside" android:background="@drawable/btn_inset_circle_no_shadow"/> 140dp 78dp - 127dp + 112dp 32dp 48dp 120dp diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashLocationFragment.java b/OsmAnd/src/net/osmand/plus/dashboard/DashLocationFragment.java index a6028a1847..1b7e133e98 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashLocationFragment.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashLocationFragment.java @@ -134,11 +134,7 @@ public abstract class DashLocationFragment extends DashBaseFragment { arrowResId = R.drawable.ic_destination_arrow_white; } DirectionDrawable dd = (DirectionDrawable) arrow.getDrawable(); - if (paint) { - dd.setImage(arrowResId, useCenter ? R.color.color_distance : R.color.color_myloc_distance); - } else { - dd.setImage(arrowResId, useCenter ? R.color.color_distance : R.color.color_white); - } + dd.setImage(arrowResId, useCenter ? R.color.color_distance : R.color.color_myloc_distance); if (fromLoc == null || h == null) { dd.setAngle(0); } else { diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/DashParkingFragment.java b/OsmAnd/src/net/osmand/plus/parkingpoint/DashParkingFragment.java index 473ddefe7a..b303936966 100644 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/DashParkingFragment.java +++ b/OsmAnd/src/net/osmand/plus/parkingpoint/DashParkingFragment.java @@ -4,6 +4,7 @@ import android.app.AlertDialog; import android.content.DialogInterface; import android.graphics.Color; import android.graphics.Typeface; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -11,7 +12,6 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; - import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.plus.OsmandPlugin; @@ -19,6 +19,7 @@ import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.dashboard.DashLocationFragment; import net.osmand.plus.helpers.FontCache; +import net.osmand.plus.views.DirectionDrawable; import java.util.Calendar; @@ -113,6 +114,11 @@ public class DashParkingFragment extends DashLocationFragment { ImageView direction = (ImageView) mainView.findViewById(R.id.direction_icon); if (loc != null) { DashLocationView dv = new DashLocationView(direction, (TextView) mainView.findViewById(R.id.distance), position); +// Drawable dds = getMyApplication().getIconsCache().getIcon(R.drawable.ic_action_start_navigation, +// R.color.color_distance); +// DirectionDrawable dd = new DirectionDrawable(mainView.getContext(), +// dds.getIntrinsicWidth(), dds.getIntrinsicHeight()); +// direction.setImageDrawable(dd); dv.paint = false; dv.arrowResId = R.drawable.ic_action_start_navigation; distances.add(dv); diff --git a/OsmAnd/src/net/osmand/plus/views/DirectionDrawable.java b/OsmAnd/src/net/osmand/plus/views/DirectionDrawable.java index 23ca77a6b1..94593f415f 100644 --- a/OsmAnd/src/net/osmand/plus/views/DirectionDrawable.java +++ b/OsmAnd/src/net/osmand/plus/views/DirectionDrawable.java @@ -35,13 +35,12 @@ public class DirectionDrawable extends Drawable { this.resourceId = resourceId; } - public void setImage(int resourceId){ + public void setImage(int resourceId) { IconsCache iconsCache = ((OsmandApplication) ctx.getApplicationContext()).getIconsCache(); arrowImage = iconsCache.getIcon(resourceId, 0); this.resourceId = resourceId; } - - + public DirectionDrawable(Context ctx, float width, float height) { this.ctx = ctx; this.width = width; @@ -77,21 +76,23 @@ public class DirectionDrawable extends Drawable { @Override public void draw(Canvas canvas) { + canvas.save(); + if (arrowImage != null) { - canvas.rotate(angle, canvas.getHeight() / 2, canvas.getWidth() / 2); - arrowImage.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + int w = arrowImage.getIntrinsicWidth(); + int h = arrowImage.getIntrinsicHeight(); + int dx = canvas.getWidth() - w; + int dy = canvas.getHeight() - h; + arrowImage.setBounds(0, 0, w, h); + canvas.rotate(angle, canvas.getWidth() / 2, canvas.getHeight() / 2); + canvas.translate(dx/2, dy/2); arrowImage.draw(canvas); - // TODO delete? -// Bitmap arrow = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888); -// Canvas canv = new Canvas(arrow); -// arrowImage.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); -// arrowImage.draw(canv); -// canvas.drawBitmap(arrow, null, new Rect(0, 0, arrow.getHeight(), arrow.getWidth()), null); } else { - canvas.rotate(angle, canvas.getHeight()/2, canvas.getWidth() / 2); + canvas.rotate(angle, canvas.getWidth() / 2, canvas.getHeight() / 2); Path directionPath = createDirectionPath(); canvas.drawPath(directionPath, paintRouteDirection); } + canvas.restore(); } @Override From d83ecbc50776eee78e50c7cc0a00bd8eb1455789 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Wed, 1 Apr 2015 15:38:27 +0200 Subject: [PATCH 2/4] Parking drawable --- OsmAnd/res/layout/dash_parking_fragment.xml | 2 +- .../parkingpoint/DashParkingFragment.java | 7 +----- .../osmand/plus/views/DirectionDrawable.java | 22 ++++++++++++++++--- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/OsmAnd/res/layout/dash_parking_fragment.xml b/OsmAnd/res/layout/dash_parking_fragment.xml index db362acbee..9abda1a58a 100644 --- a/OsmAnd/res/layout/dash_parking_fragment.xml +++ b/OsmAnd/res/layout/dash_parking_fragment.xml @@ -21,7 +21,7 @@ android:layout_marginLeft="@dimen/dashboard_parking_left_margin" android:layout_marginRight="@dimen/dashFavIconMargin" android:src="@drawable/ic_action_start_navigation" - android:scaleType="centerInside" + android:scaleType="center" android:background="@drawable/btn_inset_circle_no_shadow"/> Date: Wed, 1 Apr 2015 16:15:08 +0200 Subject: [PATCH 3/4] Update icons --- ..._widget_gpx.png => ic_action_altitude.png} | Bin 1242 -> 1289 bytes ...et_gps_info.png => ic_action_gps_info.png} | Bin .../ic_action_speed.png} | Bin 1387 -> 1353 bytes OsmAnd/res/drawable-mdpi/ic_action_time.png | Bin 0 -> 1379 bytes .../ic_action_time_to_distance.png | Bin 0 -> 1388 bytes .../res/drawable-xhdpi/ic_action_altitude.png | Bin 0 -> 1577 bytes ...et_gps_info.png => ic_action_gps_info.png} | Bin OsmAnd/res/drawable-xhdpi/ic_action_speed.png | Bin 0 -> 1784 bytes OsmAnd/res/drawable-xhdpi/ic_action_time.png | Bin 0 -> 1801 bytes .../ic_action_time_to_distance.png | Bin 0 -> 1944 bytes OsmAnd/res/drawable-xhdpi/ic_widget_gpx.png | Bin 1531 -> 0 bytes .../drawable-xxhdpi/ic_action_altitude.png | Bin 0 -> 1947 bytes ...et_gps_info.png => ic_action_gps_info.png} | Bin .../res/drawable-xxhdpi/ic_action_speed.png | Bin 0 -> 2276 bytes OsmAnd/res/drawable-xxhdpi/ic_action_time.png | Bin 0 -> 2388 bytes .../ic_action_time_to_distance.png | Bin 0 -> 2394 bytes OsmAnd/res/drawable-xxhdpi/ic_widget_gpx.png | Bin 1890 -> 0 bytes OsmAnd/res/layout/drawer_list_item.xml | 2 +- OsmAnd/res/layout/osmo_create_group.xml | 2 +- .../net/osmand/plus/helpers/GpxUiHelper.java | 2 +- .../osmand/plus/osmo/OsMoGroupsActivity.java | 4 ++-- .../plus/sherpafy/SherpafyCustomization.java | 4 ++-- .../osmand/plus/views/MapControlsLayer.java | 2 +- 23 files changed, 8 insertions(+), 8 deletions(-) rename OsmAnd/res/drawable-mdpi/{ic_widget_gpx.png => ic_action_altitude.png} (60%) rename OsmAnd/res/drawable-mdpi/{widget_gps_info.png => ic_action_gps_info.png} (100%) rename OsmAnd/res/{drawable-hdpi/ic_widget_gpx.png => drawable-mdpi/ic_action_speed.png} (51%) create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_time.png create mode 100644 OsmAnd/res/drawable-mdpi/ic_action_time_to_distance.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_altitude.png rename OsmAnd/res/drawable-xhdpi/{widget_gps_info.png => ic_action_gps_info.png} (100%) create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_speed.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_time.png create mode 100644 OsmAnd/res/drawable-xhdpi/ic_action_time_to_distance.png delete mode 100644 OsmAnd/res/drawable-xhdpi/ic_widget_gpx.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_altitude.png rename OsmAnd/res/drawable-xxhdpi/{widget_gps_info.png => ic_action_gps_info.png} (100%) create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_speed.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_time.png create mode 100644 OsmAnd/res/drawable-xxhdpi/ic_action_time_to_distance.png delete mode 100644 OsmAnd/res/drawable-xxhdpi/ic_widget_gpx.png diff --git a/OsmAnd/res/drawable-mdpi/ic_widget_gpx.png b/OsmAnd/res/drawable-mdpi/ic_action_altitude.png similarity index 60% rename from OsmAnd/res/drawable-mdpi/ic_widget_gpx.png rename to OsmAnd/res/drawable-mdpi/ic_action_altitude.png index 44a32bd8f289ca593a2d7f98ccc2b41bed184ddc..aa795794c8abc19f3f1f4983367f30178f1ef4aa 100644 GIT binary patch delta 360 zcmV-u0hj*T35g1@Ujhd*MMXtHIX9DL0yPIRMMXtHIX1JR0wMu_O~{*`0003gNkl_rO;+JM*w%ANwmoOo4(@&O4r z0Eqtq@lPPW`yT>Y@#(>5m>CcUBk`4h_yg3?LLfE=;=fSKG)c998Hmq7HM;;Y2N0iw z8omaI8KLT?L&Xk%Ac+xWLH2(H_zJ{Zq3qj0%#Wl_5Qtww<>H97Kmv&0Lp2>ivgjKS z8(>i%1C@UT#6rYauo$XgGc>5yLix!!d&*+xcFM*80000%9e$t6D z#uVQy_45XWH3+Z+G|(d&wIYSkz#eGLXSFys*+Aoj4NxKtYC4BOkCT;-R-!iKFrbq3 zIdH`VbwCZwavIcso_#vG--M1SiAvCWVBx&m@dvPy{)4dw9k65ucVHd*4=7VAo+*#$ z;ECuM+XE?6ZeYzXj(+Bw%p;OA9UEP+7fG2W8}NvvOvfJI;2uz>w&y%OnNBv4@U@Ul ztc9c+P!qi2#9Mq0Ho;VbD$>TQ90qh(*wwxe9lImc|I(Kj>Mg(kiOzU)HQQY!00000 LNkvXXu0mjfqY#Hw diff --git a/OsmAnd/res/drawable-mdpi/widget_gps_info.png b/OsmAnd/res/drawable-mdpi/ic_action_gps_info.png similarity index 100% rename from OsmAnd/res/drawable-mdpi/widget_gps_info.png rename to OsmAnd/res/drawable-mdpi/ic_action_gps_info.png diff --git a/OsmAnd/res/drawable-hdpi/ic_widget_gpx.png b/OsmAnd/res/drawable-mdpi/ic_action_speed.png similarity index 51% rename from OsmAnd/res/drawable-hdpi/ic_widget_gpx.png rename to OsmAnd/res/drawable-mdpi/ic_action_speed.png index bb4a04413fee05604fd317e021218b5d80079fa6..a6de19816eea648959f39eee687eaf554b6b528f 100644 GIT binary patch delta 510 zcmaFOb&^Z5Gr-TCmrII^fq{Y7)59eQNK1e)2OE%lP;UEUqoOU7g0qpStC6LFle3G3 zsiC2(iKUs7p|gpxqqD1{p_7q`+2lGV8JHqRT#7dDV&Y<~-}{u|4+8^Zrl*TzNX4x; zQ+InYJ4&?PO_B7@R#dpL)FU%BdAgIq0*ql=(vZiypn zE#u~cvF8s-&gl7{qMx*sS)Tj<(>Zf*ubZxN@=!kC`}+@;vvF-XU>3oAI)Q86K~W3l z=RGHtO$#=#&YSe+1A9Mn|q6G|lE;8*|`CXUc-<%ijsyW6?kMaSvnY>SgEdL>T=@D7u*Vp+0Tyf8K>| zhUOPHb`?HXs{LM6!+7uD(#Oxv^IU!~^?Yc1hIq@8*DE47Zb_S#apL7yZ<#>f`BKiA z{8m2qxMxpq-}1aqO7^-dcVt1pp@jK+7rtJ!^i4x_fOcX)^80m?)BmxbvIulNzWv_* k@BZtW&MWc8Gx0DqER#D|ArSf;7^4gvp00i_>zopr07Z_^L;wH) delta 544 zcmX@f^_okuGr-TCmrII^fq{Y7)59eQNUMM_2OE%l$S`BZMnzjD1t$X+BXd&=6K59- zQ$s^n6AKGd3nxP}H)As=OE)to$H{d}GB8EPxD;*P#l*!}|0J}fn1O+@+tbA{q~g|_ z=?A?II|#H*4hmYS{`H0PmC5^>_c@4vRIAFW`XcD88KJ8xcf|cdcc_QUqx}Yr3svsk zeN)yusj)w&ti5d4=l3P*I$cT`lfO1iixj`GpHG9y(Bpvh#0xP`bd)MjnOLxOFS;l8 zMEHhKmQ3}}*Xa*j9@c;7IOnkK^_07t5{e91-5*RiX1TWaKyUvPRUOmIU0E?{+S&YBTtq1-4s6IY5iDM)PM1z6+rE9wuRnh*T=ezzoIOQ_C&LAeYg4||IUF$wk9yMCH(c(CBaMp~=F;8Aiy8rcCtV6xl0(nL@hOKwQ V<2G*R*$Rww22WQ%mvv4FO#odI>x2LR diff --git a/OsmAnd/res/drawable-mdpi/ic_action_time.png b/OsmAnd/res/drawable-mdpi/ic_action_time.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb67a5fa35fab145b85d5e02e0aa2327e2efdeb GIT binary patch literal 1379 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n9DLlB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuU&_u!9QqR!T z%-qskN5Kfl*Eg`xH!{#Qu(UEYwlXkMfC43;ZAB?*RzWUqP`iLUTcwPWk^(Dz{qpj1 zy>er{{GxPyLrY6beFGzXBO_g)3fZE`@j@x4_pIZg5^PG@yV%reBd*pl_&Wpr4xy@)uZjaY;}r!Wmdq7l%|9r0NHy z7U!21B?IFlO&O*c7&4a6BsFpIWGChrManjC7v#}NvosTP zBLfo)-BeREBV9`i6JuQqQ^OQpQ)4s3RHM{H1Jh(fm^s+=I~$q08d(|`JG%h28M>NS znmHLdn;1JfyE+;=8JU>D^m^tMmn7yTr^4*c1lkSNYlK&?m2**QVo82cNPd0}EENP~ zxAZ!`UhmiyKlclTD4y z%`A13%nTECO%hEEbuE%i4S~U7X^@y?Zj@?amaGKTpF(c<=>r|54@xXZi3cVGOpzca zJSzY>@XVB&2h2f5z^tO-p(?<@z}W2R;uunK>&mo^Ud)aHZN-Act^Nx%S)`SxgN@E3EcEPx#b3X@0@ll~ZpV6kdG2#l*u} zqj2q_Ys=5(Y$<;r9R4^X-9O`u;PvBHog%&5OOoR_CP<_;gx5`Hc^F+Mf1t4I!J?&8 zEt=&%muoz+(AzKk!R@|u_P>U2-Yb2a7y6in7BGHWW5oN`Xl~l#tvzm^W5ZnyT30Kb z*!5tK3yG~y^Y((!gspgJauCR-VJQ4w(M`P mwwr0Y(sOV9|L~8B2N)iUm(MyBcq|4~?0LHSxvX5J#3(Gj+zeY$_P1h{+5K_%WRIVTywqgsP zj9{oFTCqBln{-J;@JO4i@iAPEY)e{jfQX<< zVNFtGG+~kVD=nH8gORSL5DL59>xSjX8c~okBF2XaN>37@P$I7t?TF?D|Aw)lcEr~f z280(xlonNh^=RCd1Virb?I@uLqv2{*2^NKKb|^wi2*{etVa4E$UX(}pb|#y_LZumJL)7^RHBici88Hb z?EtFO3dG&25<*va=A;c`0IXm#m>CxLGZc>-c_W2e{3Z(0!IHe+OalueU~72s|MEw` zpom1X{HJ-6N3bIk+x1a^!ul`)8BUN2N2TlL6%s*G4!aySUu4KAhR>2Bx_XO!AXw-YlbN5}V`J@R{Nl}9&G@}6Tj9_`A$KKAqE z@W3vwWl;zO0@3#krPb4xmrn5G2Myv_7MXK=rs%nN?eLiCwbOY8_2~=e_D@Wm2Mb8a zY~jHl4;=b+px|?N{>S$fRl54Si%$2{NjXDVkDL*EJHBu}%`88avh^!(G_B)q@rgGG zQjWRz|MuBik6kv;pSy;RcW4=i*;4*?d`n~HmuIi-yu7Kp=a)OS5$DXa-(j7e zOYC0-6U8}wSAx;L3l+A?lbPQlFQapl@y?mD?>`D&?EU&d=JieTWW%n87ldQ2wYTu| z%yj&lL2LM(JEO^@(%~0;Vo}T3D=Z zmIvEjoXzgPI$wVAp&LqXVX?3B)sb8ML!DuMsbaS2fj4*XnFl^7+0N7rJfGhDVfSt3 qYIeG(x!WDm-%S1E`rq#^=QkjW)32Ob6w%zo|Ig*Dah$1Y==lffG3pKg literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_altitude.png b/OsmAnd/res/drawable-xhdpi/ic_action_altitude.png new file mode 100644 index 0000000000000000000000000000000000000000..bd013ee05f5e24e1bc29feb02592a1dc3a7e2b44 GIT binary patch literal 1577 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%w?G&5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8l;|;8yV;tSX!AHTNxNBK!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EVetCJh zUb(Seeo?xG?WUP)qwZeFo6%mkOz;^d;tf|AVqJOz-6iAnjT zCALaHmqNUdTj1*pH#n~t8c@I>)2~P@&^OdG(9g{U`3tPNxFjeQ;S8**i$f|4QuTvU zi}Op1l7aD&rVP^z3_JW5ffNE=W946z35=A)9GCp$(%jU%5>FRfC7_I6N@j|cS(=Ht zk%5VYZmOx7k*=kMiLtJQsbPw)sj-=1s!?j9foZZK%p7d`9Zd{O42=y;on3(13|&nu z3|tLdEKCec9nGE19UVEnCW$77x)w>MhQQ#kG)PP`H%hfIOICvFPa!w_^ns4j2PGDy!~+uorbrMI zo)v%`cxFn?1LmM2U{+c0F;Aa?fyvX;#WAGf)|(mL8m^8K$79zEL{_9M6q%&4@XB3} zMN>4m%Yx)orN!hTBW`%SJC*IeF)%DFZ2DZ4i5@xui>A1o_+9yD`Lky~&ODq~eSYS- zwLf2N-%i)}X$9Bs_bpE_U-$dZ_UHf;=e$U%4=sm8W?k)h zD?Ek$@%?uXtXUoRPrTo*aIKTc>mWC08GlG4|EK>Oau~NR_}>4mq`bmq5X<9sQ{{dv1tr%X6| zLVeN9?b|tpw4fZ+l{kw}Z+Jvk1PKD-;j9S2GCx|1gtl-3jBk-7H@+pS|IG z^84ZT$PYP_uQEkM$)8Yo-DJLQe%RN#Uul=KJ8kMuZcd)bus)$dByPf9ZkC=If3|Hp zp#0G=eQLw8`k*@=E)~p?d_VU&t+k3^^nB1{5i7PvOSk5hO!E^4bN6i?ITJVf{n#hG zfg!5HwlSx9Uyi*7*QP%jVpqJ98@X0I$Pdl`E3_)SKcTa1wy412)h>JAHfV4%JvtyL zS$#btM_JuD?Ov1basOF=8S7a^8p1z)*m2}R?U@M@^BmvRrze#iiDAuak7HijU{p52 z#7el_!lEK=>4LwMJn}w4QIP@cLg{qp)soV c*1Lg`q4UkcyS^u$v49G1Pgg&ebxsLQ01bOSI{*Lx literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xhdpi/widget_gps_info.png b/OsmAnd/res/drawable-xhdpi/ic_action_gps_info.png similarity index 100% rename from OsmAnd/res/drawable-xhdpi/widget_gps_info.png rename to OsmAnd/res/drawable-xhdpi/ic_action_gps_info.png diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_speed.png b/OsmAnd/res/drawable-xhdpi/ic_action_speed.png new file mode 100644 index 0000000000000000000000000000000000000000..aa69a709a56aea20c139ac4ff9773e9c864643ee GIT binary patch literal 1784 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 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_altitude.png b/OsmAnd/res/drawable-xxhdpi/ic_action_altitude.png new file mode 100644 index 0000000000000000000000000000000000000000..661605292bf32ea373fa8de702a1f69a36e325f5 GIT binary patch literal 1947 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 V6D3v^Ur+vbczO5xZ74$;D$$z? z;8CA1G~`Vw6j3=0=4W5f$`75aRx7AjYCTq(xlC=?17z+>@v3}k^(WysV# zEk>qtnq^>sDuGg>P)p=8)HEZHFW;#4Lqm~%I)YRY9{z<`rur-tBpFuAQ($pk09GoU zKG%%3O3eZP8^%|yRZ$rV5X%8o@{LLXln;^9EEv-6uN_SrLeWrHDnWCC#3w*>P285{JMSSno!^3-x=lw6)V zTLtW7xmvDDmMc(n`b^eQZZQ&>P@b-GpH9=KQ!_xNL<0($O1Ts@qcc_Vl^8&ZfavW* zqG0$W91la_5pWnXpNNCxpa49+4<00w1nAFr;s2{2777YGT`d1oJhNL+MNYqdX$5HU zrI|n()Imz9RZhm+_QPOiQ08b++Q%kpA#VL-ld>S5U8X-!w3nN^Ap5eL2m91; zprelMG{*mjm5syR-o=$%wDCBKc>NUCVs7{u(?v;T<%mmbt!x?s2d}LZPo`@`Jtf`=95+O^Vfc?@iP?!|pT?VmxVaZ8Mh5d2 zx=t?j6nt@=cDx0nuz!u2S{I5crklBQ^>1{mVnh zO=#Bw0#wXqhb>9-D=Ge>g@xFt85UazTgNGxcbv=Uat z=v=otNb z!=tna@$=;IcwSe;Bja*zjyBLI&wWIOz70>!bJZ5l3G}|AjT?h-_9`i zw`)JxRPg$`oToC2!*qtCC%tVp$=^h7K{x2yWctk-q)zYsw#VDE)$DFfs9Evthe<6} zfrpC5`^d)O!oI1-s=$%~>$HOzNzIj&8vdn2FWwyTnDfX}(3k)03IBD~8kfhNrm}4vBbRRy;YBs6z+7ZB$1W^Z@(O8w*7&F{>)~V^;QCB{*x8+0 zsNdIavb(|mpW81Mld3vab@Xg4XjPR8tvieB_o{G1VJ|B$SRWn|+AVoi;$|(rnARyS zCGEF8=<#Ed2ghx9FmMf3ofUUv@)>TzrR>CUUtK6oa3otiI)rfBhd=Ec(e59Sb>LRG ziEMS8-S880Nv(ZN+g7vvftB@TE4jP6F*~k|iZ+BrXEuo{SqrZ_jsI!xwc}~>J>dtp zdg^dW?r7H9uDLPBW`su0#!}g0Z$-zdsnJ2x8=Z7oo=t-7 zMf*5wanPf-0mZ}Pz^&Tm=R||(b^ZB0dDw3pkd{A9h(FrSbF{S0-(G5O`R*;>XyL~c z=X}F<`45KJ-?DZV49sWN?J}#s-53*j=UCwe<$}o#J8AL1x4@5oY)AZndEb?!)O{M9 d#7SE&?At>5o;1FL(e!^#NKgdh{3>qte*nh@$1DH< literal 0 HcmV?d00001 diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_time_to_distance.png b/OsmAnd/res/drawable-xxhdpi/ic_action_time_to_distance.png new file mode 100644 index 0000000000000000000000000000000000000000..d2985f11e17987801132491654b590be65697e62 GIT binary patch literal 2394 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 diff --git a/OsmAnd/res/layout/drawer_list_item.xml b/OsmAnd/res/layout/drawer_list_item.xml index bda3867a34..e3992f85c0 100644 --- a/OsmAnd/res/layout/drawer_list_item.xml +++ b/OsmAnd/res/layout/drawer_list_item.xml @@ -15,7 +15,7 @@ android:layout_marginBottom="8dp" android:layout_marginTop="8dp" android:layout_gravity="center_vertical" - tools:src="@drawable/ic_action_info_dark" /> + tools:src="@drawable/ic_action_gabout_dark" /> + android:src="@drawable/ic_action_gabout_dark"/> adapter, int itemId, int pos, boolean isChecked) { @@ -561,7 +561,7 @@ public class SherpafyCustomization extends OsmAndAppCustomization { }).reg(); } //important info - adapter.item(R.string.sherpafy_tour_info_txt).iconColor(R.drawable.ic_action_info_dark) + adapter.item(R.string.sherpafy_tour_info_txt).iconColor(R.drawable.ic_action_gabout_dark) .listen(new OnContextMenuClick() { @Override public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int pos, boolean isChecked) { diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java index 38004852af..22a301f700 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java @@ -453,7 +453,7 @@ public class MapControlsLayer extends OsmandMapLayer { // && (!routeFollowingMode || settings.SHOW_ZOOM_BUTTONS_NAVIGATION.get()); boolean showButtons = routePlanningMode || !routeFollowingMode || (System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS); updateMyLocation(rh); - routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_info_dark : R.drawable.ic_action_gdirections_dark ); + routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_gabout_dark : R.drawable.ic_action_gdirections_dark ); routePlanningBtn.updateVisibility(showButtons && !routePlanningMode); menuControl.setIconResId(settings.USE_DASHBOARD_INSTEAD_OF_DRAWER.get() ? R.drawable.ic_dashboard_dark From 02e26282601c059464c559b7bed8bf02ac3bfdf4 Mon Sep 17 00:00:00 2001 From: Victor Shcherb Date: Wed, 1 Apr 2015 22:38:23 +0200 Subject: [PATCH 4/4] Fix arrow rotation --- .../osmand/plus/views/DirectionDrawable.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/OsmAnd/src/net/osmand/plus/views/DirectionDrawable.java b/OsmAnd/src/net/osmand/plus/views/DirectionDrawable.java index 69d84584eb..f541ac956b 100644 --- a/OsmAnd/src/net/osmand/plus/views/DirectionDrawable.java +++ b/OsmAnd/src/net/osmand/plus/views/DirectionDrawable.java @@ -33,12 +33,14 @@ public class DirectionDrawable extends Drawable { IconsCache iconsCache = ((OsmandApplication) ctx.getApplicationContext()).getIconsCache(); arrowImage = iconsCache.getIcon(resourceId, clrId); this.resourceId = resourceId; + onBoundsChange(getBounds()); } public void setImage(int resourceId) { IconsCache iconsCache = ((OsmandApplication) ctx.getApplicationContext()).getIconsCache(); arrowImage = iconsCache.getIcon(resourceId, 0); this.resourceId = resourceId; + onBoundsChange(getBounds()); } public DirectionDrawable(Context ctx, float width, float height) { @@ -90,18 +92,26 @@ public class DirectionDrawable extends Drawable { } return super.getIntrinsicHeight(); } + + @Override + protected void onBoundsChange(Rect bounds) { + super.onBoundsChange(bounds); + if (arrowImage != null) { + Rect r = getBounds(); + int w = arrowImage.getIntrinsicWidth(); + int h = arrowImage.getIntrinsicHeight(); + int dx = r.width() - w; + int dy = r.height() - h; + arrowImage.setBounds(r.left + dx / 2, r.top + dy / 2, r.right - dx / 2, r.bottom - dy / 2); + } + } @Override public void draw(Canvas canvas) { canvas.save(); if (arrowImage != null) { - int w = arrowImage.getIntrinsicWidth(); - int h = arrowImage.getIntrinsicHeight(); - int dx = canvas.getWidth() - w; - int dy = canvas.getHeight() - h; - arrowImage.setBounds(0, 0, w, h); - canvas.rotate(angle, w / 2, h / 2); - canvas.translate(dx / 3, dy / 3); + Rect r = getBounds(); + canvas.rotate(angle, r.centerX(), r.centerY()); arrowImage.draw(canvas); } else { canvas.rotate(angle, canvas.getWidth() / 2, canvas.getHeight() / 2);