Skip to content

Instantly share code, notes, and snippets.

View gaurav414u's full-sized avatar
🎯
Focusing

Gaurav Bhola gaurav414u

🎯
Focusing
  • Google
  • Bangalore
View GitHub Profile
public class ResourceEvent<T> {
public enum Status {SUCCESS, ERROR, LOADING}
private Status mStatus;
private T mData;
private String mMessage;
public ResourceEvent() {
this(Status.LOADING, null, null);
}
public abstract class NetworkBoundTask<ResponseType, EventType extends ResourceEvent<ResponseType>> implements Runnable {
EventBus mEventBus;
public NetworkBoundTask(EventBus eventBus) {
mEventBus = eventBus;
mEventBus.post((EventType) getNewEventWithCachedData());
}
@Override
public void run() {
public class AppExecutors {
private final Executor networkIO;
private final Executor diskIO;
private final Executor mainThread;
public AppExecutors(Executor networkIO, Executor diskIO, Executor mainThread) {
this.networkIO = networkIO;
this.diskIO = diskIO;
this.mainThread = mainThread;
}
@gaurav414u
gaurav414u / values_base_colors.xml
Last active December 15, 2019 15:19
Translucent bars base values
<resources>
<color name="system_ui_scrim_light">#E3ffffff</color>
<color name="system_ui_scrim_dark">#C3000000</color>
<color name="status_bar_scrim">@color/system_ui_scrim_dark</color>
<color name="nav_bar_scrim">@color/status_bar_scrim</color>
</resources>
@gaurav414u
gaurav414u / values-night_colors.xml
Last active December 15, 2019 15:21
Translucent bars values-night
<resources>
<color name="status_bar_scrim">@color/system_ui_scrim_dark</color>
<!--nav_bar_scrim follows status_bar_scrim by default-->
</resources>
@gaurav414u
gaurav414u / values-v23_colors.xml
Created December 15, 2019 15:21
Translucent bars values-v23
<resources>
<color name="status_bar_scrim">@color/system_ui_scrim_light</color>
<color name="nav_bar_scrim">@color/system_ui_scrim_dark</color>
<!--navigationBar icons cannot be light so we can only use dark scrim-->
</resources>
@gaurav414u
gaurav414u / values-v27_colors.xml
Created December 15, 2019 15:39
Translucent bars values-v27
<resources>
<color name="nav_bar_scrim">@color/status_bar_scrim</color>
</resources>
@gaurav414u
gaurav414u / ActivityState.kt
Last active December 20, 2020 05:46
state driven activity
// Using kotlin for this class as it will be a one-liner :).
// - Immutable by default
// Alternatively, it can also be a sealed class. (code_beauty++)
data class ActivityState(val isLoading: Boolean, val result: Result?)
@gaurav414u
gaurav414u / DeclarativeActivity.kt
Created December 20, 2020 16:29
Declarative UI code.
class MyViewModel : ViewModel() {
private val _isLoading = MutableLiveData(false)
val isLoading: LiveData<Boolean> = _isLoading
private val _result = MutableLiveData(Result.EMPTY)
val result: LiveData<Result> = _result
fun fetchData() {
_isLoading.value = true
// Fetch data