<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5450414179241848600</id><updated>2025-10-25T07:21:27.814-07:00</updated><category term="Android"/><category term="Android Development"/><category term="Cross Platform"/><category term="Flutter"/><category term="Java"/><category term="library"/><category term="Mac OSX"/><category term="MySql"/><category term="database"/><category term="linux"/><category term="webview"/><category term="Android Alarm Manager"/><category term="Android Design"/><category term="Android Design Patterns"/><category term="Android Library"/><category term="Android NDK"/><category term="Android Notifications"/><category term="Android SDK"/><category term="Android launcher screen"/><category term="Butterknife"/><category term="Design"/><category term="Design Patterns"/><category term="Git"/><category term="Git Clients"/><category term="Git Forking"/><category term="ImageMagick"/><category term="Jenkins"/><category term="Kotlin"/><category term="Kotlin language"/><category term="OpenSource"/><category term="RecyclerView"/><category term="Robolectric"/><category term="Runtime Permissions"/><category term="SSL"/><category term="UX"/><category term="WebViewOverlay"/><category term="android jar issue"/><category term="apache commons-codec"/><category term="bash"/><category term="canvas"/><category term="code review"/><category term="environmental variables"/><category term="gallery"/><category term="gerrit"/><category term="git-svn"/><category term="grep"/><category term="httpClient4"/><category term="hudson"/><category term="ixdonline"/><category term="jQuery"/><category term="jarjar"/><category term="jenkins git"/><category term="mac"/><category term="rsync"/><category term="unit testing Android in JVM"/><category term="unit testing in Android"/><title type='text'>Daily Learnings</title><subtitle type='html'>Everyday writings on tech learnings and re-learnings !</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>101</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-2217320071204746165</id><published>2019-02-05T12:25:00.003-08:00</published><updated>2019-02-05T12:26:22.372-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Cross Platform"/><category scheme="http://www.blogger.com/atom/ns#" term="Flutter"/><title type='text'>Flutter BottomAppBar widget</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Want to learn about how to implement bottom navigation in Flutter app that can run on Android and iOS seamless ? Checkout my article &lt;a href=&quot;https://ptyagicodecamp.github.io/bottomnavigationbar-with-menu-search-and-overflow-action-items.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/2217320071204746165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2019/02/flutter-bottomappbar-widget.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/2217320071204746165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/2217320071204746165'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2019/02/flutter-bottomappbar-widget.html' title='Flutter BottomAppBar widget'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-657246570443589409</id><published>2019-02-03T12:02:00.002-08:00</published><updated>2019-02-03T12:02:26.212-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Cross Platform"/><category scheme="http://www.blogger.com/atom/ns#" term="Flutter"/><title type='text'>Flutter AppBar widget recipe</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Checkout my article on Flutter AppBar widget recipe &lt;a href=&quot;https://ptyagicodecamp.github.io/flutter-code-recipe-for-appbar-widget.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/657246570443589409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2019/02/flutter-appbar-widget-recipe.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/657246570443589409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/657246570443589409'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2019/02/flutter-appbar-widget-recipe.html' title='Flutter AppBar widget recipe'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-4108819339574335186</id><published>2019-02-02T07:17:00.001-08:00</published><updated>2019-02-02T07:21:10.612-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Cross Platform"/><category scheme="http://www.blogger.com/atom/ns#" term="Flutter"/><title type='text'>Flutter code recipe for Hero animation</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Checkout my latest post on Flutter code recipe for Hero animation&amp;nbsp;&lt;a href=&quot;https://medium.com/@ptyagicodecamp/flutter-code-recipe-for-hero-animation-83342794b47d&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/4108819339574335186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2019/02/flutter-code-recipe-for-hero-animation.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/4108819339574335186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/4108819339574335186'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2019/02/flutter-code-recipe-for-hero-animation.html' title='Flutter code recipe for Hero animation'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-6287651596329660517</id><published>2019-02-02T07:16:00.000-08:00</published><updated>2019-02-02T07:20:53.149-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Cross Platform"/><category scheme="http://www.blogger.com/atom/ns#" term="Flutter"/><title type='text'>Flutter code recipe for AnimatedOpacity widget</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Checkout my latest post on Flutter code recipe for AnimatedOpacity widget&amp;nbsp;&lt;a href=&quot;https://medium.com/@ptyagicodecamp/flutter-code-recipe-for-animatedopacity-widget-8879cf65ba4c&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/6287651596329660517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2019/02/flutter-code-recipe-for-animatedopacity.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/6287651596329660517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/6287651596329660517'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2019/02/flutter-code-recipe-for-animatedopacity.html' title='Flutter code recipe for AnimatedOpacity widget'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-540755012774556968</id><published>2017-12-28T00:36:00.002-08:00</published><updated>2017-12-28T00:37:48.032-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Design"/><category scheme="http://www.blogger.com/atom/ns#" term="ixdonline"/><category scheme="http://www.blogger.com/atom/ns#" term="UX"/><title type='text'>Designing UX of EdOnGo WebApp</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;graf graf--p graf-after--h3&quot; id=&quot;55f5&quot; name=&quot;55f5&quot; style=&quot;--baseline-multiplier: 0.17; background-color: white; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 1.58; margin-top: 10px;&quot;&gt;
In this post I’ll be describing my experience designing EdOnGo web app.&lt;/div&gt;
&lt;h4 class=&quot;graf graf--h4 graf-after--p&quot; id=&quot;fd81&quot; name=&quot;fd81&quot; style=&quot;--baseline-multiplier: 0.22; background-color: white; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Lucida Sans Unicode&amp;quot;, &amp;quot;Lucida Sans&amp;quot;, Geneva, Arial, sans-serif; font-size: 26px; letter-spacing: -0.012em; line-height: 1.22; margin: 30px 0px 0px -1.63px;&quot;&gt;
Week #1: Defining&amp;nbsp;Mission&lt;/h4&gt;
&lt;h4 class=&quot;graf graf--h4 graf-after--h4&quot; id=&quot;3664&quot; name=&quot;3664&quot; style=&quot;--baseline-multiplier: 0.22; background-color: white; color: rgba(0, 0, 0, 0.84); font-family: medium-content-sans-serif-font, &amp;quot;Lucida Grande&amp;quot;, &amp;quot;Lucida Sans Unicode&amp;quot;, &amp;quot;Lucida Sans&amp;quot;, Geneva, Arial, sans-serif; font-size: 26px; letter-spacing: -0.012em; line-height: 1.22; margin: 39px 0px 0px -1.63px;&quot;&gt;
Motivation&lt;/h4&gt;
&lt;div class=&quot;graf graf--p graf-after--h4&quot; id=&quot;d9de&quot; name=&quot;d9de&quot; style=&quot;--baseline-multiplier: 0.17; background-color: white; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 1.58; margin-top: 6px;&quot;&gt;
As a parent to young children myself, I needed a way to cultivate learning from everyday things all around us waiting to be explored&amp;nbsp;! I wished if there were a way I could make my own flashcards to review with my kids anywhere on the go; and EdOnGo web app was born&amp;nbsp;!&lt;/div&gt;
&lt;div class=&quot;graf graf--p graf-after--h4&quot; id=&quot;d9de&quot; name=&quot;d9de&quot; style=&quot;--baseline-multiplier: 0.17; background-color: white; color: rgba(0, 0, 0, 0.84); font-family: medium-content-serif-font, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 21px; letter-spacing: -0.003em; line-height: 1.58; margin-top: 6px;&quot;&gt;
&lt;a href=&quot;https://medium.com/@ptyagicodecamp/designing-ux-of-edongo-webapp-f427e9702498&quot; target=&quot;_blank&quot;&gt;Read more...&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/540755012774556968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/12/designing-ux-of-edongo-webapp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/540755012774556968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/540755012774556968'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/12/designing-ux-of-edongo-webapp.html' title='Designing UX of EdOnGo WebApp'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-2136462036822292751</id><published>2017-07-13T22:42:00.000-07:00</published><updated>2017-07-13T22:42:08.589-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Design Patterns"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Design Patterns"/><title type='text'>Android Model-View-Presenter (MVP) Design Pattern</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Checkout my post on Android Model-View-Presenter (MVP) Design Pattern&amp;nbsp;&lt;a href=&quot;https://medium.com/@ptyagicodecamp/android-model-view-presenter-mvp-design-pattern-7a2d93221d55&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/2136462036822292751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/07/android-model-view-presenter-mvp-design.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/2136462036822292751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/2136462036822292751'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/07/android-model-view-presenter-mvp-design.html' title='Android Model-View-Presenter (MVP) Design Pattern'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-4973780393817621731</id><published>2017-06-20T23:26:00.001-07:00</published><updated>2017-06-20T23:26:40.021-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Runtime Permissions"/><title type='text'>Requesting Audio permission at Runtime</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Check out how to implement runtime permissions for an Audio recorder sample app in &lt;a href=&quot;https://ptyagicodecamp.github.io/requesting-audio-permission-at-runtime.html&quot; target=&quot;_blank&quot;&gt;this post&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/4973780393817621731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/06/requesting-audio-permission-at-runtime.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/4973780393817621731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/4973780393817621731'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/06/requesting-audio-permission-at-runtime.html' title='Requesting Audio permission at Runtime'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-4053369711468520480</id><published>2017-06-18T22:17:00.002-07:00</published><updated>2017-06-18T22:17:34.112-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Kotlin"/><category scheme="http://www.blogger.com/atom/ns#" term="Kotlin language"/><title type='text'>Getting started with developing Android Apps in Kotlin</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Kotlin is official language for Android Apps development. Checkout my post about &lt;a href=&quot;http://localhost:8000/getting-started-with-developing-android-apps-in-kotlin.html&quot; target=&quot;_blank&quot;&gt;Getting started with developing Android apps in Kotlin&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/4053369711468520480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/06/getting-started-with-developing-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/4053369711468520480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/4053369711468520480'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/06/getting-started-with-developing-android.html' title='Getting started with developing Android Apps in Kotlin'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-8439453106054296342</id><published>2017-06-16T14:49:00.004-07:00</published><updated>2017-06-16T14:50:11.598-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Alarm Manager"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Notifications"/><title type='text'>Scheduling Repeating Local Notifications using Alarm Manager</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Learn about&amp;nbsp;Scheduling Repeating Local Notifications using Alarm Manager in &lt;a href=&quot;https://ptyagicodecamp.github.io/scheduling-repeating-local-notifications-using-alarm-manager.html&quot; target=&quot;_blank&quot;&gt;this post&lt;/a&gt;.&lt;/div&gt;
&lt;script&gt;
  (function(i,s,o,g,r,a,m){i[&#39;GoogleAnalyticsObject&#39;]=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,&#39;script&#39;,&#39;https://www.google-analytics.com/analytics.js&#39;,&#39;ga&#39;);

  ga(&#39;create&#39;, &#39;UA-101190395-1&#39;, &#39;auto&#39;);
  ga(&#39;send&#39;, &#39;pageview&#39;);

&lt;/script&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/8439453106054296342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/06/scheduling-repeating-local.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/8439453106054296342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/8439453106054296342'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/06/scheduling-repeating-local.html' title='Scheduling Repeating Local Notifications using Alarm Manager'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-7742280680378487147</id><published>2017-06-16T14:47:00.000-07:00</published><updated>2017-06-16T14:47:50.088-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Design"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Development"/><title type='text'>Adding Menu Items in Navigation Drawer Dynamically</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Checkout my post about Adding Menu Items in Navigation Drawer Dynamically &lt;a href=&quot;https://ptyagicodecamp.github.io/adding-menu-items-in-navigation-drawer-dynamically.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;script&gt;
  (function(i,s,o,g,r,a,m){i[&#39;GoogleAnalyticsObject&#39;]=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,&#39;script&#39;,&#39;https://www.google-analytics.com/analytics.js&#39;,&#39;ga&#39;);

  ga(&#39;create&#39;, &#39;UA-101190395-1&#39;, &#39;auto&#39;);
  ga(&#39;send&#39;, &#39;pageview&#39;);

&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/7742280680378487147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/06/adding-menu-items-in-navigation-drawer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/7742280680378487147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/7742280680378487147'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/06/adding-menu-items-in-navigation-drawer.html' title='Adding Menu Items in Navigation Drawer Dynamically'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-4357538108413230142</id><published>2017-06-16T14:42:00.002-07:00</published><updated>2017-06-16T14:43:14.023-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android launcher screen"/><title type='text'>How did I integrated a launcher screen in an Android App under 5 minutes</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Checkout my latest blog post about Android App Launcher Screen&amp;nbsp;&lt;a href=&quot;https://ptyagicodecamp.github.io/how-did-i-integrated-a-launcher-screen-in-an-android-app-under-5-minutes.html&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;script&gt;
  (function(i,s,o,g,r,a,m){i[&#39;GoogleAnalyticsObject&#39;]=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,&#39;script&#39;,&#39;https://www.google-analytics.com/analytics.js&#39;,&#39;ga&#39;);

  ga(&#39;create&#39;, &#39;UA-101190395-1&#39;, &#39;auto&#39;);
  ga(&#39;send&#39;, &#39;pageview&#39;);

&lt;/script&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/4357538108413230142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/06/how-did-i-integrated-launcher-screen-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/4357538108413230142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/4357538108413230142'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/06/how-did-i-integrated-launcher-screen-in.html' title='How did I integrated a launcher screen in an Android App under 5 minutes'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-452033367910462654</id><published>2017-04-06T13:14:00.000-07:00</published><updated>2017-06-16T14:40:16.540-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Jenkins"/><category scheme="http://www.blogger.com/atom/ns#" term="Mac OSX"/><title type='text'>Starting and Stopping Jenkins on Mac OS X</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Stopping Jenkins on Mac OSX:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre style=&quot;background-color: #eff0f1; border: 0px; color: #242729; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; font-size: 13px; font-variant-ligatures: normal; margin-bottom: 1em; max-height: 600px; orphans: 2; overflow: auto; padding: 5px; widows: 2; width: auto; word-wrap: normal;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;&quot;&gt;sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Starting Jenkins on Mac OS X:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: #eff0f1; color: #242729; font-family: &amp;quot;consolas&amp;quot; , &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;lucida console&amp;quot; , &amp;quot;liberation mono&amp;quot; , &amp;quot;dejavu sans mono&amp;quot; , &amp;quot;bitstream vera sans mono&amp;quot; , &amp;quot;courier new&amp;quot; , monospace , sans-serif; font-size: 13px; white-space: inherit;&quot;&gt;sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist&lt;/span&gt;&amp;nbsp;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;script&gt;
  (function(i,s,o,g,r,a,m){i[&#39;GoogleAnalyticsObject&#39;]=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,&#39;script&#39;,&#39;https://www.google-analytics.com/analytics.js&#39;,&#39;ga&#39;);

  ga(&#39;create&#39;, &#39;UA-101190395-1&#39;, &#39;auto&#39;);
  ga(&#39;send&#39;, &#39;pageview&#39;);

&lt;/script&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/452033367910462654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/04/starting-and-stopping-jenkins-on-mac-os.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/452033367910462654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/452033367910462654'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/04/starting-and-stopping-jenkins-on-mac-os.html' title='Starting and Stopping Jenkins on Mac OS X'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-1452277990660176780</id><published>2017-03-10T11:58:00.000-08:00</published><updated>2017-06-16T14:40:36.309-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Library"/><category scheme="http://www.blogger.com/atom/ns#" term="Butterknife"/><category scheme="http://www.blogger.com/atom/ns#" term="library"/><title type='text'>Why Butterknife doesn&#39;t work for Android Libraries</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Have you tried using &lt;a href=&quot;http://jakewharton.github.io/butterknife/&quot; target=&quot;_blank&quot;&gt;Butterknife library &lt;/a&gt;to bind Android&#39;s xml views for an Android library ? And ran into dreaded this error message:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: , , &amp;quot;segoe ui&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;; font-size: 14px;&quot;&gt;Attribute must be constant&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
You&#39;re not alone ! Many people like myself tried using wonderful Butterknife in their Android Libraries like they do in their regular phone and tablet projects. Actually, Butterknife is not intended to be used for Android libraries project because &lt;i&gt;R&lt;/i&gt; class in library project is not &lt;i&gt;final.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Here&#39;s the explanation from Jake himself:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white; color: #24292e; font-family: , , &amp;quot;segoe ui&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;; font-size: 14px;&quot;&gt;Values on the&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 11.9px; margin: 0px; padding: 0.2em 0px;&quot;&gt;R&lt;/code&gt;&lt;span style=&quot;background-color: white; color: #24292e; font-family: , , &amp;quot;segoe ui&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;class are not&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: rgba(27, 31, 35, 0.0470588); border-radius: 3px; box-sizing: border-box; color: #24292e; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 11.9px; margin: 0px; padding: 0.2em 0px;&quot;&gt;final&lt;/code&gt;&lt;span style=&quot;background-color: white; color: #24292e; font-family: , , &amp;quot;segoe ui&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;; font-size: 14px;&quot;&gt;&amp;nbsp;in library modules which makes this library unusable on those modules. This is a limitation of Java, and something this library has decided not to work around. See&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load issue title&quot; data-id=&quot;11658933&quot; data-permission-text=&quot;Issue title is private&quot; data-url=&quot;https://github.com/JakeWharton/butterknife/issues/2&quot; href=&quot;https://github.com/JakeWharton/butterknife/issues/2&quot; style=&quot;background-color: white; box-sizing: border-box; color: #0366d6; font-family: -apple-system, system-ui, &amp;quot;Segoe UI&amp;quot;, Helvetica, Arial, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 14px; text-decoration: none;&quot;&gt;#2&lt;/a&gt;&lt;span style=&quot;background-color: white; color: #24292e; font-family: , , &amp;quot;segoe ui&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot;; font-size: 14px;&quot;&gt;.&lt;/span&gt;&lt;/blockquote&gt;
[UPDATE]&lt;br /&gt;
Recent version of Butterknife library (&lt;span style=&quot;background-color: #f6f8fa; color: #183691; font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 13.6px;&quot;&gt;8.5.1&lt;/span&gt;) &amp;nbsp;supports library projects as well. &amp;nbsp;Checkout out &lt;a href=&quot;https://github.com/JakeWharton/butterknife#library-projects&quot; target=&quot;_blank&quot;&gt;this link &lt;/a&gt;to configure library projects to start using Butterknife in your library projects as well.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;script&gt;
  (function(i,s,o,g,r,a,m){i[&#39;GoogleAnalyticsObject&#39;]=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,&#39;script&#39;,&#39;https://www.google-analytics.com/analytics.js&#39;,&#39;ga&#39;);

  ga(&#39;create&#39;, &#39;UA-101190395-1&#39;, &#39;auto&#39;);
  ga(&#39;send&#39;, &#39;pageview&#39;);

&lt;/script&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/1452277990660176780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/03/why-butterknife-doesnt-work-for-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/1452277990660176780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/1452277990660176780'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/03/why-butterknife-doesnt-work-for-android.html' title='Why Butterknife doesn&#39;t work for Android Libraries'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-1394697689540352521</id><published>2017-01-09T12:20:00.003-08:00</published><updated>2017-06-16T14:40:49.834-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="library"/><title type='text'>How did I publish Android Library to JCenter from Android Studio</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.8); font-family: , &amp;quot;georgia&amp;quot; , &amp;quot;cambria&amp;quot; , &amp;quot;times new roman&amp;quot; , &amp;quot;times&amp;quot; , serif; letter-spacing: -0.063px;&quot;&gt;JCenter is a Maven Repository or file server hosted by&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;markup--anchor markup--p-anchor&quot; data-href=&quot;https://bintray.com/&quot; href=&quot;https://bintray.com/&quot; rel=&quot;nofollow&quot; style=&quot;-webkit-tap-highlight-color: rgba(0, 0, 0, 0.439216); background-color: white; background-image: linear-gradient(rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0) 50%); background-position: 0px 1.07em; background-repeat: repeat-x; background-size: 2px 0.1em; font-family: medium-content-serif-font, Georgia, Cambria, &amp;quot;Times New Roman&amp;quot;, Times, serif; letter-spacing: -0.063px; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Bintray&lt;/a&gt;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.8); font-family: , &amp;quot;georgia&amp;quot; , &amp;quot;cambria&amp;quot; , &amp;quot;times new roman&amp;quot; , &amp;quot;times&amp;quot; , serif; letter-spacing: -0.063px;&quot;&gt;&amp;nbsp;for Android libraries. It’s a default repository for Android Studio. I wrote this post to log my experience with open sourcing an Android Library on JCenter.&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.8); font-family: , &amp;quot;georgia&amp;quot; , &amp;quot;cambria&amp;quot; , &amp;quot;times new roman&amp;quot; , &amp;quot;times&amp;quot; , serif; font-size: 21px; letter-spacing: -0.063px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
Checkout my detailed post on &lt;a href=&quot;https://medium.com/@ptyagicodecamp/how-did-i-publish-android-library-to-jcenter-from-android-studio-techlog-d8765b19f943#.ooyw1r33u&quot; target=&quot;_blank&quot;&gt;Medium&lt;/a&gt;&amp;nbsp;or at my &lt;a href=&quot;https://ptyagicodecamp.github.io/how-did-i-publish-android-library-to-jcenter-from-android-studio.html&quot; target=&quot;_blank&quot;&gt;techLog&lt;/a&gt;.&lt;/div&gt;
&lt;script&gt;
  (function(i,s,o,g,r,a,m){i[&#39;GoogleAnalyticsObject&#39;]=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,&#39;script&#39;,&#39;https://www.google-analytics.com/analytics.js&#39;,&#39;ga&#39;);

  ga(&#39;create&#39;, &#39;UA-101190395-1&#39;, &#39;auto&#39;);
  ga(&#39;send&#39;, &#39;pageview&#39;);

&lt;/script&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/1394697689540352521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/01/how-did-i-publish-android-library-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/1394697689540352521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/1394697689540352521'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/01/how-did-i-publish-android-library-to.html' title='How did I publish Android Library to JCenter from Android Studio'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-715277777059219401</id><published>2017-01-09T12:16:00.001-08:00</published><updated>2017-01-09T12:17:44.681-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenSource"/><category scheme="http://www.blogger.com/atom/ns#" term="webview"/><category scheme="http://www.blogger.com/atom/ns#" term="WebViewOverlay"/><title type='text'>WebViewOverlay Widget Android Library</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.8); font-family: , &amp;quot;georgia&amp;quot; , &amp;quot;cambria&amp;quot; , &amp;quot;times new roman&amp;quot; , &amp;quot;times&amp;quot; , serif; letter-spacing: -0.063px;&quot;&gt;I needed a widget that can load a url in WebView in a full-screen closable overlay/modal. I wanted to re-use this new, shiny widget in my other projects as well. So, I decided to upload WebViewOverlay library in a central artifact repository. I chose JCenter because its one of the largest artifact repository for Java and Android libraries and has good integration with Android Studio IDE.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.8); font-family: , &amp;quot;georgia&amp;quot; , &amp;quot;cambria&amp;quot; , &amp;quot;times new roman&amp;quot; , &amp;quot;times&amp;quot; , serif; letter-spacing: -0.063px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
Checkout my detailed &lt;a href=&quot;https://medium.com/@ptyagicodecamp/android-webviewoverlay-widget-988f509c5ff3#.hgda6fafl&quot; target=&quot;_blank&quot;&gt;Medium post&lt;/a&gt;&amp;nbsp;or at my &lt;a href=&quot;https://ptyagicodecamp.github.io/android-webviewoverlay-widget.html&quot; target=&quot;_blank&quot;&gt;techLog&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/715277777059219401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/01/webviewoverlay-widget-android-library.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/715277777059219401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/715277777059219401'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2017/01/webviewoverlay-widget-android-library.html' title='WebViewOverlay Widget Android Library'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-2077724904401789658</id><published>2016-12-16T15:53:00.000-08:00</published><updated>2016-12-16T15:53:05.049-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="library"/><category scheme="http://www.blogger.com/atom/ns#" term="webview"/><title type='text'>WebViewHelper Library in Android</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Recently, I&#39;ve fiddling around a long lived Widget in Android &quot;WebViews&quot;. I created a open source library&amp;nbsp;&lt;a href=&quot;https://ptyagicodecamp.github.io/webviewhelper-library.html&quot; target=&quot;_blank&quot;&gt;WebView Helper&lt;/a&gt;&amp;nbsp;to help with automatic URL validations and connivence methods to enable and disable JavaScript in a WebView. Don&#39;t forget to checkout out &lt;a href=&quot;https://ptyagicodecamp.github.io/webviewhelper-library.html&quot; target=&quot;_blank&quot;&gt;this post&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Source code is available on&lt;a href=&quot;https://github.com/ptyagicodecamp/webview-android&quot; target=&quot;_blank&quot;&gt; Github here&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/2077724904401789658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/12/webviewhelper-library-in-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/2077724904401789658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/2077724904401789658'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/12/webviewhelper-library-in-android.html' title='WebViewHelper Library in Android'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-5464296790652661109</id><published>2016-09-13T13:05:00.003-07:00</published><updated>2016-09-13T13:05:39.299-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="RecyclerView"/><title type='text'>RecyclerView sample code examples</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
If you&#39;re looking for sample code to get started with RecyclerView in Android, then this post is for you !&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/ptyagi911/MyRecyclerView&quot; target=&quot;_blank&quot;&gt;Here&#39;s link&lt;/a&gt; to my github repo to demonstrate Linear and Grid Layout using RecyclerView.&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/5464296790652661109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/09/recyclerview-sample-code-examples.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/5464296790652661109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/5464296790652661109'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/09/recyclerview-sample-code-examples.html' title='RecyclerView sample code examples'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-3463502810026586017</id><published>2016-07-29T14:41:00.004-07:00</published><updated>2016-07-29T14:46:49.392-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="canvas"/><category scheme="http://www.blogger.com/atom/ns#" term="gallery"/><title type='text'>Convert Canvas into Bitmap and Saving image in Gallery</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Have you ever thought of drawing something on Canvas and sharing it with others ? If yes, then this post is for you :)&lt;br /&gt;
&lt;br /&gt;
So, you know that you can draw your stuff on a Canvas view. If you want to share your work with others, you may want to save it as an image. This post shows how to convert a Canvas view into a bitmap. First &quot;Play&quot; menu-item will show a programmatically drawn text on canvas view. &quot;Save&quot; icon will save it in gallery as well as in external SD card.&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
&lt;br /&gt;
First create Custom View called MyCanvas class:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;package &lt;/span&gt;com.teach.mycanvasapp;

&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.content.Context;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.graphics.Canvas;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.graphics.Color;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.graphics.Paint;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.view.View;

&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;public class &lt;/span&gt;MyCanvas &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;extends &lt;/span&gt;View {
    &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;public &lt;/span&gt;MyCanvas(Context context) {
        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;super&lt;/span&gt;(context);
        &lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color: #0073bf; font-style: italic; font-weight: bold;&quot;&gt;TODO Auto-generated constructor stub&lt;/span&gt;&lt;span style=&quot;color: #0073bf; font-style: italic; font-weight: bold;&quot;&gt;    &lt;/span&gt;}

    &lt;span style=&quot;color: olive;&quot;&gt;@Override&lt;/span&gt;&lt;span style=&quot;color: olive;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;protected void &lt;/span&gt;onDraw(Canvas canvas) {
        &lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;// &lt;/span&gt;&lt;span style=&quot;color: #0073bf; font-style: italic; font-weight: bold;&quot;&gt;TODO Auto-generated method stub&lt;/span&gt;&lt;span style=&quot;color: #0073bf; font-style: italic; font-weight: bold;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;super&lt;/span&gt;.onDraw(canvas);
        Paint pBackground = &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;new &lt;/span&gt;Paint();
        pBackground.setColor(Color.&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;WHITE&lt;/span&gt;);
        canvas.drawRect(&lt;span style=&quot;color: blue;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;512&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;512&lt;/span&gt;, pBackground);
        Paint pText = &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;new &lt;/span&gt;Paint();
        pText.setColor(Color.&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;BLACK&lt;/span&gt;);
        pText.setTextSize(&lt;span style=&quot;color: blue;&quot;&gt;20&lt;/span&gt;);
        canvas.drawText(&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;This is a sample canvas image&quot;&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;100&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;100&lt;/span&gt;, pText);
    }
}&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br /&gt;
Second, reference MyCanvas from MainActivity class to show it inside ImageView. I&#39;ve two menu-items, one is for showing the bitmap and another is to take save action :&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;package &lt;/span&gt;com.teach.mycanvasapp;

&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.graphics.Bitmap;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.graphics.Canvas;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.graphics.drawable.BitmapDrawable;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.media.MediaScannerConnection;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.net.Uri;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.support.v7.app.AppCompatActivity;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.os.Bundle;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.util.Log;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.view.Menu;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.view.MenuItem;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.view.View;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;android.widget.ImageView;

&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;java.io.File;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;java.io.FileOutputStream;
&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;import &lt;/span&gt;java.io.OutputStream;

&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;public class &lt;/span&gt;MainActivity &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;extends &lt;/span&gt;AppCompatActivity {

    ImageView &lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;imageView &lt;/span&gt;= &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;null&lt;/span&gt;;

    &lt;span style=&quot;color: olive;&quot;&gt;@Override&lt;/span&gt;&lt;span style=&quot;color: olive;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;protected void &lt;/span&gt;onCreate(Bundle savedInstanceState) {
        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;super&lt;/span&gt;.onCreate(savedInstanceState);
        setContentView(R.layout.&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;activity_main&lt;/span&gt;);
    }

    &lt;span style=&quot;color: olive;&quot;&gt;@Override&lt;/span&gt;&lt;span style=&quot;color: olive;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;public boolean &lt;/span&gt;onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;menu&lt;/span&gt;, menu);
        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;return true&lt;/span&gt;;
    }

    &lt;span style=&quot;color: olive;&quot;&gt;@Override&lt;/span&gt;&lt;span style=&quot;color: olive;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;public boolean &lt;/span&gt;onOptionsItemSelected(MenuItem item) {
        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;int &lt;/span&gt;id = item.getItemId();

        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;if &lt;/span&gt;(id == R.id.&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;show_canvas&lt;/span&gt;) {
            View v = &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;new &lt;/span&gt;MyCanvas(getApplicationContext());
            Bitmap bitmap = Bitmap.&lt;span style=&quot;font-style: italic;&quot;&gt;createBitmap&lt;/span&gt;(&lt;span style=&quot;color: blue;&quot;&gt;500&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;/*width*/&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;500&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;/*height*/&lt;/span&gt;, Bitmap.Config.&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;ARGB_8888&lt;/span&gt;);
            Canvas canvas = &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;new &lt;/span&gt;Canvas(bitmap);
            v.draw(canvas);
            &lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;imageView &lt;/span&gt;= (ImageView) findViewById(R.id.&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;imageView&lt;/span&gt;);
            &lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;imageView&lt;/span&gt;.setImageBitmap(bitmap);
            &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;return true&lt;/span&gt;;
        } &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;else if &lt;/span&gt;(id == R.id.&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;save_canvas&lt;/span&gt;) {
            saveImageToGallery();
            &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;return true&lt;/span&gt;;
        }

        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;return super&lt;/span&gt;.onOptionsItemSelected(item);
    }

    &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;public void &lt;/span&gt;saveImageToGallery() {
        Bitmap bitmap = ((BitmapDrawable)&lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;imageView&lt;/span&gt;.getDrawable()).getBitmap();

        &lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;//Writing image to SD card.&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;        //It could also be saved to internal storage.&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;        // That way, we don&#39;t need to have extra permissions&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;        &lt;/span&gt;File dir = &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;new &lt;/span&gt;File(&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;/sdcard/tempfolder/&quot;&lt;/span&gt;);

        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;try &lt;/span&gt;{
            &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;if &lt;/span&gt;(!dir.exists()) {
                dir.mkdirs();
            }

            File output = &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;new &lt;/span&gt;File(dir, &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;tempfile.jpg&quot;&lt;/span&gt;);
            &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;if &lt;/span&gt;(!output.exists())
                output.createNewFile();

            OutputStream os = &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;null&lt;/span&gt;;
            os = &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;new &lt;/span&gt;FileOutputStream(output);
            bitmap.compress(Bitmap.CompressFormat.&lt;span style=&quot;color: #660e7a; font-style: italic; font-weight: bold;&quot;&gt;JPEG&lt;/span&gt;, &lt;span style=&quot;color: blue;&quot;&gt;100&lt;/span&gt;, os);
            os.flush();
            os.close();

            &lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;//Scans image and save it in gallery&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;            &lt;/span&gt;MediaScannerConnection.&lt;span style=&quot;font-style: italic;&quot;&gt;scanFile&lt;/span&gt;(&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;this&lt;/span&gt;, &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;new &lt;/span&gt;String[] { output.toString() }, &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;null&lt;/span&gt;,
                    &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;new &lt;/span&gt;MediaScannerConnection.OnScanCompletedListener() {
                        &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;public void &lt;/span&gt;onScanCompleted(String path, Uri uri) {
                            Log.&lt;span style=&quot;font-style: italic;&quot;&gt;d&lt;/span&gt;(&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;Test&quot;&lt;/span&gt;, &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;Image saved in gallery!&quot;&lt;/span&gt;);
                        }
                    }
            );
        } &lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;catch &lt;/span&gt;(Exception e) {
            Log.&lt;span style=&quot;font-style: italic;&quot;&gt;d&lt;/span&gt;(&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;Test&quot;&lt;/span&gt;, &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;Exception: &quot; &lt;/span&gt;+ e.getMessage());
        }
    }
}&lt;/pre&gt;
&lt;br /&gt;
Here&#39;s link to the github repo:&amp;nbsp;&lt;a href=&quot;https://github.com/ptyagi911/MyCanvasApp&quot;&gt;https://github.com/ptyagi911/MyCanvasApp&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/3463502810026586017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/07/convert-canvas-into-bitmap-and-saving_29.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/3463502810026586017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/3463502810026586017'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/07/convert-canvas-into-bitmap-and-saving_29.html' title='Convert Canvas into Bitmap and Saving image in Gallery'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-3948501216838072013</id><published>2016-07-25T13:14:00.000-07:00</published><updated>2016-07-25T13:14:00.255-07:00</updated><title type='text'>Safe Installing from Web on Mac OSX</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Step 1: You should have &lt;i&gt;md5 &lt;/i&gt;tool setup to verify installer/file downloaded from web.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #eeeeee;&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;brew install md5sha1sum&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;Step 2: Check&amp;nbsp;downloaded file like this:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #eeeeee; font-family: Courier New, Courier, monospace;&quot;&gt;md5sum &amp;lt;path-to-file-to-be-verified&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/3948501216838072013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/07/safe-installing-from-web-on-mac-osx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/3948501216838072013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/3948501216838072013'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/07/safe-installing-from-web-on-mac-osx.html' title='Safe Installing from Web on Mac OSX'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-2757811189227273557</id><published>2016-06-27T09:22:00.000-07:00</published><updated>2016-07-13T13:22:21.820-07:00</updated><title type='text'>Android Studio: Files to keep in version control </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Here&#39;s list of files that should be kept under version control like Git:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;compiler.xml&lt;/li&gt;
&lt;li&gt;encodings.xml&lt;/li&gt;
&lt;li&gt;modules.xml&lt;/li&gt;
&lt;li&gt;*.ipr : Contains project related data.&lt;/li&gt;
&lt;/ul&gt;
File to be included in gitignore OR not to be kept under version control:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;workspace.xml&lt;/li&gt;
&lt;li&gt;*.iws : Contains user specific data.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/2757811189227273557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/06/android-studio-files-to-keep-in-version.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/2757811189227273557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/2757811189227273557'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/06/android-studio-files-to-keep-in-version.html' title='Android Studio: Files to keep in version control '/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-7122097577803915297</id><published>2016-06-17T11:36:00.002-07:00</published><updated>2016-06-17T11:37:48.292-07:00</updated><title type='text'>Tinkering with Physical Web (Android)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h4 style=&quot;height: 0px; text-align: left;&quot;&gt;
How to convert a device into beacon (Device 1)&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Install &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.uriio&quot;&gt;Beacon Toy&lt;/a&gt; application on device that you want to convert/use as beacon.&lt;/li&gt;
&lt;li&gt;Enable data (wifi or cellular and bluetooth on this device)&lt;/li&gt;
&lt;li&gt;Configure URL in Beacon Toy application. You also have option to choose to get a short url.&lt;/li&gt;
&lt;li&gt;I&#39;m using my &lt;a href=&quot;http://priyanka-tyagi.blogspot.com/&quot;&gt;blog&#39;s url&lt;/a&gt; for this testing purpose.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
How to enable physical web on your device (Device 2)&lt;/h4&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Enable data, location and bluetooth&lt;/li&gt;
&lt;li&gt;Open Chrome and turn on Physical Web&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Chrome --&amp;gt; Settings --&amp;gt; Privacy --&amp;gt; Physical Web&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=physical_web.org.physicalweb&quot;&gt;Download Physical Web&lt;/a&gt; app from Play Store.&lt;/li&gt;
&lt;li&gt;Open Physical Web app.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;It&#39;ll start scanning all the nearby beacons.&lt;/li&gt;
&lt;li&gt;It&#39;ll pick up Device 1&#39;s transmitted url and open my blog :)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/7122097577803915297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/06/tinkering-with-physical-web-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/7122097577803915297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/7122097577803915297'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/06/tinkering-with-physical-web-android.html' title='Tinkering with Physical Web (Android)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-4931519105322200934</id><published>2016-06-14T10:46:00.003-07:00</published><updated>2016-06-14T10:49:48.985-07:00</updated><title type='text'>Tinkering with Firebase: Notifications</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Here are quick steps/tips to integrate Firebase notifications in your client app:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;AndroidManifest :&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;pre style=&quot;font-family: Menlo; font-size: 9pt;&quot;&gt;&amp;lt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;application&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;pre style=&quot;font-family: Menlo; font-size: 9pt;&quot;&gt;.....&lt;/pre&gt;
&lt;pre style=&quot;font-family: Menlo; font-size: 9pt;&quot;&gt;.....&lt;/pre&gt;
&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;    &lt;/span&gt;&amp;lt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;service&lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color: blue; font-weight: bold;&quot;&gt;:name=&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;.MyFirebaseMessagingService&quot;&lt;/span&gt;&amp;gt;
        &amp;lt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;intent-filter&lt;/span&gt;&amp;gt;
            &amp;lt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;action &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color: blue; font-weight: bold;&quot;&gt;:name=&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;com.google.firebase.MESSAGING_EVENT&quot;&lt;/span&gt;/&amp;gt;
        &amp;lt;/&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;intent-filter&lt;/span&gt;&amp;gt;
    &amp;lt;/&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;service&lt;/span&gt;&amp;gt;
    &lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;    &lt;/span&gt;&amp;lt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;service&lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color: blue; font-weight: bold;&quot;&gt;:name=&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;.MyFirebaseInstanceIdService&quot;&lt;/span&gt;&amp;gt;
        &amp;lt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;intent-filter&lt;/span&gt;&amp;gt;
            &amp;lt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;action &lt;/span&gt;&lt;span style=&quot;color: #660e7a; font-weight: bold;&quot;&gt;android&lt;/span&gt;&lt;span style=&quot;color: blue; font-weight: bold;&quot;&gt;:name=&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&quot;com.google.firebase.INSTANCE_ID_EVENT&quot;&lt;/span&gt;/&amp;gt;
        &amp;lt;/&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;intent-filter&lt;/span&gt;&amp;gt;
    &amp;lt;/&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;service&lt;/span&gt;&amp;gt;
    &lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;
&lt;/span&gt;&amp;lt;/&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;application&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;app/build.gradle:&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;dependencies {&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;    &lt;/span&gt;compile &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;com.google.firebase:firebase-messaging:9.0.2&#39;&lt;/span&gt;}

//Make sure to apply it at the end of the file
apply &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;plugin&lt;/span&gt;: &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;com.google.gms.google-services&#39;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Project level build.gradle:&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;dependencies {&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;    &lt;/span&gt;classpath &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;com.google.gms:google-services:3.0.0&#39;&lt;/span&gt;&lt;span style=&quot;color: grey; font-style: italic;&quot;&gt;
&lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;New Classes:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: navy; font-family: &amp;quot;menlo&amp;quot;; font-size: 9pt; font-weight: bold;&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;menlo&amp;quot;; font-size: 9pt; font-weight: bold;&quot;&gt;MyFirebaseMessagingService &lt;/span&gt;&lt;span style=&quot;color: navy; font-family: &amp;quot;menlo&amp;quot;; font-size: 9pt; font-weight: bold;&quot;&gt;extends &lt;/span&gt;&lt;span style=&quot;background-color: #e4e4ff; font-family: &amp;quot;menlo&amp;quot;; font-size: 9pt; font-weight: bold;&quot;&gt;FirebaseMessagingService&lt;/span&gt;&lt;span style=&quot;background-color: white; color: green; font-family: &amp;quot;menlo&amp;quot;; font-size: 9pt; font-weight: bold;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: 9pt;&quot;&gt;This is where notifications rendering is handled.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-size: 9pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Method responsible for message handling:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: olive;&quot;&gt;@Override&lt;/span&gt;&lt;span style=&quot;color: navy; font-weight: bold;&quot;&gt;public void &lt;/span&gt;onMessageReceived(RemoteMessage remoteMessage) {}&lt;/pre&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;color: navy; font-family: &amp;quot;menlo&amp;quot;; font-weight: bold;&quot;&gt;class &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;menlo&amp;quot;; font-size: 9pt;&quot;&gt;MyFirebaseInstanceIdService &lt;/span&gt;&lt;span style=&quot;color: navy; font-family: &amp;quot;menlo&amp;quot;; font-weight: bold;&quot;&gt;extends &lt;/span&gt;&lt;span style=&quot;background-color: #e4e4ff; font-family: &amp;quot;menlo&amp;quot;;&quot;&gt;FirebaseInstanceIdService&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: x-small;&quot;&gt;This class is useful in getting the device token. This token is used if you want to send message to that particular device.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: x-small;&quot;&gt;This token can be collected:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;menlo&amp;quot;; font-size: 9pt;&quot;&gt;FirebaseInstanceId.&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;menlo&amp;quot;; font-size: 9pt; font-style: italic;&quot;&gt;getInstance&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;menlo&amp;quot;; font-size: 9pt;&quot;&gt;().getToken() &lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: x-small;&quot;&gt;during app initialization.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Firebase console:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: x-small;&quot;&gt;Go to Firebase Console to configure&amp;nbsp;notifications:&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://console.firebase.google.com/project/andevres/notification&quot;&gt;https://console.firebase.google.com/project/&amp;lt;projectId&amp;gt;/notification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Configure and start send notifications !&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Side Notes:&lt;pre style=&quot;font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;You app should be signed setup for using Firebase by generating and copying google-services.json under your app/ folder.&lt;/li&gt;
&lt;li&gt;You&#39;ll get opportunity to download google-services.json while configuring your Firebase Notifications via Firebase Console.&lt;/li&gt;
&lt;li&gt;New SHA can be added from Setting tabs under chosen project.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/4931519105322200934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/06/tinkering-with-firebase-notifications.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/4931519105322200934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/4931519105322200934'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/06/tinkering-with-firebase-notifications.html' title='Tinkering with Firebase: Notifications'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-6636731447502567861</id><published>2016-06-13T15:06:00.000-07:00</published><updated>2016-06-13T15:06:03.238-07:00</updated><title type='text'>How to keep Multi-Dex issue away !</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Tip 1: Always keep an check on library&#39;s method count using these two tools:&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/KeepSafe/dexcount-gradle-plugin&quot; target=&quot;_blank&quot;&gt;Dex-Count-Gradle-Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.methodscount.com/&quot;&gt;MethodsCount.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Tip 2: Use Proguard for debug builds as well.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Configuring gradle plug-in:&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;Global build.gradle:&lt;/u&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;classpath &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.5.0&#39;&lt;/span&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;Local : app/build.gradle&lt;/u&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;apply &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;plugin&lt;/span&gt;: &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;com.android.library&#39;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;//AFTER android or library plugin&lt;/span&gt;apply &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;plugin&lt;/span&gt;: &lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;&#39;com.getkeepsafe.dexcount&#39;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: Menlo; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: green; font-weight: bold;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
References:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;http://jeroenmols.com/blog/2016/05/06/methodcount&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/6636731447502567861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/06/how-to-keep-multi-dex-issue-away.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/6636731447502567861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/6636731447502567861'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/06/how-to-keep-multi-dex-issue-away.html' title='How to keep Multi-Dex issue away !'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-8369458280867127753</id><published>2016-04-08T14:16:00.002-07:00</published><updated>2016-06-13T15:06:14.861-07:00</updated><title type='text'>Rx-Android sample code</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
There&#39;s lots of fuss around Rx/functional programming these day. I wanted to learn by doing, but couldn&#39;t find any simple example code to get me started. There&#39;re plenty of information for advanced programmers, but nothing basic. So I&#39;m sharing a very simple sample app that uses Rx-Android to do the same thing that an AsyncTask would do. Checkout README for more details.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/ptyagi911/rx-android-examples&quot; target=&quot;_blank&quot;&gt;Source code&lt;/a&gt; is here:&amp;nbsp;https://github.com/ptyagi911/rx-android-examples&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/8369458280867127753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/04/rx-android-sample-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/8369458280867127753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/8369458280867127753'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/04/rx-android-sample-code.html' title='Rx-Android sample code'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5450414179241848600.post-3919416269269785282</id><published>2016-04-08T14:12:00.001-07:00</published><updated>2016-04-08T14:12:55.420-07:00</updated><title type='text'>Super Simple example code for Android Fragment </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Looking for easy to follow code to understand Fragments in Android ? You&#39;re at right place ! Checkout&lt;a href=&quot;https://github.com/ptyagi911/android-fragments-example&quot; target=&quot;_blank&quot;&gt; this sample code &lt;/a&gt;in github:&amp;nbsp;https://github.com/ptyagi911/android-fragments-example&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://priyanka-tyagi.blogspot.com/feeds/3919416269269785282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/04/super-simple-example-code-for-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/3919416269269785282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5450414179241848600/posts/default/3919416269269785282'/><link rel='alternate' type='text/html' href='http://priyanka-tyagi.blogspot.com/2016/04/super-simple-example-code-for-android.html' title='Super Simple example code for Android Fragment '/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>