From 29cf9abc3c0abdbd22701f9219b439661926517e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Sun, 13 Dec 2020 18:18:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=B0=8F=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E7=9A=84=E5=AE=B9=E5=99=A8=E7=BB=98=E5=88=B6=EF=BC=8C=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E8=BF=98=E6=97=A0=E6=B3=95=E6=B7=BB=E5=8A=A0=E4=B8=8A?= =?UTF-8?q?=E5=8E=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/module/common/view/RoundLayout.java | 90 ++++++++++++++++++ .../src/main/res/values/styles.xml | 4 + .../module/small/map/SmallMapService.java | 58 ++++++++++- .../mogo/module/small/map/SmallMapView.java | 11 ++- .../module/small/map/SmallVisionProvider.java | 11 ++- .../module_small_map_view_border.png | Bin 0 -> 28791 bytes .../main/res/layout/module_small_map_view.xml | 17 ++++ .../src/main/res/values-xhdpi/dimens.xml | 12 +++ 8 files changed, 192 insertions(+), 11 deletions(-) create mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/view/RoundLayout.java create mode 100644 modules/mogo-module-smp/src/main/res/drawable-xhdpi/module_small_map_view_border.png create mode 100644 modules/mogo-module-smp/src/main/res/layout/module_small_map_view.xml create mode 100644 modules/mogo-module-smp/src/main/res/values-xhdpi/dimens.xml diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/view/RoundLayout.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/view/RoundLayout.java new file mode 100644 index 0000000000..23418c8b9e --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/view/RoundLayout.java @@ -0,0 +1,90 @@ +package com.mogo.module.common.view; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Path; +import android.graphics.RectF; +import android.util.AttributeSet; +import android.widget.RelativeLayout; + +import com.mogo.module.common.R; +import com.mogo.skin.support.IMogoSkinCompatSupportable; +import com.mogo.skin.support.helper.MogoSkinCompatBackgroundHelperDelegate; + +/** + * author : donghongyu + * e-mail : 1358506549@qq.com + * date : 2020/3/25 11:39 AM + * desc : + * version: 1.0 + */ +public class RoundLayout extends RelativeLayout implements IMogoSkinCompatSupportable { + private float roundLayoutRadius = 14f; + private Path roundPath; + private RectF rectF; + private MogoSkinCompatBackgroundHelperDelegate mBackgroundTintHelper; + + public RoundLayout(Context context) { + this(context, null); + } + + public RoundLayout(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public RoundLayout(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + + TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.RoundLayout); + roundLayoutRadius = typedArray.getDimensionPixelSize(R.styleable.RoundLayout_roundLayoutRadius, (int) roundLayoutRadius); + typedArray.recycle(); + + init(); + + mBackgroundTintHelper = new MogoSkinCompatBackgroundHelperDelegate(this); + mBackgroundTintHelper.loadFromAttributes(attrs, defStyleAttr); + } + + + private void init() { + setWillNotDraw(false);//如果你继承的是ViewGroup,注意此行,否则draw方法是不会回调的; + roundPath = new Path(); + rectF = new RectF(); + } + + private void setRoundPath() { + //添加一个圆角矩形到path中, 如果要实现任意形状的View, 只需要手动添加path就行 + roundPath.addRoundRect(rectF, roundLayoutRadius, roundLayoutRadius, Path.Direction.CW); + } + + + public void setRoundLayoutRadius(float roundLayoutRadius) { + this.roundLayoutRadius = roundLayoutRadius; + setRoundPath(); + postInvalidate(); + } + + @Override + protected void onLayout(boolean changed, int l, int t, int r, int b) { + super.onLayout(changed, l, t, r, b); + rectF.set(0f, 0f, getMeasuredWidth(), getMeasuredHeight()); + setRoundPath(); + } + + @Override + public void draw(Canvas canvas) { + if (roundLayoutRadius > 0f) { + canvas.clipPath(roundPath); + } + super.draw(canvas); + } + + @Override + public void applySkin() { + if (mBackgroundTintHelper != null) { + mBackgroundTintHelper.applySkin(); + } + } +} + diff --git a/modules/mogo-module-common/src/main/res/values/styles.xml b/modules/mogo-module-common/src/main/res/values/styles.xml index aab6f7f597..c694e342bb 100644 --- a/modules/mogo-module-common/src/main/res/values/styles.xml +++ b/modules/mogo-module-common/src/main/res/values/styles.xml @@ -27,4 +27,8 @@ @drawable/module_commons_heart_ratingbar_drawable + + + + \ No newline at end of file diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java index 6739bb7c85..e4a4336d9c 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapService.java @@ -4,7 +4,10 @@ import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.os.RemoteException; +import android.view.Gravity; +import android.view.WindowManager; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.mogo.module.common.entity.MogoSnapshotSetData; @@ -19,16 +22,22 @@ import com.mogo.utils.logger.Logger; public class SmallMapService extends Service { private static final String TAG = "MachineVisionMapService"; private IBinder mBinder; + private WindowManagerView mWindowManagerView; private SmallMapView mMapView; + @Override + public void onCreate() { + super.onCreate(); + Logger.d(TAG, "onCreate"); + addMachineVisionMapView(); + } @Nullable @Override public IBinder onBind(Intent intent) { - mBinder = new SmallMapServiceBinder(); - addMachineVisionMapView(); Logger.d(TAG, "onBind"); + mBinder = new SmallMapServiceBinder(); return mBinder; } @@ -41,17 +50,39 @@ public class SmallMapService extends Service { @Override public boolean onUnbind(Intent intent) { - + Logger.d(TAG, "onUnbind"); + if (mWindowManagerView != null && mWindowManagerView.isShowing()) { + mWindowManagerView.dismiss(); + } + mWindowManagerView = null; return true; } @Override public void onDestroy() { super.onDestroy(); - + Logger.d(TAG, "onDestroy"); + if (mWindowManagerView != null) { + mWindowManagerView.dismiss(); + } } private void addMachineVisionMapView() { + Logger.d(TAG, "addMachineVisionMapView"); + mWindowManagerView = new WindowManagerView.Builder(getApplicationContext()) + .contentView(R.layout.module_small_map_view) + .size( + WindowManager.LayoutParams.WRAP_CONTENT, + WindowManager.LayoutParams.WRAP_CONTENT + ) + .position( + getResources().getDimensionPixelOffset( R.dimen.module_mvision_view_x ), + getResources().getDimensionPixelOffset( R.dimen.module_mvision_view_y ) + ) + .gravity(Gravity.TOP | Gravity.LEFT) + .showInWindowManager(); + mWindowManagerView.show(); + } @@ -61,19 +92,38 @@ public class SmallMapService extends Service { */ public class SmallMapServiceBinder extends IMachineVisionInterface.Stub { + @Override + public void linkToDeath(@NonNull DeathRecipient recipient, int flags) { + super.linkToDeath(recipient, flags); + Logger.d(TAG, "linkToDeath"); + + } + + @Override + public boolean unlinkToDeath(@NonNull DeathRecipient recipient, int flags) { + Logger.d(TAG, "unlinkToDeath"); + + return super.unlinkToDeath(recipient, flags); + } + @Override public void postData(MogoSnapshotSetData data) throws RemoteException { + Logger.d(TAG, "postData"); } @Override public void hideViewIfExist() throws RemoteException { + Logger.d(TAG, "hideViewIfExist"); } @Override public void showViewIfExist() throws RemoteException { + Logger.d(TAG, "showViewIfExist"); } + + } } diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapView.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapView.java index b9b74f4ac5..62e75cdc07 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapView.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapView.java @@ -2,18 +2,19 @@ package com.mogo.module.small.map; import android.content.Context; import android.util.AttributeSet; -import android.util.Log; import androidx.annotation.Nullable; import com.mogo.map.MogoBaseMapView; +import com.mogo.utils.logger.Logger; /** * @author donghongyu * @date 12/10/20 1:35 PM */ public class SmallMapView extends MogoBaseMapView { - private final String TAG = "SmallMapView"; + + private static final String TAG = "SmallMapView"; public SmallMapView(Context context) { this(context, null); @@ -28,7 +29,7 @@ public class SmallMapView extends MogoBaseMapView { } @Override - protected void addMapView( Context context ) { - + protected void addMapView(Context context) { + Logger.d(TAG, "addMapView"); } -} +} \ No newline at end of file diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallVisionProvider.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallVisionProvider.java index d6ee7e537b..3bbdee2b65 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallVisionProvider.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallVisionProvider.java @@ -1,6 +1,7 @@ package com.mogo.module.small.map; import android.content.Context; +import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; @@ -9,6 +10,7 @@ import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.commons.AbsMogoApplication; import com.mogo.service.module.ModuleType; /** @@ -19,6 +21,8 @@ import com.mogo.service.module.ModuleType; public class SmallVisionProvider implements IMogoSmallMapProvider { private final String TAG = "SmallVisionProvider"; + private Intent mSmallMapServiceIntent; + @Override public Fragment createFragment(Context context, Bundle data) { return null; @@ -43,12 +47,15 @@ public class SmallVisionProvider implements IMogoSmallMapProvider { @Override public void init(Context context) { Log.d(TAG, "小地图模块初始化……"); - + mSmallMapServiceIntent = new Intent(context, SmallMapService.class); + context.startService(mSmallMapServiceIntent); } @Override public void onDestroy() { Log.d(TAG, "小地图模块销毁……"); - + if (mSmallMapServiceIntent != null) { + AbsMogoApplication.getApp().stopService(mSmallMapServiceIntent); + } } } diff --git a/modules/mogo-module-smp/src/main/res/drawable-xhdpi/module_small_map_view_border.png b/modules/mogo-module-smp/src/main/res/drawable-xhdpi/module_small_map_view_border.png new file mode 100644 index 0000000000000000000000000000000000000000..cc2c540c8b361ceae0006a59a50a8e04c6e8929e GIT binary patch literal 28791 zcmZ_0b97`)^e!CRb~3T8iEZ1Q*tVUCZB8_?ZB3ks?TL+!liM@z{eA1Z>#qC9>F(2g zPMxY<&we&)S4Sx+NFu`F!GVB)AWBP#sepih`T&m@7%1R3ycJ+Sfp4HLDv}}~HPZwq zz!NbuEopOkc@SFQXBZIB2rCeXzn1_HJm3KW0$uQeyz|9y`6 zd*Q%9ZX*bY5Qwyxu$m|6c`kGghWN{4f)8^a30$NMWI2 z*R22req~{06buZMS=D9Lnb2qE-P~wu@4)gpk|b@TRrbQpQ@^|*fc`RMi%$pD#XNCV z=0#0e$LYFiZ%xfLhG`QjD5(%cBnT=Am{=eT%K!i58wh9~sMQa0G*C?#0v=&ZaRfl{ z>`L8m@v~x$m`ox{5W*KBll(7S(Mg#&K_R0RT{xy!G$V0lIjJtOgsrX^hUr>W-{c`! zBLaWr{7{jJ3SSSG6my}Zvn>Hb*BTevvkUD3(%2STEL*cf{ zo0}-ElB02#0dEYkX>D9q%&G`RjGNCFBcX#$Sh4tHS0eW%C_%;K9gGv+`u2!Z0>b)* z%64Tk@5->WX=Hkyg)~7P*k0p_y^4Xq=+5(vEgV7HITtkk8)$IA)~CPuJRU)*V3g1j zDoOoJhpr5+2pDvX>i$k~6AgPo)X~p8h@Ribq5WX`mDorfWOl)1YI4qMYLwmVQJ&v{oxlr|j6yCS^adwVYEk zqy7Q`BM0C*CR0brlg--X;L(50Mj~v83s^R?bex{ncV-Kyw9+h55+h-Q;bz3hOyrj_ zbNMoR_GQtK7C->wH$Y}nptL}noBQ%k{gHn-5PzHb{&$3*L>7KXK7v1xSTM7}aUa?< zRv9{`8Q-?0disaCX=wjnbNk;!_g%s$Wxrn@&$h>qIj)c|vJe=X?!g{anViVKTDSj;z2!Czz&N%*X@6gwh6a|J)%a0u(X=RwG;Z zns_@GF|-#X7%<2zfjF4iN)G4*mpEcg0+}k9`n4_*WzPyaJo4bLbuoW%jgbKJjRq9$ zmA<<^rJ4|;U@4DEo->`|8 zg{IoVAQHrrkfX44ENs{Op~Y zRX-4<`6-fN+GGNUw$yVlv^!9r{MkQYemZU5+pX2FI;U?Vy1x52gE>KB15#Jf?=R@dWh7Q^pB{37h zvt8=nS2OS~Nm3Do=mH|>ior0NUmk{@a2Q*}MWG88dhO~ljuoJkMIM_Z43Q)fI3z%m zaYA|`RIs^gOTTd0yONov;+X6x!Smz$oDf73urC6*DJOVV!aIXK8`mecC=1tT%)&~8 z`ACg6x~1ZK)Tm;8ra-w6ftMc7fA4E0duDz5y&YWPDk6i3dL0gw43{3w z5<6wx6D0tL{m3^^8lt}!$NGhxhbs08n_`L(*v6&f4=vV6kRv^-9K>+)(Qe(M&m069 z0g6-@Zc^Y-VDNFxc!EARhcrbm{5?yLLgo}9vVa2ZsrW&yw}h(Y&6W=y{OP=87Q-qA zfd{0BZ5Rxm1z#A5_j4Z0#_bhfXSuHw{}4cin#&7<@HH5r$Iy*7K4&tRwjmMYcMf9q-3RA=Ds&5ihf6uN zKkiv-9Clb+l&=zdi+*rHUyU`P2HlehalGDlQcY2co0%zXPgmFwFUHu9V{E3d3gEli zE4M=$E!nKga1<8KIwZ`k{4!Y^)zs5cGR}1vFH~Mp9nqP;~0BMHqIC z^_v3`3@dkZPqRGQtatBCgWj={FL!M_sd(vZ!EUM8%h=usM`;;FzqnAmG28{u1y(}p zj?Oo9`>4Fzh7|e2w{Lunj_mmf_Wqby8Y=7`(SxdfI$1A)SH$p#rJI;0d~^g%TKoyawbIMhRlfYic=1^R?o>`!XhcQ zC}?)SAmqg)J~*B?x|ibcn!~_n6!Mo7m(ggP`kBMq{f}_u8%`@9z*Mz9Vu)hkV?yj~ z@pbCKnuTUwc5j>X2u36fyGWolAXcbQG!{LBOVOC&i3^|o_d@1eP6qlklQejtB#UJI zsO#ZC9LE#sif;cF6riQ9b-jK6aj9;{$9gR9-Xe*W{O<)@rZ9_yH zqPiDtO*xi#z(H*;w6aGFGurkY`=DS3eTh{H##t5#G&v&X0G#x#PgM4eE~Y-R?kxS70Q<0aoMfn!~T9>sJS^ry@r3 ztE{m??sF}J+MQzldU6^~KQXJFSfG6FPv0QGdR!{h=bxY7qcy&Pp_Q+inn4B(YU#FG zUxr;1im#*j*bemf)>l9gLs0K&>5gXcE*-WG#+g1kZ6oj^#SRftnTi{YI-*$vmMjUM z*t$6_4d%J*On!baPiNMu6C`6B^w$0O!Bv{iNs7Wm9a@Nsp7HQ8oDULQ-ezF%Lu<$vTMdtGl;*0WMvP+aE_>_>Kv?|%8j zl{a`uV0*|iuYLZ-uXokFxA-=uquQh2#nAz0?Q1;U&2%a@2E(U3$xHDnYTvTjS{6%? zmK+8=Bc1$I*Y4WgTH%V>TsVhorF(onVzzS~ry&F*vQGbP2*VdgqJ@*2LXh`ylD+8X zT>@-U0XXROQ{|m{K)ms_!v^zKQ}yDg>dH>9aM=wWx9fUxt-a+aVm0x>yX%vWbBNKs z1sj>r6!+9|_>7m8Y6J}SsG*B-B{mz&x|Zofb|QcU*KV{#qny213f((MF@wRc!x9(4 zx*E)Xk!Qz(;m-NKD<^P#;>PCd2MGLA|7YxM2Gju2=ag)+^x!uM_EM9?jF^Qmbvymg z#ij76Q^yp$C^0W_ZgY(cmKJr^9tynV^)QrFnXFWS-EEXburrTn>ybj=+dotMAu@KA zR~U@@tirG@@<63&Ni@srPyXC+WR6*DV;)drl6qfX8Ch>-8vRXe)tcI^zsfprZ$H4^ zDV5wBVeP>?V#Zsc;uZ-4lB<~ za?uu~2$kS@?HQh?@eWmXH4-lzMjRpy+W)4~z&EefVf@R4t+XSXl8Yjw7$-JL{!yg= zF6hoOhW}1Nodd@qu#KzlVL9k=GL|yE(#6fdz}b5jt4VqkG3y)<1tZ}2B8&OGWUp55 z^(bw-)Rc!t{t~Uu|M_x6roIF-$m(;$HFw9hxuyFhq(7w76yJ5cwPARiShv2ra<1ue zoVkOo&;$DG1=194Sb_%B9?_L|?8No-)vN?E-th9^Dx!>tZs*RrpMb%|V@1cCUO<~X zsOs>r9Fuk7(GgTrTGq%~(1z(c|K*DDcRRpJPdtmskqyQ9iaGKY(`tD680YYS`EY4< zeHMdmMtgg-m78*=Dt@Y$%1^9oKI%aKH4{%kODg$QqEJDUc-SKgCn=f{IQ&xL9+8c% z94B=o#YkuStUo(zxgC9F ztygP@r*~^r@?};0kR0v-F^_vP01de_$mWOc%ssrwFZW-9Tfv_~1E|wE9PKGQ;k6)N z+6_eG)5F({q+AAf;GwW?Gl=Pg;crxRxrbYDECVX#g&eosulPQ~sp1MJN9?%t6NG98`0vzALd%A_- z7kDfMb--rYDN1LtkOV3ryV`%)X9MOA$@*1~Vz2#gyVe>`3DMpcHsM=q`bLz+jukRr zOVN|nWyZ`%5dU>c==|pKJ8ug>YmlkFf|A&sAXpoQH?DrP*J-r=>A_-Fhs@Ejiob_L zi#M)!v}qT|?R>p&BvN&Lmh<6uH>(vlE zz8|u~2;R3jY#X%rM|^U=L5o#D$i&2M-h-0BCpgdvd7E}B9b>kGNmwbHs+OYvqWEDd z+G)cidpSFXtK<`A@Y}RMR)qK%g&)Sc;-)Z$TBoki$RGS-Z97wh@!3mwcU+0uslQ6m zs%&Nd3x>~z(=i1c51haycQRI%>R!GlL4?{8w$FKQAK|?9#S=(fC{Z@+wRV_Ee1466 zVFH@ZL&f&Tk!UL1$TTO4nkz+eQJeFo?GkKs); zzcX}kB9E#mAJTi2tE-lV23CesLGTUYUt~t@Ljoj^uM5Z!Gl3=7LQkQ%Yh@MJVId9< zx|43uh8|XHXd33D%>&L=9_KlT2A*J!tQUsbU3}=NKgtkMzi8Hi36AWG zv{2;pgJ$oVYED#6K$oox6-99Xcwn~cmr{M*xgNg6r(c}y5LLwf&b2a{jq*m;t7#%M z#mW8na@saams2nPO16?q5a0x<%4H5;$9MMFXVb}MA*}E8(D`Ufo-t#npEK;L-&hI5 zotJE;`?uLHsZZNX8Mb~->5lFw@gXdoE6?uR-Cjop?0cMfcEt*)iy)soO@+U+R<&JA zSkG05SbLUW9%783TrtR>YS5~%9Yt4%&NF=Ksn?f#VQRkX5> zV=vz|C9TTpdI0G&eF(Tqt1CX<_t?1h(Sh~jQ-Amvq(HLq?JqVyICWx1Z$rK(Jaf!X z3B|14IRW%2R(N#h5%Rv~K6o)h3->?yPE?C^W6UkPk}G{ir={gTl1d>t^ZPO!LPSa{jK)X;j% z|2CO60zFGv;fC)nJzCPjDio9~(MJm--ASTv`3OOoZfDzXW?Pr^rsXN`KPg*3x~5&F za|KPq1I=ESm)+bN$Cl6-szMWps#5RD8! zHS|g^^k@b-?_2xqOnQaHQ|%WUVwwGowcYkXU}NC}O0e*=g?h={)2o`2A`AX;eA5(S01i5WJ?)m8z)1Yyw_Z79f$&P~*U6u(mY#tscJbX3~k|me~oNwmF6& zm~m3G_G|CMfSh%YBcTG8M5F_U;=9e=?(Bsx(Z-qRj)ABRvL|MeufWrHpW#Yz>(Z3! z)on}VPUoS_*S$K8wYgBBW=A^={W$W!Y28O_&SmY;tvnKkrc=TsC;u7UXS zv@pBU8*Z>*AC|sc+BP537n9C;-zRRpv$U@>a9uEJ5BJe-l`*3qU=@*SP|BLyUFDs5 z<@!B)NI=}<+e>Bktxe^rgwSTk)b&JX%snZtVvpKyZRvfq$XCx8Lsrb+8J@Z$G0U<{ zWK0nT%!-fPWj#IJ%`l_WL0nz){SJu%k`|1wDe&*lHcZwJ-?2~fpU!7AMPyYhDsCy` zaAx83RcF({fI_1Q6tDu!_!&VwQI{J8G;t`syZ-v)CSs9hXN%kz%m_8Z5)k8|>sBGei1`MA&)NBz27MP>hUv7$o~yJ)F|1G8 zaKf@5bC%6DDZzH&TG;0|g5Ej?Iu}rPa|$nTD5nklifS6GMVZd_PK!{VT2K(P(*tKb za719|Yx_zV7dEz#t?L5}oQy5>l(IQVukpbe4L(ZL?bO~f;V;yVOO^|^p*C*IJ>G;b zyjmmH6>=K)P=#;XoP}&Msojv;G zk96X3n1GuX;R`Nv4SVY53Xx_vT@T+-|8(mWO;3 zy;Rq$$a5|N#9M=dyA!N*wZDjsTPoeJM7&rr9m%zp|1;=h`v}^%A67|OI|YC19)cld z@8X@R{xOmX&QF=!gTOV=4q@q;DkZIBUlbzSmUhzZNW?`xfI8BjI<$HA*Gp2Z_of~# zJ<;Z*IUWO}lNFY$0QiX0J1) z(sWNsJz29sy!AMyIzV^s@5NC32ugdSUz=#`r+<5TF3lW4zO9KkA~*0fT9r7QN}ta^ zZoOqSM7abYSn9eMQBw%g^{}@p;rmf$>+lr7Ghjc`QM~MN04L)NIeOTnq>fZuHzN$5 zDc!n8TkjEUD&--oi}xmZrE@Sbtk30}@N;xfST)?o$zejX^h}ii3|28?n8FI@taCIG z;&#fgo0(dlUWXG#ECZO<4T`RdOhH-z*1~N)vPVeGbE!dqw9oRE5sNUo`R6QKtNp9u z0=v~2;GB~=>fQc^{o>&MB>R?5d{LhnvioPW)xJnb=l-obtR45T@68%Vy2$p*>P{H} zuaPD!V?K_z*D@xoxZH?XA0(J+-sbF}+HVz%8$Gqx^zBsivRmcZSWG zq=;(7?q>i!)3qIoG-*a@V>vKGuscRUh>7Y)A(B&qqR?pcE`tH##B^<9$2oQDkU7tY z!2y_jVjq1R`?bZjD*=eciZMW5G%NHS@NCjD>;=11S{& zc#g%xP7X&rzfHz>QY8@Ug9l4Ks@fV=bLMVhX$eb{0H@`1kw92E)90#r*ijYCt#RUa zo?qNNY)3V8i3=GLkiYyGvY>@)tLj#8cGL3JV$&o(^hj%jdX(>yrj~Dz8vA7e#&(nn zUFm-l^oj3<_Tg{LGEtjqc?0oPKsG;H!Q^VkKrZ8Xu#l{F!y^%2p40PLGGD)&iET1* zc6AXAPKLwvmjH*el85FN2En&@xyV3Mu=q(vK|IPAeQ@u5=)H#2lQl9fgRMW3qo|zB zLt)F%owHO+Bx~k37N%#;oZn-3rw-aq1k-SmVm%K|9N=78DbhNz%$eCa?hdPvcmkXuask~i!$8}Cqeg#8m=nB*6rP?YVa7KM0I|p z^g9TFJTSM_X5de{6NN&2=c@T_^7zK}z1XIg;M>ApTKMfdAryn}*TXD7i*F=ZDHNGQ zJyFM_3ePQCkB|-tA_C55i_mHuzpH*5p<7hhm_}byA5X5qL$Qbznx2g*Yr4KF76+Y> zp#CxfLpQJH!&DBk4$bGKQgx z_Da585yhtQz?$Jj)--X{A0Gf7Qy6eiS_vqm*^}-;c5OdE^|TyO)Hj0pBc(-CO&G&m z`8)IKH>#$aev%Yi-Gu;Ct!~U#XtqM)P|ryf8q)LiBqmkhU4xBL-q+)~o%QW@i40IIZ z)4`Lwo$s1`dUGtZ_RX5#8~hU=UVCNfj4rY$V@Iq)5kIIy2-6WG0QW6HJa*b-!dbr5 z7+Gb5Hnucy{E>Y3R}EzjJ=Rx8Qpedb31H^1pl?(0L|u=9Z6g-_&Q}59!gOpKIhHzOL zpWw2-NHpj1jQ&@zhCM~H)dEp55<6Hv7#H=7v50;tc0skE9*d8)s8$4?A0t-5^@ss} zZ2*JP8_ZVZ6OLgkzExXEj#r7xnu>+s$nsYkQV~Jp!)0;SEFY>#>hlWNX2kG<_uSAP z)D_oqZM41yk_>mIn1$6+3|^24xHQ}{=DI4AO!aWuj(}5V&BH!!dD)IN<*BU@-n*45 zL!Ctl>rtWVl3X?GYTN|mO(*dgIAlg~Wwf9eO2_T0lIo_&HffkG)SOQHUx)_+o`aaV z6;+;&nib}~=(LRehfv#+d3wKVcvM`Vo2FXB3eD+sF)+6!MXsQc6?5T#HAU~nMV`@FqNyrs73E_{r3v_%td5LC zXQi8K+4W5kq9GF`4V9jbIhLTSGui}k93`zp?9O+4|C9G}i$*q1nmy09-T`0|Fq0zw zDk~b7gqNT7OP=s^A-bl%t_zVT8?L~`!%6|$&bPct(T>z9i2>D;5u&cjC^Kj*oOv}G zTY~IdgI+c2VEdpxRwk3IK86ZSv1NtRrXHEU2WDvw!=pbK9(mJEpJ_Dj`O?o?dN~6j zKFHJAxM88lM1wyl4RJD!RODF-3zVLX!R&#IS?(DhMw6kbUCx0Tmx9LZLj za%JpeHSOqq4d@2F_N-M7ub5pF(8WqEbunN6+@_;;_s(*#jK<(@=8PmVxU=I?1@V5p zyvbi1Q9IWdHbbo%YoYG2-%n90XOe>~i-kc65`)=5iLY>gOM9qJ5=p~wr}^( zkBu5y-LT6pS=p!W6tk!+s$7&x*{1wT7ryE

typpO$v3UWwMOjh_EpU%)wTpCpIH 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 + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-smp/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-smp/src/main/res/values-xhdpi/dimens.xml new file mode 100644 index 0000000000..9910274622 --- /dev/null +++ b/modules/mogo-module-smp/src/main/res/values-xhdpi/dimens.xml @@ -0,0 +1,12 @@ + + + 400px + 400px + 1490px + 650px + + 0px + 0px + 1920px + 1080px + \ No newline at end of file