From 8b219fb356e89f4d325b3dcafd1d4ee259efe53d Mon Sep 17 00:00:00 2001 From: haifadhila <haifadhila.ilma@gmail.com> Date: Thu, 21 Mar 2019 10:45:03 +0700 Subject: [PATCH] Added NotifActivity to display notification in RecyclerView --- .../wargamobile/android/NotifActivity.java | 17 +++ .../com/wargamobile/android/NotifAdapter.java | 88 ++++++++++++++ .../com/wargamobile/android/Notification.java | 68 +++++++++++ app/src/main/res/drawable/notif_polling.png | Bin 0 -> 3715 bytes app/src/main/res/drawable/notif_survey.png | Bin 0 -> 6065 bytes .../main/res/layout/notification_items.xml | 108 ++++++++++++++---- app/src/main/res/layout/notification_page.xml | 8 +- app/src/main/res/values/strings.xml | 1 + 8 files changed, 261 insertions(+), 29 deletions(-) create mode 100644 app/src/main/java/com/wargamobile/android/NotifAdapter.java create mode 100644 app/src/main/java/com/wargamobile/android/Notification.java create mode 100644 app/src/main/res/drawable/notif_polling.png create mode 100644 app/src/main/res/drawable/notif_survey.png diff --git a/app/src/main/java/com/wargamobile/android/NotifActivity.java b/app/src/main/java/com/wargamobile/android/NotifActivity.java index 4c207ff..20f65cc 100644 --- a/app/src/main/java/com/wargamobile/android/NotifActivity.java +++ b/app/src/main/java/com/wargamobile/android/NotifActivity.java @@ -2,12 +2,29 @@ package com.wargamobile.android; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import java.util.ArrayList; public class NotifActivity extends AppCompatActivity { + ArrayList<Notification> notifications; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.notification_page); + + RecyclerView rvNotif = (RecyclerView) findViewById(R.id.rv_notifications); + + // Initialize contacts + notifications = Notification.createNotificationsList(20); + // Create adapter passing in the sample user data + NotifAdapter adapter = new NotifAdapter(notifications); + // Attach the adapter to the recyclerview to populate items + rvNotif.setAdapter(adapter); + // Set layout manager to position the items + rvNotif.setLayoutManager(new LinearLayoutManager(this)); + // That's all! } } diff --git a/app/src/main/java/com/wargamobile/android/NotifAdapter.java b/app/src/main/java/com/wargamobile/android/NotifAdapter.java new file mode 100644 index 0000000..497fce7 --- /dev/null +++ b/app/src/main/java/com/wargamobile/android/NotifAdapter.java @@ -0,0 +1,88 @@ +package com.wargamobile.android; + +import android.content.Context; +import android.media.Image; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; +import androidx.recyclerview.widget.RecyclerView; +import com.wargamobile.android.Notification; +import com.wargamobile.android.R; +import java.util.List; + +public class NotifAdapter extends + RecyclerView.Adapter<NotifAdapter.ViewHolder> { + + private final int TYPE_SURVEY = 0; + private final int TYPE_POLLING = 1; + + public class ViewHolder extends RecyclerView.ViewHolder { + public TextView nameTextView; + public TextView detailTextView; + public ImageView iconImage; + public Button isiButton; + + public ViewHolder(View itemView) { + super(itemView); + nameTextView = (TextView) itemView.findViewById(R.id.notification_name); + detailTextView = (TextView) itemView.findViewById(R.id.notification_detail); + iconImage = (ImageView) itemView.findViewById(R.id.notif_icon_image); + isiButton = (Button) itemView.findViewById(R.id.btn_isi_survey_polling); + } + + } + // Store a member variable for the contacts + private List<Notification> mNotifications; + + // Pass in the contact array into the constructor + public NotifAdapter(List<Notification> notifications) { + mNotifications = notifications; + } + + // Usually involves inflating a layout from XML and returning the holder + @Override + public NotifAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + Context context = parent.getContext(); + LayoutInflater inflater = LayoutInflater.from(context); + + // Inflate the custom layout + View contactView = inflater.inflate(R.layout.notification_items, parent, false); + + // Return a new holder instance + ViewHolder viewHolder = new ViewHolder(contactView); + return viewHolder; + } + + // Involves populating data into the item through holder + @Override + public void onBindViewHolder(NotifAdapter.ViewHolder viewHolder, int position) { + // Get the data model based on position + Notification notif = mNotifications.get(position); + + // Set item views based on your views and data model + TextView nameTextView = viewHolder.nameTextView; + TextView detailTextView = viewHolder.detailTextView; + ImageView iconImage = viewHolder.iconImage; + Button isiButton = viewHolder.isiButton; + + nameTextView.setText(notif.getmName()); + detailTextView.setText(notif.getmDetail()); + if (notif.getmType() == TYPE_SURVEY){ // TYPE_SURVEY = 0 + iconImage.setImageResource(R.drawable.notif_survey); + } + else if (notif.getmType() == TYPE_POLLING){ // TYPE_POLLING = 1 + iconImage.setImageResource(R.drawable.notif_polling); + } + isiButton.setText(notif.isFilled() ? "Terisi" : "Isi"); + isiButton.setEnabled(!notif.isFilled()); + } + + // Returns the total count of items in the list + @Override + public int getItemCount() { + return mNotifications.size(); + } +} diff --git a/app/src/main/java/com/wargamobile/android/Notification.java b/app/src/main/java/com/wargamobile/android/Notification.java new file mode 100644 index 0000000..3c68a39 --- /dev/null +++ b/app/src/main/java/com/wargamobile/android/Notification.java @@ -0,0 +1,68 @@ +package com.wargamobile.android; + +import java.util.ArrayList; + +public class Notification { + private String mName; + private String mDetail; + private int mType; + private boolean isFilled; // Whether the survey/polling is filled or not + + public String getmName() { + return mName; + } + + public void setmName(String mName) { + this.mName = mName; + } + + public String getmDetail() { + return mDetail; + } + + public void setmDetail(String mDetail) { + this.mDetail = mDetail; + } + + public boolean isFilled() { + return isFilled; + } + + public void setFilled(boolean filled) { + isFilled = filled; + } + + public int getmType() { + return mType; + } + + public void setmType(int mType) { + this.mType = mType; + } + + public static ArrayList<Notification> createNotificationsList(int numNotifications) { + ArrayList<Notification> Notifications = new ArrayList<Notification>(); + + for (int i = 1; i <= numNotifications; i++) { + Notification notif = new Notification(); + if (i % 2 == 0){ + notif.setmName("[Polling] - Judul Polling "+i); + notif.setmDetail("Some details of the polling"); + notif.setmType(1); + } + else{ + notif.setmName("[Survey] - Judul Survey "+i); + notif.setmDetail("Some details of the survey"); + notif.setmType(0); + } + if (i % 3 == 0){ + notif.setFilled(true); + } + else{ + notif.setFilled(false); + } + Notifications.add(notif); + } + return Notifications; + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/notif_polling.png b/app/src/main/res/drawable/notif_polling.png new file mode 100644 index 0000000000000000000000000000000000000000..08965a11a2a411816aca8805752f2a5825e68aab GIT binary patch literal 3715 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/notif_survey.png b/app/src/main/res/drawable/notif_survey.png new file mode 100644 index 0000000000000000000000000000000000000000..b1ec1938fed2e896f2e82c26bd7c4c8f5cfa2238 GIT binary patch literal 6065 zcmV;i7f$GjP)<h;3K|Lk000e1NJLTq004jh004jp1^@s6!#-il00004b3#c}2nYxW zd<bNS00009a7bBm0008T0008T0g2Xs?*IS*8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H17cNOeK~#90?VWdcT*bA(e|PT|X|?K-CEK{;0ybcS?Zs3BOA?BC z)R+)p9r8gQc>(eTkvNd&1ml27^a6oA9_0bqgl1DhZ2T}p1{-2K>xK*NMY3dBy;x=Y z-uwPgLDJpT_9AP4-=|O7xp!uc_MAI2cV^BRL6&7sH;g887H|PD1<339$x0JOEWS}S zd&VSfURI_?la`?tP^s`bJ=D}VoNuppRlL7d+7C1h_$ddrS<5VK3Hp~}hA`9(z-Th- zfb)R4z?|;iQvspp9<5s7sXNrnyTE{`RS#O8z0JwzRy(C@Ty#2xzL#X+0I(I<(*3i` zT4r%Y^Z$uAL(%|@Ci6UCA#gEpE}->y@5pShlo-e^NDrxw<~kd<KGiYM2nON;b^)7# zcY%%8GRu(qLWhh27)|EMz@5PNfl0ySnNlq9>LXcb^?vPRP?~CO-1?*qn>*<5s2q3$ zc*9y|ITTi<aVDt^z-Tg$pzBG$ldh&cB-Z{WgWMv0L^3qibaKm6ojBZswgkS|0{j(N zVJ)*XL?lEENlF7Sn#{9-{{*fD2Jf`}@c3;SzH?=c&ud;;#jduARN4yx7@OX}d0EF0 z1<B|ATeh|Gz^m?X!~pOBYk+0eGRwAb3yBp;WdKH#c?Pf)xT$aYxEwDxPIEFP-_7VO z39Ug(dT|aKLmFb5nm*&bUQ`+t2+DM?tm1>(i>Y(w_De6)wQzIsM&Cvt%SdkD#xW3E zhnwm;7cZ`LvPszq{0&%QEwg+bRAF%-DGb19GM@=N4%`l?`d(W&!@+$Q*wBhya*Cr0 z5J%_ZOX<PzRof&sHc$6??c%(>%*r|%R=El!nGKsx@$)woEr$fW1N_=rW;qg_%EBk1 z24FOq#{f%!MfhmyFB|9Lw^z0IepVG^qn<D_qB_^q8!5LH`MfqkU&nPLtPzzz5X%S6 zyzmdNuS*`_&%hJbGD~GtD-D6D89>SE<vDaszRd3aJqCY|sf^%kcaL`2JtL9(Kk+?i zkXWk!8iUaN1gS-|=S~Dsj7ZLp>*sLP=G%xS>1()V#MX$)ABg1k^6+K@Hp%C|2?CNf zU0tKg)KnwjPZ=^$1#Abl0ozL#EN+d4d=VQ!$?D}IP(oJ|u8W3H0Ar+f?(f{y`&pHp zfqKfAh|B%DeLU-%&h>e1e*SJ|WL896$3Rw;YuW0|ie`~c;MYKD>4L>Ro0nkmW0t{D zvU>S6U?Z@cC@LRdl&7=bXTcEKM2<hE8;&zRy-txnKE00VhT~DGV<3~Yj%XLDqw720 z*sX)G3A+U-S-rd%*h|+ud(^qyRmHcR-zY>JTZCAYJ4lXD5IEQ|no7qA0LG@(Gu2QH zep}$k*k9}B)z-+yE`!hvOfOxqxHg>3VZCE_^Aa&qe(aH%YB<4E!-+%-5)Ja`(#5}p zlR2y|pk(#(JAoU*$(tf3+|aF)kO_ATP!eXo6tN>LorG)vC99XG0lsHaQY4b;-MR^h za9V(wL^gIv5gXKW=_Vw?F@W>K$de*Igshuz3?QmA8Y!Ym$hwJWA}GbsCuIP`oRk3! zb5aH{%t;x*FehXKu(!BI#6pl1krR$?LNWlO$t*S=X<Ha-B`M-V<B_(7Mw2<D9W$Y} z01tUx(x?#gq=*yUx_Ky+JV6_P(PSP=*N)w|;2kJh5^P=#7q1lF2G%fH+O4ag2&D!1 z6Oa+QJmJxx>hI7Y+oHa!CT^T?hv%6TCK+_;Dky?l)G?aOw*U*ml?Xs32;`^bP>`OB zN)_1d(!36++(*wY9l6sPN%aZEu0M<E8JPj^lO%~odkamDR;0*Uyah&+`4(%L<^4c6 z1~h<fSL^4(l|&^7%q>0#<H&PSt3un+>yR2qJFyM`+2KTLYD1Mjw3Z@Vof%v>;X5Ja z@km~*HM`kTyC)Juc+O}t|09q~doW$VZ-KA|exe|9`?PDgc=W80l@DN>cr%{NalM~C zm9@x@q2rA$IV4&N?hZMhS|xJv=vmx8?HWWO>}~L)=+fPw3~B&IlX))i<8URoc=Sw0 zW)y~-9a+?J>iosn$1gxu>%k-8-dlmUwi&#^xoRZ@uY|KRkGi~vki_tvQ%7bLa`EVp zm-zeg<8B@LB~TaeJYmijW@yrxT@;0lLn<}42{&MyumF|40ny$FNZ<ug>O>Um#A-Kh zsK|)8b)#_`CO~#{CRt|}O=o-EK04j@aI&lD(xK7c4So&4Xfj_!7%tg86lWA5_;Ah) z9|0+S1XB7plU-r^>kc6VL7+IJfTOKd;TAF1Xfj`9EwgO$b#X8=eIVQ#0Y>PD=#KFu zBnsc9UtRh%0Het~61XLj8r7=Qw!vr-h41o~Zk;Od*8==Ipoz5BSfgrbL{okcvF>D| zMM-uvbm>%q!T^jWvljSKtR;#Rb>&gAUVj$D+b@&#+8@yFNxI-0$;OYmb=wbLEx>Jn zZwLA$L2%eHy!#r0qkCj5%VhlDN(8Sbv4SNxMRe)5AHEDAqQPH0(CyfS;2f|vAcHKX z#vK7r=(e8$7)|Cm4D!yH3<w@KX<NTgq<agC6Clly!`Q9kUIw-RVbA)-3++xTLT85} z-7)XV1V}R^>8Im?ZDwez7GWaGG6#=Tak#viP~sD)khp2jr;2nbw*c2P-%&qODCno- zUIQ?i%u|7wx1+Kw^M{w-qw+)@8f4rdMEkl(-GM>dsYu^5VlrccSYl2AK(Wzeo@y<# z9EAQ|!2EdBe&}!|*Ej6pMg4J}Nv~p#TB%T92*CB4Q;PIfS;TU*4X>2Mi$lrB{GLDJ zZUAcQdM*?@(Ib&1czHlu&s;IE5zG>8oFOQef<N|T)7WOCsrj^v<Q_}r_x#b<04|S5 z&AB$^Q*72Yktqxw>}r8V85PZjiqG9$J8hC7;N=jaSJ!F)qscr4h*=b)zBFazGO4M5 zG_Fj+%Y*q2Ru#_hnP-fng-Lbgiu6z2SvXR@E#WZIXfjW+mRSz<3<BrJtLCG5V>$Eq z9`Xh}@l$Q}+<*QVxX(IIk;m}%%ZfCoEbyr(J7#hY1LgyVRDC|g1(&GdHK*@gLK&ZY zfMDzYjxW}pKvRBDaqoI>79Dcx>5qW<@Xc#rT>AeWc1!7e;mPDOb$h>b!PY^>Cm+yp z(>MF*(l>vm$nTK_K6VFw`VSnbWW|S{M=o%TDag;}KYnmyysNz&Ky5UcClKbQ&q#R7 zmB$RxrsxVZ`*)$4whQ-J=OH#XpgFKxk$0mvgJwDKW=Xf(Lvw3;!21%7S{+&Z<1iUz zG?^!;NPzO8YXtwgtH9^Ao~}T*`7@<QkRY(e?fW2z6d^N81%$tCH$rxK^?czmDAEO6 z2N{2V6YZYuiffL^GpLo5ey_?<p-@c%4FKRRS3c*bxiNV9d;Vz3eV@71KId}SxhANx zbvi903X;FID9B6L+f1Pv@ZAo_2^%Ut$(zP4^}7Pz>z+6jchTse%bqgv3?BPwSP@i* z3k3=70(v->o{#I?IRWo;Ty#|&q#0HeCWQe2*si`2Dbs&b=ovi@&)A@j3rrC_g(?!< z1ps&@8Jn!4)pV2Jd)nsA$L?@pcMM%G;UuIW;e$YceFrO8ysT@w_g<}mOV#~n1FIx0 zzk2HnWRzRMQba`ZbOAlQ>CWeb^v&*Nk1Swu<tK^v-)Tqu-vV^n!QbI+vWjKSkz6LW zldbZy*<+wm3LIf0P`N35QV{pmlnc(A63}VXCaYNM$!3KsFDT_t8b6AhY~_SfiomFV z#&}j(keAI3-=0TSW^}?0O&m9p8@_!}RLUBLG^&9HAn2%4(csEU&gb%rX42H$7ST=~ zolZkeR_e)*fQB9eh&!T6711=U;Bk|&>Mg|D6UZ5vblhwnbRHpvPa5Lh1w;$OivLA( zU^lAPX2j~_7~Xjqq=*jD9F8=qNKgw937Vq^P#^Dq@V3}cOSmVB4`UjJqyeODUZ+Tt z)AW#X4hfZ^*9EAnD^OP+Q>44j3%r<=LP2A~27&Dzb}FiB2{ppk^v%k>0J2KNVVoZw z!G;%!c?)=N^#(R=+lx2ESbt}zTwIz~tw^sMcNRLs(25|MBs8dixCYp%u4$xs+ZJvX zn^>rACXL{Y;Cl5b#V}6--e^qq{b6!aWi7Lm6GtPc+`5etT^$S5tz4%*#gpmP<O_jA zyA%o@E>tVy0&Mjd*j?97W3$rbEXAOlw3b=Qdmfz)@v3!t^*+Qt{eFSq;T~<^ap<+0 zR-aB_tGm5}LhVjcbm_duF=RdPy?E4mDoq(S{T$KGcQTx86mos$$;88DlJe=_<xLN2 zu_%R4)<b^-hzpfDqd2GLfTAz|p0=6m?!5;oOKAk@pMQjAv(i0mmD{($qzH=j(Cr>> zEwdZ~YT{9AlRlSEd^mLqP6zrm?<&(Bc62*7E7A{o(>N^YVj|-(pr%{r{bB@d0B(;* z?eDpBnJL;R7W#*K)|4MaxAR{(XI|Kw<})N5@KF$+!AC1jvg#9`F_M#t+#Cao7RDt! zQxCmkzP<*qo;VqROBQ&=S;()_PAa;B^mVIoPn?RBmFqVoT&1LCmp5=6ew*FVJ=v7p z*z9q4URmGshssxCJUA@r_|%7oZ{M!KUr4xBDc`_IS>N+VuK{#Njf(5z@~$VBT1mN= zPg8yn-S$nSS(R_6o}2=<dgFF@+384aPlPZ~#tB>tEQ*&TE?M9em+!7X|LF%l&kF3A zdpYulJAx`-trp2Ngnwj9yf9>>$FsV%eLoB|fES3P0YFz*up?_M7qnIOzu-gpQf4;x zvu8n&25{EoaV%SWPc+0lop_<|hklc5)-uahz#3O^fG=_;;>``bJKbTt965~B$5QlS z?bdNGzGhdSkCQOHcmx%;>u-lawu{T@dR(*S#Zju$5`}Jk8Nj<hUF>D)k7vvToO3Sq zd)+bnQe;hP+BX8~=+bRJ6an_FWfqswWPS-)5)Y{W4jnzgZ=Zbw4H6Hlv=m7FBZ4{w z6;E!f!M^>CR6xk^dC6L4QG{Ccw~+oKaXgjH>2g!w*h+O{8!y`O6*~kzc4cwAsh#@9 zRvMa8%f4aYrc0*^d>VkY%u)jcJa{-9L~-!V8;7Jco^uvaD`~o-hj_C1TM&yrfyy1` zyx*-;1%sWj@;ot^8lEw20-vrQ{D7w&UOhX!dIW;oF<3kzFOhL}h5~*E_I@9m?vp0B zL|c+^XB07e=G3506%9uD`g9%FUX|3R+$5SU{!R^rz-I?P0Bk1A^Mn0y*R5A`?NvsO zR#f|%?+F^6R>SnE<I!kRhei28BETVFgMM??GRqdD$@~KFlW0l>ke{1Her{wtc{Rrl zB5wZ@NpA=$$kZ_81#6jQ&{jN{N9Qr%W)c)p)E~O9{)K++d%aV}VpBc#E3QkhR7u52 zx^y=v0h@MfnWYVQFd7m?3sqaIVzDS~^JfU2)WMN`c(7Y{gA!EVZY{IC53G(@q$r`Y zt_N>_PheRkBCAtlfo@iJ>ntFl4DNmc1b4zy3=!-$bUT&nRo*cZ5+F@d(n$zowxAyw zYni3eXfiJW{wo}*e9_)v3wdfc$NCw9TX}d?DvD??ORQy<%D}gE5o(+HM^USKm<R`i zo44&{-Irg{(4;&FYB17}cvfGfNOu&B#64k3BqE&_h+5T2;E$o?3F-abT4wPID&an_ zOA7n#z2#IpD_3nmYHp+`2$!(FT%l=4@57gHwKwG-;B`r|pc3x0mRUjylM?a-&pW^Q z{hIm%r<Q~}fwOb_UY^ud@l1LZ%hRj4QPUb!To1J%bB$WL5Oh+~@KLp$Q*8+!o+J!e zhWZ1imb~+u-v<{*zYk%}@V)ui)5{tTp87DHyi?0}F{=9jND;VM)55oWD0U#1h#lnk zI9u=|cMdY(a4N?I!-a-}r#^i1v8R`XlQ--s-oHHZ)J-kNJCy!f0nkXwRp#3?EflN# zuRaUFbv_P`Y?9S%_73kbaV^I?4*unlr~F6R4nRaN&h531^EK(}YQu=Mpf~E*XXG=b zq5mO}T0v&%c!BC0@AA1V%y8suivFQIIPzn6Hp4kCSVz61wY}DHek5f?w8*n^S*fk% zc*k5vn>*;uBjx#HIPSxvH?6jck%xDZmz$;dDcG&_4Q!W1)_awn#=`|io7>%TykqXl zWu>-A%87XDY{k;j!wZ)@GP_`M=9csvZ9s2L2^Ft63wb=fnt}U!(>HvKXY$#2^S%jS zt~q)Du}&GkVy!0|mpu6Jv7)M$vM-bePbC{U*_qsW{bfPlZ*O%u8xOb7U9q(EaHMrd zW$tvv(%<i1xTNHq{7IQR^?AC0o*0#~mR0T?ZW_?93m!N6)o;^&_XE9Mfv=Eoc3H(b zci^YLy~D<y{mQN**$5?Ks;${+YdYFKGaAZ=D6aFbSXz3x@ksl$&IU(N=eVzO=lTrp zpsqgNHP?^-kZ|ifnb?Nmq0yZUj<&`l?bD*Ae2DT!kCji9RyCD(Om45UHwU`c3%u+q z^f`!2|6(m-a|3Ccd<2A4t64h?4~=fGvo|-DcT8USM5%HrGy<aj7_EGww7#XHb3#X} zJ>Z$Gm6Dd#K0JK|kB5wRUqf?bzv7y0`fS>QI5zflqNCN;)>6?qVdWF0_0cX{h}Ay( zC;$Aic;>h>_FXb{=9Iqs|5kmniFIFo<J%_!Pv<l+!liTrSD+H9yXRpZc}^Kg<k5$| zPf_9NH6`qkynMOutDSdTy<k?X>WEoK`skwjyx+az+Npp4*M{diT>jrwyuio#XF(7? zf3E4X@cM`$bUM=5*&=_i@$;X>Quz==1L)!Yo4@zq-@n{2|9Eqa-<6+wZ6=P3t{l7| zLBKIDz&)o4J1Pz|ee}<bBOm(iUC+e2uDA@POYXd9!{=MKXKX&a$L|2famm$qM~w7a zhI{gKyah!ukuO=WyB&PA^~)94&AX!Dmy7O=i+^U^_E7zD(Y-EU>=R$Vw6dru_qMva zmfmYsCmVR<Z|f=4Pvkc0Q2AK${m_|3-TUkCcu&uLf8|Zp?oB)QTw8MI56a?MZ_EaP zgK_WT67}fOlXh1hYdLG+GVZOK7H$|YL9|y&=V?drpk)r#L7-Qb_~-tw_8qG_dG4c& z?u+}<MnZN`zOua31DySz&-`iZXd!Rgu|su*J<GWtdU6=6axqiv8aQ?!^13r{@Q7eM zjgkpTme_Z)ykqZ?V-NrI_PbwBlpG0Z0S5Buv(KAEk9yVNgD2A^NkRoo6Yb;(UUqu) z0cZU(4SF7bWYLgt5cNu4_MAA<vj1qs{Xe^7(TYUNlN1Kf!;<G-_?f%i`@5sZYD1do zx&B-8xcagSVkK5oa7!L`RvfB3R8e_%$@hQoX`<!nA*l?YhhIPcKNhuDb7!VbuNtgr z*XcCOnK_kF#R)$E-7ij$iyh?$tBxG6y5;A0{cvmG9PuS74WNh8H(&qO*il8#PaivR za-KeWNOkfyw}b6R_a81lQFFsD?)u?@M9brkq&9%Q{P+8B{qD>$XWTb!)c9<zn4AYi z+uRNg*HpGv)YQJ;(%SaZUoN^gi23crGGq*(ho}DhiXkgAV@YvA-fd$>6ptC5T_~!A z#0~x$J6q+-hT7)Jn%cKo+d4|R=R1ZBL(TvO^7LO{otT%E`9x7c{#Aw9Ie7({IU0jD zHqk*{UN<LO8{9QbjWvy}t?OIbI!b?W*AMr^q_Q|M<PE?VPyhARvoq4u?#MFeFUvM$ zo|&c3$kA#vqE@XDb!v@DtJa`ZYlNPz#O-zC@_KN2+_KB#mRugU)Zwr@+d4ZM+dFN? rI_-`vHoIfZBX{2O&jkN#QRn{wrqK*#)5W;J00000NkvXXu0mjfzGA(5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/notification_items.xml b/app/src/main/res/layout/notification_items.xml index f03d234..0f865c5 100644 --- a/app/src/main/res/layout/notification_items.xml +++ b/app/src/main/res/layout/notification_items.xml @@ -1,36 +1,96 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/linearLayout" + android:layout_width="match_parent" + android:layout_height="75dp" + android:paddingTop="10dp" + android:paddingBottom="10dp" + android:paddingLeft="10dp" + android:paddingRight="10dp" + android:orientation="horizontal"> + + + <androidx.constraintlayout.widget.ConstraintLayout + xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/notif_layout" android:layout_width="match_parent" - android:layout_height="75dp"> - + android:layout_height="match_parent" + > <ImageView - android:id="@+id/imageView" - android:layout_width="50dp" - android:layout_height="50dp" - android:layout_gravity="center_vertical" + android:id="@+id/notif_icon_image" + android:layout_width="50dp" + android:layout_height="50dp" + android:adjustViewBounds="false" + android:src="@drawable/notif_survey" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@id/msg_content_layout" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:layout_conversion_absoluteHeight="50dp" + tools:layout_conversion_absoluteWidth="50dp" + tools:srcCompat="@tools:sample/avatars"/> + <LinearLayout + android:id="@+id/msg_content_layout" + android:layout_width="0dp" + android:layout_height="0dp" + android:layout_marginTop="8dp" + android:orientation="vertical" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@id/btn_isi_survey_polling" + app:layout_constraintStart_toEndOf="@id/notif_icon_image" + app:layout_constraintTop_toTopOf="parent"> + <TextView + android:id="@+id/notification_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingLeft="10dp" + android:fontFamily="@font/josefin_sans_bold" + android:text="notification_name" + android:textAppearance="@style/TextAppearance.AppCompat.Body2" + android:textSize="14sp" + tools:layout_conversion_absoluteHeight="19dp" + tools:layout_conversion_absoluteWidth="260dp" + tools:layout_editor_absoluteX="60dp" + tools:layout_editor_absoluteY="19dp"/> + <TextView + android:id="@+id/notification_detail" + android:textStyle="bold" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingLeft="10dp" + android:fontFamily="@font/josefin_sans_thin" + android:text="notification_details" + android:textAppearance="@style/TextAppearance.AppCompat.Body1" + tools:layout_conversion_absoluteHeight="19dp" + tools:layout_conversion_absoluteWidth="260dp" + tools:layout_editor_absoluteX="60dp" + tools:layout_editor_absoluteY="38dp"/> + </LinearLayout> - tools:srcCompat="@tools:sample/avatars" /> + <Button + android:id="@+id/btn_isi_survey_polling" + android:layout_width="100dp" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:padding="@dimen/activity_horizontal_margin" + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:fontFamily="@font/josefin_sans_bold" + android:text="@string/isi_survey_polling" + android:textAllCaps="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@id/msg_content_layout" + app:layout_constraintTop_toTopOf="parent" + tools:layout_conversion_absoluteHeight="48dp" + tools:layout_conversion_absoluteWidth="82dp"/> - <LinearLayout - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> + </androidx.constraintlayout.widget.ConstraintLayout> - <TextView - android:id="@+id/textView2" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="9dp" - android:paddingLeft="10dp" - android:text="notification_name" /> - <TextView - android:id="@+id/textView3" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:paddingLeft="10dp" - android:text="notification_details" /></LinearLayout> </LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/notification_page.xml b/app/src/main/res/layout/notification_page.xml index ccd6350..085e89f 100644 --- a/app/src/main/res/layout/notification_page.xml +++ b/app/src/main/res/layout/notification_page.xml @@ -7,11 +7,9 @@ <androidx.recyclerview.widget.RecyclerView - android:layout_width="395dp" - android:layout_height="715dp" - android:layout_marginBottom="731dp" - android:layout_marginEnd="411dp" - android:layout_marginRight="411dp" + android:id="@+id/rv_notifications" + android:layout_width="0dp" + android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index aeb2c64..f89ba5d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,4 +23,5 @@ <string name="title_pesan">Pesan</string> <string name="title_akun">Akun</string> <string name="title_beranda">Beranda</string> + <string name="isi_survey_polling">Isi</string> </resources> -- GitLab