Skip to content

Instantly share code, notes, and snippets.

package com.example.awesometodolistapp;
import android.arch.persistence.room.Room;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import android.util.Log;
import com.example.awesometodolistapp.data.common.DataConstants;
import com.example.awesometodolistapp.data.common.DataUtils;
@sahilpatel14
sahilpatel14 / roomdb.md
Created May 28, 2018 16:34
Return values of Create, Update, Delete queries in sqlite db (Using Room in this case)

I configured my Room query responses as per the official docs during db layer setup. While writing unit test for the layer, I realised some anomalises in many edge cases.

Following are my findings based on a number of use cases that i tried with insert(), update() and delete() query. We are running all these queries on a very basic table called Task.

The table schema looks something like this :

    /*
     *   task_table
     *   id -> String PrimaryKey
 * status -> String, Not Null
@sahilpatel14
sahilpatel14 / activity_main.xml
Created March 29, 2018 10:42
A simple usecase for having coloured button without loosing its elevation and button. Changing the background of a button to a color looses its shadow and ripple effect.
<Button
style="@style/Widget.AppCompat.Button.Colored"
android:elevation="10dp"
android:translationZ="2dp"
android:stateListAnimator="@null"
android:text="Yolo"
android:theme="@style/BlueButtonTheme"
android:layout_width="180dp"
android:layout_height="60dp" />
@sahilpatel14
sahilpatel14 / Db naming conventions
Created March 21, 2018 08:40
I saw this stack overflow answer to how to name your variables/ tables etc which setting up a database. Link to the post is inside.
Late answer here, but in short:
My preference is plural
Yes
Tables: *Usually* no prefixes is best. Columns: No.
Both tables and columns: Pascal casing.
Elaboration:
(1) What you must do. There are very few things that you must do a certain way, every time, but there are a few.
package com.rapidbizapps.sample
import android.graphics.BitmapFactory
import android.media.ThumbnailUtils
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import kotlinx.android.synthetic.main.activity_test_couchbase.*
import android.graphics.Bitmap
import com.couchbase.lite.Blob
@sahilpatel14
sahilpatel14 / TestCouchbaseActivity.kt
Created January 16, 2018 10:57
Trying to save couchbase Blob having a JPG file.
package com.rapidbizapps.sample
import android.graphics.BitmapFactory
import android.media.ThumbnailUtils
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import kotlinx.android.synthetic.main.activity_test_couchbase.*
import android.graphics.Bitmap
import com.couchbase.lite.Blob
@sahilpatel14
sahilpatel14 / ContactsActivityBad.java
Created November 23, 2017 06:07
Listeners leak, Example.
package com.rapidbizapps.wifip2pscratch.snippets.listeners_leak;
import android.app.Fragment;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.rapidbizapps.wifip2pscratch.R;
package com.rapidbizapps.wifip2pscratch.snippets.listeners_leak;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.rapidbizapps.wifip2pscratch.R;
/**
@sahilpatel14
sahilpatel14 / ContactsActivityGood.java
Created November 23, 2017 06:02
listeners_leak_solution
package com.rapidbizapps.wifip2pscratch.snippets.listeners_leak;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.rapidbizapps.wifip2pscratch.R;
/**
@sahilpatel14
sahilpatel14 / LayoutActivity.java
Created September 12, 2017 06:02
Creating Views from java code instead of xml.
package com.example.android.sunshine;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.annotation.IdRes;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;