From 388b9b378fafd50371b7b1982e69124140eabe8a Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Wed, 27 Dec 2017 18:52:04 -0500 Subject: [PATCH 1/3] Use white icon for notifications --- .../java/protect/babymonitor/ListenActivity.java | 4 ++-- .../drawable-hdpi-v11/listening_notification.png | Bin 0 -> 1035 bytes .../drawable-ldpi-v11/listening_notification.png | Bin 0 -> 590 bytes .../drawable-mdpi-v11/listening_notification.png | Bin 0 -> 799 bytes .../listening_notification.png | Bin 0 -> 1713 bytes 5 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi-v11/listening_notification.png create mode 100644 app/src/main/res/drawable-ldpi-v11/listening_notification.png create mode 100644 app/src/main/res/drawable-mdpi-v11/listening_notification.png create mode 100644 app/src/main/res/drawable-xhdpi-v11/listening_notification.png diff --git a/app/src/main/java/protect/babymonitor/ListenActivity.java b/app/src/main/java/protect/babymonitor/ListenActivity.java index d75b203..2477829 100644 --- a/app/src/main/java/protect/babymonitor/ListenActivity.java +++ b/app/src/main/java/protect/babymonitor/ListenActivity.java @@ -112,7 +112,7 @@ public class ListenActivity extends Activity { NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(ListenActivity.this) - .setSmallIcon(R.drawable.ic_launcher) + .setSmallIcon(R.drawable.listening_notification) .setContentTitle(getString(R.string.app_name)) .setContentText(getString(R.string.listening)); @@ -166,7 +166,7 @@ public class ListenActivity extends Activity statusText.setText(R.string.disconnected); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(ListenActivity.this) - .setSmallIcon(R.drawable.ic_launcher) + .setSmallIcon(R.drawable.listening_notification) .setContentTitle(getString(R.string.app_name)) .setContentText(getString(R.string.disconnected)); _mNotifyMgr.notify(mNotificationId, mBuilder.build()); diff --git a/app/src/main/res/drawable-hdpi-v11/listening_notification.png b/app/src/main/res/drawable-hdpi-v11/listening_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..05ad39ed0f87ee1399812c1a17a69c850e1ca9ed GIT binary patch literal 1035 zcmV+m1oZofP)WFU8GbZ8()Nlj2>E@cM*00VDHL_t(o!_8MuXdG1- z|IN(q?3Oh#EfrZ05h8d|4~oTNso+IK1P``Gym=DDi@ka3#eyL9R;18g#FPr9rL6}M zPof}-9-_7&fs!^hV(28y&d!_n=l7n6-E3wzyGhn$C;P!;X5RPB_x<>N-}~Nsz=(wp z9y~>*-l7mUsFb1*7Z^o{G4jC9ZM>)H1mpNkX4%&y-KL?`A1Feo)M;kfUnEUmAo(H0 zlZ>K03Y=vd@8k(8^%Kc|2L?B$HM&_kzc*m+-mTG?BUI`pwf<)ZOkC{zE9Kc7poH`D z{&2yQr1fkx%9L`3T7OBUnr)|cTQJ7l0f6)Z@wGYGhU*D4@KU~^?M&qDI zAub~fXE6?<)NvoqeSvWi&wJMc02<>8Pf_2c&6UTLF z9MGKmB==S6xpSQus_P1Iy=$&oeW;&lFfjqf@q0ApZwm2zH`;600xI=3jd`ctpStxz zh=B|!pH>$0eU7z zyFF>`;P3o`>W{n=C&^=Q?t565(s(eHWuIBC?-=K5{{huxPi1Du>I47)002ovPDHLk FV1iSx==T5s literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-ldpi-v11/listening_notification.png b/app/src/main/res/drawable-ldpi-v11/listening_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..edf65760cdcf51a640e5b902b831d926e2117912 GIT binary patch literal 590 zcmV-U0WFU8GbZ8()Nlj2>E@cM*00FW|L_t(I%cYY&Yg9oL zhM$?)T|YvKZTx^Vf`#~zMvzo$l{P;>A-_T-wIFFN1TE}r(^^~D3JXC@D#ZjPklo^j zd-u-Ad&gooYgVFe+!qdK7|wYZ&b$X^l=k=A^8UVJe5n}w3gHca27^B|931>Q*L6qU z-&9I3lv0+IB@HEcNm+wI_jHK&qg<936~dOJN>VchjH0TRRF;>OQdW#_rvXJV${}n@ z`Zm@0d+hDC0hCf!O0}x$9Dq6Tn%lHm+y5L^&OZQ$F_!>nnq}8+Z`(;hRehOh>c(81 zKt|wA03+`$DK&0k0ZE^M8=O^5(`{kxE}hONg|G`O@juFWwFP{|+BN2pG3%C`Uo)?a zd0+|Q{hXMBoS%-qKE|G;th#=ss(ScWA03DH?^G1ma-jxkEg z8V*+`{@dAUD}=k~=m;Gi8c8cE3a6Y=U0<^7{E@bLr`!beHj%(VGs z2~C4rTtreP=kFNv95@d=11^}ePF5-PFy_vQD?7DoGeNuu$pT%#;he#_9>!cT^IAyW cKf$@>pKa=c!#DPiHUIzs07*qoM6N<$f>%lQz5oCK literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi-v11/listening_notification.png b/app/src/main/res/drawable-mdpi-v11/listening_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..77ccbac0ff336555a047bdade6839c54636937ce GIT binary patch literal 799 zcmV+)1K|9LP)WHm(2w03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00M(aL_t(Y$F)_@OVmLW z|IB=MRaPNTi7ebO}!#3X^U@2caP76#Wrhf*?AiK~xv%q_>a`A=D(%f zxxqp~GnYftpfUBnwS)Bj9=(4}k>4cahKa1QR2pcGIL6I&q0mL=CMdE%GDk9OA^k+> zo=~LXJ9m9=@=_^9WBTa*SvvQIBE`CsZd#UWYe%b@j*yJ>esOowd>)*e1C6;rk;nA@ zO9Rra_Jd1HJ=M~kASo1yER{|*I{7d~OcTU43-o@5*50AW@|OKaRZ*xq0rDDvDYS|h zvv6)O$z*c6F5vxp#AsUBxJ4R#rGyo)heICx;0`L$a zRLZrmkVgp5ce^-{6A&4IQkAx%H348_&{*3Kt!I%WGqonSeW=uiO)o{}Nq(cqE3U5( zZEKEKH?qm+HA6@FC(GUo0Z&?gk45Ad@+S7{5a)AjS_+Y7u}! zjAx+K$(COsjmgma*}pvi)drDHgfI?Z1OTCRKq_?_N)5N3fwhf9kL-B|`xY%0fh6gM d)-Ry-}+v002ovPDHLkV1hdaS+)QG literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi-v11/listening_notification.png b/app/src/main/res/drawable-xhdpi-v11/listening_notification.png new file mode 100644 index 0000000000000000000000000000000000000000..f2ac58d33db17220fec2646b3440dbc2dc12273c GIT binary patch literal 1713 zcmV;i22S~jP)WFU8GbZ8()Nlj2>E@cM*00tFFL_t(&-ql%ch+Nef ze$F{FbDhlYWIxE7gv4Eu3Sw(b30f>jDT!!fe^hI+h)_zTl+sFzRQwbDq4>uiR-sLy zrGkYD+cr(XmexiP{S~1qQ78&7vUZc5&Cbrp{W|xY=brwU-PxJh*~x5@&CVP+%)OU) z?s?yHp7-myzzz(S%j?${FBa(gQ}q3>)A#>CtsQ;;G=tz)E-hs+sDq`_R~SVPGmhV+ z*2^SabEc_dk~oIp4*`Hdu!D*^w|@Qn^MXO}BSz5&w6;QPlQzXWr!fnxR%foQ!eO|6 z9Rwq^wn(kNNAhKAo%U3C<4hPuKj^id*cKy#;5KBlQvjZXQe$xLb_lTZVzjlS0 z_Uaj6Op*2aAsX`{t$mHwx-CJ(TE}Yj-qpovH1iPk>GDEgRWeapMu z-GEm)H<#^lvR@@xYk`qt5IoXNzn+PL=gtWjGfu6410lWxA%I+N)%~x6{|oVDOiYXc zSYo9DH8uv8%UO_5LdwymoRom)9asy?s^7I)uOFh;wJYA~-luSyOG{q_0G>IMV;nz0 zvb;eqNh&1w^c_aIvQofx*Zm2(+`ZeLJkqoR=PD4wgOt|;kX@u|0FEf7-fev-H+|{u z-3qzf_%+FXQjS5X8A!RWhfYN#$y2OUy#5R@#vx5PPz6*rdozkf*;*TIYJl>*I;=ef z*HX;v{J0fyd_olpeVhOQWHM(UL~UTy7Xt9Sss11Y0JF0nz?hE)3Px%A0Hf%ROXdOA zYEZ>u$|U&4G@s>yAt#B7a_zShw>DZx?ieWZb?DD1HcTS340pxu~s_^=lr2lpL|`g zT!xyM0Hf#)v?(MLhtIjnG;4vfR&X9TEC0dE>bp1Q8hWa zo<9nO-vU^;0%r{1oZWzRAug)@`*mBc+Pim+C0YC3MQdl6BnKEpqODF=lam%oJ%==% zZ+g9RZ*|>~F#P?N$SvmpV?Km)ClH3;Mw0xZBdY@Wykn)(J?V~*gMdIj{|bbdgOu|C z?%xQdlPAF_nj$$(V-C{y1+DE4yD+>oG#a$v6SVdq%jG6b!!$j(LDu)bbqSb1N^4CE z?CO`F1f2upc>gAf&r|CU`T6IC7M8D*^}D{~(^5*UT`M2EVa+&xrjwJs{Eujhi%@&_ zE-(y_!1L}#<3j~tt*1Qispg{R&qM9o2Q@m{{{Oe%F5&3WR{=cUWC=4FFpBO`p7*a! z`r#WpVY_X~h@}$L)KqU7YoCD-Pj~oA6>0iQDAgK%QdoN!N*%vu2J}fDKZ<<*cMu|b z*@=3`3rb_kkn*xQ*d3!AnqOs-K5NajS&Y$0dT Date: Wed, 27 Dec 2017 18:52:17 -0500 Subject: [PATCH 2/3] Set ongoing status for notifications --- app/src/main/java/protect/babymonitor/ListenActivity.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/protect/babymonitor/ListenActivity.java b/app/src/main/java/protect/babymonitor/ListenActivity.java index 2477829..3de72e1 100644 --- a/app/src/main/java/protect/babymonitor/ListenActivity.java +++ b/app/src/main/java/protect/babymonitor/ListenActivity.java @@ -112,6 +112,7 @@ public class ListenActivity extends Activity { NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(ListenActivity.this) + .setOngoing(true) .setSmallIcon(R.drawable.listening_notification) .setContentTitle(getString(R.string.app_name)) .setContentText(getString(R.string.listening)); @@ -166,6 +167,7 @@ public class ListenActivity extends Activity statusText.setText(R.string.disconnected); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(ListenActivity.this) + .setOngoing(false) .setSmallIcon(R.drawable.listening_notification) .setContentTitle(getString(R.string.app_name)) .setContentText(getString(R.string.disconnected)); From 1c64b15c00acbc691499ef4fa85c05728d400bb8 Mon Sep 17 00:00:00 2001 From: Branden Archer Date: Wed, 27 Dec 2017 19:03:46 -0500 Subject: [PATCH 3/3] remove unnecessary Runnable in onCreate() onCreate is already running on the UI thread, no need to create a separate runnable. --- .../protect/babymonitor/ListenActivity.java | 29 +++++--------- .../protect/babymonitor/MonitorActivity.java | 40 ++++++++----------- 2 files changed, 28 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/protect/babymonitor/ListenActivity.java b/app/src/main/java/protect/babymonitor/ListenActivity.java index 3de72e1..ba59ac3 100644 --- a/app/src/main/java/protect/babymonitor/ListenActivity.java +++ b/app/src/main/java/protect/babymonitor/ListenActivity.java @@ -105,28 +105,21 @@ public class ListenActivity extends Activity setContentView(R.layout.activity_listen); - ListenActivity.this.runOnUiThread(new Runnable() - { - @Override - public void run() - { - NotificationCompat.Builder mBuilder = - new NotificationCompat.Builder(ListenActivity.this) - .setOngoing(true) - .setSmallIcon(R.drawable.listening_notification) - .setContentTitle(getString(R.string.app_name)) - .setContentText(getString(R.string.listening)); + NotificationCompat.Builder mBuilder = + new NotificationCompat.Builder(ListenActivity.this) + .setOngoing(true) + .setSmallIcon(R.drawable.listening_notification) + .setContentTitle(getString(R.string.app_name)) + .setContentText(getString(R.string.listening)); + _mNotifyMgr.notify(mNotificationId, mBuilder.build()); - _mNotifyMgr.notify(mNotificationId, mBuilder.build()); + final TextView connectedText = (TextView) findViewById(R.id.connectedTo); + connectedText.setText(_name); - final TextView connectedText = (TextView) findViewById(R.id.connectedTo); - connectedText.setText(_name); + final TextView statusText = (TextView) findViewById(R.id.textStatus); + statusText.setText(R.string.listening); - final TextView statusText = (TextView) findViewById(R.id.textStatus); - statusText.setText(R.string.listening); - } - }); _listenThread = new Thread(new Runnable() { diff --git a/app/src/main/java/protect/babymonitor/MonitorActivity.java b/app/src/main/java/protect/babymonitor/MonitorActivity.java index c7ca991..e283180 100644 --- a/app/src/main/java/protect/babymonitor/MonitorActivity.java +++ b/app/src/main/java/protect/babymonitor/MonitorActivity.java @@ -167,30 +167,24 @@ public class MonitorActivity extends Activity }); _serviceThread.start(); - MonitorActivity.this.runOnUiThread(new Runnable() - { - @Override - public void run() - { - final TextView addressText = (TextView) findViewById(R.id.address); + final TextView addressText = (TextView) findViewById(R.id.address); + + // Use the application context to get WifiManager, to avoid leak before Android 5.1 + final WifiManager wifiManager = + (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE); + final WifiInfo info = wifiManager.getConnectionInfo(); + final int address = info.getIpAddress(); + if(address != 0) + { + @SuppressWarnings("deprecation") + final String ipAddress = Formatter.formatIpAddress(address); + addressText.setText(ipAddress); + } + else + { + addressText.setText(R.string.wifiNotConnected); + } - // Use the application context to get WifiManager, to avoid leak before Android 5.1 - final WifiManager wifiManager = - (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE); - final WifiInfo info = wifiManager.getConnectionInfo(); - final int address = info.getIpAddress(); - if(address != 0) - { - @SuppressWarnings("deprecation") - final String ipAddress = Formatter.formatIpAddress(address); - addressText.setText(ipAddress); - } - else - { - addressText.setText(R.string.wifiNotConnected); - } - } - }); } @Override