Skip to content

Instantly share code, notes, and snippets.

View makovkastar's full-sized avatar

Oleksandr Melnykov makovkastar

View GitHub Profile
class AndroidTestApplication : Application()
class MvvmTestingApplication : DaggerApplication() {
override fun onCreate() {
super.onCreate()
Injector.init(this)
}
override fun applicationInjector(): AndroidInjector<out DaggerApplication> {
return DaggerAppComponent.builder().application(this).build()
}
interface Injectable
object Injector {
fun init(application: MvvmTestingApplication) {
application.registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks {
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
if (activity is HasSupportFragmentInjector && activity is Injectable) {
AndroidInjection.inject(activity)
}
if (activity is FragmentActivity) {
activity.supportFragmentManager.registerFragmentLifecycleCallbacks(
class LoginFragment : Fragment(), Injectable {
@Inject
@VisibleForTesting
lateinit var viewModelFactory: ViewModelProvider.Factory
private lateinit var dataBinding: LoginFragmentBinding
private lateinit var viewModel: LoginViewModel
class LoginViewModel @Inject constructor(private val loginGateway: LoginGateway) : ViewModel() {
val emailField = ObservableField<String>()
val passwordField = ObservableField<String>()
val isSignInButtonEnabled = ObservableBoolean()
val isProgressBarVisible = ObservableBoolean()
val navigateToForgotPasswordPage = SingleLiveEvent<Unit>()
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<!--suppress AndroidUnknownAttribute -->
<data class="LoginFragmentBinding">
<variable
name="viewModel"
type="com.melnykov.mvvmtesting.ui.login.LoginViewModel" />
@Parcelize
@SuppressLint("ParcelCreator")
data class HomeChargerLocation(val connectionId: String,
val intervalEnabled: Boolean,
val clusterReference: String,
val address: Address,
val car: Car,
val status: Status) : Parcelable {
@Parcelize
package com.melnykov.booktracker.util;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.MediaStore;
import android.widget.Toast;
@makovkastar
makovkastar / MainActivity
Created September 4, 2014 18:13
Initally hide the FAB and show it with an animation.
public class MainActivity extends ListActivity {
private Handler mHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final FloatingActionButton floatingActionButton = (FloatingActionButton) findViewById(R.id.button_floating_action);
floatingActionButton.attachToListView(getListView());