From 394e3bb79ce9dd86bb42271b0dc9a9ef326b92ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Borcz?= Date: Thu, 2 Apr 2020 22:43:03 +0200 Subject: [PATCH] Add firebase messaging (#740) --- app/build.gradle | 11 +++--- app/src/main/AndroidManifest.xml | 11 +++++- .../wulkanowy/services/ServicesModule.kt | 5 +++ .../services/sync/channels/PushChannel.kt | 32 ++++++++++++++++++ .../main/res/drawable-hdpi/ic_stat_push.png | Bin 0 -> 724 bytes .../main/res/drawable-mdpi/ic_stat_push.png | Bin 0 -> 470 bytes .../main/res/drawable-xhdpi/ic_stat_push.png | Bin 0 -> 955 bytes .../main/res/drawable-xxhdpi/ic_stat_push.png | Bin 0 -> 1469 bytes .../res/drawable-xxxhdpi/ic_stat_push.png | Bin 0 -> 2025 bytes app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 14 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/io/github/wulkanowy/services/sync/channels/PushChannel.kt create mode 100644 app/src/main/res/drawable-hdpi/ic_stat_push.png create mode 100644 app/src/main/res/drawable-mdpi/ic_stat_push.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_stat_push.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_stat_push.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_stat_push.png diff --git a/app/build.gradle b/app/build.gradle index 4a975517..9cae14d5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -169,7 +169,7 @@ dependencies { implementation "eu.davidea:flexible-adapter-ui:1.0.0" implementation "com.aurelhubert:ahbottomnavigation:2.3.4" implementation "com.ncapdevi:frag-nav:3.3.0" - implementation "com.github.YarikSOffice:lingver:1.1.0" + implementation "com.github.YarikSOffice:lingver:1.2.1" implementation "com.github.pwittchen:reactivenetwork-rx2:3.0.6" implementation "io.reactivex.rxjava2:rxandroid:2.1.1" @@ -182,11 +182,14 @@ dependencies { implementation "fr.bipi.treessence:treessence:0.3.2" implementation "com.mikepenz:aboutlibraries-core:$about_libraries" implementation 'com.wdullaer:materialdatetimepicker:4.2.3' + implementation "io.coil-kt:coil:0.9.5" - implementation("io.coil-kt:coil:0.9.5") - - playImplementation "com.google.firebase:firebase-core:17.3.0" + playImplementation 'com.google.firebase:firebase-analytics:17.3.0' + playImplementation 'com.google.firebase:firebase-inappmessaging-display-ktx:19.0.4' + playImplementation "com.google.firebase:firebase-inappmessaging-ktx:19.0.4" + playImplementation "com.google.firebase:firebase-messaging:20.1.0" playImplementation "com.crashlytics.sdk.android:crashlytics:2.10.1" + playImplementation 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava' releaseImplementation "com.github.ChuckerTeam.Chucker:library-no-op:$chucker" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 694c8053..42c75475 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,7 +22,8 @@ + android:theme="@style/WulkanowyTheme.SplashScreen" + tools:ignore="LockedOrientationActivity"> @@ -112,5 +113,13 @@ + + + + diff --git a/app/src/main/java/io/github/wulkanowy/services/ServicesModule.kt b/app/src/main/java/io/github/wulkanowy/services/ServicesModule.kt index 0b1b357a..7240a50b 100644 --- a/app/src/main/java/io/github/wulkanowy/services/ServicesModule.kt +++ b/app/src/main/java/io/github/wulkanowy/services/ServicesModule.kt @@ -15,6 +15,7 @@ import io.github.wulkanowy.services.sync.channels.LuckyNumberChannel import io.github.wulkanowy.services.sync.channels.NewGradesChannel import io.github.wulkanowy.services.sync.channels.NewMessagesChannel import io.github.wulkanowy.services.sync.channels.NewNotesChannel +import io.github.wulkanowy.services.sync.channels.PushChannel import io.github.wulkanowy.services.sync.works.AttendanceSummaryWork import io.github.wulkanowy.services.sync.works.AttendanceWork import io.github.wulkanowy.services.sync.works.CompletedLessonWork @@ -126,4 +127,8 @@ abstract class ServicesModule { @Binds @IntoSet abstract fun provideNewNotesChannel(channel: NewNotesChannel): Channel + + @Binds + @IntoSet + abstract fun providePushChannel(channel: PushChannel): Channel } diff --git a/app/src/main/java/io/github/wulkanowy/services/sync/channels/PushChannel.kt b/app/src/main/java/io/github/wulkanowy/services/sync/channels/PushChannel.kt new file mode 100644 index 00000000..a0e24ab4 --- /dev/null +++ b/app/src/main/java/io/github/wulkanowy/services/sync/channels/PushChannel.kt @@ -0,0 +1,32 @@ +package io.github.wulkanowy.services.sync.channels + +import android.annotation.TargetApi +import android.app.Notification +import android.app.NotificationChannel +import android.app.NotificationManager +import android.content.Context +import androidx.core.app.NotificationManagerCompat +import io.github.wulkanowy.R +import javax.inject.Inject + +@TargetApi(26) +class PushChannel @Inject constructor( + private val notificationManager: NotificationManagerCompat, + private val context: Context +) : Channel { + + companion object { + const val CHANNEL_ID = "push_channel" + } + + override fun create() { + notificationManager.createNotificationChannel( + NotificationChannel(CHANNEL_ID, context.getString(R.string.channel_push), NotificationManager.IMPORTANCE_HIGH) + .apply { + enableLights(true) + enableVibration(true) + lockscreenVisibility = Notification.VISIBILITY_PUBLIC + } + ) + } +} diff --git a/app/src/main/res/drawable-hdpi/ic_stat_push.png b/app/src/main/res/drawable-hdpi/ic_stat_push.png new file mode 100644 index 0000000000000000000000000000000000000000..84578183f4c91b489e4234179e2663d6d6c6daa4 GIT binary patch literal 724 zcmV;_0xSKAP)7ZWIn4!oV zxCG*Y5ISNgGYifJ*>?^Y$Si=WFh*CKjQ|br>)3jf{%{%AV)QN@TZS>^^hiFLwUf2jtgUx=+#PZ{hMmLvJ2Oi+# zOoyk`=(kXYlHerR4_3eu*v|F7*$926f#9c5t!Vr^y#mlF$}Wf}W*6uD6nY>UeoP~W zpG-7fbG>U0La+Q38W#=saoI~H;Xdwb^f7&>5t{d9J&i_oa9@eW6qna43Ga$);y?v> zuhdERL#R}9w<%zkQby7vydq2&VqKz6fgeIG8ll6~ksbOAeMVaO`XW*O1|uwn94+W+L!SgLVqndLaMxzduA88tS22y!j>?MBk-iACD zn@pO+E1@To1P&Sq-E$eSBzeY3=&4JBGOjo5QK(t8y@?lhYW$-A2y`;l9um|U?p&`Z zIkI>?rR#5bs?d~6<70BT;<(p?P^IR^&ugX=iivgk$JZ+0Eg@DM3^)4#0000*q%0U4N<TEQU5;TtSt(`5G) zH^2{`KnG}74Cu(Jy%HigF~>Hda9aSme2JHwMc>jKVh9+1wtN(NO}KoxIr z_^332VU0l-udf7;VxEqzTpFC%EWQSX{5?K%FlZDS1IoL@Klu~+0?p*v9%R`~rT_o{ M07*qoM6N<$g4_ShssI20 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_stat_push.png b/app/src/main/res/drawable-xhdpi/ic_stat_push.png new file mode 100644 index 0000000000000000000000000000000000000000..79b38e63f9ad078456fa4d1509540a21fba84fba GIT binary patch literal 955 zcmV;s14R6ZP)h9|qi_`A`@%@>xK)m`PIVd>*(7#Q20QXaZ)@m(AtM za)I9_D{eth$WH*;S(p^c4{6qfi+&T&p=gu*${U6Hm_|U{uZ%MTs1mZyKTMFs|8;i8 z4*^poL|VBpS3NKW{lN*Z1)LQKu<$vAzW7Tj+sd_X z(FkDfH_l4|?*szZsJx6Td&IThV__~F^@@D1WbksTyDyYaqViG;0$3!=^FqK1Vc;LY zAfQM>Y9I9(X>n6i>xF=NVbCWM_et9OWC~4rQbHr(sTTrXNd5o|o&7227i|I8w*a_o zB80swBc0@jN_JXCayuybJIu~W-ZK?wRtOoDP5}!QUv3H2&s1#I_p_rC$=;xlxuDR# zB%K2GDg^AN`iUAJe@!7Z%Dq#ZJ5}iva92U>0@a_kag0*Lon&+h;j}beMw<_4z(SiNF%J+5pK+E@_UtC0{U1L zu*JgQY$K9Q?Q0wgcqoiJPZJRIH#cmLYU8G*f^)YX2Li53#y_a(Q*A~*Vsla+=la$; z5O7klXg=5U+pH3>)8>6vv2adg_k!<$f=85AWV6$Za#=?^m(q=r{<~}ns5J40O3i%e d2=!V(>@VoK*A64*ykr0X002ovPDHLkV1kJYwDSM} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_stat_push.png b/app/src/main/res/drawable-xxhdpi/ic_stat_push.png new file mode 100644 index 0000000000000000000000000000000000000000..bc33cb5b142c5c17c3168aea3d94f5842ad5a6e3 GIT binary patch literal 1469 zcmV;u1w#6XP)^FINImt;*TB~@TR{)d({eVJ#?*X6^C<5w$-+;@&Fjbzr@WTSV`(C#Gw>=<5B%+gBhRFPm^Q%ezz<&dat4@5_ed%^mAt4% zEi;lz&{i)q@@*2yxeGX$A%Yerjht%WzYGvV;lXmCW0J@z1pdqbITQz#BynohW`G)BMz~H0@hQlHvhjO+D(~?%KcXa+7@GCzdSNJbw?_UFN z0>gpp)0B7J0IYRbaOaAtNo%U}R2qm{1@vw0#jw&;XX7CdG*KXgDuNe*?|})qTI#j5 zgBIS?Kp!AK$IAanDhG-!)~nHJCxQy>UjQ`@*IWlo1upTEHYm*m)$m&Lvq3MPi}v(n zZIl-7^=T%kj-6cQ^Z6VugESdR7yt$8?f@jcmn4FwX&m{HqGCaJ z9dH=vAiP%=;5dk;X78jBv{~cGY(cL=2nI(-(%fg=+gq&H}B+zHYh2u>69-cfu$QW|S}0D@@k>KSK( zKGYQ5`>;+Ao({6qOJfB+J9{h61Re1)dZ(Z>PqT(}5%k6cBCR+&rK1YpqZ&G0AyVy(ydIbe7^8-$x#=Zv+}Ox+nb3*ztaQU^1W4o1`R8 z1U+If_OPVC(x5-uaK8?~^Fp`1XNs$`P0$>RKEVP(zuKY@_8IV;xb-XU+Yxx%XN(u) zM9`NOkNkateyL-ozJ*J+1&VtY`Rt5K<3dh82WKXkC|vVy!0nrY$qhhv$%bt{#6B7a zf`(c;w}AC;GsHqRGF`IaSxr=ZZ?*|~$v?IN;LaTPE4@u}1$m&?_6{R7pQ{^OG9ZUlrAlQ-m{rU4v&)Cdugp{9@qMyqdEY5h1TC?2WD4uoN6_|LF4<&rk540S(83KKHgsP!OCv9!11+bb ztGq7RWm`j96IrJ$JAB;IkVTfMNKiSTh^$ZB*004Qs4xjy;W`B<`3z99u$BIjeG46~ zeJyNq9=DuY&GL|N?JE%xG)uCP8q{rnq({EghD8qLJbwf|hT-0z^AQkqP+@C@!@X!{ zeKHJ!)&(&Bm~_;S<`3&+o<^9}Y3|icW1RD>C}+L4sC9s@q48)M}|yJlh_@i@L`PO#zJR%x7ZRi zJ_HA7v1~7m`&EbpHCp)bzH7ArxY;ylFT)|9tt?QCeUIa}s{O_-^TwYX$K638gKp66 zAsFA_mmG3sFbvskIUDZw+|Ly!qgh28J}uHVf=@eMUKTimx{vvyqx4DCz+C~ XLC4$JYHt7800000NkvXXu0mjfL8`8i literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_stat_push.png b/app/src/main/res/drawable-xxxhdpi/ic_stat_push.png new file mode 100644 index 0000000000000000000000000000000000000000..b354bd06c4aa4b93f2e9bde47fa538e374c153e0 GIT binary patch literal 2025 zcmV67XAsUJJeN2uP4XW1|RYK#EAT z0!GwI6(mT2qM}9+K_TJ?V1$rXfOPtEYrqSDJ%9$le}El;X93q}w&aLS0o(?d30Mo*4LAVU z57-7+3Rna%ie1a#CaU%u4fU;J#k ztehv_T35~bCGxKVyifeKw*Wa&C%y}y6tIp2WB&q1MwR>$z*!Q!p^KUwHS!w+PLRa0 zlBfyL6mU3!1SpIW`MH1}5{Ue*fF@BPzc=7yf)I~8=VgEvQ6aw>;HLy3|D`BCctjqw!mx=b_8 zC$$HlmXfr=;ySFDIOIZrhR9Vp*btuySV)P9+Zc=M$0^7YEYZZr%FL(I1PNOJn_=N4 z?NuNEhPFFJmG~xru@=k7hc<4is#3*Qqv+#f;B1!-F{5ny=|{a86{Y4`Q6WD~@L)x~ z$k9+5-%(-nqawgyK|~Kv)_A_(yh!$_Y12&wNW%?>IVC6UIsHGV$RnB^Rsr4OY8yp4!h6+q{4bx_dL=Y{V zX^Y32mJ&5@RjCex0ObM`-Ose?NW|ZMRbnzO?hD>Nvkm+k`h(w&|ikj+Jv~9_$>ol`D z68D5FVkvS^>*WN(;w-aJ=G7GR?LV&HD_Jxwm1;(2e z&{H&x1@Cc?jhkGNtmHQ(a_@LM!Jgm6?3W7<=6C9W^|3n_Y!mjVNmc=J9gxElI3 z8>(Muoah#ld!20K3Eh>90+c!+s?gBBJ&C=mN2OshXBg*Rvu#e|V~(JAvI(%#0YQ%% z+RrE6*jkhO{nDl#9vI0wP-HA$mS6bvGW9uc8 zH*T%LWEmPS(MJ_Yv_s+~_AZ_+4hShQ1kU_=IrnJJ{bx#!kI~lDWL|m*t!PW7?N<>0 z>=TnY$i67BEK$hsNn-ETm$hO;knFsV0^oC|6=xn}9P~9QX!5a!=PL&{j=ps>+D9ev z-^Os}lHtG!xXAOY{1jlCLjq>=YYQf!`kpK!D{Ib8SvyUjpjX@DD0YCHVst zZsmy~u3-F4~obPZMB6(LdM{P%bbDG{$X%(DtX80_?bb-0MJ&B1S_7t}QEcRgX zwdC?Lb37M()JFlv3-0!7T#hr#4fzEQk}RUuk2BuWJ_;~gBGFXmVjSeJ)Cu_*ANj*W z0!DDg#1oPSd=emEf{TY;j)l+9k+K4K87AI|4_=dTi+mE`CP_ZtRuG9DB0AVm50@U? zbmiG3cy{?9Ks!kR@EP@+%Q5k-0ewXV^YRNc7YmGkugBz{bK<8%n>!V_Glückliche Nummer Neue Nachrichten Neue Eintragen + Push-Benachrichtigungen Debuggen diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index c80137b1..33981e8e 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -385,6 +385,7 @@ Nowe oceny Nowe wiadomości Nowe uwagi + Powiadomienia push Debugowanie diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index e5530400..7e731342 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -382,6 +382,7 @@ Счастливый номер Новые сообщения Новые заметки + Push-уведомления Дебаг diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index cd1c3b5d..522eb872 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -383,6 +383,7 @@ Нові оцінки Нові повідомлення Нові нотатки + Повідомлення pushs Дебаг diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 30cc086d..1cd5aad6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -368,6 +368,7 @@ Lucky number New messages New notes + Push notifications Debug