From 9fcb3e6f85dc90e60497fb58bf7453eab0ff5ace Mon Sep 17 00:00:00 2001 From: Pulkit Bhatia Date: Sat, 14 Jan 2017 18:04:18 +0530 Subject: [PATCH] #29 : Showing Details of Privy --- .idea/libraries/cardview_v7_25_0_1.xml | 12 + app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 8 +- .../com/pulkit4tech/privy/MainActivity.java | 9 +- .../privy/PrivyDetailsActivity.java | 138 ++++++++++++ .../pulkit4tech/privy/data/json/Location.java | 4 +- .../privy/data/json/LocationData.java | 4 +- .../privy/data/json/MarkerData.java | 53 ++++- .../privy/fragments/PrivyMapsFragment.java | 4 +- .../privy/utilities/NetworkRequest.java | 47 ++-- .../main/res/drawable/navigation_header.png | Bin 0 -> 7458 bytes .../res/layout/activity_privy_details.xml | 210 ++++++++++++++++++ app/src/main/res/layout/nav_header_main.xml | 2 +- app/src/main/res/values/dimens.xml | 3 + app/src/main/res/values/strings.xml | 5 + 15 files changed, 473 insertions(+), 27 deletions(-) create mode 100644 .idea/libraries/cardview_v7_25_0_1.xml create mode 100644 app/src/main/java/com/pulkit4tech/privy/PrivyDetailsActivity.java create mode 100644 app/src/main/res/drawable/navigation_header.png create mode 100644 app/src/main/res/layout/activity_privy_details.xml diff --git a/.idea/libraries/cardview_v7_25_0_1.xml b/.idea/libraries/cardview_v7_25_0_1.xml new file mode 100644 index 0000000..c71fd57 --- /dev/null +++ b/.idea/libraries/cardview_v7_25_0_1.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 992521d..7ecdfa7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -37,6 +37,7 @@ dependencies { compile 'com.android.volley:volley:1.0.0' compile 'com.google.android.gms:play-services:10.0.1' compile 'com.github.bumptech.glide:glide:3.7.0' + compile 'com.android.support:cardview-v7:25.0.1' } apply plugin: 'com.google.gms.google-services' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 35f4f4b..56e7f44 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,13 +11,14 @@ - + @@ -37,6 +38,7 @@ android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" /> + \ No newline at end of file diff --git a/app/src/main/java/com/pulkit4tech/privy/MainActivity.java b/app/src/main/java/com/pulkit4tech/privy/MainActivity.java index f51797a..10690c3 100644 --- a/app/src/main/java/com/pulkit4tech/privy/MainActivity.java +++ b/app/src/main/java/com/pulkit4tech/privy/MainActivity.java @@ -80,6 +80,8 @@ protected void onCreate(Bundle savedInstanceState) { if (savedInstanceState == null) { setUpInfo(); } + + loadMapFragment(); } @Override @@ -95,9 +97,6 @@ private void setUpInfo() { if (checkIfLoggedIn()) { fab.hide(); } - - navigationView.getMenu().getItem(0).setChecked(true); - loadMapFragment(); } private void setUpNavigationDrawer() { @@ -300,7 +299,8 @@ private void closeDrawer() { @Override protected void onPostResume() { super.onPostResume(); - loadMapFragment(); +// if(checkLocationEnabledPermission()) +// loadMapFragment(); } @Override @@ -418,6 +418,7 @@ private void loadAddNewPrivyActivity() { } private void loadMapFragment() { + navigationView.getMenu().getItem(0).setChecked(true); if (!checkLocationEnabledPermission()) { ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSIONS_REQUEST_FINE_LOCATIONS); } else { diff --git a/app/src/main/java/com/pulkit4tech/privy/PrivyDetailsActivity.java b/app/src/main/java/com/pulkit4tech/privy/PrivyDetailsActivity.java new file mode 100644 index 0000000..6345304 --- /dev/null +++ b/app/src/main/java/com/pulkit4tech/privy/PrivyDetailsActivity.java @@ -0,0 +1,138 @@ +package com.pulkit4tech.privy; + +import android.content.Intent; +import android.net.Uri; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.pulkit4tech.privy.data.json.LocationData; +import com.pulkit4tech.privy.data.json.MarkerData; + +import static android.content.Intent.ACTION_VIEW; +import static com.pulkit4tech.privy.constants.Constants.DEBUG; + +public class PrivyDetailsActivity extends AppCompatActivity { + + private MarkerData data; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_privy_details); + setToolBar(); + setFab(); + + data = retrieveData(); + Log.d(DEBUG, data.toString()); + if (data != null) { + setData(); + } + + } + + private void setFab() { + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + getDirection(); + } + }); + } + + private void getDirection() { + try { + Intent intent = new Intent(ACTION_VIEW, + Uri.parse(String.format("http://maps.google.com/maps?daddr=%f,%f", data.getGeometry().getLocation().getLat(), data.getGeometry().getLocation().getLng()))); + startActivity(intent); + } catch (Exception e) { + Log.d(DEBUG, e.toString()); + snackMsg(getString(R.string.error_processing_request)); + } + } + + private void setToolBar() { + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + getSupportActionBar().setTitle("Privy Details"); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + } + + private void setData() { + TextView name = (TextView) findViewById(R.id.privy_details_name); + TextView geometry = (TextView) findViewById(R.id.privy_details_geo); + TextView open_now = (TextView) findViewById(R.id.privy_details_opening); + TextView vicinity = (TextView) findViewById(R.id.privy_details_vicinity); + TextView ratings = (TextView) findViewById(R.id.privy_details_ratings); + + name.setText(checkNameValue(data.getName())); + geometry.setText(checkGeoValue(data.getGeometry())); + open_now.setText(checkOpening(data.getOpeninghours())); + vicinity.setText(checkVicinityValue(data.getVicinity())); + ratings.setText(checkRatingValue(data.getRating())); + } + + private String checkNameValue(String val) { + if (val == null) + return "N/A"; + return val; + } + + private String checkVicinityValue(String vicinity) { + if (vicinity == null) + return "N/A"; + + return vicinity; + } + + private String checkRatingValue(float rating) { + if (rating == 0) + return "N/A"; + + return String.format("%.2f", rating); + } + + private String checkOpening(MarkerData.OpeningHours openingHours) { + if (openingHours == null) + return "N/A"; + + return openingHours.isOpennow() ? "YES" : "NO"; + } + + private String checkGeoValue(LocationData geo) { + if (geo == null) + return "N/A"; + return "Lat : " + String.format("%.2f", geo.getLocation().getLat()) + " Lng : " + String.format("%.2f", geo.getLocation().getLng()); + } + + private MarkerData retrieveData() { + Bundle bundle = getIntent().getExtras(); + if (bundle != null) { + return (MarkerData) getIntent().getSerializableExtra(getString(R.string.marker_data)); + } + return null; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // handle arrow click here + if (item.getItemId() == android.R.id.home) { + finish(); // close this activity and return to preview activity (if there is any) + } + + return super.onOptionsItemSelected(item); + } + + private void snackMsg(String msg) { + Snackbar.make((RelativeLayout) findViewById(R.id.relative_layout_privy_detail), msg, Snackbar.LENGTH_LONG).show(); + } +} diff --git a/app/src/main/java/com/pulkit4tech/privy/data/json/Location.java b/app/src/main/java/com/pulkit4tech/privy/data/json/Location.java index 81a59cc..6280605 100644 --- a/app/src/main/java/com/pulkit4tech/privy/data/json/Location.java +++ b/app/src/main/java/com/pulkit4tech/privy/data/json/Location.java @@ -1,6 +1,8 @@ package com.pulkit4tech.privy.data.json; -public class Location { +import java.io.Serializable; + +public class Location implements Serializable{ private double lat; private double lng; diff --git a/app/src/main/java/com/pulkit4tech/privy/data/json/LocationData.java b/app/src/main/java/com/pulkit4tech/privy/data/json/LocationData.java index 91a4b52..85f2d48 100644 --- a/app/src/main/java/com/pulkit4tech/privy/data/json/LocationData.java +++ b/app/src/main/java/com/pulkit4tech/privy/data/json/LocationData.java @@ -1,6 +1,8 @@ package com.pulkit4tech.privy.data.json; -public class LocationData { +import java.io.Serializable; + +public class LocationData implements Serializable { private Location location; public void setLocation(Location location) { diff --git a/app/src/main/java/com/pulkit4tech/privy/data/json/MarkerData.java b/app/src/main/java/com/pulkit4tech/privy/data/json/MarkerData.java index 73d6f19..8c16556 100644 --- a/app/src/main/java/com/pulkit4tech/privy/data/json/MarkerData.java +++ b/app/src/main/java/com/pulkit4tech/privy/data/json/MarkerData.java @@ -2,9 +2,11 @@ import com.google.gson.annotations.SerializedName; +import java.io.Serializable; +import java.util.ArrayList; import java.util.List; -public class MarkerData { +public class MarkerData implements Serializable { private LocationData geometry; @SerializedName("icon") @@ -15,6 +17,24 @@ public class MarkerData { private String scope; private List types; private String vicinity; + private OpeningHours opening_hours; + private float rating; + + public float getRating() { + return rating; + } + + public void setRating(float rating) { + this.rating = rating; + } + + public OpeningHours getOpeninghours() { + return opening_hours; + } + + public void setOpeninghours(OpeningHours opening_hours) { + this.opening_hours = opening_hours; + } public LocationData getGeometry() { return geometry; @@ -91,6 +111,37 @@ public String toString() { ", scope='" + scope + '\'' + ", types=" + types + ", vicinity='" + vicinity + '\'' + + ", opening_hours=" + opening_hours + + ", rating=" + rating + '}'; } + + public class OpeningHours implements Serializable{ + private boolean open_now; + private ArrayList weekday_text; + + public boolean isOpennow() { + return open_now; + } + + public void setOpennow(boolean open_now) { + this.open_now = open_now; + } + + public ArrayList getWeekdaytext() { + return weekday_text; + } + + public void setWeekdaytext(ArrayList weekday_text) { + this.weekday_text = weekday_text; + } + + @Override + public String toString() { + return "OpeningHours{" + + "open_now=" + open_now + + ", weekday_text=" + weekday_text + + '}'; + } + } } diff --git a/app/src/main/java/com/pulkit4tech/privy/fragments/PrivyMapsFragment.java b/app/src/main/java/com/pulkit4tech/privy/fragments/PrivyMapsFragment.java index ba5be7e..6735ff3 100644 --- a/app/src/main/java/com/pulkit4tech/privy/fragments/PrivyMapsFragment.java +++ b/app/src/main/java/com/pulkit4tech/privy/fragments/PrivyMapsFragment.java @@ -162,10 +162,10 @@ private boolean checkLocationEnabledPermission() { } private void markNearbyPrivys(LatLng myLocation) { - new NetworkRequest(mContext, mMap, universalMarkers, myLocation).getMarkerData(); + new NetworkRequest(getActivity(), mMap, universalMarkers, myLocation).getMarkerData(); } - public void snackMsg(String msg) { + private void snackMsg(String msg) { Snackbar.make((CoordinatorLayout) getActivity().findViewById(R.id.coordinator_layout), msg, Snackbar.LENGTH_LONG).show(); } } diff --git a/app/src/main/java/com/pulkit4tech/privy/utilities/NetworkRequest.java b/app/src/main/java/com/pulkit4tech/privy/utilities/NetworkRequest.java index b936eba..d139cfa 100644 --- a/app/src/main/java/com/pulkit4tech/privy/utilities/NetworkRequest.java +++ b/app/src/main/java/com/pulkit4tech/privy/utilities/NetworkRequest.java @@ -1,9 +1,12 @@ package com.pulkit4tech.privy.utilities; -import android.content.Context; +import android.app.Activity; +import android.content.Intent; import android.net.Uri; +import android.os.Bundle; +import android.support.design.widget.Snackbar; import android.util.Log; -import android.widget.Toast; +import android.view.View; import com.android.volley.Request; import com.android.volley.RequestQueue; @@ -20,6 +23,7 @@ import com.google.android.gms.maps.model.MarkerOptions; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.pulkit4tech.privy.PrivyDetailsActivity; import com.pulkit4tech.privy.R; import com.pulkit4tech.privy.data.json.GetPrivyResponse; import com.pulkit4tech.privy.data.json.MarkerData; @@ -37,7 +41,7 @@ public class NetworkRequest { private LatLng myLocation; private RequestQueue requestQueue; - private Context mContext; + private Activity mContext; private PostPrivyRequest data; private GoogleMap mMap; private Gson gson; @@ -59,7 +63,7 @@ public class NetworkRequest { private HashMap hm; - public NetworkRequest(Context mContext, GoogleMap mMap, HashMap universalMarkerHashMap, LatLng myLocation) { + public NetworkRequest(Activity mContext, GoogleMap mMap, HashMap universalMarkerHashMap, LatLng myLocation) { this.myLocation = myLocation; this.mContext = mContext; this.mMap = mMap; @@ -68,7 +72,7 @@ public NetworkRequest(Context mContext, GoogleMap mMap, HashMapoLC)J1vRQG(!3f!|Jm z-!o>`O@QAqWz;@#+Cz5RI&IiZfZjxR+(C5OL3P_VYuGkw*Enq0N`2i?gWx4n$|_mU zP=eo4gy2GT+faeuGG)~vOvflz%vy}&TaDvLd)!!w;zfAeMtR&TTF*y$+&gaAT#e&1 zXVy=F-(8R7Ax+0#kmO&HFk;j+Xx1`j)nSt4VUgrtkmO5!-BX3&RE6MHh~ZU- z;Z=sM&l;u2d**tI9K5^MUa@tvn;!=g+WtHY)ljSa9(q)$B zUXSD~UC<&;$RbY2Ky%twiQ!j?;Y4=aDOt`VPsm4l+$mViMR(jtdfZZk;5u&DIc(Tf zh~ZU-;3QGWB~i*DO~@rv%Op_AE@09xVbdE!!Yy6UN`BrSNyR5s%qdsREL_kULcuX( z)Gc1oEnm_tU(rW@r>g(}8)HdCK~#7F?AC=1gisJb!M($+|8|L?QKDaFT6kFrP5=M^ z000000000000000008{{O&jT<>-#>^!yrtWMq%<_WeCIcAq>JW3**LMV%!)^j2nZA zK^UtH6Jug9F_;)(5Jnh;@s%MA!juzcS%cKVY?mOJFxyj*MwsnQn%LQ|3*A;=7z)D~ zouS7bGkVO-d;f>JZc}AxFJmIz^N%8n^~uRv!{->0DrLAaA~n(wM&yTNDgh%*JHbES zCBn$p<9}^+!XyE{KefT6C{q}wfD9Y`a$}9gDN`rR1b3!7n4Y*XmB|n$uFRxVDMOeE zsZNG4Qw}pNRml)WN4=S`u`Vel!*UEyW262(>u*dk8Rj4n!t-O^+X9J~ zpwQT22o=c?#!E1@L>RQH3x+VrD+9xpX1(RSmF3mEo>^}#{M%T+{!qQ)FUAN%7)BVv zFv73_!u&TI!w5r|o=_^nKsy7W9>_l&Uu7sb@L`4xs3e9tIQ1c{Rq=&L^^uCzyF(8nPq`6 z-@nJQ?j`(8?;owL4SM|p1N{S^*trYkIARzKz@19v`pV3#GKP<#@gB$<=Dh!7^tX2o z%3<_BD>-s9_>IEJ83YXz>TxxL5fQ4P)!(D)C=8z(xM+M7`Ho?7GQwnm!vNt4zFlOm>q*rhRpo@Bd5-(Sy+Gv_tvE_KW|wF zKlmr8hyF}Z-62$hdbndS5r#;uhp~u zrWGM|Xvm|XA-Jh-W@GM~EEO|u$_DM?g($NHn5mR*5-|aWgNd?ls6gfqrt9JFV?<x|O}HSmnx-j%!dhbBILnwU zIVR*LD>?_5bAvFmzrnP+Fy&IY99$q0cmh$SGCo#`G8>2SD)eFPBROTh+-Q&`pI7Va zQ{r|(u`&{6HsFG+-h|A;LiGoG_MscO4TJ$$iJVFi zE(j!?hUp2@qrEyHQM`joPaKF>yaR-QuITRlA0ac^O>cgq@PXAP5bpI~z8uL1)amCdUw zYGX!3QMdI)GubfFCEfH~&bwY~)=k*+KTdUJc2dz@r>2Hv1wwgXV#dHRAQ#54 z?0?l>T1L#W$MqTUWl5#FnopPO^?iHpkb6M|S^$$!j2-dP5XlbJ+hGi1t9VR41 z6dE>I;GCLuF`s~O;M-i6+MD&c-VqTY5f(XQ4;dz@3FhrBVJIqxRJ1H4(xVZ_xFqI^ zCZA4_91y>cK(Zndv>~a!j@ZeK+xtG}N^f>`cDsuTlhW)R;%JL+M;TUgh znHZi(;?FeDJ!%AfEvPFmxIEx=y)Fplz6!9l~nm^7!p) zrC~~Y(OTLzF*Yj7x*wCtL>x(X=E??UEXat7F-C}t(ZuL>&Es+!#&<4dEzp-(_Rf3o z3IpIC2#*t|PxZHaaD~KhoGu!fEc?U~Wa&XQG$n>N7S*IOyPSaW{zdDu_gTNqWJqrC zNzC8Lc*q>DpfW(#9VD#T<0Jer9rWk@u z(&QlDVJ1Yz3S}A%%|HFveDR+P(>?p(*70%Kw&1cK7R~T%wL0t;&7$jWy?T7C&2#e| zMQgY0%3$;Dg%RZxNFEp|vZxp=0$!%!E~)=*U{1hvyKlX@I6j8fgKLI%+}&LW%-D4j zorS_QzH7g;9Jhy&iW)KGz=pBnJF@g{nHJ)v9hqVHPj>FZw{aT^1Gw2MK|V@`Yk@e2 zy2UOBfGv<946}ROGH&m)JB1Qb$F2V#yN?+_l%OYd`E2CAEIK>+;p6kv>tKo+T=n$n zgS^VeSeSe~C=kY3YcL3d=bnvO#9=Y)2otY9Mi(qh;#a7E3v5g3<2mKlyoEW8Wl&gz zv4it@J}6zz0bzo(W?=1aPoGxj%gQY9{8ZN&^CPy!M;4zZxR1q}#2<+?dqbslE2Ayh zc8$E@^4Bn-1^_HZs4F`j=gzS`m{2=c*d2r!SJ;?%<*@8NWBlG=LyPp&xWom{{N@IB zYGH2t-VKHW7_hYs#+D`ztPYm}z}2>}VNi#GDRXPCe(U?6c7^fY55M^03-4oP(ljoU zq!(du*^9-&;Bs(EVQw6{v^7RRa5Y#S2G$O&yUc-W2u1CJaG_%2301)J|W;J6)U=V_< zur-T#Z3^iI^B_%pc1V!y5k!=@Zo&-K1(W!6V_fE)VWj3(2d4*I7uGSR;j$K*b8s~T zhi{xi7;HgTm>*|8J%mYmtENV?G3%Hy{evW%Q^R{F&cm~ zd?|P+9Dnv1!gOs+;-~L*hxt!u%rS$0GaFNw8y9>#45eBC5KWjVIKpT_q`XYE1`ZG_ zV{2=l`SjbQ^Ng8J70V&(nu#^jZWsZ43=2F#>4nXdt6`&{5C%_q@Y3)jkN(HhH9Q= zad!h0!DxKT7D+NoFE?Dyn+i=zQYVR`U_|heaqh^u#RTE~EmsL5+e>_v}-8ax2ZA@)CmLej;;PJ8$2G~`f&XOif1Q~z-!!OUzjBs7Ph3Qh5MkcR^QJEYnArz4r zRW}f37#ouvh0)lUSvqaPM2-(5%!~2)@o4mJ6K2iBe=A{rZn+$j>EUihAj_205hmM3 zn7NEF`rgy0OvkNkIy*M}(PBJ$i7+o-?L9`|PxkJ^xozZ%<2WE5*C&YbEH-d~=(d^l zJxxHDxhN0U3q_m5G`AF7p?y`cuK)kj^4nzr2?7x5N+tZVtf0GT`pjFBm?8Z44a^B` z6=Ckx!$fgN9ECndN?8~t3lri+24|Q7V+Urte{j$_XwJgmFVueP51)VW>yN*0qYHoB zz^pbfD6NH2zKSAWDaCQ%H?CY|rrx1ug|}tf*V%EfX7}2perM;PGY512%eL)zXYuqU zWHvAUs}2m>sfEF;M9jd51Gu=KP#F2nrHk7(U=EUG?ltD@mjFQz@IY5LFwX#!*29FD z6owAMkHm(_klV{Z0~I{_NoQ_i(0!obIt>pV*yX|g2ByC6%3$6~YG7C?Vva+O{3yiG zup~*uVLY0c=5`k}{SH3PZ|~3b05aC(Jic7BwSifEU{G2EHbpuo1 zyXl~!@`-^<%j1wF9+A(XiXDuUq}fmybgfF$!t^{Z@vaqNwi>Q``x}_LcC$=Z!E{Su zQsl7@1d1r+NGS)y+AxpyvM#o=E@XOeDNYP}!@-CROigyP+8tC@2IDSIYHPl8jLt0|p}#z^0!pP7L~}fwuNHFqM6h*$%2tO+|drM(l(P<2h*E_X|*yhZKW25r835i3s@B4St1P>BsrNeEMLp+{n0XY-a~5!0|{DSO_qREDT8_k%fsY zjC+;oc@;2M|Gr=B{tJV-BE)Hc!JkwJ@4Z%5(Yu4CVchjx@a#bc(}9Um4#($hE2Fi8 zVdW;K7Ut=_vWXc!1Iz^>L;(iBxxLOX*`%97i1)IJKJC}TZ09gg$uDv$6X@2*&kEDYVK6W@w}3)x3uBm-im|#+ zGE!0)#sN^SHM_yfhiM4g?E(y1KbWl8_rkWDm9`t41aog^W-D_hE`wMShfKswY*`35 zD`UR~;7%{Ud>Aom{b91jgzM36In3asK1gO^FgBw|N~6iJRk3OJImW#sU={ey*9P;3 zD3@6;7W9KaRU`9WHaM{#a+nrq#*s!u1_Q#(5P^xc(U7tu)9j*G2J;|?5o-vOl_kc# zTPBn4oec9QZwfPWDL41pAB6;mh&k3QasEpuNzy>cXpOM!<%c)0+{h32utfQxT{V`6 z`};?fs+Y0Z1G+LE$~ky4Yz zA;N?4cnvUU;pi9M1{*Gp=xehSdaxm?W zpJ`x_w>UA{7zq;_Yx&w>P=0o~w)JwkBxd`xu$iUH!W@;rNSiifh_G&8R&YULt{d50 zJGTbQcCY|LurSh&4Pn6nZD5v%VKLwQ`?8M*OSe-pF>V9117q0E%uAk_ix)5cXH>M_ zFsly?>K|k?9WM{Fw+N%90S#az+mX>Pd1Az>y>6Inc^KqndFj2u@|D48V~i$iqa_ZM zQoZ4DsG=x3KEC^d@B8|PelH4wpm%t97&My-i^8Ai5Mhb2aDHf4Idgc*VY0g35XC;- z&8D>mE0h#rjFB2Rgu66^Cw-Xr=+UF=N7unc#3&3ywQ~Q8+Ed(C;>FCkns9yezUt-4aU-20A z{{@quFl&9Y8qC?G>;tBa$hpXylOErEJiG&&e0E%qT!0wWclGRJ8jz;d!!*|#CaY~r zlyxv3nPjkHX<=ftyOAWoXakvt-a~swz`^tkvA2z6TqB?yrLC6SLRU2ZDuIxbQ09Cy^YQ64nEBMu-8Csw`E~a-fY!{B9R4#xHTFohax36s?}6jgnip`+)8 z(Jm=1im@RU}ykHo#E-<&R{x)g<64$_75mhB_U|tN2dqc+VeKTNO`5=jhOEYFGjw*A7TX;GNq$f4Cjoo2`K(3#$|xB z(`S-N;@)DSw~4)>#Z=RXaf3i%FV*kLeq_`{TKZxNa+-;1U)2-X*jkM6 zSX>zt<7tQSYAu6^!HK^tG4Y|RiI9os|4?cG3>!4_^~n)qnU<+^EX%iWhlaRdDT^$Y zDMj6aG=ngKBwG+1jeXhs(?R%$VdU-x}GsMkHeUiT621+#qnSX$=7 z6p+}<&C!cNC+G$?9HH$JQ;5XGUZB<>S&3O3I%0fjBd~qXTVGyYUcV@DT+gac9<7Ck zDcKq>U{Z(~3>W!6=A;;m7p(t%EnjcPR!)kTy6>%DTvzP5xw&=NSK%TTJ+EAx^DbtX z#gh4Kdn{sbCKLHVLwn){hsm9Z9}bN~LuF^B;Z=mh`o5rcUQy?~WO7CQlAR!q}GFDRzdY20eGno>=hdxUX= ztUU%?*PZBpiHQ7_^g>K0{Lf6K_mW;r6eaJ;wm*@Hy+rYXTA~qIU(C)45u=(w955xj z16mp_X-3smk8w`$yX_srct`nJiL+sSGR3pqQ`! zPcc&_VxyQ+#|9~_CW-+w9%FGh?5+|1*r7Z3V>6ZIFblfbdI2%onIO^vo6KaL zMgUHl&7uk$;OVT*n9d1vAZ`d`wXH42ncA>@zg`Qo<1SF^YBl)llZydtplNVLxz(_n zMN|^u$$Z8Px6JW-)E#5(!qzp;SX*r=fu)TUKNkZyR8ncR0?1(rG3_!%IG7<&X&hDK ztX*uD6m#Ta@`$-fDPJ}xC~YdmU1FZWNf&)+iOv|~28Z&dwu`M&Fmf@u7?oDO7l2P` zNgc#i39Vcfz(q=RU1vJu3S7u4HWb@BnO@F{7>c|t5SQ-dfj~&yCz|9|E@m8JCWWX` zDnyU&p@PQ>@iy(lHN-ZxlPc!Nsd-JC0yM1xtsZxx)*kE-Xe)8&8MNiWGpor(G+HGnbN=)CW6dXpeCRCxL2P2ukTsqUXLb#rdSXP0ptPcC#!*h0>qJFYXd! zQ-BiRL3qde3f#Cf)CyyRlQN-FN=V#Z0Wd-u;n6#em6*!|?> gC$d;f&WRNBH!c6K26BXYD*ylh07*qoM6N<$f~Z9m&Hw-a literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_privy_details.xml b/app/src/main/res/layout/activity_privy_details.xml new file mode 100644 index 0000000..a32decb --- /dev/null +++ b/app/src/main/res/layout/activity_privy_details.xml @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +