From 8d9e397abd17cafea8986a5232ac174326e8b3c2 Mon Sep 17 00:00:00 2001 From: Dmitry Donskoy Date: Mon, 22 Oct 2018 19:31:06 +0300 Subject: [PATCH] [android] Added Base screen sharing options, created sharing options stub interface without core yet --- android/AndroidManifest.xml | 2 +- android/res/drawable-hdpi/ic_globe.png | Bin 0 -> 969 bytes android/res/drawable-hdpi/ic_link.png | Bin 0 -> 827 bytes android/res/drawable-mdpi/ic_globe.png | Bin 0 -> 549 bytes android/res/drawable-mdpi/ic_link.png | Bin 0 -> 499 bytes android/res/drawable-xhdpi/ic_globe.png | Bin 0 -> 1331 bytes android/res/drawable-xhdpi/ic_link.png | Bin 0 -> 1075 bytes android/res/drawable-xxhdpi/ic_globe.png | Bin 0 -> 2134 bytes android/res/drawable-xxhdpi/ic_link.png | Bin 0 -> 1686 bytes android/res/drawable-xxxhdpi/ic_globe.png | Bin 0 -> 3054 bytes android/res/drawable-xxxhdpi/ic_link.png | Bin 0 -> 2360 bytes .../layout/ugc_routes_progress_container.xml | 26 +++ .../ugc_routes_sharing_options_frag.xml | 206 ++++++++++++++++++ .../ugc_routes_sharing_options_internal.xml | 11 + android/res/values/dimens.xml | 1 + android/res/values/strings.xml | 9 + .../maps/DisabledBrowserMovementMethod.java | 36 +++ .../maps/base/BaseMwmToolbarFragment.java | 6 + .../UgcRouteSharingOptionsActivity.java | 14 ++ .../ugc/routes/UgcSharingOptionsFragment.java | 196 +++++++++++++++++ 20 files changed, 506 insertions(+), 1 deletion(-) create mode 100755 android/res/drawable-hdpi/ic_globe.png create mode 100755 android/res/drawable-hdpi/ic_link.png create mode 100755 android/res/drawable-mdpi/ic_globe.png create mode 100755 android/res/drawable-mdpi/ic_link.png create mode 100755 android/res/drawable-xhdpi/ic_globe.png create mode 100755 android/res/drawable-xhdpi/ic_link.png create mode 100755 android/res/drawable-xxhdpi/ic_globe.png create mode 100755 android/res/drawable-xxhdpi/ic_link.png create mode 100755 android/res/drawable-xxxhdpi/ic_globe.png create mode 100755 android/res/drawable-xxxhdpi/ic_link.png create mode 100644 android/res/layout/ugc_routes_progress_container.xml create mode 100644 android/res/layout/ugc_routes_sharing_options_frag.xml create mode 100644 android/res/layout/ugc_routes_sharing_options_internal.xml create mode 100644 android/src/com/mapswithme/maps/DisabledBrowserMovementMethod.java create mode 100644 android/src/com/mapswithme/maps/ugc/routes/UgcRouteSharingOptionsActivity.java create mode 100644 android/src/com/mapswithme/maps/ugc/routes/UgcSharingOptionsFragment.java diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 4470a4ad8b..ff5be1f9fc 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -441,7 +441,7 @@ android:label="@string/subtittle_opt_out" android:configChanges="keyboardHidden|orientation|screenSize"> - + Px&gGod|R9Fe^mrF>LQ544=QLrb`LZ}u}5k1sJ1a5k)0yh=}Q6LdfQ3wf+vOGo#e`ma0DZZGw_zuAxcmc(Ta_T%5Ck*PhS-QfJ*p|Xq^OdUl!<^H$nPrR3 zqyrqC84aSnAAZ1F*astU3?6~bQZbUeB#`y0W$p}DkL>`Qg9cmRLHA?Z1s7nd`hqYb*@0rXV>lb(^i#P(T^&uEo}S>UxwXYeCP z8hsAemEH)nUzC0w$TbHR1~F4LPvblVL!dA9fX6b1J^_-Wa5rlGzLc$7QIT&!?wq{m zNT~Dj-W}6u-Ts%MopC$hi^cb%b;h26=gyd~u+lb0o0-Yn45P4Zhj->nqEr$V#BxLn z!9HLKavoV2AGHarv*4^l?Sc4eU=>`lxO__WYom{eYkY5PP@+R!MX=YBHSuKLCq@VT zr6rE5f<=$Obr!5e=aikCGsH93n_izy-0BO6YvLxb=}g2WgYSCW81#2q`?k#$xC%5` zxn3VmHqK89_M|+7J*8Eq~I=ke3oWF-pe%%BIcSh$K-w(6Sj%#w%Fn> zS0!O!!PgI;gqU`lAXI+scvz$f=&+#DUO$wD1pb1i>YDXVWd3UG_rT>$G<)m=r>+p? zkd*d<<~d1_j?(=4n0$o|{IhZCvfT<^@FF+;TDS-Px%^+`lQR9Fe^m(NQTQ546WSCB{);UWq`w4VzRGsHwO#K4w9ZFCtTK`q=$t^5}P zH*MPX2Sm7P5eO9|)TY2*KU`E`za%X!dwss*iSvd#zBltGY4HwxxM%J?_nb5L%-p%t z&`_893e>g&QEk)1vrDDYentkN4R*mI+>fH@1MSWUi8R9utU+9U({Tq{cO)YMb--(= zB%d(Q>IEg2k`bT>@Au$&Vb1>N)IJ`ZXLO`By$dy!Q=_8zW>K*=iUk6@yk8uR{B=}evgEw71|{Wz!$ zDu;>6bRAT-0;r7Buns0F@kpu!yfKrt0=j#X1(X)ELGJ|r$uK)V$NFS9Y;!ZUIG8tY zw6EY$+!1}fpjUi5DKgj0b@-t3EC93IZ9MQZJOFV8T`nO=BOj-5u!k2l4j6cv%;#qLSW*r%;3?xJhy= zw6zNX^!j=kP4bG-d027AwZBoJU<8Px$-$_J4R7ef&mAx+mVI0SMVy)FAZ6h6sSZ%d5sWKP@34_Vz&mg4y1#L*|Hj5z9 zS`3U@RRfV|A`wfagW!C==X$w2ch$z)Z}Q3WJioW+`n)v~>FK{KV47wc@=%3_jry{s z|Eh0<1(2M?SAa<!!Yh>I}^oI@Cp^sFG#>Xlx&u0bI_7vQyo<& zFbPUHhNzNg$6yOIL70@IU)^2=6+vI#DxRT#3!SLgwmKEG9Fnzpv~%zV%diKV@CfbX z+4w%+jEjuRY}l!7uhSkv1}>liIXH(fErdC=);fMW3ZRWa6N01-e}^;JhB~xVZ8w3= z`Ixe zt_TuqG!w7_2jG`-n=%q>f+iRO)d&_}Qh;l}7n=bu;8r3au0}xKZ+FHxJ;&5>(7|`* zs{ZNrsgG~U_Ir-0KTd%~a4uRa0Gs<3>-}+rZvb=xi;gj@L(s3MLb2Fq;R|$Hv^SRM zN8toIdn%Mgu;;P+DP`Hm@eRAiTGAW4c;I6fbOfz@l9F_So@@EzkcCmua&`Ayli-Mn n^p$zg8h8DN;}q(3!dBoL>K$# literal 0 HcmV?d00001 diff --git a/android/res/drawable-mdpi/ic_link.png b/android/res/drawable-mdpi/ic_link.png new file mode 100755 index 0000000000000000000000000000000000000000..aa64b7877a7161829fbdba039cfd2d4c4d1ac9d1 GIT binary patch literal 499 zcmVPx$tw}^dR7ef&mAy^^K@^2qLPv}VAwh^1SQylV*y;;F4^N^MrFND?OKdEB0vffU zu{2tkXrnRy#As!uK@IpFoi${32Ua(BoaD>w+_~r8Wpq9(VQT)l3DuI&GF3kq*I^oRunJv}YQJuRDFu6Sqc^DAMTj-Dh&uLKq&Y@4 znS;eJ1Mvlro(I=cgA>;^rW|Wa;K8XQZ^pzQ9P7a_g)^`Nwsr|*eFxWRI5A0EethUi zauKeK>6P&i_Tk0EE*K|Z5{^vlM)RSCwMbG4?u_Y-aUKe0ZI){_R)aDegY*dHD8*$` zvLv(SDyE`E)1<()9;%v4x|vdx;`+JznUa3C=Gq1|khDG8CT*9tP5NmZrNQ>M=j(x` zeFL#9=)v033y|^iMvf$(n+lb%WY+Rfg$n4^9Vz>NkT;H7hf}ZSHC%e0_wLAXhqL1D}70RYhF&vQYp4002ovPDHLkV1hpT-md@v literal 0 HcmV?d00001 diff --git a/android/res/drawable-xhdpi/ic_globe.png b/android/res/drawable-xhdpi/ic_globe.png new file mode 100755 index 0000000000000000000000000000000000000000..8afefc27c4c7bc5b6e9806dfb3909591c70eaf81 GIT binary patch literal 1331 zcmV-31Px(?MXyIRA>e5nNNruMHGj3vQZIDa6=>-Ohgb-iH21o9)bz1UXp{X#Iod#_$s_q?v|9U24)tBAE79)fkSHb66UDsY_k z5PV##)y~i^y^#1g9EQK4Q<1HF#+U32n0zx#LrNA=o`SCeztUcWlqkmL|LjDVY#1gJ znarTu3!^X`CxmV}Y=nI<2eBw-!7q-}Q=bV&;7~O4QTk&RnB#TuB22+g@FDDgWzJ?d z{nQot1pSEF^|e)C_!dkSIGBKDA>jCBu;0Q#j=umC`R)fLSthzV{XGc+>bCJKf0F(t zze4nD@D_XyZ^NDN2XrGk$^P9=1bfwGq2yI23xfW7co?35Z=e^MEKJaif(%q`Omy3{ zth{2P+X~OY@6b=_y*iPNFO?JVA~3!Z^h3TJG9AxXsZU0axU7_9^9QRy^q+wX!RC9~ z=R;pt<1aW3-Tn@6ZAkYIJKXiOG-;MfTLlJw3xldKH-wW?`P>e7!3uZzfmSvvXx76m@DWs%MI6@T_D;)7 zqG@AhrR-pAM`E|3djqyaV>)R)ymUgNVQh}}if~-DQI5*x-AaxmZ~#m!kwy%Zt3i96 zDx!y)f3TgSzb(?`;vL8(-+a6$46N2)WNbDX-$nn%NY}2bEAlAJ2SeRg3zYp4D@zHkMX<8&$A^5ao8*paEJv3?iCD3;LmUDl;iVVt*$+@keN`3^vN8nh+pcMpKcnzZzbH zPGol~hSw2fiwl%3qu!_G80VcXz}}X@Ob2_tH=J;OslyjC?k#E@{T5_r%U~xR0;~eN z&y$xs6$hX9ASag?xF+Qn>#+MF1W^v!)+8lcg}4{>-DWCy-A$0OWQ3x!?0Zk0xT-*< z!d%)q+!~CgLN28~$w2~@Zl_aD_`D7|SxEVK9gfRj)&&^%VxfC4Cl?* zwV!1(|96h{*y;Px&?MXyIRA>e5nN3JkQ544=KT#|wf|Oe1B7-m`D62(53R)0|L6HjWB#{s|xe!Dm za8VGnan(-DU223>)w0rx#yg@ z-goEBD<>zCXa}Mlh<0E*cOaI{;Opz_dBkgmOK=9tpaACK4NSsFEEZd$-C08NP4EGd z$pQx5kk!rg+$|Exg?o^yjI*HB({VN?NFX0ZQqA13pP;W}mwh2{5sVqhm|g8|GgLqs zG{PXPf-U`7&z=lQ;JKX%%Hn$YzG+YM7@28sSR+LOrwVsjqW z5^J2MC)v7C=83i!UOG{Yc8>nBph2)5HrA>;6?E;E>G;#Qk4j=VUqIT z6Kznbw+!D|ZNzxUu?eNcVGJI)1k(Ax3&nOIbcJvm{(vc+vPIDVzs!k5Uv*TW?Jw;y z&QumZOgJ|iC3Y>5Obz{8u&IJXr!O?g3OLE@H-i2ewmd=++6}2)Qdumgw&lX{u0CC5ZIyz?yR%R^i>AC9fcY6dXU>d54Ij~J?L&S;P?xzB}$h|B-gSSyABuI zpsL=`l6D*sS*5XkFMmZ>?bz5YbM2t#BB(53*lPO;WsGCD-PbD-UtwJpjKUgtiO#>u zk4j%>0VX{k7@WUgy;)R^QIIA508UKSAEK|~?gXf~TZ1`x1uE`lX)`Az@EJ_GnYn1` zd-l6;_gQY=TH_rt^!osdR)&YIvG0&S-4VD0jc@>pw1CzxrmxSGCJAJ}Sr`uLfVI^y z54KFB2){ITON>B0R&?Deb#At%4jZqsSR1m-w9ROrVCA5D+7!KXI_(vhxvSt-7C%E@ z;DpRq)}91~a-u0W?P<`X$y43y@6SV-Ww1kj!rw^PZ)In{yJ=e>k*&N`&LEA67uG t{-)t6j8Z17(nb>PK(qtV4*Ul@@E6SPst|XGXu|*i002ovPDHLkV1m%z{`&v` literal 0 HcmV?d00001 diff --git a/android/res/drawable-xxhdpi/ic_globe.png b/android/res/drawable-xxhdpi/ic_globe.png new file mode 100755 index 0000000000000000000000000000000000000000..ca10d4312fdd7ef838685b0aa7b3ddcdd1df4b55 GIT binary patch literal 2134 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 ez%x)b4EzT;C#(>YaGLr60000 + + + + + diff --git a/android/res/layout/ugc_routes_sharing_options_frag.xml b/android/res/layout/ugc_routes_sharing_options_frag.xml new file mode 100644 index 0000000000..6955dd96d8 --- /dev/null +++ b/android/res/layout/ugc_routes_sharing_options_frag.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/res/layout/ugc_routes_sharing_options_internal.xml b/android/res/layout/ugc_routes_sharing_options_internal.xml new file mode 100644 index 0000000000..b691b88ce0 --- /dev/null +++ b/android/res/layout/ugc_routes_sharing_options_internal.xml @@ -0,0 +1,11 @@ + + + + diff --git a/android/res/values/dimens.xml b/android/res/values/dimens.xml index dd0eaaddc7..078a9b4e28 100644 --- a/android/res/values/dimens.xml +++ b/android/res/values/dimens.xml @@ -256,4 +256,5 @@ 508dp 240dp 6dp + 18dp diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml index d82d221e5a..772a4ea44f 100644 --- a/android/res/values/strings.xml +++ b/android/res/values/strings.xml @@ -2370,4 +2370,13 @@ wheelchair-limited wheelchair-no wheelchair-yes + Public access + Limited access + This list will be uploaded in the public 
catalog at MAPS.ME as guide and will be easily shared with others + Upload and publish + Upload and get a direct link + Anyone this the link will see your list + Publishing your guide… + <b>PLEASE NOTE:</b> by proceeding, you accept the <font color="#249cf2"><a href="%1$s">license agreement</font></a> + Sharing options diff --git a/android/src/com/mapswithme/maps/DisabledBrowserMovementMethod.java b/android/src/com/mapswithme/maps/DisabledBrowserMovementMethod.java new file mode 100644 index 0000000000..eecc2f7407 --- /dev/null +++ b/android/src/com/mapswithme/maps/DisabledBrowserMovementMethod.java @@ -0,0 +1,36 @@ +package com.mapswithme.maps; + +import android.content.ActivityNotFoundException; +import android.text.Spannable; +import android.text.method.LinkMovementMethod; +import android.view.MotionEvent; +import android.widget.TextView; +import android.widget.Toast; + +public class DisabledBrowserMovementMethod extends LinkMovementMethod +{ + private DisabledBrowserMovementMethod() + { + } + + public static DisabledBrowserMovementMethod getInstance() + { + return new DisabledBrowserMovementMethod(); + } + + @Override + public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) + { + boolean result = true; + try + { + result = super.onTouchEvent(widget, buffer, event); + } + catch (ActivityNotFoundException e) + { + /* FIXME */ + Toast.makeText(widget.getContext(), R.string.error_system_message, Toast.LENGTH_SHORT).show(); + } + return result; + } +} diff --git a/android/src/com/mapswithme/maps/base/BaseMwmToolbarFragment.java b/android/src/com/mapswithme/maps/base/BaseMwmToolbarFragment.java index 72f27853b1..1b1131316f 100644 --- a/android/src/com/mapswithme/maps/base/BaseMwmToolbarFragment.java +++ b/android/src/com/mapswithme/maps/base/BaseMwmToolbarFragment.java @@ -21,4 +21,10 @@ public class BaseMwmToolbarFragment extends BaseMwmFragment { return new ToolbarController(root, getActivity()); } + + @NonNull + protected ToolbarController getToolbarController() + { + return mToolbarController; + } } diff --git a/android/src/com/mapswithme/maps/ugc/routes/UgcRouteSharingOptionsActivity.java b/android/src/com/mapswithme/maps/ugc/routes/UgcRouteSharingOptionsActivity.java new file mode 100644 index 0000000000..317d0fd28c --- /dev/null +++ b/android/src/com/mapswithme/maps/ugc/routes/UgcRouteSharingOptionsActivity.java @@ -0,0 +1,14 @@ +package com.mapswithme.maps.ugc.routes; + +import android.support.v4.app.Fragment; + +import com.mapswithme.maps.base.BaseMwmFragmentActivity; + +public class UgcRouteSharingOptionsActivity extends BaseMwmFragmentActivity +{ + @Override + protected Class getFragmentClass() + { + return UgcSharingOptionsFragment.class; + } +} diff --git a/android/src/com/mapswithme/maps/ugc/routes/UgcSharingOptionsFragment.java b/android/src/com/mapswithme/maps/ugc/routes/UgcSharingOptionsFragment.java new file mode 100644 index 0000000000..8cd64c2847 --- /dev/null +++ b/android/src/com/mapswithme/maps/ugc/routes/UgcSharingOptionsFragment.java @@ -0,0 +1,196 @@ +package com.mapswithme.maps.ugc.routes; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.text.Html; +import android.text.Spanned; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import com.mapswithme.maps.DisabledBrowserMovementMethod; +import com.mapswithme.maps.Framework; +import com.mapswithme.maps.R; +import com.mapswithme.maps.auth.Authorizer; +import com.mapswithme.maps.auth.BaseMwmAuthorizationFragment; +import com.mapswithme.maps.dialog.AlertDialog; +import com.mapswithme.util.ConnectionState; + +public class UgcSharingOptionsFragment extends BaseMwmAuthorizationFragment +{ + private static final String NO_NETWORK_CONNECTION_DIALOG_TAG = "no_network_connection_dialog"; + + @SuppressWarnings("NullableProblems") + @NonNull + private Authorizer mAuthorizer; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + mAuthorizer = new Authorizer(this); + } + + @Override + protected ToolbarController onCreateToolbarController(@NonNull View root) + { + return new ToolbarController(root); + } + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) + { + View root = inflater.inflate(R.layout.ugc_routes_sharing_options_frag, container, false); + initClickListeners(root); + TextView licenceAgreementText = root.findViewById(R.id.license_agreement_message); + + String src = getResources().getString(R.string.ugc_routes_user_agreement, + /* FIXME */ + Framework.nativeGetPrivacyPolicyLink()); + Spanned spanned = Html.fromHtml(src); + licenceAgreementText.setMovementMethod(DisabledBrowserMovementMethod.getInstance()); + licenceAgreementText.setText(spanned); + return root; + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) + { + super.onViewCreated(view, savedInstanceState); + getToolbarController().setTitle(R.string.sharing_options); + } + + private void initClickListeners(View root) + { + View getDirectLinkView = root.findViewById(R.id.get_direct_link_text); + getDirectLinkView.setOnClickListener(directLinkListener -> onGetDirectLinkClicked()); + View uploadAndPublishView = root.findViewById(R.id.upload_and_publish_text); + uploadAndPublishView.setOnClickListener(uploadListener -> onUploadAndPublishBtnClicked()); + } + + @Override + public void onStart() + { + super.onStart(); + mAuthorizer.attach(this); + } + + @Override + public void onStop() + { + super.onStop(); + mAuthorizer.detach(); + } + + private void onUploadAndPublishBtnClicked() + { + if (isNetworkConnectionAbsent()) + { + showNoNetworkConnectionDialog(); + return; + } + + if (hasAuthToken()) + openTagsScreen(); + else + requestAuth(); + } + + private void showNoNetworkConnectionDialog() + { + Fragment fragment = getFragmentManager().findFragmentByTag(NO_NETWORK_CONNECTION_DIALOG_TAG); + if (fragment != null) + return; + + AlertDialog dialog = new AlertDialog.Builder() + .setTitleId(R.string.common_check_internet_connection_dialog_title) + .setMessageId(R.string.common_check_internet_connection_dialog) + .setPositiveBtnId(R.string.ok) + .build(); + dialog.show(dialog, NO_NETWORK_CONNECTION_DIALOG_TAG); + } + + private boolean isNetworkConnectionAbsent() + { + return !ConnectionState.isConnected(); + } + + private void requestAuth() + { + mAuthorizer.authorize(); + } + + private void openTagsScreen() + { + + } + + private boolean hasAuthToken() + { + return mAuthorizer.isAuthorized(); + } + + private void onGetDirectLinkClicked() + { + + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) + { + super.onActivityResult(requestCode, resultCode, data); + /*FIXME*/ + if (requestCode == 1 && resultCode == Activity.RESULT_OK) + requestPublishing(data); + } + + private void requestPublishing(@NonNull Intent data) + { + + } + + @Override + public void onAuthorizationFinish(boolean success) + { + + } + + @Override + public void onAuthorizationStart() + { + + } + + @Override + public void onSocialAuthenticationCancel(int type) + { + + } + + @Override + public void onSocialAuthenticationError(int type, @Nullable String error) + { + + } + + private class ToolbarController extends com.mapswithme.maps.widget.ToolbarController + { + public ToolbarController(View root) + { + super(root, UgcSharingOptionsFragment.this.getActivity()); + } + + @Override + public void onUpClick() + { + getActivity().finish(); + } + } +}