From 78d57ca746f9c26d8917cff2fc3684efa30153a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Borcz?= Date: Sun, 8 Apr 2018 16:37:27 +0200 Subject: [PATCH] Notifications improvements (#78) * Refactor notifications * Change grade notify icon --- .../wulkanowy/services/GradeNotify.java | 36 ++++++++++++++ .../services/NotificationService.java | 44 +++++++++--------- .../io/github/wulkanowy/services/SyncJob.java | 6 +-- .../wulkanowy/ui/splash/SplashActivity.java | 6 +++ .../wulkanowy/ui/splash/SplashContract.java | 2 + .../wulkanowy/ui/splash/SplashPresenter.java | 2 + .../res/drawable-hdpi/ic_notify_grade.png | Bin 0 -> 393 bytes .../main/res/drawable-hdpi/ic_stat_notify.png | Bin 1085 -> 0 bytes .../res/drawable-mdpi/ic_notify_grade.png | Bin 0 -> 299 bytes .../main/res/drawable-mdpi/ic_stat_notify.png | Bin 730 -> 0 bytes .../res/drawable-xhdpi/ic_notify_grade.png | Bin 0 -> 469 bytes .../res/drawable-xhdpi/ic_stat_notify.png | Bin 1669 -> 0 bytes .../res/drawable-xxhdpi/ic_notify_grade.png | Bin 0 -> 624 bytes .../res/drawable-xxhdpi/ic_stat_notify.png | Bin 2330 -> 0 bytes .../res/drawable-xxxhdpi/ic_stat_notify.png | Bin 3390 -> 0 bytes app/src/main/res/values-pl/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 17 files changed, 76 insertions(+), 24 deletions(-) create mode 100644 app/src/main/java/io/github/wulkanowy/services/GradeNotify.java create mode 100644 app/src/main/res/drawable-hdpi/ic_notify_grade.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_stat_notify.png create mode 100644 app/src/main/res/drawable-mdpi/ic_notify_grade.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_stat_notify.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_notify_grade.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_stat_notify.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_notify_grade.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_stat_notify.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_stat_notify.png diff --git a/app/src/main/java/io/github/wulkanowy/services/GradeNotify.java b/app/src/main/java/io/github/wulkanowy/services/GradeNotify.java new file mode 100644 index 00000000..609354e2 --- /dev/null +++ b/app/src/main/java/io/github/wulkanowy/services/GradeNotify.java @@ -0,0 +1,36 @@ +package io.github.wulkanowy.services; + +import android.annotation.TargetApi; +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.content.Context; + +import io.github.wulkanowy.R; + +class GradeNotify extends NotificationService { + + private static final String CHANNEL_ID = "Grade_Notify"; + + GradeNotify(Context context) { + super(context); + } + + @Override + @TargetApi(26) + void createChannel() { + String channelName = getString(R.string.notify_grade_channel); + + NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID, channelName, + NotificationManager.IMPORTANCE_HIGH); + notificationChannel.enableLights(true); + notificationChannel.enableVibration(true); + notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC); + getManager().createNotificationChannel(notificationChannel); + } + + @Override + String getChannelId() { + return CHANNEL_ID; + } +} diff --git a/app/src/main/java/io/github/wulkanowy/services/NotificationService.java b/app/src/main/java/io/github/wulkanowy/services/NotificationService.java index ab721f46..b6c49896 100644 --- a/app/src/main/java/io/github/wulkanowy/services/NotificationService.java +++ b/app/src/main/java/io/github/wulkanowy/services/NotificationService.java @@ -3,29 +3,22 @@ package io.github.wulkanowy.services; import android.annotation.TargetApi; import android.app.Notification; -import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.Context; import android.os.Build; +import android.support.annotation.StringRes; import android.support.v4.app.NotificationCompat; import java.util.Random; -class NotificationService { - - private static final String CHANNEL_ID = "Wulkanowy_New_Grade_Channel"; - - private static final String CHANNEL_NAME = "New Grade Channel"; +public class NotificationService { private NotificationManager manager; private Context context; - NotificationService(Context context) { + public NotificationService(Context context) { this.context = context; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - createChannel(); - } } void notify(Notification notification) { @@ -33,23 +26,32 @@ class NotificationService { } NotificationCompat.Builder notificationBuilder() { - return new NotificationCompat.Builder(context, CHANNEL_ID); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + createChannel(); + } + return new NotificationCompat.Builder(context, getChannelId()); } - @TargetApi(26) - private void createChannel() { - NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID, CHANNEL_NAME, - NotificationManager.IMPORTANCE_HIGH); - notificationChannel.enableLights(true); - notificationChannel.enableVibration(true); - notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC); - getManager().createNotificationChannel(notificationChannel); + public void cancelAll() { + getManager().cancelAll(); } - private NotificationManager getManager() { + NotificationManager getManager() { if (manager == null) { manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); } return manager; } -} + + String getString(@StringRes int stringId) { + return context.getString(stringId); + } + + @TargetApi(26) + void createChannel() { + } + + String getChannelId() { + return null; + } +} \ No newline at end of file diff --git a/app/src/main/java/io/github/wulkanowy/services/SyncJob.java b/app/src/main/java/io/github/wulkanowy/services/SyncJob.java index cefc8207..e91d5e7c 100644 --- a/app/src/main/java/io/github/wulkanowy/services/SyncJob.java +++ b/app/src/main/java/io/github/wulkanowy/services/SyncJob.java @@ -81,12 +81,12 @@ public class SyncJob extends SimpleJobService { } private void showNotification() { - NotificationService service = new NotificationService(getApplicationContext()); + GradeNotify gradeNotify = new GradeNotify(getApplicationContext()); - service.notify(service.notificationBuilder() + gradeNotify.notify(gradeNotify.notificationBuilder() .setContentTitle(getStringTitle()) .setContentText(getStringContent()) - .setSmallIcon(R.drawable.ic_stat_notify) + .setSmallIcon(R.drawable.ic_notify_grade) .setAutoCancel(true) .setDefaults(NotificationCompat.DEFAULT_ALL) .setPriority(NotificationCompat.PRIORITY_HIGH) diff --git a/app/src/main/java/io/github/wulkanowy/ui/splash/SplashActivity.java b/app/src/main/java/io/github/wulkanowy/ui/splash/SplashActivity.java index 3eb3fdfe..4fcf04d6 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/splash/SplashActivity.java +++ b/app/src/main/java/io/github/wulkanowy/ui/splash/SplashActivity.java @@ -5,6 +5,7 @@ import android.os.Bundle; import javax.inject.Inject; import butterknife.ButterKnife; +import io.github.wulkanowy.services.NotificationService; import io.github.wulkanowy.services.SyncJob; import io.github.wulkanowy.ui.base.BaseActivity; import io.github.wulkanowy.ui.login.LoginActivity; @@ -47,4 +48,9 @@ public class SplashActivity extends BaseActivity implements SplashContract.View public void startSyncService(int interval, boolean useOnlyWifi) { SyncJob.start(getApplicationContext(), interval, useOnlyWifi); } + + @Override + public void cancelNotifications() { + new NotificationService(getApplicationContext()).cancelAll(); + } } diff --git a/app/src/main/java/io/github/wulkanowy/ui/splash/SplashContract.java b/app/src/main/java/io/github/wulkanowy/ui/splash/SplashContract.java index 515c842f..6d25853e 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/splash/SplashContract.java +++ b/app/src/main/java/io/github/wulkanowy/ui/splash/SplashContract.java @@ -13,6 +13,8 @@ public interface SplashContract { void openMainActivity(); void startSyncService(int interval, boolean useOnlyWifi); + + void cancelNotifications(); } @PerActivity diff --git a/app/src/main/java/io/github/wulkanowy/ui/splash/SplashPresenter.java b/app/src/main/java/io/github/wulkanowy/ui/splash/SplashPresenter.java index 165fc4ff..cd452ffb 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/splash/SplashPresenter.java +++ b/app/src/main/java/io/github/wulkanowy/ui/splash/SplashPresenter.java @@ -18,6 +18,8 @@ public class SplashPresenter extends BasePresenter @Override public void onStart(@NonNull SplashContract.View activity) { super.onStart(activity); + getView().cancelNotifications(); + if (getRepository().isServicesEnable()) { getView().startSyncService(getRepository().getServicesInterval(), getRepository().isMobileDisable()); diff --git a/app/src/main/res/drawable-hdpi/ic_notify_grade.png b/app/src/main/res/drawable-hdpi/ic_notify_grade.png new file mode 100644 index 0000000000000000000000000000000000000000..ea5b85c82b21fada50a40ded37b0d1ad6ee022bb GIT binary patch literal 393 zcmV;40e1e0P)YVVZNPJq90gP?4#Xe+(-yRo;vfYi zjjN%2YG4~AbLW%mp!rlxmxRp)N{Ar&fQ1wXK@+|Vj?myC*Fp1<6e$p^5hyMJ#9M&) z2aYt7KyL@lCXi_9?x5RH`Oi4Y8yk8%=sr~bKD86|uyYV{l+6R;G9cz3NC#m9M}e4Q zFgXYW+y}}*kC6()5+r@`1D>csWzRsCLxV1ajt{mp6b8iKaX97(-E$dKodXb0Mk|L( z2c#ULWqW8yI7kkN|3JlVQ?bXf8p*ENq&SERh%eBvfe-43 z3u^w76-w2pN)`OVX4J8ONDWB8oCZl+y*q1*R0jjbq6LHHt#ag%ssN zP8Sq8Bo|I&oDCX=Sz6P6zS;B4`##V6&i8$q|K0oSz1Lp*zyF7|U$KpuwlO}8P002| zz{9|<)nWbu?gowq&Tbvjz&pTYl0NKnz{rGb?*p6+tOR!G10FJdqNKOG*7g#zJqx%8 zSO#oYfxQSk3+$WI1BU_e#{0nYz$d^FzfF zW;-5x19(Z&ih8c?9O5#IdGyEg2LDcipQyOnu!B<1%O)maviH<9aw-ak?B{jrG_fTfqz74putV#^r0z4oo*))=sp#BC(*@#^w z>5*ZJ`?4%S_!Y2M1(3U6Ea}Zc`c&XiU`|Qvr1Z-`#!mt+En}IUpx;wc0(+qK#)a*j zfro%gV4|}B4J-oA0d54gAIV*CP&+%@>v{<_3v3?8|%kZ)VA_c`Di zN#FGmADK|Op3G0_Kdu7KH7o{RFO~cNV17yQwJEHUzU(8?jE_aAkU9o>+FL-#vzo7oh$0HC6Xe}Hk$3=KMlMf z>6uYnHWDG**QJMz0QehlxTLQOp|q7(%euWKecy-COUU+IV9fxa2&`JtHd8(Vj*3(T z>OfDGo-gU2E>eBXH9ab1_GoUQl!}m90^AN9TgGaF(c6bsTDswIlcakmL+Hx#zU;WE^cDNc3MXIT-rwje!I~|*w^0n(7FU#dQ!5gxt7R=pVIwnp=LXqC6m_M zJ{?$9?UXXGAFvd7tb9+L%^M~`1`;ZII--6-0qJ}x)JL^lKMbyybbkr(Pk}?q+{Yzd zF~~*32we+2SQf02)Tq6_BuT2L$E8r_Q81wj%KI)oZnLR3HVL_e%L+|co*1d8c1|Orkorv>EleA@R04d zfD`^_GR=0`dy%AdHKCE;TGK>&rKAgcd)YK?J{0ypj!Q^1G?SLC00000NkvXXu0mjf Du_yfq diff --git a/app/src/main/res/drawable-mdpi/ic_notify_grade.png b/app/src/main/res/drawable-mdpi/ic_notify_grade.png new file mode 100644 index 0000000000000000000000000000000000000000..64fd285d6ecc84cc1ee3744647f55441d0658f6d GIT binary patch literal 299 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 P00000NkvXXu0mjfLZu#@ diff --git a/app/src/main/res/drawable-xxhdpi/ic_notify_grade.png b/app/src/main/res/drawable-xxhdpi/ic_notify_grade.png new file mode 100644 index 0000000000000000000000000000000000000000..cba48ec20de74fbf6f41053c959fb89d677e9381 GIT binary patch literal 624 zcmV-$0+0QPP)CLB!80EDxX^O z_-5oj`8X>$WAakTk{<8KDI}g&1A%aU^~Fz8(G{Q?PbbSAZfz zKe~H+2>cKxVy=J2sF)1Elp#t^iQHt^p`s zBdlT@&$nDVK_0ZDoC$yc2!H@6<$h3*K|1Y@;?Q?M-IRc?dZ5C8#C3?OOcgUKaVfP5$) z+&%H0ln+h;NiQGV$4tTHLw1Xbpz=ZOZPgW0K4iO!K@bE%`Or5hl9M$RgvUSt0000< KMNUMnLSTY4<_tXm literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_stat_notify.png b/app/src/main/res/drawable-xxhdpi/ic_stat_notify.png deleted file mode 100644 index c1d78d4656a26d5eef4f613ba39627eac50207cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2330 zcmV+#3FY>QP)J!_IuqOpXAN}I`&rj4PLh^$$sG{}-L!%!nbVlpNpM2t%I5>3{!jx~jn z29acmh_T0Iu5Zr!&HI18=Xsyyecr$KoB7`}%~#)h?sM+@dd|7ey`97w%|t+J_{>IN z4WO1CvZ?^t-XC~8@Ni%|;AX&2fNucj0_REk=d{eW?*%*x*blfra1Y?7z}1EK3&7_k zeQOb?VO0RKeIMX`z=KqIm50Uhbf&A;(Mgz$9t$^nOCjt5QS@c)ndf-3BP~RTNKTTxdZ@^!GiNc!zcW7Db zTuG1pzXN1DyX6NRfQhUh0S=QCrPq_~X91@Ix0wEG;7`CaC4I6^QQI-(F9Wi3>u3*2 zgOB;#JIMAUfX{UNO20!zXP|a?wqP%w&U-74meQKr@Ja2dP{^tBkm zhJ}9toDJkAiKDlJq&s#IGP_dJXSIlI}WW{&{v#Y)`_0Y09qIb%-Ei@z{O?P&Mq=OS;pLHRb^*HYP@Tnm!=u@F9YX z#bf);z%iBiu9H+fcAb`-2cTb6}5fIeCi;9ess-hFSH2cRDViPER(r#W_#ZtN|| z2n@D2Ek=6cM@?qETvAdcy=fkRJ^|FZ@o$k7&vwvlCNYq?M z9|v9~>53sj4dJo9M{zrDUg1vyE-uEP^v7U;B82VuL3_?n=p5j6l9J3?7}<^tS!=VJ zMJ|vOM|BX*3sBOg*+q$}XVJS8P&R!<+qVUhSUVKhy~I?%1TF)TAx!Eb|9zFDf0vJw zbZy*>7uWbb6Iqf0cz~p<2B9;LCp}rv_5r|$5@)pt@rNSpikQguLBQz^U%zh31f}uN zAJ{?Z<0Kv5VO-;oxpvSLNQuXi97{CbMw?3tSUI9^1zyy~F!1*eOFC>I?|QaT0Ga|S zH${TN+szOx#`4a<8-bV1t3VBZqW7~UJ!Oo!M+ImKsJQzttt7vurRE|#!cf9Qw;Jy^YA7kBz-YMyMeHgloT^K+Gq@+QA-qAKClb9+<0?T#j z*pj};99siVEP17P#JRyPEjQeIfZs~`R~Lo*j#(%`Mag>t2|;F2e$RD0R|TT4@?FL+ z9H0Wy*ITNpyGV+!vvjmt0L7C%zd`%lI8R>gi8nn-fu=z!*LfVl_(wZVDS3pXq(zpB76y>*%$=^Xu2qi2Q4f{$-DN^(kpMj! z=v-Sbprl`Mw=o)@#sYaE0NG9r{#R2+tB<^?*dE;0-~21gvSu8kI%|$o3&Xsv7gs?vlRKHi_*-_Q?dCEa~L7@qK?E6`<0enC^~h;jXV- z8GnPM6ar_G?R<=Ul+gBLmzu@~=pDeANvlgGH74h6C#`zMRPkYOn@iJI7!4rX>1$4H z>LzVpy~pqImrj#(M3u*Oswls%$$y_J>8KuS%p5ujK;>wq+oRh4Hin$3^B*cHdF=IM z`-kOeLUoOdPlwutV=O)vK=a;OZMviYnDTMjhm(qZ8}Nb|b-ko{(?qf2-ACIZb-&LI zP$~SyP^SH@E2WB>HkDcBq3T>$OWM|UI#!d9uGZkI30dZ0G&gML>L>XB58pQJ(^mD(ON;=PA?_(9=8@N!q*1B%|4&asnf-=Q&H#Q*G~+hjpc9R$b>6lHN1~q(M8# zcCOrXWmGACNxa#)pCJ{Hb^2b##WLr!Nedsfo+mv>PRTv2DHLW2K5x_s}l<`*q1$b_J;EXr<+3OG$YZ zxOCK#yxX@6(5(R3PCrf}=Q`SFtf+ZW=-Q6|mG0R(N&uWor;%m?R9^ALO|J_K*Ewj5 zQf#bwZKu<%X@_4TY3F$Wicj;nh6y&4l=SM-lkHuArh40vlHS#%MB@&!o&Ueaml_z; zu9Ekm8w*9xCp2UM5+Ls?DXzl?R0~ik8K+Xv)V!Z diff --git a/app/src/main/res/drawable-xxxhdpi/ic_stat_notify.png b/app/src/main/res/drawable-xxxhdpi/ic_stat_notify.png deleted file mode 100644 index ee89e601560e997a65762c483a70c6eb53aaf869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3390 zcmV-E4Z-q>P)nNQOd`L^F~Sg(#&#sYR0tDH=$rXrR@o($YYMG?%0a z4Vvd~>+`OCpRVVXPm*Xx0(r%I-DQQhf*Qvo&fc<6y_SA^@XN`A?JTeFXY(GHK`z76bhE;u6 z(v#B(d8MR1W*B4qm9I&9CZ{4I{xj!TQ(x~L0NYQH^xCvrr%t%yfuBkGb2>S*jxqk; z6_Va2>8SD3Rbt@9WAqAu?FUQxyd=cW5b5}c;54*Gy#QbvxqL@Sr%KwOwbhjw_}!9T z6cL8c9#o}$>DyfuvNxFYctz@*;?@8is zq~!qGos+D;UJZtDiK4##MAD^_M%oQ?x?Q?=Zdqd--g|sRpt2UFR!@NKyGZ(|r29y! z!?4lf{v_!ol0G8o%82+o|B+PHn0Na~NdS9|eo6L=!{`82zCYVZTC%-i9be{jV zq+KOl91+Ow+LT1)TO{qAdFlI-9vBgStv&FR2a5w>8#lr^Nyavv=lPNz8xe?)T4Wp7 z#U~}*NYd63fxMrIY%>O~jt6B1*eD_pYelFH05Gc17_OC>A(t9{7RC+io)Df8h|$>J%7@~VE*xv4u}Zc27@Kr2TOWY zW`gTS#CataPz-={A?7ZpA4x)f)|T%j7C6fo$vKF3w2HQm2-NGjsU!gFO1hd@Sv0%D zBLaT zSf|tiiUGicY-7pd(5fO9_8du<4e=z{#(FlwI!3mlLkQWl#KyPjCXiqL3DY7>BKCvAe=+Jsmn0q`?NFWJU7kMj##qqR9#OcK=^ z(ete)i>Ui->x;3y5qUK!L6(S99l~RZ$MIa-ca!uXLVJZ>i{ro z+c%ZOWrvSFXD2LddPy96(iTbH!qL|?5v|*~t(`wwOeX-0bIvwCBeJ0D0Pz(`T$WuD zr|-jPMs3La#S7^ifOH~AjM`4pTN|jWIS@#`LROQ1G%Nj0(t9Mm8DlXbNP%yidI4ZT z&e-VQCrvSas+fRAgJE<`M4&ybAlvsO@|Nx#GVu_97*{yiP&ZjK_5lp$-^)`RsX|m7#w-M`Ho7WJ`?~5f}?hlqnV>iBZ4HZ zRfdKF02d@GC(gATJvt&jv&wM42eZDCcecr-&K1~U7_HYwDQTO458?!{z*H}`ab~fk zJf60y$o|nf2LnKxyKKl~F9XmsI?DiD(*dwe7!XUC!f2va6Vtv^`Z~G$+!Ol@J;S;# zuDzasR4SjMl{c$GLre>N}yt8ZAs+p;KMmIB95%P$RR)1Hvlx|0DxR$ zjw=3^NX4Q-Wvd^o`701cJ(ZDajK@IS;vy4J^^UrfU9EgSrNg#uw0X7n1>>I<5xLrgLZ2!>Os4?YCRGJ>vvdm>s#!=K z;a+G=DK(L*$g}HK*Ejx1#S2{n@T3%i1c=f^jqv6XL5Q&t**+pw*l*Q!`g~^q*j_`@ z$5Y3YMhvR?Faeqqnl@NUZ55aoO`|R(`70u5?$HT#2>@BpxSMko^z$y7ZixFwMC}-} zZHzw*y%8_SkfuRXCyo0$0U-5-BfG6DLX<3|Hct9zDn)|X6pV}$yPs|?6q~e8tpkv1 zZfQSIO6#e^6sp*{4=AWuiIOV()J!2B#vOtG){Dwp1t2YyM5n#$aINq&WLT40xKc*5 zZTg84gU-d5d4H$2MN!)T?3nrn&Eo4Rfd>tpsL)@?aah7xhM}v+07K=O#-ONZqGf-##py>!;zu@Bqm`1Mn?0JY~RQ_eO;;uKa;zS@*X_+?y*0CRn;G2HemnVVD$fFye8 z2b8N|q}w1D;zIpydJoOyjEID@9Sh~yQaA^;?JE^cP(ZmWo(JJpY^n)tQ>5hm8vz6kCg$gZ}{y@eH>J4J}e4I%goxBnyQG_y)OP6O|SlQ$-%}nzG z!0!OyZpd{;rwIpYY3F1cE1FJSi|NdW*eW-nq*c+tHP_yrU;o%JkOpFpu7E+l+k|BN111*1wZP(IJxPc~M1pTDibcPiLZ;07#R=r;;nI!*@b+ zyIxzA*+wm9Bj9?5>A0BL*;6TLcU11=?l0~GT5`_ROJY_4c1Zr2+{KGUd{9>f&r`$+ z4fv4v7=4E{X}DyYKob2>bFl-oDf;0xR!tiNkXpQR@#I>*pcTzt;l zV>0l#!(N|R2pzOuJxgccMgXLIPHMSwDjH!xG7FYOkI*{1BiR;&Rq^sx5eWgDf?DEj zG)Pkb>a-SkT@pR3L>=#lQ7Mv!#z*^uD&pkhs^H&RR2zU)NOA6zpBp5Iy-sP5VXc*P z@R02~A=XAe{#FZsMTHbqOGWF!XFiiQ&;kGE{)BD3yog{j{Hlof#Ix%D4o+PFrWH~k zZU}xKHuox*zyP-K`l6cV_($wu>Smk@K+Qr5g5PwUZ9R`>Ao$Qkin6L)jw`J@X}gwn zKGp%CL?OjM_}2L}=r@=BNv=u&S}3IGeDwqPAg&60MR;Z>QVxL9g%kteM=w(#dWL;4 zv9tU{09q`h=!F9V_$WWCc+jMIQ~}UtA;kdr(fJe*MY~M;<)xJX=%A3I^VJXJgA{*o zA6%`~+9UwFD5Mw&Pdc3j4!e^h;wj@_ovMa*I>l??$Cd%;8T4fUmI3IQ13iEKe}MA; Uj*r6_cmMzZ07*qoM6N<$f{^)L`v3p{ diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index da84ba42..da4fbbd7 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -122,4 +122,6 @@ Włącz odświeżanie danych w tle Interwał między odświeżaniem danych Synchronizacja tylko przez WiFi + + Nowe oceny diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0c039698..84b60682 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -118,4 +118,6 @@ Enable background data refreshing Interval between data refreshing Synchronization via WiFi only + + New grades