<?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-6036243090803825957</id><updated>2026-10-12T22:11:34.868+05:30</updated><category term="Whats app status"/><category term="android"/><category term="download"/><category term="image"/><category term="java"/><category term="status"/><category term="status download"/><category term="video"/><category term="123 Numbers"/><category term="ABC Phonics"/><category term="Alphabet App"/><category term="Android Kids"/><category term="Android Login App"/><category term="Android Project"/><category term="Android SQLite"/><category term="Android Studio"/><category term="Android Tutorial"/><category term="CRUD Operations"/><category term="Early Education"/><category term="Free Kids App"/><category term="Kids Learning"/><category term="Kindergarten"/><category term="Krishna app worlds"/><category term="Login System"/><category term="Offline App"/><category term="Offline Database"/><category term="Preschool"/><category term="Privacy Policy"/><category term="Register System"/><category term="Rto exam test app"/><category term="SQLite"/><category term="SQLite CRUD"/><category term="Toddler App"/><category term="Tracing"/><category term="drawing"/><category term="driving"/><category term="driving license"/><category term="driving test"/><category term="igtv"/><category term="instagram"/><category term="instagram image"/><category term="instagram video"/><category term="license"/><category term="photo"/><category term="rto"/><category term="rto app"/><category term="rto application"/><category term="rto computer test"/><category term="rto drving license"/><category term="rto exam"/><category term="rto license"/><category term="rto question and answer"/><category term="rto test"/><category term="source code"/><category term="status download code"/><category term="status saver"/><category term="status saver for whatsapp"/><title type='text'>Krishna app worlds</title><subtitle type='html'>krishan app world is the best android application and source code provide company</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://krishnaappworlds.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='https://krishnaappworlds.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Krishna App Worlds</name><uri>http://www.blogger.com/profile/13492301509239354248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCbyWb21IGK4YLWwcs-xNFWaPpkFJI3fbiLWd9hXbcYVKVVRQQSiU2VRla7KNusQcAJev6Xr7Xa0GUYK-CUOoZkrN2GNcdMvAjjuPN7_UCXmY2N8aoVS48jtxoicuBuq0/s220/17015754_10158609862795508_565470149047945397_o.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6036243090803825957.post-975908017975528944</id><published>2020-04-22T10:06:00.010+05:30</published><updated>2026-05-26T21:58:10.952+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="driving"/><category scheme="http://www.blogger.com/atom/ns#" term="driving license"/><category scheme="http://www.blogger.com/atom/ns#" term="driving test"/><category scheme="http://www.blogger.com/atom/ns#" term="license"/><category scheme="http://www.blogger.com/atom/ns#" term="rto"/><category scheme="http://www.blogger.com/atom/ns#" term="rto app"/><category scheme="http://www.blogger.com/atom/ns#" term="rto application"/><category scheme="http://www.blogger.com/atom/ns#" term="rto computer test"/><category scheme="http://www.blogger.com/atom/ns#" term="rto drving license"/><category scheme="http://www.blogger.com/atom/ns#" term="rto exam"/><category scheme="http://www.blogger.com/atom/ns#" term="Rto exam test app"/><category scheme="http://www.blogger.com/atom/ns#" term="rto license"/><category scheme="http://www.blogger.com/atom/ns#" term="rto question and answer"/><category scheme="http://www.blogger.com/atom/ns#" term="rto test"/><title type='text'>RTO Exam Preparation 2026 | Driving Licence Test India</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;RTO Exam Preparation 2026 | Driving Licence Test India&lt;/title&gt;

    &lt;!-- SEO Meta Tags --&gt;
    &lt;meta name=&quot;description&quot; content=&quot;Prepare for RTO exam in Gujarati and English. Practice driving licence test questions, road signs and mock tests for India 2026.&quot;&gt;
    &lt;meta name=&quot;keywords&quot; content=&quot;RTO exam India, driving licence test, RTO practice app, Gujarati RTO exam, learning licence test&quot;&gt;
    &lt;meta name=&quot;author&quot; content=&quot;RTO Exam Guide&quot;&gt;

    &lt;style&gt;
     a {
          text-decoration: none !important;
      }
            .header {
          width: 100%;
          background: #1565c0;
          padding: 14px 20px;
          display: flex;
          align-items: center;
          justify-content: space-between;
          box-sizing: border-box;
      }

      .logo {
          color: #ffffff;
          font-size: 22px;
          font-weight: bold;
      }

      .nav {
          display: flex;
          align-items: center;
          gap: 24px;
      }

      .nav a {
          color: #ffffff !important;
          text-decoration: none !important;
          font-size: 16px;
          font-weight: 500;
          display: inline-block;
          white-space: nowrap;
          padding: 6px 0;
      }

      /* Mobile */
      @media screen and (max-width: 768px) {

          .header {
              flex-direction: column;
              align-items: flex-start;
          }

          .nav {
              width: 100%;
              overflow-x: auto;
              padding-top: 10px;
              gap: 18px;
          }

          .nav a {
              font-size: 14px;
              flex-shrink: 0;
          }
      }
        h1, h2 {
            color: #2c3e50;
        }
        a {
            color: #007BFF;
            text-decoration: none;
        }
       .btn {
          display: inline-block;
          padding: 14px 22px;
          background: #1565c0;   /* blue */
          color: #ffffff;        /* white text */
          border-radius: 6px;
          font-size: 16px;
          font-weight: 600;
          text-align: center;
          text-decoration: none;
          margin-top: 15px;
          transition: 0.2s ease;
      }

      /* Keep same color on hover */
      .btn:hover,
      .btn:focus,
      .btn:active,
      .btn:visited {
          color: #ffffff;
          background: #1565c0;
          text-decoration: none;
      }

      /* Optional small effect (no color change) */
      .btn:hover {
          opacity: 0.9;
      }
        .section {
            margin-bottom: 25px;
        }
        iframe {
            width: 100%;
            height: 400px;
            border: none;
        }
    &lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;div class=&quot;container&quot;&gt;

    &lt;h1&gt;RTO Exam Preparation 2026: Gujarati, Hindi &amp; English Driving Licence Test Guide&lt;/h1&gt;

    &lt;div class=&quot;section&quot;&gt;
        &lt;p&gt;
            Preparing for the RTO driving licence test in India can be challenging if you are not familiar with traffic rules, road signs, and exam patterns.
            This guide will help you prepare effectively and pass your RTO exam with confidence.
        &lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;section&quot;&gt;
        &lt;h2&gt;🚗 What is the RTO Exam?&lt;/h2&gt;
        &lt;p&gt;
            The RTO (Regional Transport Office) exam is required to obtain a learning licence in India. It tests your knowledge of traffic rules, road signs, and safe driving practices.
        &lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;section&quot;&gt;
        &lt;h2&gt;📚 How to Prepare for RTO Exam&lt;/h2&gt;
        &lt;ul&gt;
            &lt;li&gt;Study traffic rules daily&lt;/li&gt;
            &lt;li&gt;Learn road signs and meanings&lt;/li&gt;
            &lt;li&gt;Practice multiple-choice questions&lt;/li&gt;
            &lt;li&gt;Take mock tests regularly&lt;/li&gt;
            &lt;li&gt;Review mistakes and improve&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;div class=&quot;section&quot;&gt;
        &lt;h2&gt;📱 Practice Using Mobile App&lt;/h2&gt;
        &lt;p style=&quot;margin-bottom: 15px;&quot;&gt;
            Download the app and start practicing anytime:
        &lt;/p&gt;

        &lt;a class=&quot;btn&quot; href=&quot;https://play.google.com/store/apps/details?id=com.krishna.rtoexamtest&quot; target=&quot;_blank&quot;&gt;
            🚀 Download RTO Exam App
        &lt;/a&gt;
    &lt;/div&gt;

    &lt;div class=&quot;section&quot;&gt;
        &lt;h2&gt;🎥 Watch Demo Video&lt;/h2&gt;
        &lt;iframe src=&quot;https://www.youtube.com/embed/6c0L0S9adxA&quot; allowfullscreen&gt;&lt;/iframe&gt;
    &lt;/div&gt;

    &lt;div class=&quot;section&quot;&gt;
        &lt;h2&gt;🌐 Gujarati &amp; English Support&lt;/h2&gt;
        &lt;p&gt;
            This app supports both Gujarati and English languages, making it easier for users to understand and prepare effectively for the RTO exam.
        &lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;section&quot;&gt;
        &lt;h2&gt;🚦 Important Topics&lt;/h2&gt;
        &lt;ul&gt;
            &lt;li&gt;Traffic rules and signals&lt;/li&gt;
            &lt;li&gt;Road signs and meanings&lt;/li&gt;
            &lt;li&gt;Driving safety guidelines&lt;/li&gt;
            &lt;li&gt;Penalties and regulations&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;div class=&quot;section&quot;&gt;
        &lt;h2&gt;⚠️ Common Mistakes to Avoid&lt;/h2&gt;
        &lt;ul&gt;
            &lt;li&gt;Skipping practice tests&lt;/li&gt;
            &lt;li&gt;Ignoring road signs&lt;/li&gt;
            &lt;li&gt;Not reviewing wrong answers&lt;/li&gt;
            &lt;li&gt;Last-minute preparation&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;div class=&quot;section&quot;&gt;
        &lt;h2&gt;🏁 Conclusion&lt;/h2&gt;
        &lt;p&gt;
            With proper preparation and regular practice, passing the RTO exam becomes easy.
            Use the app, practice daily, and stay confident.
        &lt;/p&gt;
    &lt;/div&gt;

&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='https://krishnaappworlds.blogspot.com/feeds/975908017975528944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://krishnaappworlds.blogspot.com/2020/04/rto-driving-licence-exam-test-questions.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/975908017975528944'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/975908017975528944'/><link rel='alternate' type='text/html' href='https://krishnaappworlds.blogspot.com/2020/04/rto-driving-licence-exam-test-questions.html' title='RTO Exam Preparation 2026 | Driving Licence Test India'/><author><name>Krishna App Worlds</name><uri>http://www.blogger.com/profile/13492301509239354248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCbyWb21IGK4YLWwcs-xNFWaPpkFJI3fbiLWd9hXbcYVKVVRQQSiU2VRla7KNusQcAJev6Xr7Xa0GUYK-CUOoZkrN2GNcdMvAjjuPN7_UCXmY2N8aoVS48jtxoicuBuq0/s220/17015754_10158609862795508_565470149047945397_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/6c0L0S9adxA/default.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036243090803825957.post-841551200541012653</id><published>2019-08-03T20:51:00.006+05:30</published><updated>2026-05-09T18:03:44.467+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Login App"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Project"/><category scheme="http://www.blogger.com/atom/ns#" term="Android SQLite"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Tutorial"/><category scheme="http://www.blogger.com/atom/ns#" term="CRUD Operations"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="Login System"/><category scheme="http://www.blogger.com/atom/ns#" term="Offline Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Register System"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLite"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLite CRUD"/><title type='text'>Android SQLite Login &amp; Register App with CRUD Operations in Java (2026)</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot; /&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot; /&gt;

  &lt;!-- ═══════════════════════════════════════════════
       PRIMARY SEO META TAGS
  ═══════════════════════════════════════════════ --&gt;
  &lt;title&gt;Android SQLite Login &amp; Register App with CRUD Operations (2026) | Krishna App Worlds&lt;/title&gt;
  &lt;meta name=&quot;description&quot; content=&quot;Build a complete Android login and registration app using SQLite database in 2026. Full source code for CRUD operations, SharedPreferences session management, email validation, and profile update — step by step.&quot; /&gt;
  &lt;meta name=&quot;keywords&quot; content=&quot;Android SQLite login register 2026, Android CRUD SQLite example, SQLiteOpenHelper tutorial, Android login app source code, Android registration with database, Android SharedPreferences session, DatabaseHandler Android, Android studio SQLite project&quot; /&gt;
  &lt;meta name=&quot;author&quot; content=&quot;Krishna App Worlds&quot; /&gt;
  &lt;meta name=&quot;robots&quot; content=&quot;index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1&quot; /&gt;
  &lt;link rel=&quot;canonical&quot; href=&quot;https://krishnaappworlds.blogspot.com/android-sqlite-login-register-2026&quot; /&gt;

  &lt;!-- ═══════════════════════════════════════════════
       OPEN GRAPH (Facebook / LinkedIn)
  ═══════════════════════════════════════════════ --&gt;
  &lt;meta property=&quot;og:type&quot; content=&quot;article&quot; /&gt;
  &lt;meta property=&quot;og:title&quot; content=&quot;Android SQLite Login &amp; Register App with CRUD Operations (2026)&quot; /&gt;
  &lt;meta property=&quot;og:description&quot; content=&quot;Complete Android SQLite login &amp; registration tutorial with full Java source code, XML layouts, and CRUD operations. Updated for 2026 best practices.&quot; /&gt;
  &lt;meta property=&quot;og:url&quot; content=&quot;https://krishnaappworlds.blogspot.com/android-sqlite-login-register-2026&quot; /&gt;
  &lt;meta property=&quot;og:site_name&quot; content=&quot;Krishna App Worlds&quot; /&gt;
  &lt;meta property=&quot;og:image&quot; content=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhocDEiHNcYOwjdSjms6ZNuf9iJqnpyfyBe07h8fl66m1Mbx9gB8AVI2OkPefAPj8LQKPM2Mk2lxFoibr5NtgxUM09iovIMaK8fLqOc_IDl-oHA4VOtSaRxaf1spUAR3zV8oWfyNlGbwGs/s1600/a.png&quot; /&gt;
  &lt;meta property=&quot;og:image:width&quot; content=&quot;1200&quot; /&gt;
  &lt;meta property=&quot;og:image:height&quot; content=&quot;630&quot; /&gt;
  &lt;meta property=&quot;article:published_time&quot; content=&quot;2026-01-01T00:00:00+00:00&quot; /&gt;
  &lt;meta property=&quot;article:modified_time&quot; content=&quot;2026-05-09T00:00:00+00:00&quot; /&gt;
  &lt;meta property=&quot;article:author&quot; content=&quot;Krishna App Worlds&quot; /&gt;
  &lt;meta property=&quot;article:section&quot; content=&quot;Android Development&quot; /&gt;
  &lt;meta property=&quot;article:tag&quot; content=&quot;Android, SQLite, Login, Register, CRUD, Java, SQLiteOpenHelper&quot; /&gt;

  &lt;!-- ═══════════════════════════════════════════════
       TWITTER CARD
  ═══════════════════════════════════════════════ --&gt;
  &lt;meta name=&quot;twitter:card&quot; content=&quot;summary_large_image&quot; /&gt;
  &lt;meta name=&quot;twitter:title&quot; content=&quot;Android SQLite Login &amp; Register App (2026) – Full Source Code&quot; /&gt;
  &lt;meta name=&quot;twitter:description&quot; content=&quot;Step-by-step Android SQLite CRUD tutorial with Login, Register, Update and Logout screens. All Java source code included.&quot; /&gt;
  &lt;meta name=&quot;twitter:image&quot; content=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhocDEiHNcYOwjdSjms6ZNuf9iJqnpyfyBe07h8fl66m1Mbx9gB8AVI2OkPefAPj8LQKPM2Mk2lxFoibr5NtgxUM09iovIMaK8fLqOc_IDl-oHA4VOtSaRxaf1spUAR3zV8oWfyNlGbwGs/s1600/a.png&quot; /&gt;
  &lt;meta name=&quot;twitter:site&quot; content=&quot;@KrishnaAppWorlds&quot; /&gt;

  &lt;!-- ═══════════════════════════════════════════════
       STRUCTURED DATA — Article (JSON-LD)
  ═══════════════════════════════════════════════ --&gt;
  &lt;script type=&quot;application/ld+json&quot;&gt;
  {
    &quot;@context&quot;: &quot;https://schema.org&quot;,
    &quot;@type&quot;: &quot;TechArticle&quot;,
    &quot;headline&quot;: &quot;Android SQLite Login &amp; Register App with CRUD Operations (2026)&quot;,
    &quot;description&quot;: &quot;Build a complete Android login and registration app using SQLite database. Full CRUD source code with SharedPreferences session management.&quot;,
    &quot;image&quot;: &quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhocDEiHNcYOwjdSjms6ZNuf9iJqnpyfyBe07h8fl66m1Mbx9gB8AVI2OkPefAPj8LQKPM2Mk2lxFoibr5NtgxUM09iovIMaK8fLqOc_IDl-oHA4VOtSaRxaf1spUAR3zV8oWfyNlGbwGs/s1600/a.png&quot;,
    &quot;author&quot;: {
      &quot;@type&quot;: &quot;Organization&quot;,
      &quot;name&quot;: &quot;Krishna App Worlds&quot;,
      &quot;url&quot;: &quot;https://play.google.com/store/apps/developer?id=Krishna+app+worlds&quot;
    },
    &quot;publisher&quot;: {
      &quot;@type&quot;: &quot;Organization&quot;,
      &quot;name&quot;: &quot;Krishna App Worlds&quot;,
      &quot;logo&quot;: {
        &quot;@type&quot;: &quot;ImageObject&quot;,
        &quot;url&quot;: &quot;https://krishnaappworlds.blogspot.com/favicon.ico&quot;
      }
    },
    &quot;datePublished&quot;: &quot;2026-01-01&quot;,
    &quot;dateModified&quot;: &quot;2026-05-09&quot;,
    &quot;mainEntityOfPage&quot;: {
      &quot;@type&quot;: &quot;WebPage&quot;,
      &quot;@id&quot;: &quot;https://krishnaappworlds.blogspot.com/android-sqlite-login-register-2026&quot;
    },
    &quot;programmingLanguage&quot;: &quot;Java&quot;,
    &quot;keywords&quot;: [&quot;Android&quot;, &quot;SQLite&quot;, &quot;Login&quot;, &quot;Register&quot;, &quot;CRUD&quot;, &quot;SQLiteOpenHelper&quot;, &quot;DatabaseHandler&quot;],
    &quot;proficiencyLevel&quot;: &quot;Beginner to Intermediate&quot;
  }
  &lt;/script&gt;

  &lt;!-- ═══════════════════════════════════════════════
       STRUCTURED DATA — HowTo (JSON-LD)
  ═══════════════════════════════════════════════ --&gt;
  &lt;script type=&quot;application/ld+json&quot;&gt;
  {
    &quot;@context&quot;: &quot;https://schema.org&quot;,
    &quot;@type&quot;: &quot;HowTo&quot;,
    &quot;name&quot;: &quot;How to Build an Android SQLite Login &amp; Register App&quot;,
    &quot;description&quot;: &quot;Step-by-step guide to build a complete Android app with SQLite login, registration, profile update, and session management.&quot;,
    &quot;step&quot;: [
      { &quot;@type&quot;: &quot;HowToStep&quot;, &quot;name&quot;: &quot;Set up resource files&quot;, &quot;text&quot;: &quot;Create color.xml, strings.xml, and styles.xml in your res/values directory.&quot; },
      { &quot;@type&quot;: &quot;HowToStep&quot;, &quot;name&quot;: &quot;Create drawable backgrounds&quot;, &quot;text&quot;: &quot;Add edittext_bg.xml and login_button_bg.xml for styled input fields and buttons.&quot; },
      { &quot;@type&quot;: &quot;HowToStep&quot;, &quot;name&quot;: &quot;Design XML layouts&quot;, &quot;text&quot;: &quot;Build activity_login.xml, activity_register.xml, activity_main.xml, and activity_update_user.xml.&quot; },
      { &quot;@type&quot;: &quot;HowToStep&quot;, &quot;name&quot;: &quot;Create DatabaseHandler&quot;, &quot;text&quot;: &quot;Extend SQLiteOpenHelper and implement addUser, getUser, updateUser, checkEmail, getUserId methods.&quot; },
      { &quot;@type&quot;: &quot;HowToStep&quot;, &quot;name&quot;: &quot;Implement Activities&quot;, &quot;text&quot;: &quot;Code Login.java, Register.java, MainActivity.java, and UpdateUser.java with full validation.&quot; },
      { &quot;@type&quot;: &quot;HowToStep&quot;, &quot;name&quot;: &quot;Register in AndroidManifest&quot;, &quot;text&quot;: &quot;Declare all four activities in AndroidManifest.xml with Login as the launcher activity.&quot; }
    ]
  }
  &lt;/script&gt;

  &lt;!-- External Libraries --&gt;
  &lt;link href=&quot;https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&amp;family=Sora:wght@400;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot; /&gt;

  &lt;style&gt;
    /* ── Design tokens ── */
    :root {
      --primary:   #1e40af;
      --accent:    #D81B60;
      --accent2:   #3b5998;
      --bg:        #f8fafc;
      --surface:   #ffffff;
      --surface2:  #f1f5f9;
      --border:    #e2e8f0;
      --text:      #1e293b;
      --muted:     #64748b;
      --code-bg:   #0f172a;
      --code-text: #e2e8f0;
      --badge-new: #dcfce7;
      --badge-new-text: #166534;
      --radius:    8px;
    }

    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    body {
      font-family: &#39;Sora&#39;, sans-serif;
      background: var(--bg);
      color: var(--text);
      line-height: 1.75;
      font-size: 16px;
    }

    /* ── Top bar ── */
    .topbar{
      background:#111827;
      color:#ffffff;
      padding:14px 18px;
      border-radius:12px;
      font-size:14px;
      text-align:center;
      margin-bottom:20px;
      line-height:1.7;
    }

    .topbar a{
      color:#60a5fa !important;
      text-decoration:none;
      font-weight:600;
      margin-left:6px;
    }

    .topbar a:hover{
      text-decoration:underline;
    }

    /* ── Hero ── */
    .hero {
      background: linear-gradient(135deg, var(--accent2) 0%, #1e3a8a 60%, #0f172a 100%);
      color: #fff;
      padding: 56px 24px 48px;
      text-align: center;
    }
    .badge {
      display: inline-block;
      background: var(--badge-new);
      color: var(--badge-new-text);
      font-size: 12px;
      font-weight: 700;
      padding: 3px 10px;
      border-radius: 99px;
      margin-bottom: 16px;
      letter-spacing: .5px;
      text-transform: uppercase;
    }
    .hero h1 {
      font-size: clamp(22px, 4vw, 38px);
      font-weight: 700;
      line-height: 1.25;
      max-width: 720px;
      margin: 0 auto 16px;
    }
    .hero p {
      font-size: 16px;
      color: #cbd5e1;
      max-width: 600px;
      margin: 0 auto 28px;
    }
    .hero-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 16px;
      justify-content: center;
      font-size: 13px;
      color: #94a3b8;
    }
    .hero-meta span {
      background: #f1f3f4;
      padding: 8px 14px;
      border-radius: 30px;
      font-size: 14px;
      color: #333333;
      border: 1px solid #e0e0e0;
      display: inline-block;
    }

    /* ── Main layout ── */
    .container {
      max-width: 900px;
      margin: 0 auto;
      padding: 40px 20px 80px;
    }

    /* ── Section headings ── */
    .section-title {
      font-size: 22px;
      font-weight: 700;
      color: var(--accent);
      margin: 40px 0 16px;
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .section-title::after {
      content: &#39;&#39;;
      flex: 1;
      height: 2px;
      background: linear-gradient(90deg, var(--accent) 0%, transparent 100%);
      border-radius: 2px;
    }
    .sub-title {
      font-size: 17px;
      font-weight: 600;
      color: var(--accent2);
      margin: 28px 0 12px;
      border-left: 4px solid var(--accent2);
      padding-left: 12px;
    }

    /* ── Intro text ── */
    .intro-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 20px 24px;
      margin-bottom: 28px;
      font-size: 15px;
      color: var(--muted);
      line-height: 1.8;
    }

    /* ── Feature grid ── */
    .feature-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
      gap: 14px;
      margin: 20px 0 32px;
    }
    .feature-card {
      background: var(--surface);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      padding: 16px;
      font-size: 14px;
      font-weight: 600;
      color: var(--text);
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .feature-card .icon {
      font-size: 20px;
      flex-shrink: 0;
    }

    /* ── Screenshots ── */
    .screenshot-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
      gap: 16px;
      margin: 20px 0 32px;
    }
    .screenshot-grid img {
      width: 100%;
      border-radius: var(--radius);
      border: 1px solid var(--border);
      box-shadow: 0 4px 12px rgba(0,0,0,.08);
    }

    /* ── Code blocks ── */
    .code-block {
      background: var(--code-bg);
      border-radius: var(--radius);
      margin: 16px 0 28px;
      overflow: hidden;
      border: 1px solid #1e293b;
    }
    .code-header {
      background: #1e293b;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 10px 16px;
      font-size: 13px;
    }
    .code-filename {
      color: var(--accent);
      font-family: &#39;JetBrains Mono&#39;, monospace;
      font-weight: 600;
    }
    .code-lang-tag {
      background: #334155;
      color: #94a3b8;
      font-size: 11px;
      padding: 2px 8px;
      border-radius: 4px;
      font-family: &#39;JetBrains Mono&#39;, monospace;
    }
    .code-block pre {
      padding: 20px;
      overflow-x: auto;
      font-family: &#39;JetBrains Mono&#39;, monospace;
      font-size: 13px;
      line-height: 1.7;
      color: var(--code-text);
      white-space: pre;
      tab-size: 4;
    }

    /* ── Method table ── */
    .method-table {
      width: 100%;
      border-collapse: collapse;
      margin: 16px 0 28px;
      font-size: 14px;
    }
    .method-table th {
      background: var(--accent2);
      color: #fff;
      padding: 10px 14px;
      text-align: left;
      font-weight: 600;
    }
    .method-table td {
      padding: 10px 14px;
      border-bottom: 1px solid var(--border);
      vertical-align: top;
    }
    .method-table tr:nth-child(even) td { background: var(--surface2); }
    .method-table code {
      font-family: &#39;JetBrains Mono&#39;, monospace;
      color: var(--accent);
      font-size: 13px;
    }

    /* ── CTA button ── */
      .cta-btn{
      display:inline-block;
      padding:14px 24px;
      border-radius:12px;
      text-decoration:none;
      font-weight:600;
      font-size:15px;
      transition:0.3s ease;
    }

    .cta-btn.accent{
      background:#3b82f6;
      color:#ffffff !important;
      border:1px solid #3b82f6;
    }

    .cta-btn.accent:hover{
      background:#2563eb;
      color:#ffffff !important;
    }

    /* ── Updated banner ── */
    .updated-banner {
      background: #eff6ff;
      border: 1px solid #bfdbfe;
      border-left: 4px solid var(--primary);
      border-radius: var(--radius);
      padding: 14px 18px;
      margin: 28px 0;
      font-size: 14px;
      color: #1e40af;
    }

    /* ── Footer ── */
    footer {
      background: var(--code-bg);
      color: #94a3b8;
      text-align: center;
      padding: 28px 20px;
      font-size: 13px;
    }
    footer a { color: #60a5fa; text-decoration: none; }

    @media (max-width: 600px) {
      .hero { padding: 40px 16px 32px; }
      .container { padding: 24px 16px 60px; }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;!-- Top announcement bar --&gt;
&lt;div class=&quot;topbar&quot;&gt;

  🚀 More Android &amp; Flutter updates, source code, UI designs, and development tutorials →

  &lt;a href=&quot;https://www.instagram.com/krishna.app.worlds/&quot;
     target=&quot;_blank&quot;
     rel=&quot;noopener&quot;&gt;

     Follow @krishna.app.worlds on Instagram

  &lt;/a&gt;

&lt;/div&gt;

&lt;!-- ══════════════ HERO ══════════════ --&gt;
&lt;header class=&quot;hero&quot;&gt;
  &lt;div class=&quot;badge&quot;&gt;Updated 2026&lt;/div&gt;
  &lt;h1&gt;Android SQLite Login &amp; Register App with Full CRUD Operations&lt;/h1&gt;
  &lt;p&gt;A complete, production-ready Android project using SQLite database, SharedPreferences session management, and input validation — with full Java source code and XML layouts.&lt;/p&gt;
  &lt;div class=&quot;hero-meta&quot;&gt;
    &lt;span&gt;Java and Android Studio&lt;/span&gt;
    &lt;span&gt;SQLite / SQLiteOpenHelper&lt;/span&gt;
    &lt;span&gt;CRUD Operations&lt;/span&gt;
    &lt;span&gt;Updated May 2026&lt;/span&gt;
    &lt;span&gt;Beginner-friendly&lt;/span&gt;
  &lt;/div&gt;
&lt;/header&gt;

&lt;!-- ══════════════ MAIN CONTENT ══════════════ --&gt;
&lt;main class=&quot;container&quot;&gt;

  &lt;!-- Updated notice --&gt;
  &lt;div class=&quot;updated-banner&quot;&gt;
    🔄 &lt;strong&gt;2026 Update:&lt;/strong&gt; This tutorial has been reviewed and updated for compatibility with modern Android Studio. All code follows current Android development conventions. The SQLite approach remains fully valid for lightweight, offline-first apps and does not require a network connection.
  &lt;/div&gt;

  &lt;!-- Intro --&gt;
  &lt;div class=&quot;intro-card&quot;&gt;
    SQLite is a lightweight, serverless relational database built directly into Android. It is the ideal choice for storing structured user data locally — without requiring an internet connection. This tutorial walks you through a complete &lt;strong&gt;Login &amp;amp; Register&lt;/strong&gt; Android application backed by SQLite, covering all four CRUD operations: &lt;strong&gt;Create&lt;/strong&gt; (register), &lt;strong&gt;Read&lt;/strong&gt; (login / profile), &lt;strong&gt;Update&lt;/strong&gt; (edit profile), and &lt;strong&gt;Delete&lt;/strong&gt; (implicit via session logout).
  &lt;/div&gt;

  &lt;!-- What you will build --&gt;
  &lt;h2 class=&quot;section-title&quot;&gt;What You Will Build&lt;/h2&gt;
  &lt;div class=&quot;feature-grid&quot;&gt;
    &lt;div class=&quot;feature-card&quot;&gt;&lt;span class=&quot;icon&quot;&gt;🔐&lt;/span&gt;Login Screen&lt;/div&gt;
    &lt;div class=&quot;feature-card&quot;&gt;&lt;span class=&quot;icon&quot;&gt;📝&lt;/span&gt;Register Screen&lt;/div&gt;
    &lt;div class=&quot;feature-card&quot;&gt;&lt;span class=&quot;icon&quot;&gt;👤&lt;/span&gt;User Profile Screen&lt;/div&gt;
    &lt;div class=&quot;feature-card&quot;&gt;&lt;span class=&quot;icon&quot;&gt;✏️&lt;/span&gt;Update User Screen&lt;/div&gt;
    &lt;div class=&quot;feature-card&quot;&gt;&lt;span class=&quot;icon&quot;&gt;🗄️&lt;/span&gt;SQLite Database&lt;/div&gt;
    &lt;div class=&quot;feature-card&quot;&gt;&lt;span class=&quot;icon&quot;&gt;💾&lt;/span&gt;Session with SharedPrefs&lt;/div&gt;
    &lt;div class=&quot;feature-card&quot;&gt;&lt;span class=&quot;icon&quot;&gt;✅&lt;/span&gt;Email Validation&lt;/div&gt;
    &lt;div class=&quot;feature-card&quot;&gt;&lt;span class=&quot;icon&quot;&gt;🔄&lt;/span&gt;Auto-login on relaunch&lt;/div&gt;
  &lt;/div&gt;

  &lt;!-- Screenshots --&gt;
  &lt;h2 class=&quot;section-title&quot;&gt;App Screenshots&lt;/h2&gt;
  &lt;div class=&quot;screenshot-grid&quot;&gt;
    &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhocDEiHNcYOwjdSjms6ZNuf9iJqnpyfyBe07h8fl66m1Mbx9gB8AVI2OkPefAPj8LQKPM2Mk2lxFoibr5NtgxUM09iovIMaK8fLqOc_IDl-oHA4VOtSaRxaf1spUAR3zV8oWfyNlGbwGs/s1600/a.png&quot; alt=&quot;Android SQLite Login Screen&quot; loading=&quot;lazy&quot; /&gt;
    &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiUvLdbIu-NoLIh5nWuf32bPE8cNvwJdf1pMjLYmPP6q3p8vpi3q0yplMYxuV596T0JVrwtqH06FivLg3Z4r_4nR4lkJwXQzI7wMRJEfxVhtUeyjpKJmsB3wJoXrSXz-A2cKXzcEsfA3g/s1600/b.png&quot; alt=&quot;Android SQLite Register Screen&quot; loading=&quot;lazy&quot; /&gt;
    &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO-J9GGpMpjV6FFWWw97hBX95DXSOY9B74HtedOmgR_j6msX4o5l9pHveqlrKTe_-gzyxxshPx2B02nln0GfHIG9isqT_fcdQmQDFDSvIG8cTlpQcKDH6Mrgsr6_7F0dOXNsFvuy6U4Vw/s1600/c.png&quot; alt=&quot;Android SQLite Profile Screen&quot; loading=&quot;lazy&quot; /&gt;
  &lt;/div&gt;

  &lt;div style=&quot;margin-bottom:28px;&quot;&gt;
    &lt;a class=&quot;cta-btn&quot; href=&quot;https://play.google.com/store/apps/developer?id=Krishna+app+worlds&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;▶ View on Play Store&lt;/a&gt;
  &lt;/div&gt;

  &lt;!-- ══════ RESOURCE FILES ══════ --&gt;
  &lt;h2 class=&quot;section-title&quot;&gt;Resource Files&lt;/h2&gt;

  &lt;h3 class=&quot;sub-title&quot;&gt;values/&lt;/h3&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;color.xml&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;XML&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;resources&amp;gt;
    &amp;lt;color name=&quot;colorPrimary&quot;&amp;gt;#3b5998&amp;lt;/color&amp;gt;
    &amp;lt;color name=&quot;colorPrimaryDark&quot;&amp;gt;#3b5998&amp;lt;/color&amp;gt;
    &amp;lt;color name=&quot;colorAccent&quot;&amp;gt;#3b5998&amp;lt;/color&amp;gt;
    &amp;lt;color name=&quot;lavender&quot;&amp;gt;#3b5998&amp;lt;/color&amp;gt;
    &amp;lt;color name=&quot;white&quot;&amp;gt;#FFFFFF&amp;lt;/color&amp;gt;
    &amp;lt;color name=&quot;login_button&quot;&amp;gt;#D81B60&amp;lt;/color&amp;gt;
&amp;lt;/resources&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;strings.xml&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;XML&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;resources&amp;gt;
    &amp;lt;string name=&quot;app_name&quot;&amp;gt;Login&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;email&quot;&amp;gt;Email&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;login&quot;&amp;gt;Login&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;name&quot;&amp;gt;Name&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;password&quot;&amp;gt;Password&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;phone&quot;&amp;gt;Phone number&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;register&quot;&amp;gt;Register&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;user_login&quot;&amp;gt;User Login&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;please_enter_name&quot;&amp;gt;Please enter name&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;please_enter_email&quot;&amp;gt;Please enter email&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;please_enter_password&quot;&amp;gt;Please enter password&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;please_enter_phone&quot;&amp;gt;Please enter phone number&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;loading&quot;&amp;gt;Loading...&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;ok&quot;&amp;gt;OK&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;register_success&quot;&amp;gt;Registration successful&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;email_id_use&quot;&amp;gt;Email address already in use&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;fail&quot;&amp;gt;Login Failed&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;update&quot;&amp;gt;Update&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;logout&quot;&amp;gt;Logout&amp;lt;/string&amp;gt;
    &amp;lt;string name=&quot;update_user&quot;&amp;gt;Update User&amp;lt;/string&amp;gt;
&amp;lt;/resources&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;styles.xml&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;XML&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;&amp;lt;resources&amp;gt;
    &amp;lt;style name=&quot;AppTheme&quot; parent=&quot;Theme.AppCompat.Light.NoActionBar&quot;&amp;gt;
        &amp;lt;item name=&quot;colorPrimary&quot;&amp;gt;@color/colorPrimary&amp;lt;/item&amp;gt;
        &amp;lt;item name=&quot;colorPrimaryDark&quot;&amp;gt;@color/colorPrimaryDark&amp;lt;/item&amp;gt;
        &amp;lt;item name=&quot;colorAccent&quot;&amp;gt;@color/colorAccent&amp;lt;/item&amp;gt;
    &amp;lt;/style&amp;gt;
&amp;lt;/resources&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  &lt;h3 class=&quot;sub-title&quot;&gt;drawable/&lt;/h3&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;edittext_bg.xml&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;XML&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;item&amp;gt;
        &amp;lt;shape android:shape=&quot;rectangle&quot;&amp;gt;
            &amp;lt;stroke android:width=&quot;1dp&quot; android:color=&quot;@color/white&quot; /&amp;gt;
            &amp;lt;corners android:radius=&quot;20dp&quot; /&amp;gt;
        &amp;lt;/shape&amp;gt;
    &amp;lt;/item&amp;gt;
&amp;lt;/selector&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;login_button_bg.xml&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;XML&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;item&amp;gt;
        &amp;lt;shape android:shape=&quot;rectangle&quot;&amp;gt;
            &amp;lt;solid android:color=&quot;@color/white&quot; /&amp;gt;
            &amp;lt;corners android:radius=&quot;40dp&quot; /&amp;gt;
        &amp;lt;/shape&amp;gt;
    &amp;lt;/item&amp;gt;
&amp;lt;/selector&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  &lt;!-- ══════ LAYOUTS ══════ --&gt;
  &lt;h2 class=&quot;section-title&quot;&gt;XML Layout Files&lt;/h2&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;activity_login.xml&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;XML&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;ScrollView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:background=&quot;@color/lavender&quot;
    android:fillViewport=&quot;true&quot;&amp;gt;

    &amp;lt;LinearLayout
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:background=&quot;@color/lavender&quot;
        android:gravity=&quot;center&quot;
        android:orientation=&quot;vertical&quot;
        tools:context=&quot;.Activity.Login&quot;&amp;gt;

        &amp;lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_gravity=&quot;center&quot;
            android:text=&quot;@string/login&quot;
            android:textColor=&quot;@color/white&quot;
            android:textSize=&quot;32sp&quot;
            android:textStyle=&quot;bold&quot; /&amp;gt;

        &amp;lt;EditText
            android:id=&quot;@+id/editText_email_login&quot;
            android:layout_width=&quot;match_parent&quot;
            android:layout_height=&quot;50dp&quot;
            android:layout_marginStart=&quot;20dp&quot;
            android:layout_marginTop=&quot;40dp&quot;
            android:layout_marginEnd=&quot;20dp&quot;
            android:background=&quot;@drawable/edittext_bg&quot;
            android:hint=&quot;@string/email&quot;
            android:inputType=&quot;textEmailAddress&quot;
            android:paddingStart=&quot;10dp&quot;
            android:paddingEnd=&quot;10dp&quot;
            android:singleLine=&quot;true&quot;
            android:textColor=&quot;@color/white&quot;
            android:textColorHint=&quot;@color/white&quot;
            android:textCursorDrawable=&quot;@null&quot; /&amp;gt;

        &amp;lt;EditText
            android:id=&quot;@+id/editText_password_login&quot;
            android:layout_width=&quot;match_parent&quot;
            android:layout_height=&quot;50dp&quot;
            android:layout_marginStart=&quot;20dp&quot;
            android:layout_marginTop=&quot;20dp&quot;
            android:layout_marginEnd=&quot;20dp&quot;
            android:background=&quot;@drawable/edittext_bg&quot;
            android:hint=&quot;@string/password&quot;
            android:inputType=&quot;textPassword&quot;
            android:paddingStart=&quot;10dp&quot;
            android:paddingEnd=&quot;10dp&quot;
            android:singleLine=&quot;true&quot;
            android:textColor=&quot;@color/white&quot;
            android:textColorHint=&quot;@color/white&quot;
            android:textCursorDrawable=&quot;@null&quot; /&amp;gt;

        &amp;lt;LinearLayout
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_gravity=&quot;center&quot;
            android:orientation=&quot;horizontal&quot;&amp;gt;

            &amp;lt;Button
                android:id=&quot;@+id/button_login&quot;
                android:layout_width=&quot;120dp&quot;
                android:layout_height=&quot;40dp&quot;
                android:layout_marginTop=&quot;20dp&quot;
                android:background=&quot;@drawable/login_button_bg&quot;
                android:text=&quot;@string/login&quot;
                android:textColor=&quot;@color/login_button&quot;
                android:textStyle=&quot;bold&quot; /&amp;gt;

            &amp;lt;Button
                android:id=&quot;@+id/button_reg_login&quot;
                android:layout_width=&quot;120dp&quot;
                android:layout_height=&quot;40dp&quot;
                android:layout_marginStart=&quot;20dp&quot;
                android:layout_marginTop=&quot;20dp&quot;
                android:background=&quot;@drawable/login_button_bg&quot;
                android:text=&quot;@string/register&quot;
                android:textColor=&quot;@color/login_button&quot;
                android:textStyle=&quot;bold&quot; /&amp;gt;

        &amp;lt;/LinearLayout&amp;gt;

    &amp;lt;/LinearLayout&amp;gt;

&amp;lt;/ScrollView&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;activity_register.xml&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;XML&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;ScrollView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:background=&quot;@color/lavender&quot;
    android:fillViewport=&quot;true&quot;&amp;gt;

    &amp;lt;LinearLayout
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:gravity=&quot;center&quot;
        android:orientation=&quot;vertical&quot;
        tools:context=&quot;.Activity.Register&quot;&amp;gt;

        &amp;lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_gravity=&quot;center&quot;
            android:text=&quot;@string/register&quot;
            android:textColor=&quot;@color/white&quot;
            android:textSize=&quot;32sp&quot;
            android:textStyle=&quot;bold&quot; /&amp;gt;

        &amp;lt;EditText
            android:id=&quot;@+id/editText_name_reg&quot;
            android:layout_width=&quot;match_parent&quot;
            android:layout_height=&quot;50dp&quot;
            android:layout_marginStart=&quot;20dp&quot;
            android:layout_marginTop=&quot;50dp&quot;
            android:layout_marginEnd=&quot;20dp&quot;
            android:background=&quot;@drawable/edittext_bg&quot;
            android:hint=&quot;@string/name&quot;
            android:inputType=&quot;text&quot;
            android:paddingStart=&quot;10dp&quot;
            android:paddingEnd=&quot;10dp&quot;
            android:singleLine=&quot;true&quot;
            android:textColor=&quot;@color/white&quot;
            android:textColorHint=&quot;@color/white&quot;
            android:textCursorDrawable=&quot;@null&quot; /&amp;gt;

        &amp;lt;EditText
            android:id=&quot;@+id/editText_email_reg&quot;
            android:layout_width=&quot;match_parent&quot;
            android:layout_height=&quot;50dp&quot;
            android:layout_marginStart=&quot;20dp&quot;
            android:layout_marginTop=&quot;20dp&quot;
            android:layout_marginEnd=&quot;20dp&quot;
            android:background=&quot;@drawable/edittext_bg&quot;
            android:hint=&quot;@string/email&quot;
            android:inputType=&quot;textEmailAddress&quot;
            android:paddingStart=&quot;10dp&quot;
            android:paddingEnd=&quot;10dp&quot;
            android:singleLine=&quot;true&quot;
            android:textColor=&quot;@color/white&quot;
            android:textColorHint=&quot;@color/white&quot;
            android:textCursorDrawable=&quot;@null&quot; /&amp;gt;

        &amp;lt;EditText
            android:id=&quot;@+id/editText_password_reg&quot;
            android:layout_width=&quot;match_parent&quot;
            android:layout_height=&quot;50dp&quot;
            android:layout_marginStart=&quot;20dp&quot;
            android:layout_marginTop=&quot;20dp&quot;
            android:layout_marginEnd=&quot;20dp&quot;
            android:background=&quot;@drawable/edittext_bg&quot;
            android:hint=&quot;@string/password&quot;
            android:inputType=&quot;textPassword&quot;
            android:paddingStart=&quot;10dp&quot;
            android:paddingEnd=&quot;10dp&quot;
            android:singleLine=&quot;true&quot;
            android:textColor=&quot;@color/white&quot;
            android:textColorHint=&quot;@color/white&quot;
            android:textCursorDrawable=&quot;@null&quot; /&amp;gt;

        &amp;lt;EditText
            android:id=&quot;@+id/editText_phone_reg&quot;
            android:layout_width=&quot;match_parent&quot;
            android:layout_height=&quot;50dp&quot;
            android:layout_marginStart=&quot;20dp&quot;
            android:layout_marginTop=&quot;20dp&quot;
            android:layout_marginEnd=&quot;20dp&quot;
            android:background=&quot;@drawable/edittext_bg&quot;
            android:hint=&quot;@string/phone&quot;
            android:inputType=&quot;phone&quot;
            android:paddingStart=&quot;10dp&quot;
            android:paddingEnd=&quot;10dp&quot;
            android:singleLine=&quot;true&quot;
            android:textColor=&quot;@color/white&quot;
            android:textColorHint=&quot;@color/white&quot;
            android:textCursorDrawable=&quot;@null&quot; /&amp;gt;

        &amp;lt;Button
            android:id=&quot;@+id/button_reg&quot;
            android:layout_width=&quot;120dp&quot;
            android:layout_height=&quot;40dp&quot;
            android:layout_gravity=&quot;center&quot;
            android:layout_marginTop=&quot;40dp&quot;
            android:layout_marginBottom=&quot;40dp&quot;
            android:background=&quot;@drawable/login_button_bg&quot;
            android:text=&quot;@string/register&quot;
            android:textColor=&quot;@color/login_button&quot;
            android:textStyle=&quot;bold&quot; /&amp;gt;

    &amp;lt;/LinearLayout&amp;gt;

&amp;lt;/ScrollView&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;activity_main.xml&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;XML&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:layout_gravity=&quot;center_vertical&quot;
    tools:context=&quot;.Activity.MainActivity&quot;&amp;gt;

    &amp;lt;LinearLayout
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_marginStart=&quot;10dp&quot;
        android:layout_marginTop=&quot;40dp&quot;
        android:layout_marginEnd=&quot;10dp&quot;
        android:orientation=&quot;vertical&quot;&amp;gt;

        &amp;lt;LinearLayout android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot;&amp;gt;
            &amp;lt;TextView android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:text=&quot;@string/name&quot; android:textSize=&quot;18sp&quot; /&amp;gt;
            &amp;lt;TextView android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:layout_marginStart=&quot;10dp&quot; android:layout_marginEnd=&quot;10dp&quot; android:text=&quot;:-&quot; android:textSize=&quot;18sp&quot; /&amp;gt;
            &amp;lt;TextView android:id=&quot;@+id/textView_name_main&quot; android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:textSize=&quot;18sp&quot; /&amp;gt;
        &amp;lt;/LinearLayout&amp;gt;

        &amp;lt;LinearLayout android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:layout_marginTop=&quot;10dp&quot;&amp;gt;
            &amp;lt;TextView android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:text=&quot;@string/email&quot; android:textSize=&quot;18sp&quot; /&amp;gt;
            &amp;lt;TextView android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:layout_marginStart=&quot;10dp&quot; android:layout_marginEnd=&quot;10dp&quot; android:text=&quot;:-&quot; android:textSize=&quot;18sp&quot; /&amp;gt;
            &amp;lt;TextView android:id=&quot;@+id/textView_email_main&quot; android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:textSize=&quot;18sp&quot; /&amp;gt;
        &amp;lt;/LinearLayout&amp;gt;

        &amp;lt;LinearLayout android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:layout_marginTop=&quot;10dp&quot;&amp;gt;
            &amp;lt;TextView android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:text=&quot;@string/phone&quot; android:textSize=&quot;18sp&quot; /&amp;gt;
            &amp;lt;TextView android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:layout_marginStart=&quot;10dp&quot; android:layout_marginEnd=&quot;10dp&quot; android:text=&quot;:-&quot; android:textSize=&quot;18sp&quot; /&amp;gt;
            &amp;lt;TextView android:id=&quot;@+id/textView_phone_main&quot; android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:textSize=&quot;18sp&quot; /&amp;gt;
        &amp;lt;/LinearLayout&amp;gt;

        &amp;lt;LinearLayout android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:layout_gravity=&quot;center&quot; android:layout_marginTop=&quot;20dp&quot; android:orientation=&quot;horizontal&quot;&amp;gt;
            &amp;lt;Button android:id=&quot;@+id/button_update_main&quot; android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:text=&quot;@string/update&quot; /&amp;gt;
            &amp;lt;Button android:id=&quot;@+id/button_logout_main&quot; android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:layout_marginStart=&quot;5dp&quot; android:text=&quot;@string/logout&quot; /&amp;gt;
        &amp;lt;/LinearLayout&amp;gt;

    &amp;lt;/LinearLayout&amp;gt;

&amp;lt;/RelativeLayout&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;activity_update_user.xml&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;XML&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;ScrollView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:background=&quot;@color/lavender&quot;
    android:fillViewport=&quot;true&quot;&amp;gt;

    &amp;lt;LinearLayout
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:gravity=&quot;center&quot;
        android:orientation=&quot;vertical&quot;
        tools:context=&quot;.Activity.UpdateUser&quot;&amp;gt;

        &amp;lt;TextView
            android:layout_width=&quot;wrap_content&quot;
            android:layout_height=&quot;wrap_content&quot;
            android:layout_gravity=&quot;center&quot;
            android:text=&quot;@string/update_user&quot;
            android:textColor=&quot;@color/white&quot;
            android:textSize=&quot;32sp&quot;
            android:textStyle=&quot;bold&quot; /&amp;gt;

        &amp;lt;EditText android:id=&quot;@+id/editText_name_update&quot; android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;50dp&quot; android:layout_marginStart=&quot;20dp&quot; android:layout_marginTop=&quot;50dp&quot; android:layout_marginEnd=&quot;20dp&quot; android:background=&quot;@drawable/edittext_bg&quot; android:hint=&quot;@string/name&quot; android:inputType=&quot;text&quot; android:paddingStart=&quot;10dp&quot; android:paddingEnd=&quot;10dp&quot; android:singleLine=&quot;true&quot; android:textColor=&quot;@color/white&quot; android:textColorHint=&quot;@color/white&quot; android:textCursorDrawable=&quot;@null&quot; /&amp;gt;
        &amp;lt;EditText android:id=&quot;@+id/editText_email_update&quot; android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;50dp&quot; android:layout_marginStart=&quot;20dp&quot; android:layout_marginTop=&quot;20dp&quot; android:layout_marginEnd=&quot;20dp&quot; android:background=&quot;@drawable/edittext_bg&quot; android:hint=&quot;@string/email&quot; android:inputType=&quot;textEmailAddress&quot; android:paddingStart=&quot;10dp&quot; android:paddingEnd=&quot;10dp&quot; android:singleLine=&quot;true&quot; android:textColor=&quot;@color/white&quot; android:textColorHint=&quot;@color/white&quot; android:textCursorDrawable=&quot;@null&quot; /&amp;gt;
        &amp;lt;EditText android:id=&quot;@+id/editText_password_update&quot; android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;50dp&quot; android:layout_marginStart=&quot;20dp&quot; android:layout_marginTop=&quot;20dp&quot; android:layout_marginEnd=&quot;20dp&quot; android:background=&quot;@drawable/edittext_bg&quot; android:hint=&quot;@string/password&quot; android:inputType=&quot;textPassword&quot; android:paddingStart=&quot;10dp&quot; android:paddingEnd=&quot;10dp&quot; android:singleLine=&quot;true&quot; android:textColor=&quot;@color/white&quot; android:textColorHint=&quot;@color/white&quot; android:textCursorDrawable=&quot;@null&quot; /&amp;gt;
        &amp;lt;EditText android:id=&quot;@+id/editText_phone_update&quot; android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;50dp&quot; android:layout_marginStart=&quot;20dp&quot; android:layout_marginTop=&quot;20dp&quot; android:layout_marginEnd=&quot;20dp&quot; android:background=&quot;@drawable/edittext_bg&quot; android:hint=&quot;@string/phone&quot; android:inputType=&quot;phone&quot; android:paddingStart=&quot;10dp&quot; android:paddingEnd=&quot;10dp&quot; android:singleLine=&quot;true&quot; android:textColor=&quot;@color/white&quot; android:textColorHint=&quot;@color/white&quot; android:textCursorDrawable=&quot;@null&quot; /&amp;gt;

        &amp;lt;Button
            android:id=&quot;@+id/button_update&quot;
            android:layout_width=&quot;120dp&quot;
            android:layout_height=&quot;40dp&quot;
            android:layout_gravity=&quot;center&quot;
            android:layout_marginTop=&quot;40dp&quot;
            android:layout_marginBottom=&quot;40dp&quot;
            android:background=&quot;@drawable/login_button_bg&quot;
            android:text=&quot;@string/update&quot;
            android:textColor=&quot;@color/login_button&quot;
            android:textStyle=&quot;bold&quot; /&amp;gt;

    &amp;lt;/LinearLayout&amp;gt;

&amp;lt;/ScrollView&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  &lt;!-- ══════ MANIFEST ══════ --&gt;
  &lt;h2 class=&quot;section-title&quot;&gt;AndroidManifest.xml&lt;/h2&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;AndroidManifest.xml&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;XML&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    package=&quot;com.app.databaseloginregister&quot;&amp;gt;

    &amp;lt;application
        android:allowBackup=&quot;true&quot;
        android:icon=&quot;@mipmap/ic_launcher&quot;
        android:label=&quot;@string/app_name&quot;
        android:roundIcon=&quot;@mipmap/ic_launcher_round&quot;
        android:supportsRtl=&quot;true&quot;
        android:theme=&quot;@style/AppTheme&quot;&amp;gt;

        &amp;lt;activity android:name=&quot;.Activity.Login&quot;&amp;gt;
            &amp;lt;intent-filter&amp;gt;
                &amp;lt;action android:name=&quot;android.intent.action.MAIN&quot; /&amp;gt;
                &amp;lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&amp;gt;
            &amp;lt;/intent-filter&amp;gt;
        &amp;lt;/activity&amp;gt;
        &amp;lt;activity android:name=&quot;.Activity.Register&quot; /&amp;gt;
        &amp;lt;activity android:name=&quot;.Activity.UpdateUser&quot; /&amp;gt;
        &amp;lt;activity android:name=&quot;.Activity.MainActivity&quot; /&amp;gt;

    &amp;lt;/application&amp;gt;

&amp;lt;/manifest&amp;gt;&lt;/pre&gt;
  &lt;/div&gt;

  &lt;!-- ══════ JAVA CODE ══════ --&gt;
  &lt;h2 class=&quot;section-title&quot;&gt;Java Source Code&lt;/h2&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;Login.java&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;Java&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;package com.app.databaseloginregister.Activity;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;

import com.app.databaseloginregister.DataBase.DatabaseHandler;
import com.app.databaseloginregister.R;
import com.app.databaseloginregister.Util.Method;

public class Login extends AppCompatActivity {

    private Method method;
    private DatabaseHandler db;
    private String email, password;
    private EditText editText_email, editText_password;
    private Button button_reg, button_login;
    private InputMethodManager imm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        method = new Method(Login.this);
        db = new DatabaseHandler(Login.this);

        imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

        // Auto-login if session exists
        if (method.pref.getBoolean(method.pref_login, false)) {
            String id = method.pref.getString(method.profileId, null);
            startActivity(new Intent(Login.this, MainActivity.class).putExtra(&quot;id&quot;, id));
            finishAffinity();
        }

        editText_email    = findViewById(R.id.editText_email_login);
        editText_password = findViewById(R.id.editText_password_login);
        button_login      = findViewById(R.id.button_login);
        button_reg        = findViewById(R.id.button_reg_login);

        button_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                email    = editText_email.getText().toString().trim();
                password = editText_password.getText().toString();
                editText_email.clearFocus();
                editText_password.clearFocus();
                imm.hideSoftInputFromWindow(editText_email.getWindowToken(), 0);
                imm.hideSoftInputFromWindow(editText_password.getWindowToken(), 0);
                login();
            }
        });

        button_reg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(Login.this, Register.class));
            }
        });
    }

    private void login() {
        editText_email.setError(null);
        editText_password.setError(null);

        if (!isValidMail(email) || email.isEmpty()) {
            editText_email.requestFocus();
            editText_email.setError(getString(R.string.please_enter_email));
        } else if (password.isEmpty()) {
            editText_password.requestFocus();
            editText_password.setError(getString(R.string.please_enter_password));
        } else {
            if (!db.checkLogin(email, password)) {
                String id = db.getUserId(email);
                if (id != null) {
                    method.editor.putBoolean(method.pref_login, true);
                    method.editor.putString(method.profileId, id);
                    method.editor.apply();
                    startActivity(new Intent(Login.this, MainActivity.class).putExtra(&quot;id&quot;, id));
                    finishAffinity();
                }
            } else {
                method.alertBox(getString(R.string.fail));
            }
        }
    }

    private boolean isValidMail(String email) {
        return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
    }
}&lt;/pre&gt;
  &lt;/div&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;Register.java&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;Java&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;package com.app.databaseloginregister.Activity;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;

import com.app.databaseloginregister.DataBase.DatabaseHandler;
import com.app.databaseloginregister.R;
import com.app.databaseloginregister.Util.Method;

public class Register extends AppCompatActivity {

    private Method method;
    private DatabaseHandler db;
    private Button button_register;
    private InputMethodManager imm;
    private String name, email, password, phoneNo;
    private EditText editText_name, editText_email, editText_password, editText_phoneNo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        method = new Method(Register.this);
        db = new DatabaseHandler(Register.this);

        imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

        editText_name    = findViewById(R.id.editText_name_reg);
        editText_email   = findViewById(R.id.editText_email_reg);
        editText_password= findViewById(R.id.editText_password_reg);
        editText_phoneNo = findViewById(R.id.editText_phone_reg);
        button_register  = findViewById(R.id.button_reg);

        button_register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                name    = editText_name.getText().toString().trim();
                email   = editText_email.getText().toString().trim();
                password= editText_password.getText().toString();
                phoneNo = editText_phoneNo.getText().toString().trim();

                editText_name.clearFocus();
                editText_email.clearFocus();
                editText_password.clearFocus();
                editText_phoneNo.clearFocus();
                imm.hideSoftInputFromWindow(editText_name.getWindowToken(), 0);
                imm.hideSoftInputFromWindow(editText_email.getWindowToken(), 0);
                imm.hideSoftInputFromWindow(editText_password.getWindowToken(), 0);
                imm.hideSoftInputFromWindow(editText_phoneNo.getWindowToken(), 0);

                form();
            }
        });
    }

    private boolean isValidMail(String email) {
        return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
    }

    private void form() {
        editText_name.setError(null);
        editText_email.setError(null);
        editText_password.setError(null);
        editText_phoneNo.setError(null);

        if (name.isEmpty()) {
            editText_name.requestFocus();
            editText_name.setError(getString(R.string.please_enter_name));
        } else if (!isValidMail(email) || email.isEmpty()) {
            editText_email.requestFocus();
            editText_email.setError(getString(R.string.please_enter_email));
        } else if (password.isEmpty()) {
            editText_password.requestFocus();
            editText_password.setError(getString(R.string.please_enter_password));
        } else if (phoneNo.isEmpty()) {
            editText_phoneNo.requestFocus();
            editText_phoneNo.setError(getString(R.string.please_enter_phone));
        } else {
            if (db.checkEmail(email)) {
                db.addUser(name, email, password, phoneNo);

                editText_name.setText(&quot;&quot;);
                editText_email.setText(&quot;&quot;);
                editText_password.setText(&quot;&quot;);
                editText_phoneNo.setText(&quot;&quot;);

                method.alertBox(getString(R.string.register_success));
                startActivity(new Intent(Register.this, Login.class));
            } else {
                method.alertBox(getString(R.string.email_id_use));
            }
        }
    }
}&lt;/pre&gt;
  &lt;/div&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;MainActivity.java&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;Java&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;package com.app.databaseloginregister.Activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.app.databaseloginregister.DataBase.DatabaseHandler;
import com.app.databaseloginregister.Item.UserList;
import com.app.databaseloginregister.R;
import com.app.databaseloginregister.Util.Method;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private String id;
    private Method method;
    private DatabaseHandler db;
    private List&amp;lt;UserList&amp;gt; userLists;
    private Button button_update, button_logout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        id       = getIntent().getStringExtra(&quot;id&quot;);
        method   = new Method(MainActivity.this);
        userLists= new ArrayList&amp;lt;&amp;gt;();
        db       = new DatabaseHandler(MainActivity.this);
        userLists= db.getUser(id);

        TextView textView_name    = findViewById(R.id.textView_name_main);
        TextView textView_email   = findViewById(R.id.textView_email_main);
        TextView textView_phoneNo = findViewById(R.id.textView_phone_main);
        button_update = findViewById(R.id.button_update_main);
        button_logout = findViewById(R.id.button_logout_main);

        if (!userLists.isEmpty()) {
            textView_name.setText(userLists.get(0).getName());
            textView_email.setText(userLists.get(0).getEmail());
            textView_phoneNo.setText(userLists.get(0).getPhone());
        }

        button_update.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, UpdateUser.class)
                        .putExtra(&quot;id&quot;, id)
                        .putExtra(&quot;name&quot;, userLists.get(0).getName())
                        .putExtra(&quot;email&quot;, userLists.get(0).getEmail())
                        .putExtra(&quot;phone&quot;, userLists.get(0).getPhone()));
            }
        });

        button_logout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                method.editor.putBoolean(method.pref_login, false);
                method.editor.apply();
                startActivity(new Intent(MainActivity.this, Login.class));
                finishAffinity();
            }
        });
    }
}&lt;/pre&gt;
  &lt;/div&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;UpdateUser.java&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;Java&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;package com.app.databaseloginregister.Activity;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;

import com.app.databaseloginregister.DataBase.DatabaseHandler;
import com.app.databaseloginregister.R;
import com.app.databaseloginregister.Util.Method;

public class UpdateUser extends AppCompatActivity {

    private Method method;
    private DatabaseHandler db;
    private Button button_update;
    private InputMethodManager imm;
    private String id, name, email, password, phoneNo;
    private EditText editText_name, editText_email, editText_password, editText_phoneNo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_update_user);

        method  = new Method(UpdateUser.this);
        db      = new DatabaseHandler(UpdateUser.this);

        id      = getIntent().getStringExtra(&quot;id&quot;);
        name    = getIntent().getStringExtra(&quot;name&quot;);
        email   = getIntent().getStringExtra(&quot;email&quot;);
        phoneNo = getIntent().getStringExtra(&quot;phone&quot;);

        imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

        editText_name     = findViewById(R.id.editText_name_update);
        editText_email    = findViewById(R.id.editText_email_update);
        editText_password = findViewById(R.id.editText_password_update);
        editText_phoneNo  = findViewById(R.id.editText_phone_update);
        button_update     = findViewById(R.id.button_update);

        editText_name.setText(name);
        editText_email.setText(email);
        editText_phoneNo.setText(phoneNo);

        button_update.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                name    = editText_name.getText().toString().trim();
                email   = editText_email.getText().toString().trim();
                password= editText_password.getText().toString();
                phoneNo = editText_phoneNo.getText().toString().trim();

                editText_name.clearFocus();
                editText_email.clearFocus();
                editText_password.clearFocus();
                editText_phoneNo.clearFocus();
                imm.hideSoftInputFromWindow(editText_name.getWindowToken(), 0);
                imm.hideSoftInputFromWindow(editText_email.getWindowToken(), 0);
                imm.hideSoftInputFromWindow(editText_password.getWindowToken(), 0);
                imm.hideSoftInputFromWindow(editText_phoneNo.getWindowToken(), 0);

                form();
            }
        });
    }

    private boolean isValidMail(String email) {
        return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
    }

    private void form() {
        editText_name.setError(null);
        editText_email.setError(null);
        editText_phoneNo.setError(null);

        if (name.isEmpty()) {
            editText_name.requestFocus();
            editText_name.setError(getString(R.string.please_enter_name));
        } else if (!isValidMail(email) || email.isEmpty()) {
            editText_email.requestFocus();
            editText_email.setError(getString(R.string.please_enter_email));
        } else if (phoneNo.isEmpty()) {
            editText_phoneNo.requestFocus();
            editText_phoneNo.setError(getString(R.string.please_enter_phone));
        } else {
            db.updateUser(id, name, email, password, phoneNo);
            startActivity(new Intent(UpdateUser.this, MainActivity.class).putExtra(&quot;id&quot;, id));
            finishAffinity();
        }
    }
}&lt;/pre&gt;
  &lt;/div&gt;

  &lt;!-- ══════ DATABASE ══════ --&gt;
  &lt;h2 class=&quot;section-title&quot;&gt;SQLite Database Handler&lt;/h2&gt;

  &lt;p style=&quot;margin-bottom:16px; color:var(--muted); font-size:15px;&quot;&gt;
    The &lt;code style=&quot;font-family:&#39;JetBrains Mono&#39;,monospace; color:var(--accent);&quot;&gt;DatabaseHandler&lt;/code&gt; class extends &lt;code style=&quot;font-family:&#39;JetBrains Mono&#39;,monospace; color:var(--accent);&quot;&gt;SQLiteOpenHelper&lt;/code&gt; and handles all CRUD operations for the &lt;strong&gt;user&lt;/strong&gt; table.
  &lt;/p&gt;

  &lt;table class=&quot;method-table&quot; aria-label=&quot;DatabaseHandler methods&quot;&gt;
    &lt;thead&gt;
      &lt;tr&gt;&lt;th&gt;Method&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
      &lt;tr&gt;&lt;td&gt;&lt;code&gt;onCreate()&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Called once on first install — creates the user table with auto-increment primary key.&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;&lt;code&gt;onUpgrade()&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Called when DATABASE_VERSION increases — drops and recreates the table.&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;&lt;code&gt;addUser()&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Inserts a new user record (name, email, password, phone) into the database.&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;&lt;code&gt;getUser(id)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Returns a &lt;code&gt;List&amp;lt;UserList&amp;gt;&lt;/code&gt; for the given user ID.&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;&lt;code&gt;updateUser()&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Updates name, email, phone, and optionally password for the given ID.&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;&lt;code&gt;checkEmail()&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Returns &lt;code&gt;true&lt;/code&gt; if the email does NOT exist (safe to register).&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;&lt;code&gt;getUserId()&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Returns the row ID string for the given email address.&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;&lt;code&gt;checkLogin()&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Returns &lt;code&gt;false&lt;/code&gt; if credentials match (login success — note inverted logic).&lt;/td&gt;&lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;DatabaseHandler.java&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;Java&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;package com.app.databaseloginregister.DataBase;

import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import com.app.databaseloginregister.Item.UserList;

import java.util.ArrayList;
import java.util.List;

public class DatabaseHandler extends SQLiteOpenHelper {

    private static final int    DATABASE_VERSION    = 1;
    private static final String DATABASE_NAME       = &quot;demo_login&quot;;
    private static final String TABLE_NAME          = &quot;user&quot;;
    private static final String KEY_ID              = &quot;id&quot;;
    private static final String KEY_NAME            = &quot;name&quot;;
    private static final String KEY_EMAIL           = &quot;user_email&quot;;
    private static final String KEY_PHONE_NUMBER    = &quot;phone_number&quot;;
    private static final String KEY_PASSWORD        = &quot;password&quot;;

    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_TABLE = &quot;CREATE TABLE &quot; + TABLE_NAME + &quot;(&quot;
                + KEY_ID            + &quot; INTEGER PRIMARY KEY AUTOINCREMENT, &quot;
                + KEY_NAME          + &quot; TEXT, &quot;
                + KEY_EMAIL         + &quot; TEXT, &quot;
                + KEY_PHONE_NUMBER  + &quot; TEXT, &quot;
                + KEY_PASSWORD      + &quot; TEXT&quot;
                + &quot;)&quot;;
        db.execSQL(CREATE_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL(&quot;DROP TABLE IF EXISTS &quot; + TABLE_NAME);
        onCreate(db);
    }

    /** INSERT — add a new user */
    public void addUser(String name, String email, String password, String phone) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(KEY_NAME, name);
        values.put(KEY_EMAIL, email);
        values.put(KEY_PHONE_NUMBER, phone);
        values.put(KEY_PASSWORD, password);
        db.insert(TABLE_NAME, null, values);
        db.close();
    }

    /** READ — fetch user by ID */
    public List&amp;lt;UserList&amp;gt; getUser(String id) {
        List&amp;lt;UserList&amp;gt; userLists = new ArrayList&amp;lt;&amp;gt;();
        String selectQuery = &quot;SELECT * FROM &quot; + TABLE_NAME + &quot; WHERE &quot; + KEY_ID + &quot; = &quot; + id;
        Log.d(&quot;DB_QUERY&quot;, selectQuery);

        SQLiteDatabase db = this.getWritableDatabase();
        @SuppressLint(&quot;Recycle&quot;) Cursor cursor = db.rawQuery(selectQuery, null);

        if (cursor.moveToFirst()) {
            do {
                UserList list = new UserList();
                list.setName(cursor.getString(1));
                list.setEmail(cursor.getString(2));
                list.setPhone(cursor.getString(3));
                list.setPassword(cursor.getString(4));
                userLists.add(list);
            } while (cursor.moveToNext());
        }
        return userLists;
    }

    /** UPDATE — update user profile */
    public void updateUser(String id, String name, String email, String password, String phoneNumber) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(KEY_NAME, name);
        values.put(KEY_EMAIL, email);
        if (!password.isEmpty()) values.put(KEY_PASSWORD, password);
        if (!phoneNumber.isEmpty()) values.put(KEY_PHONE_NUMBER, phoneNumber);
        db.update(TABLE_NAME, values, KEY_ID + &quot;=&quot; + id, null);
    }

    /** Check login credentials — returns false on success */
    public boolean checkLogin(String userEmail, String userPassword) {
        String selectQuery = &quot;SELECT &quot; + KEY_ID + &quot; FROM &quot; + TABLE_NAME
                + &quot; WHERE &quot; + KEY_EMAIL + &quot; = &#39;&quot; + userEmail + &quot;&#39;&quot;
                + &quot; AND &quot; + KEY_PASSWORD + &quot; = &#39;&quot; + userPassword + &quot;&#39;&quot;;
        Log.d(&quot;DB_QUERY&quot;, selectQuery);
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);
        boolean notFound = cursor.getCount() == 0;
        cursor.close();
        return notFound;
    }

    /** Check if email is available — returns true if NOT in use */
    public boolean checkEmail(String userEmail) {
        String selectQuery = &quot;SELECT * FROM &quot; + TABLE_NAME + &quot; WHERE &quot; + KEY_EMAIL + &quot; =?&quot;;
        SQLiteDatabase db = this.getWritableDatabase();
        @SuppressLint(&quot;Recycle&quot;) Cursor cursor = db.rawQuery(selectQuery, new String[]{userEmail});
        return cursor.getCount() == 0;
    }

    /** Get user ID by email */
    public String getUserId(String userEmail) {
        String selectQuery = &quot;SELECT * FROM &quot; + TABLE_NAME
                + &quot; WHERE &quot; + KEY_EMAIL + &quot; = &#39;&quot; + userEmail + &quot;&#39;&quot;;
        SQLiteDatabase db = this.getWritableDatabase();
        @SuppressLint(&quot;Recycle&quot;) Cursor cursor = db.rawQuery(selectQuery, null);
        if (cursor.moveToFirst()) {
            String userId = cursor.getString(0);
            Log.d(&quot;DB_USER_ID&quot;, userId);
            return userId;
        }
        return null;
    }
}&lt;/pre&gt;
  &lt;/div&gt;

  &lt;!-- ══════ MODEL &amp; UTILITY ══════ --&gt;
  &lt;h2 class=&quot;section-title&quot;&gt;Model &amp;amp; Utility Classes&lt;/h2&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;UserList.java&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;Java&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;package com.app.databaseloginregister.Item;

import java.io.Serializable;

public class UserList implements Serializable {

    private String name, email, phone, password;

    public UserList() {}

    public UserList(String name, String email, String phone, String password) {
        this.name     = name;
        this.email    = email;
        this.phone    = phone;
        this.password = password;
    }

    public String getName()     { return name; }
    public void setName(String name)     { this.name = name; }

    public String getEmail()    { return email; }
    public void setEmail(String email)   { this.email = email; }

    public String getPhone()    { return phone; }
    public void setPhone(String phone)   { this.phone = phone; }

    public String getPassword() { return password; }
    public void setPassword(String password) { this.password = password; }
}&lt;/pre&gt;
  &lt;/div&gt;

  &lt;div class=&quot;code-block&quot;&gt;
    &lt;div class=&quot;code-header&quot;&gt;
      &lt;span class=&quot;code-filename&quot;&gt;Method.java&lt;/span&gt;
      &lt;span class=&quot;code-lang-tag&quot;&gt;Java&lt;/span&gt;
    &lt;/div&gt;
    &lt;pre&gt;package com.app.databaseloginregister.Util;

import android.app.Activity;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.support.v7.app.AlertDialog;

import com.app.databaseloginregister.R;

public class Method {

    private final Activity activity;

    public SharedPreferences pref;
    public SharedPreferences.Editor editor;
    private final String myPreference = &quot;login&quot;;
    public final String pref_login = &quot;pref_login&quot;;
    public final String profileId  = &quot;profileId&quot;;

    public Method(Activity activity) {
        this.activity = activity;
        pref   = activity.getSharedPreferences(myPreference, 0);
        editor = pref.edit();
    }

    /** Display a non-cancelable alert dialog */
    public void alertBox(String message) {
        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
        builder.setCancelable(false);
        builder.setMessage(message);
        builder.setPositiveButton(activity.getString(R.string.ok),
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // dismiss
                    }
                });
        builder.create().show();
    }
}&lt;/pre&gt;
  &lt;/div&gt;

  &lt;!-- CTA --&gt;
 &lt;div style=&quot;text-align:center;&quot;&gt;

  &lt;a href=&quot;https://play.google.com/store/apps/developer?id=Krishna+app+worlds&quot;
     target=&quot;_blank&quot;
     rel=&quot;noopener&quot;
     style=&quot;display:inline-block;background:#3b82f6;color:#ffffff !important;padding:14px 24px;border-radius:12px;text-decoration:none;font-weight:600;&quot;&gt;

     🚀 View Our Applications on Google Play

  &lt;/a&gt;

&lt;/div&gt;

&lt;/main&gt;

&lt;/body&gt;
&lt;/html&gt;
</content><link rel='replies' type='application/atom+xml' href='https://krishnaappworlds.blogspot.com/feeds/841551200541012653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://krishnaappworlds.blogspot.com/2019/08/sqlite-database-with-login-register-demo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/841551200541012653'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/841551200541012653'/><link rel='alternate' type='text/html' href='https://krishnaappworlds.blogspot.com/2019/08/sqlite-database-with-login-register-demo.html' title='Android SQLite Login &amp; Register App with CRUD Operations in Java (2026)'/><author><name>Krishna App Worlds</name><uri>http://www.blogger.com/profile/13492301509239354248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCbyWb21IGK4YLWwcs-xNFWaPpkFJI3fbiLWd9hXbcYVKVVRQQSiU2VRla7KNusQcAJev6Xr7Xa0GUYK-CUOoZkrN2GNcdMvAjjuPN7_UCXmY2N8aoVS48jtxoicuBuq0/s220/17015754_10158609862795508_565470149047945397_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhocDEiHNcYOwjdSjms6ZNuf9iJqnpyfyBe07h8fl66m1Mbx9gB8AVI2OkPefAPj8LQKPM2Mk2lxFoibr5NtgxUM09iovIMaK8fLqOc_IDl-oHA4VOtSaRxaf1spUAR3zV8oWfyNlGbwGs/s72-c/a.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036243090803825957.post-8007640254478907540</id><published>2019-06-11T20:56:00.007+05:30</published><updated>2022-05-28T11:38:29.741+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="source code"/><category scheme="http://www.blogger.com/atom/ns#" term="status"/><category scheme="http://www.blogger.com/atom/ns#" term="status download"/><category scheme="http://www.blogger.com/atom/ns#" term="status download code"/><category scheme="http://www.blogger.com/atom/ns#" term="status saver"/><category scheme="http://www.blogger.com/atom/ns#" term="status saver for whatsapp"/><category scheme="http://www.blogger.com/atom/ns#" term="Whats app status"/><title type='text'>How to download whatsapp status in android source code</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
	&lt;html&gt;

	&lt;head&gt;
		&lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js&quot;&gt;&lt;/script&gt;
		&lt;script src=&quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js&quot;&gt;&lt;/script&gt;
		&lt;style&gt;
			.syntaxhighlighter {
				background-color: #fefefe !important;
				margin-bottom: 50px !important;
				border: 1px solid #e6e6e6 !important;
				margin: 20px auto !important;
				padding: 10px;
			}
		&lt;/style&gt;
	&lt;/head&gt;

	&lt;body&gt;
	&lt;/body&gt;
	&lt;div class=&quot;syntaxhighlighter&quot;&gt;
		&lt;pre&gt;

public List&lt;File&gt; imageArray = new ArrayList&lt;&gt;();

private String root = Environment.getExternalStorageDirectory() +&quot;/WhatsApp/Media/.Statuses&quot;;
File file = new File(root);
imageArray=getListFiles(file)

private List&lt;File&gt; getListFiles(File parentDir) {
List&lt;File&gt; inFiles = new ArrayList&lt;&gt;();
try {
	Queue&lt;File&gt; files = new LinkedList&lt;&gt;();
	files.addAll(Arrays.asList(parentDir.listFiles()));
	while (!files.isEmpty()) {
		File file = files.remove();
		if (file.isDirectory()) {
			files.addAll(Arrays.asList(file.listFiles()));
		} else if (file.getName().endsWith(&quot;.jpg&quot;) || file.getName().endsWith(&quot;.gif&quot;)||
			file.getName().endsWith(&quot;.mp4&quot;)) {
			inFiles.add(file);
		}
	}
} catch (Exception e) {
	Log.d(&quot;error&quot;, e.toString());
}
return inFiles;
}        
        
		&lt;/pre&gt;
	&lt;/div&gt;
	&lt;h3 style=&quot;text-align: left;&quot;&gt;
		&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;Play Store Link&lt;/b&gt;:-&lt;/span&gt;&lt;a
			href=&quot;https://play.google.com/store/apps/details?id=com.krishna.status&quot;&gt;click here&lt;/a&gt;
	&lt;/h3&gt;

	&lt;/html&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://krishnaappworlds.blogspot.com/feeds/8007640254478907540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://krishnaappworlds.blogspot.com/2019/06/how-to-find-whatsapp-status-in-android.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/8007640254478907540'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/8007640254478907540'/><link rel='alternate' type='text/html' href='https://krishnaappworlds.blogspot.com/2019/06/how-to-find-whatsapp-status-in-android.html' title='How to download whatsapp status in android source code'/><author><name>Krishna App Worlds</name><uri>http://www.blogger.com/profile/13492301509239354248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCbyWb21IGK4YLWwcs-xNFWaPpkFJI3fbiLWd9hXbcYVKVVRQQSiU2VRla7KNusQcAJev6Xr7Xa0GUYK-CUOoZkrN2GNcdMvAjjuPN7_UCXmY2N8aoVS48jtxoicuBuq0/s220/17015754_10158609862795508_565470149047945397_o.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036243090803825957.post-8741836796418551950</id><published>2019-04-11T21:21:00.004+05:30</published><updated>2024-05-27T22:21:45.792+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="igtv"/><category scheme="http://www.blogger.com/atom/ns#" term="image"/><category scheme="http://www.blogger.com/atom/ns#" term="instagram"/><category scheme="http://www.blogger.com/atom/ns#" term="instagram image"/><category scheme="http://www.blogger.com/atom/ns#" term="instagram video"/><category scheme="http://www.blogger.com/atom/ns#" term="photo"/><category scheme="http://www.blogger.com/atom/ns#" term="status"/><category scheme="http://www.blogger.com/atom/ns#" term="video"/><title type='text'>Instance video, image and media download</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 class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/GVpOzcBSlCE/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/GVpOzcBSlCE?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;style&gt;
* {
  box-sizing: border-box;
}

.column {
  float: left;
  width: 25%;
  padding: 5px;
}

/* Clearfix (clear floats) */
.row::after {
  content: &quot;&quot;;
  clear: both;
  display: table;
}

&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class=&quot;row&quot;&gt;
  &lt;div class=&quot;column&quot;&gt;
    &lt;img alt=&quot;Snow&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcHJww6U2WoSN709gFqL0sqnprEse3svjnwOv_ulevJfyUD5Nsu3yF8jwMqyoSWnYhJ1Q6C5cfhIzWMe2i2n6vqtx744cjpdN4yvpkX_i1Juw40iCv-8KdopTKWpDJE8e1TEVsjMrVg-A/s1600/a.png&quot; style=&quot;width: 100%;&quot; /&gt;
  &lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
    &lt;img alt=&quot;Forest&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivokxaBzpu1TsQVWdTwK6NuZ6rtc2khaRefVXTpVv8XHge-PzMmpGYfD4kkixMzPxDBeTqwDHPQnLMS_rPy1ZE2IakInz2wVIWoLweOaec63_lxUafvgjX0sTE2gg2mp-7X9tZNlq3x-I/s1600/b.png&quot; style=&quot;width: 100%;&quot; /&gt;
  &lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
    &lt;img alt=&quot;Mountains&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMyZUuEzDjNBVn6UDZnoAhbKv03789WdMuwoPQTcnmtORe4wGKGTmOkmwxkVmiEkRGdV0kR_qN_2XmlqdZ9dTHT6gk-R6hrMX4aWudOG66BYAFiRUv5Gp0b404ETAamGcKvrkQdznJUJ0/s1600/c.png&quot; style=&quot;width: 100%;&quot; /&gt;
  &lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
    &lt;img alt=&quot;Mountains&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg56ruCuB9V28iYCRvP7rMR0BEyJ1Ar400JJXbiIBxlTz-OADXSfMkh_r7hkrfZXV2vhVQYFkyit5SONAbQeG4KAA1zoeDbHtI5slGpvWFIY1h_5SaZzJ7ot5lNb1HQq1YiurfdcA8x2Lg/s1600/d.png&quot; style=&quot;width: 100%;&quot; /&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;

&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.krishan.instancedownload&amp;amp;pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1&quot;&gt;&lt;img alt=&quot;Get it on Google Play&quot; height=&quot;80&quot; src=&quot;https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;App Name: Instance video image download&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;Welcome to Instagram media download, the ultimate tool for downloading and enjoying images and videos from social media! With our app, you can effortlessly download single or multiple images and videos, watch videos within the app, and much more. Here’s what makes our application the best choice for your media needs&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Key Features:&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;- Easy Downloads: Quickly download images and videos with a simple click.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;- Batch Downloads: Download multiple images and videos from any user post with ease.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;- Mixed Media Support: Seamlessly download posts containing both images and videos.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;- Instant Downloads: Use our app to instantly download images and videos from social media.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;- In-App Video Player: Watch your downloaded videos directly within the app.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;- Pinch-to-Zoom: Enjoy the pinch-to-zoom feature for a better image viewing experience.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;- Share and Set Wallpaper: Share images and videos on any social media app or set them as your wallpaper.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;- Download Progress: Monitor your download progress with percentage indicators in the status bar.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;How to Use This Application:&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;1. Open Instance: Launch our app to get started.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;2. Open the Social Media App: Navigate to the social media app and find the image or video you want to download.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;3. Copy Link: Use the &#39;Copy Link&#39; option on the image or video post.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;4. Download: Return to Instance App and past link, view your media, share it, or set it as wallpaper. Enjoy!&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;User Guide:&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;We provide a detailed video tutorial and information within the app to help you understand how to use Instance effortlessly. Follow these simple steps and maximize your experience.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;Download Instance now and enjoy your favorite images and videos anytime, anywhere!&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Contact Us:&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;If you have any questions or need support, feel free to reach out to us via krishna.app.worlds@gmail.com.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Rate Us:&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;If you love Our application, please take a moment to rate us on the Play Store. Your feedback helps us improve!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://krishnaappworlds.blogspot.com/feeds/8741836796418551950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://krishnaappworlds.blogspot.com/2019/04/instagram-video-and-image-download-with.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/8741836796418551950'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/8741836796418551950'/><link rel='alternate' type='text/html' href='https://krishnaappworlds.blogspot.com/2019/04/instagram-video-and-image-download-with.html' title='Instance video, image and media download'/><author><name>Krishna App Worlds</name><uri>http://www.blogger.com/profile/13492301509239354248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCbyWb21IGK4YLWwcs-xNFWaPpkFJI3fbiLWd9hXbcYVKVVRQQSiU2VRla7KNusQcAJev6Xr7Xa0GUYK-CUOoZkrN2GNcdMvAjjuPN7_UCXmY2N8aoVS48jtxoicuBuq0/s220/17015754_10158609862795508_565470149047945397_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/GVpOzcBSlCE/default.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036243090803825957.post-5358280052818829814</id><published>2019-04-02T21:49:00.009+05:30</published><updated>2026-10-12T22:11:34.868+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="123 Numbers"/><category scheme="http://www.blogger.com/atom/ns#" term="ABC Phonics"/><category scheme="http://www.blogger.com/atom/ns#" term="Alphabet App"/><category scheme="http://www.blogger.com/atom/ns#" term="Android Kids"/><category scheme="http://www.blogger.com/atom/ns#" term="drawing"/><category scheme="http://www.blogger.com/atom/ns#" term="Early Education"/><category scheme="http://www.blogger.com/atom/ns#" term="Free Kids App"/><category scheme="http://www.blogger.com/atom/ns#" term="Kids Learning"/><category scheme="http://www.blogger.com/atom/ns#" term="Kindergarten"/><category scheme="http://www.blogger.com/atom/ns#" term="Offline App"/><category scheme="http://www.blogger.com/atom/ns#" term="Preschool"/><category scheme="http://www.blogger.com/atom/ns#" term="Toddler App"/><category scheme="http://www.blogger.com/atom/ns#" term="Tracing"/><title type='text'>Little Learners: Kids Learning App for ABC, 123, Shapes &amp; Colors</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot; /&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot; /&gt;

  &lt;title&gt;Little Learners – Kids Learning App | ABC, 123, Shapes, Colors, Drawing &amp;amp; Parent Dashboard&lt;/title&gt;
  &lt;meta name=&quot;description&quot; content=&quot;Little Learners – Kids Learning is a fun pre-learning app for young children. Learn ABC A-Z, abc a-z, numbers 123, shapes, colors, fruits and vegetables, draw, take fun exams and let parents track progress.&quot; /&gt;
  &lt;meta name=&quot;keywords&quot; content=&quot;Little Learners, kids learning app, pre-learning app, ABC for kids, 123 numbers, shapes and colors for kids, fruits and vegetables for kids, kids drawing app, kids exam practice, parent dashboard, preschool learning app&quot; /&gt;
  &lt;meta name=&quot;author&quot; content=&quot;Krishan&quot; /&gt;
  &lt;meta name=&quot;robots&quot; content=&quot;index, follow, max-image-preview:large&quot; /&gt;
  &lt;meta name=&quot;theme-color&quot; content=&quot;#7C3AED&quot; /&gt;
  &lt;link rel=&quot;canonical&quot; href=&quot;https://play.google.com/store/apps/details?id=com.krishan.abcd&quot; /&gt;

  &lt;meta property=&quot;og:type&quot; content=&quot;website&quot; /&gt;
  &lt;meta property=&quot;og:title&quot; content=&quot;Little Learners – Kids Learning App&quot; /&gt;
  &lt;meta property=&quot;og:description&quot; content=&quot;Learn. Practice. Create. Grow. ABC, 123, shapes, colors, drawing, fun exams and a parent progress dashboard in one simple app.&quot; /&gt;
  &lt;meta property=&quot;og:url&quot; content=&quot;https://play.google.com/store/apps/details?id=com.krishan.abcd&quot; /&gt;
  &lt;meta property=&quot;og:site_name&quot; content=&quot;Little Learners – Kids Learning&quot; /&gt;
  &lt;meta property=&quot;og:locale&quot; content=&quot;en_US&quot; /&gt;
  &lt;!-- Add og:image and twitter:image here with a new Little Learners screenshot URL --&gt;
  &lt;meta name=&quot;twitter:card&quot; content=&quot;summary_large_image&quot; /&gt;
  &lt;meta name=&quot;twitter:title&quot; content=&quot;Little Learners – Kids Learning App&quot; /&gt;
  &lt;meta name=&quot;twitter:description&quot; content=&quot;ABC, 123, shapes, colors, drawing, fun exams and a parent dashboard to track your child&#39;s progress.&quot; /&gt;

  &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.googleapis.com&quot; /&gt;
  &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.gstatic.com&quot; crossorigin /&gt;
  &lt;link href=&quot;https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&amp;family=Baloo+2:wght@500;700;800&amp;display=swap&quot; rel=&quot;stylesheet&quot; /&gt;

  &lt;style&gt;
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --purple: #7C3AED; --purple-light: #EDE9FE; --purple-dark: #5B21B6;
      --green: #10B981; --green-light: #D1FAE5; --pink: #EC4899;
      --bg: #FAFAFA; --card-bg: #FFFFFF; --text: #1F2937; --muted: #6B7280; --border: #E5E7EB;
    }
    body { font-family: &#39;Nunito&#39;, sans-serif; background: var(--bg); color: var(--text); line-height: 1.7; font-size: 16px; }
    a { color: inherit; text-decoration: none; }
    img { max-width: 100%; height: auto; display: block; border-radius: 12px; }
    .page-wrap { max-width: 780px; margin: 0 auto; padding: 2rem 1.25rem 4rem; }

    .hero { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 24px; padding: 2.5rem 2rem 2rem; text-align: center; margin-bottom: 2rem; position: relative; overflow: hidden; }
    .hero::before { content: &#39;&#39;; position: absolute; top: -40px; right: -40px; width: 150px; height: 150px; background: rgba(255,255,255,0.07); border-radius: 50%; }
    .hero::after { content: &#39;&#39;; position: absolute; bottom: -25px; left: -25px; width: 100px; height: 100px; background: rgba(255,255,255,0.05); border-radius: 50%; }
    .hero-badge { display: inline-block; background: rgba(255,255,255,0.2); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; padding: 5px 16px; border-radius: 50px; margin-bottom: 1rem; }
    .hero h1 { font-family: &#39;Baloo 2&#39;, cursive; font-size: 2.2rem; font-weight: 800; color: #fff; line-height: 1.15; margin-bottom: 0.5rem; }
    .hero h1 span { color: #FCD34D; }
    .hero-sub { color: rgba(255,255,255,0.88); font-size: 15px; font-weight: 600; margin-bottom: 1.75rem; }
    .letter-row { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin-bottom: 1.75rem; }
    .letter-bubble { width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-family: &#39;Baloo 2&#39;, cursive; font-size: 22px; font-weight: 800; color: #fff; }
    .play-btn, .cta-btn { display: inline-flex; align-items: center; gap: 10px; background: #fff; color: var(--purple-dark); font-family: &#39;Nunito&#39;, sans-serif; font-weight: 800; font-size: 15px; padding: 12px 28px; border-radius: 50px; border: none; cursor: pointer; transition: transform 0.15s, box-shadow 0.15s; }
    .play-btn:hover, .cta-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.15); }
    .play-btn svg, .cta-btn svg { width: 20px; height: 20px; }

    .section-label { font-size: 11px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; color: var(--muted); margin-bottom: 0.75rem; }
    .section-h2 { font-family: &#39;Baloo 2&#39;, cursive; font-size: 1.4rem; font-weight: 700; color: var(--text); margin-bottom: 0.75rem; }

    .intro-card { background: var(--purple-light); border-radius: 16px; padding: 1.25rem 1.5rem; margin-bottom: 2rem; border-left: 5px solid var(--purple); }
    .intro-card p { font-size: 15px; color: #4B5563; line-height: 1.8; }
    .intro-card strong { color: var(--purple-dark); font-weight: 700; }

    .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-bottom: 2rem; }
    .feature-card { background: var(--card-bg); border: 1px solid var(--border); border-radius: 16px; padding: 1rem 1.1rem; transition: transform 0.15s, box-shadow 0.15s; }
    .feature-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,0.07); }
    .feat-icon { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 20px; margin-bottom: 0.6rem; }
    .feat-title { font-weight: 800; font-size: 14px; margin-bottom: 3px; }
    .feat-desc { font-size: 13px; color: var(--muted); line-height: 1.5; }

    .panel { background: var(--card-bg); border: 1px solid var(--border); border-radius: 18px; padding: 1.5rem; margin-bottom: 2rem; }
    .panel p { font-size: 14px; color: var(--muted); }
    .panel ul { list-style: none; margin-top: 0.75rem; }
    .panel li { font-size: 14px; padding: 6px 0; border-bottom: 1px dashed var(--border); }
    .panel li:last-child { border-bottom: none; }
    .panel li strong { color: var(--purple-dark); }

    .pills-wrap { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 2rem; }
    .pill { display: inline-flex; align-items: center; padding: 6px 14px; border-radius: 50px; font-size: 13px; font-weight: 700; }

    .safe-strip { display: flex; align-items: flex-start; gap: 16px; background: var(--green-light); border-radius: 16px; padding: 1.25rem 1.5rem; margin-bottom: 2rem; }
    .safe-icon { width: 48px; height: 48px; background: var(--green); border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 24px; flex-shrink: 0; }
    .safe-text strong { font-size: 15px; font-weight: 800; color: #065F46; display: block; margin-bottom: 3px; }
    .safe-text span { font-size: 14px; color: #047857; }

    .faq-wrap { margin-bottom: 2rem; }
    details { background: var(--card-bg); border: 1px solid var(--border); border-radius: 12px; margin-bottom: 8px; overflow: hidden; }
    summary { padding: 1rem 1.25rem; font-weight: 700; font-size: 15px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; }
    summary::-webkit-details-marker { display: none; }
    summary::after { content: &#39;+&#39;; font-size: 20px; color: var(--purple); font-weight: 400; }
    details[open] summary::after { content: &#39;−&#39;; }
    .faq-answer { padding: 0 1.25rem 1rem; font-size: 14px; color: var(--muted); line-height: 1.7; }

    .cta-block { background: linear-gradient(135deg, var(--purple) 0%, var(--pink) 100%); border-radius: 20px; padding: 2rem; text-align: center; }
    .cta-block h2 { font-family: &#39;Baloo 2&#39;, cursive; font-size: 1.6rem; font-weight: 800; color: #fff; margin-bottom: 0.5rem; }
    .cta-block p { color: rgba(255,255,255,0.88); font-size: 15px; margin-bottom: 1.5rem; }

    @media (max-width: 480px) {
      .hero h1 { font-size: 1.6rem; }
      .features-grid { grid-template-columns: 1fr 1fr; }
    }
  &lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
  &lt;div class=&quot;page-wrap&quot;&gt;

    &lt;header class=&quot;hero&quot;&gt;
      &lt;div class=&quot;hero-badge&quot;&gt;&amp;#127891; Kids Learning App&lt;/div&gt;
      &lt;h1&gt;Little &lt;span&gt;Learners&lt;/span&gt; &amp;ndash; Kids Learning&lt;/h1&gt;
      &lt;p class=&quot;hero-sub&quot;&gt;Learn &amp;middot; Practice &amp;middot; Create &amp;middot; Grow&lt;/p&gt;
      &lt;div class=&quot;letter-row&quot; aria-hidden=&quot;true&quot;&gt;
        &lt;div class=&quot;letter-bubble&quot; style=&quot;background:#EF4444&quot;&gt;A&lt;/div&gt;
        &lt;div class=&quot;letter-bubble&quot; style=&quot;background:#F97316&quot;&gt;b&lt;/div&gt;
        &lt;div class=&quot;letter-bubble&quot; style=&quot;background:#FBBF24&quot;&gt;1&lt;/div&gt;
        &lt;div class=&quot;letter-bubble&quot; style=&quot;background:#10B981&quot;&gt;2&lt;/div&gt;
        &lt;div class=&quot;letter-bubble&quot; style=&quot;background:#14B8A6&quot;&gt;&amp;#9650;&lt;/div&gt;
        &lt;div class=&quot;letter-bubble&quot; style=&quot;background:#3B82F6&quot;&gt;&amp;#9679;&lt;/div&gt;
        &lt;div class=&quot;letter-bubble&quot; style=&quot;background:#8B5CF6&quot;&gt;&amp;#127822;&lt;/div&gt;
        &lt;div class=&quot;letter-bubble&quot; style=&quot;background:#EC4899&quot;&gt;&amp;#127912;&lt;/div&gt;
      &lt;/div&gt;
      &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.krishan.abcd&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;play-btn&quot; aria-label=&quot;Download Little Learners on Google Play&quot;&gt;
        &lt;svg viewBox=&quot;0 0 24 24&quot; fill=&quot;currentColor&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.18 23.76a2 2 0 0 1-.68-.54c-.34-.41-.5-.9-.5-1.5V2.28c0-.6.16-1.09.5-1.5a2 2 0 0 1 .68-.54L14.1 12 3.18 23.76zm2.02-1.22 9.9-10.54-1.8-1.92-8.1 12.46zm0-21.08L5.3 13.9l1.8-1.9-8.1-12.46-.1.12.3-.2zm11.1 9.04-2.46-1.42L12 10.56 12 13.44l1.84 1.48 2.46-1.42.7-1.48-.7-1.44zm.7 4.54L15.42 16l-2.66 1.54 4.14 4.42 5.1-2.94a2 2 0 0 0 .96-.84c.23-.37.34-.78.34-1.18 0-.4-.11-.81-.34-1.18a2 2 0 0 0-.96-.84l-5.1-2.94 4.14 4.42-2.66 1.54 1.58 1.46z&quot;/&gt;&lt;/svg&gt;
        Get it on Google Play
      &lt;/a&gt;
    &lt;/header&gt;

    &lt;section class=&quot;intro-card&quot; aria-labelledby=&quot;intro-heading&quot;&gt;
      &lt;h2 id=&quot;intro-heading&quot; style=&quot;font-family:&#39;Baloo 2&#39;,cursive; font-size:1.15rem; font-weight:700; color:var(--purple-dark); margin-bottom:0.5rem;&quot;&gt;About the App&lt;/h2&gt;
      &lt;p&gt;&lt;strong&gt;Little Learners &amp;ndash; Kids Learning&lt;/strong&gt; is a fun and interactive pre-learning app designed to help young children learn essential concepts through engaging activities, games, drawing, and practice. It combines early education, interactive practice, creativity, and &lt;strong&gt;parent-friendly progress tracking&lt;/strong&gt; in one simple app &amp;mdash; helping children learn at their own pace while parents stay connected to their learning journey.&lt;/p&gt;
    &lt;/section&gt;

    &lt;!-- Add new Little Learners screenshots here (replace this comment with a .screenshots-grid block) --&gt;

    &lt;section aria-labelledby=&quot;features-heading&quot;&gt;
      &lt;p class=&quot;section-label&quot;&gt;&amp;#128218; Learn the basics&lt;/p&gt;
      &lt;h2 id=&quot;features-heading&quot; class=&quot;section-h2&quot;&gt;Strong Early-Learning Foundations&lt;/h2&gt;
      &lt;div class=&quot;features-grid&quot;&gt;
        &lt;div class=&quot;feature-card&quot;&gt;&lt;div class=&quot;feat-icon&quot; style=&quot;background:#FEF9C3&quot;&gt;&amp;#128292;&lt;/div&gt;&lt;div class=&quot;feat-title&quot;&gt;Capital ABCD (A&amp;ndash;Z)&lt;/div&gt;&lt;div class=&quot;feat-desc&quot;&gt;Learn all capital letters from A to Z&lt;/div&gt;&lt;/div&gt;
        &lt;div class=&quot;feature-card&quot;&gt;&lt;div class=&quot;feat-icon&quot; style=&quot;background:#EDE9FE&quot;&gt;&amp;#128289;&lt;/div&gt;&lt;div class=&quot;feat-title&quot;&gt;Small abcd (a&amp;ndash;z)&lt;/div&gt;&lt;div class=&quot;feat-desc&quot;&gt;Learn all small letters from a to z&lt;/div&gt;&lt;/div&gt;
        &lt;div class=&quot;feature-card&quot;&gt;&lt;div class=&quot;feat-icon&quot; style=&quot;background:#D1FAE5&quot;&gt;&amp;#128290;&lt;/div&gt;&lt;div class=&quot;feat-title&quot;&gt;Numbers (123)&lt;/div&gt;&lt;div class=&quot;feat-desc&quot;&gt;Build early number recognition and counting&lt;/div&gt;&lt;/div&gt;
        &lt;div class=&quot;feature-card&quot;&gt;&lt;div class=&quot;feat-icon&quot; style=&quot;background:#DBEAFE&quot;&gt;&amp;#128311;&lt;/div&gt;&lt;div class=&quot;feat-title&quot;&gt;Shapes&lt;/div&gt;&lt;div class=&quot;feat-desc&quot;&gt;Explore and recognise common shapes&lt;/div&gt;&lt;/div&gt;
        &lt;div class=&quot;feature-card&quot;&gt;&lt;div class=&quot;feat-icon&quot; style=&quot;background:#FCE7F3&quot;&gt;&amp;#127912;&lt;/div&gt;&lt;div class=&quot;feat-title&quot;&gt;Colors&lt;/div&gt;&lt;div class=&quot;feat-desc&quot;&gt;Identify and name colors with ease&lt;/div&gt;&lt;/div&gt;
        &lt;div class=&quot;feature-card&quot;&gt;&lt;div class=&quot;feat-icon&quot; style=&quot;background:#FEE2E2&quot;&gt;&amp;#127822;&lt;/div&gt;&lt;div class=&quot;feat-title&quot;&gt;Fruits&lt;/div&gt;&lt;div class=&quot;feat-desc&quot;&gt;Learn fruit names and pictures&lt;/div&gt;&lt;/div&gt;
        &lt;div class=&quot;feature-card&quot;&gt;&lt;div class=&quot;feat-icon&quot; style=&quot;background:#DCFCE7&quot;&gt;&amp;#129365;&lt;/div&gt;&lt;div class=&quot;feat-title&quot;&gt;Vegetables&lt;/div&gt;&lt;div class=&quot;feat-desc&quot;&gt;Learn vegetable names and pictures&lt;/div&gt;&lt;/div&gt;
        &lt;div class=&quot;feature-card&quot;&gt;&lt;div class=&quot;feat-icon&quot; style=&quot;background:#F5F3FF&quot;&gt;&amp;#127769;&lt;/div&gt;&lt;div class=&quot;feat-title&quot;&gt;Light &amp;amp; Dark Theme&lt;/div&gt;&lt;div class=&quot;feat-desc&quot;&gt;Comfortable viewing for both kids and parents&lt;/div&gt;&lt;/div&gt;
      &lt;/div&gt;
    &lt;/section&gt;

    &lt;section class=&quot;panel&quot; aria-labelledby=&quot;draw-heading&quot;&gt;
      &lt;h2 id=&quot;draw-heading&quot; class=&quot;section-h2&quot;&gt;&amp;#127912; Kids Drawing&lt;/h2&gt;
      &lt;p&gt;Let your child&#39;s imagination come to life with a creative drawing area.&lt;/p&gt;
      &lt;ul&gt;
        &lt;li&gt;Draw freely using different shapes and colors&lt;/li&gt;
        &lt;li&gt;Create their own pictures&lt;/li&gt;
        &lt;li&gt;Explore their creativity&lt;/li&gt;
        &lt;li&gt;Save drawings for parents to keep and view later&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/section&gt;

    &lt;section class=&quot;panel&quot; aria-labelledby=&quot;exam-heading&quot;&gt;
      &lt;h2 id=&quot;exam-heading&quot; class=&quot;section-h2&quot;&gt;&amp;#128221; Fun Exam &amp;amp; Practice&lt;/h2&gt;
      &lt;p&gt;The interactive exam feature helps children test what they have learned with different question types, improving recognition, memory, and understanding.&lt;/p&gt;
      &lt;ul&gt;
        &lt;li&gt;&amp;#128444;&amp;#65039; &lt;strong&gt;Image &amp;amp; Word Selection&lt;/strong&gt; &amp;ndash; See an image and select the correct word.&lt;/li&gt;
        &lt;li&gt;&amp;#128279; &lt;strong&gt;Match the Things&lt;/strong&gt; &amp;ndash; Match related images or objects.&lt;/li&gt;
        &lt;li&gt;&amp;#9989; &lt;strong&gt;Choose the Right Answer&lt;/strong&gt; &amp;ndash; Select the correct option from multiple choices.&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/section&gt;

    &lt;section class=&quot;panel&quot; aria-labelledby=&quot;parent-heading&quot;&gt;
      &lt;h2 id=&quot;parent-heading&quot; class=&quot;section-h2&quot;&gt;&amp;#128104;&amp;#8205;&amp;#128105;&amp;#8205;&amp;#128103; Parent Dashboard&lt;/h2&gt;
      &lt;p&gt;Parents can easily track their child&#39;s learning progress from one place and quickly see where their child is doing well and which subjects need more practice.&lt;/p&gt;
      &lt;ul&gt;
        &lt;li&gt;&amp;#11088; Learning points and scores&lt;/li&gt;
        &lt;li&gt;&amp;#128197; Daily, weekly and monthly progress&lt;/li&gt;
        &lt;li&gt;&amp;#128170; Strong learning areas&lt;/li&gt;
        &lt;li&gt;&amp;#128218; Areas that need more practice&lt;/li&gt;
        &lt;li&gt;&amp;#128201; Easy-to-understand progress graphs&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/section&gt;

    &lt;section aria-labelledby=&quot;benefits-heading&quot; style=&quot;margin-bottom:2rem;&quot;&gt;
      &lt;p class=&quot;section-label&quot;&gt;&amp;#127775; Learning benefits&lt;/p&gt;
      &lt;h2 id=&quot;benefits-heading&quot; class=&quot;section-h2&quot;&gt;Skills Your Child Will Build&lt;/h2&gt;
      &lt;div class=&quot;pills-wrap&quot;&gt;
        &lt;span class=&quot;pill&quot; style=&quot;background:#EDE9FE; color:#5B21B6&quot;&gt;&amp;#10003; Letter recognition&lt;/span&gt;
        &lt;span class=&quot;pill&quot; style=&quot;background:#D1FAE5; color:#065F46&quot;&gt;&amp;#10003; Number recognition&lt;/span&gt;
        &lt;span class=&quot;pill&quot; style=&quot;background:#DBEAFE; color:#1E40AF&quot;&gt;&amp;#10003; Shapes &amp;amp; colors&lt;/span&gt;
        &lt;span class=&quot;pill&quot; style=&quot;background:#FEE2E2; color:#991B1B&quot;&gt;&amp;#10003; Fruit &amp;amp; vegetable vocabulary&lt;/span&gt;
        &lt;span class=&quot;pill&quot; style=&quot;background:#FFEDD5; color:#92400E&quot;&gt;&amp;#10003; Memory building&lt;/span&gt;
        &lt;span class=&quot;pill&quot; style=&quot;background:#FEF9C3; color:#854D0E&quot;&gt;&amp;#10003; Creativity &amp;amp; art&lt;/span&gt;
        &lt;span class=&quot;pill&quot; style=&quot;background:#FCE7F3; color:#9D174D&quot;&gt;&amp;#10003; Understanding&lt;/span&gt;
      &lt;/div&gt;
    &lt;/section&gt;

    &lt;section class=&quot;safe-strip&quot; aria-labelledby=&quot;safe-heading&quot;&gt;
      &lt;div class=&quot;safe-icon&quot; aria-hidden=&quot;true&quot;&gt;&amp;#128106;&lt;/div&gt;
      &lt;div class=&quot;safe-text&quot;&gt;
        &lt;strong id=&quot;safe-heading&quot;&gt;Made for Kids, Made for Parents&lt;/strong&gt;
        &lt;span&gt;Children learn at their own pace through play and practice, while parents stay connected to the learning journey with clear progress tracking.&lt;/span&gt;
      &lt;/div&gt;
    &lt;/section&gt;

    &lt;section aria-labelledby=&quot;faq-heading&quot; class=&quot;faq-wrap&quot;&gt;
      &lt;p class=&quot;section-label&quot;&gt;&amp;#10067; Frequently asked questions&lt;/p&gt;
      &lt;h2 id=&quot;faq-heading&quot; class=&quot;section-h2&quot;&gt;Parents Ask Us&lt;/h2&gt;
      &lt;details&gt;
        &lt;summary&gt;What does Little Learners teach?&lt;/summary&gt;
        &lt;div class=&quot;faq-answer&quot;&gt;Capital letters A&amp;ndash;Z, small letters a&amp;ndash;z, numbers, shapes, colors, fruits and vegetables, plus a drawing area and fun practice exams.&lt;/div&gt;
      &lt;/details&gt;
      &lt;details&gt;
        &lt;summary&gt;How do the exams work?&lt;/summary&gt;
        &lt;div class=&quot;faq-answer&quot;&gt;There are three question types: Image &amp;amp; Word Selection, Match the Things, and Choose the Right Answer. They help children practice recognition, memory and understanding.&lt;/div&gt;
      &lt;/details&gt;
      &lt;details&gt;
        &lt;summary&gt;How can I track my child&#39;s progress?&lt;/summary&gt;
        &lt;div class=&quot;faq-answer&quot;&gt;The Parent Dashboard shows learning points, scores, and daily, weekly and monthly progress, along with strong areas, areas needing more practice, and easy progress graphs.&lt;/div&gt;
      &lt;/details&gt;
      &lt;details&gt;
        &lt;summary&gt;Can my child save their drawings?&lt;/summary&gt;
        &lt;div class=&quot;faq-answer&quot;&gt;Yes. Kids can draw freely with different shapes and colors and save their drawings for parents to keep and view later.&lt;/div&gt;
      &lt;/details&gt;
      &lt;details&gt;
        &lt;summary&gt;Does the app have a dark mode?&lt;/summary&gt;
        &lt;div class=&quot;faq-answer&quot;&gt;Yes. You can choose between Light Mode and Dark Mode for a comfortable experience for both kids and parents.&lt;/div&gt;
      &lt;/details&gt;
    &lt;/section&gt;

    &lt;section class=&quot;cta-block&quot; aria-labelledby=&quot;cta-heading&quot;&gt;
      &lt;h2 id=&quot;cta-heading&quot;&gt;Learn. Practice. Create. Grow. &amp;#128640;&lt;/h2&gt;
      &lt;p&gt;Early education, interactive practice, creativity and parent progress tracking &amp;mdash; all in one simple app.&lt;/p&gt;
      &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.krishan.abcd&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot; class=&quot;cta-btn&quot; aria-label=&quot;Download Little Learners on Google Play&quot;&gt;
        &lt;svg viewBox=&quot;0 0 24 24&quot; fill=&quot;currentColor&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M3.18 23.76a2 2 0 0 1-.68-.54c-.34-.41-.5-.9-.5-1.5V2.28c0-.6.16-1.09.5-1.5a2 2 0 0 1 .68-.54L14.1 12 3.18 23.76zm2.02-1.22 9.9-10.54-1.8-1.92-8.1 12.46zm0-21.08L5.3 13.9l1.8-1.9-8.1-12.46-.1.12.3-.2zm11.1 9.04-2.46-1.42L12 10.56 12 13.44l1.84 1.48 2.46-1.42.7-1.48-.7-1.44zm.7 4.54L15.42 16l-2.66 1.54 4.14 4.42 5.1-2.94a2 2 0 0 0 .96-.84c.23-.37.34-.78.34-1.18 0-.4-.11-.81-.34-1.18a2 2 0 0 0-.96-.84l-5.1-2.94 4.14 4.42-2.66 1.54 1.58 1.46z&quot;/&gt;&lt;/svg&gt;
        Download on Google Play
      &lt;/a&gt;
    &lt;/section&gt;

  &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='https://krishnaappworlds.blogspot.com/feeds/5358280052818829814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://krishnaappworlds.blogspot.com/2019/04/kids-learning-abcd-alphabet-preschool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/5358280052818829814'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/5358280052818829814'/><link rel='alternate' type='text/html' href='https://krishnaappworlds.blogspot.com/2019/04/kids-learning-abcd-alphabet-preschool.html' title='Little Learners: Kids Learning App for ABC, 123, Shapes &amp; Colors'/><author><name>Krishna App Worlds</name><uri>http://www.blogger.com/profile/13492301509239354248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCbyWb21IGK4YLWwcs-xNFWaPpkFJI3fbiLWd9hXbcYVKVVRQQSiU2VRla7KNusQcAJev6Xr7Xa0GUYK-CUOoZkrN2GNcdMvAjjuPN7_UCXmY2N8aoVS48jtxoicuBuq0/s220/17015754_10158609862795508_565470149047945397_o.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036243090803825957.post-1503841189145455217</id><published>2019-04-02T21:37:00.006+05:30</published><updated>2024-10-14T21:42:23.816+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="image"/><category scheme="http://www.blogger.com/atom/ns#" term="status download"/><category scheme="http://www.blogger.com/atom/ns#" term="video"/><category scheme="http://www.blogger.com/atom/ns#" term="Whats app status"/><title type='text'>How to Download WhatsApp Status</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;style&gt;
* {
  box-sizing: border-box;
}

.column {
  float: left;
  width: 33.33%;
  padding: 5px;
}

/* Clearfix (clear floats) */
.row::after {
  content: &quot;&quot;;
  clear: both;
  display: table;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div class=&quot;row&quot;&gt;
  &lt;div class=&quot;column&quot;&gt;
    &lt;img alt=&quot;Snow&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfhpZkTnNCePjL8570AI39UQwulJ_ZUgBPeNUNVQBQano7ImUymWwyUICTPZIwG1zvUzfY4PheQmHH1uMzizL55iflXnpvPS1uFAcO2fr2JXGdfNi5DDGwmpS64ccNKPoB7KSihMD81nQ/s1600/a.png&quot; style=&quot;width: 100%;&quot; /&gt;
  &lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
    &lt;img alt=&quot;Forest&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF4yF_Wq303Jm0LSGxznkPr1fpgyjIDsnRBP-JmYUGTqz8PACcsNOtnyM6_0oeQVT6ZviQgvVj2ZbYvsd4diigvmadImRevlZzjUsjeICn8T6UTZa9EhDbCgSAyl-w5DRGBG2tCr5Im70/s1600/b.png&quot; style=&quot;width: 100%;&quot; /&gt;
  &lt;/div&gt;
&lt;div class=&quot;column&quot;&gt;
    &lt;img alt=&quot;Mountains&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkDcLRp_YjNQn75ltG4xQcERK4SiF7LR0eIU3uz4Xrx9B7a0SAWzGlTQfpiTboE_KnbnwoKg9Lo1rDtUouVHlHGJ5qsJyNrhUZReSsE4jefExBsTWLcpfy_yDUSFT20CI5H0FfNkeIn8k/s1600/d.png&quot; style=&quot;width: 100%;&quot; /&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;Play Store Link&lt;/b&gt; :-&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.krishna.status&quot;&gt;click here&lt;/a&gt;&lt;/h3&gt;
&lt;br /&gt;
App Name:- Status download and share (Image,video and gif)&lt;br /&gt;
&lt;br /&gt;
Love your friend status and easy to share and download&lt;br /&gt;
&lt;br /&gt;
easy to download status like image,video and gif.&lt;br /&gt;
easy to share with social media and easy to share with your friend.&lt;br /&gt;
you can also download status and then after share with your friend.&lt;br /&gt;
You can also watch video in application player.&lt;br /&gt;
Image status easy to set as wallpaper and home screen in phone.&lt;br /&gt;
pin touch feature also available in image view&lt;br /&gt;
&lt;br /&gt;
Feature&lt;br /&gt;
1)You can also download business status&lt;br /&gt;
2)Share,download,set as wallpaper&lt;br /&gt;
3)Delete download status permanently&lt;br /&gt;
4)Full view image status&lt;br /&gt;
5)Video status easy to watch in application&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to use this application&lt;br /&gt;
&lt;br /&gt;
1)First of view status in application&lt;br /&gt;
2)Then after view in this application or download share and set as wallpaper and enjoy application&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;Source code&lt;/b&gt;&amp;nbsp;:-&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;https://krishnaappworlds.blogspot.com/2019/06/how-to-find-whatsapp-status-in-android.html&quot;&gt;click here&lt;/a&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://krishnaappworlds.blogspot.com/feeds/1503841189145455217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://krishnaappworlds.blogspot.com/2019/04/whats-app-status-download-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/1503841189145455217'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/1503841189145455217'/><link rel='alternate' type='text/html' href='https://krishnaappworlds.blogspot.com/2019/04/whats-app-status-download-app.html' title='How to Download WhatsApp Status'/><author><name>Krishna App Worlds</name><uri>http://www.blogger.com/profile/13492301509239354248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCbyWb21IGK4YLWwcs-xNFWaPpkFJI3fbiLWd9hXbcYVKVVRQQSiU2VRla7KNusQcAJev6Xr7Xa0GUYK-CUOoZkrN2GNcdMvAjjuPN7_UCXmY2N8aoVS48jtxoicuBuq0/s220/17015754_10158609862795508_565470149047945397_o.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfhpZkTnNCePjL8570AI39UQwulJ_ZUgBPeNUNVQBQano7ImUymWwyUICTPZIwG1zvUzfY4PheQmHH1uMzizL55iflXnpvPS1uFAcO2fr2JXGdfNi5DDGwmpS64ccNKPoB7KSihMD81nQ/s72-c/a.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6036243090803825957.post-829699951840223322</id><published>2018-11-19T20:11:00.006+05:30</published><updated>2023-08-15T11:00:39.582+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Krishna app worlds"/><category scheme="http://www.blogger.com/atom/ns#" term="Privacy Policy"/><title type='text'>Privacy Policy Krishna app worlds</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;background-color: white; line-height: 24px; margin-bottom: 16px; padding: 0px;&quot;&gt;&lt;div style=&quot;font-family: roboto, helvetica, sans-serif; font-size: 14px;&quot;&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;h2 style=&quot;font-family: roboto, helvetica, arial, sans-serif; font-size: 45px; font-weight: 400; line-height: 48px; margin: 24px 0px; padding: 0px; text-align: center;&quot;&gt;Privacy Policy&lt;/h2&gt;&lt;div&gt;&lt;b&gt;Last Update :- 15-08-2023&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;Krishna app worlds built the open source applications&amp;nbsp;app as an Ad Supported app. This SERVICE is provided by Krishna app worlds at no cost and is intended for use as is.&lt;/div&gt;&amp;nbsp;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;This page is used to inform visitors regarding our policies with the collection, use, and disclosure of Personal Information if anyone decided to use our Service.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;If you choose to use our Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that we collect is used for providing and improving the Service. We will not use or share your information with anyone except as described in this Privacy Policy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Information Collection and Use&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For a better experience, while using our Service, we may require you to provide us with certain personally identifiable information. The information that we request will be retained by us and used as described in this privacy policy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;The app does use third-party services that may collect information used to identify you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Link to the privacy policy of third-party service providers used by the app&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Google Play Services&lt;/li&gt;&lt;li&gt;AdMob&lt;/li&gt;&lt;li&gt;Google Analytics for Firebase&lt;/li&gt;&lt;li&gt;Firebase Crashlytics&lt;/li&gt;&lt;li&gt;Log Data&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We want to inform you that whenever you use our Service, in a case of an error in the app we collect data and information (through third-party products) on your phone called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilizing our Service, the time and date of your use of the Service, and other statistics.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Cookies&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device&#39;s internal memory.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;This Service does not use these “cookies” explicitly. However, the app may use third-party code and libraries that use “cookies” to collect information and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Service Providers&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;We may employ third-party companies and individuals due to the following reasons:&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;ul&gt;&lt;li&gt;To facilitate our Service;&lt;/li&gt;&lt;li&gt;To provide the Service on our behalf;&lt;/li&gt;&lt;li&gt;To perform Service-related services; or&lt;/li&gt;&lt;li&gt;To assist us in analyzing how our Service is used.&lt;/li&gt;&lt;li&gt;We want to inform users of this Service that these third parties have access to their Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Security&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;We value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and we cannot guarantee its absolute security.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Links to Other Sites&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by us. Therefore, we strongly advise you to review the Privacy Policy of these websites. We have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Children’s Privacy&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;These Services do not address anyone under the age of 13. We do not knowingly collect personally identifiable information from children under 13 years of age. In the case we discover that a child under 13 has provided us with personal information, we immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact us so that we will be able to do the necessary actions.&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;Changes to This Privacy Policy&lt;/b&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;We may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;The terms of condition used in the same meaning Privacy Policy .which is accessible at krishna app worlds unless otherwise defined in this Privacy Policy.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;Krishna application follow the rule of GDPR(General Data Protection Regulation)&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; trbidi=&quot;on&quot;&gt;If you any query then feel free to contact&amp;nbsp;&lt;a href=&quot;mailto:krishna.app.worlds@gmail.com&quot;&gt;krishna.app.worlds@gmail.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot; /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://krishnaappworlds.blogspot.com/feeds/829699951840223322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://krishnaappworlds.blogspot.com/2018/11/privacy-policy-krishna-app-worlds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/829699951840223322'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/6036243090803825957/posts/default/829699951840223322'/><link rel='alternate' type='text/html' href='https://krishnaappworlds.blogspot.com/2018/11/privacy-policy-krishna-app-worlds.html' title='Privacy Policy Krishna app worlds'/><author><name>Krishna App Worlds</name><uri>http://www.blogger.com/profile/13492301509239354248</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCbyWb21IGK4YLWwcs-xNFWaPpkFJI3fbiLWd9hXbcYVKVVRQQSiU2VRla7KNusQcAJev6Xr7Xa0GUYK-CUOoZkrN2GNcdMvAjjuPN7_UCXmY2N8aoVS48jtxoicuBuq0/s220/17015754_10158609862795508_565470149047945397_o.jpg'/></author><thr:total>0</thr:total></entry></feed>