Skip to content

Instantly share code, notes, and snippets.

View alaershov's full-sized avatar

Alexey Ershov alaershov

View GitHub Profile
@RunWith(MockitoJUnitRunner.class)
public final class LoginPresenterTest {
private static final String LOGIN_CORRECT = "79990001234";
private static final String LOGIN_WRONG = "79990001111";
private static final String PASSWORD_CORRECT = "123456";
private static final String PASSWORD_WRONG = "111222333";
private static final UserInfo USER_INFO = UserInfo.fromLogin(LOGIN_CORRECT);
@Mock
@alaershov
alaershov / BookActivity.kt
Last active May 21, 2018 09:30
Moxy + Toothpick
package ru.improvegroup.bookahut.presentation.ui.book
import android.os.Bundle
import android.widget.TextView
import android.widget.Toast
import butterknife.BindView
import butterknife.ButterKnife
import com.arellomobile.mvp.presenter.InjectPresenter
import com.arellomobile.mvp.presenter.ProvidePresenter
import ru.improvegroup.bookahut.R
@alaershov
alaershov / DomainUnitTest.java
Created December 29, 2018 19:18
Gradle api vs compile
package com.alaershov.gradletest;
import com.alaershov.domain.Domain;
import org.junit.Test;
public class DomainUnitTest {
@Test
public void domain() {
new Domain();
@alaershov
alaershov / SingleActivity.kt
Created March 19, 2019 09:28
Back press handling
override fun onBackPressed() {
val fragment = supportFragmentManager.findFragmentById(R.id.layout_container)
if (fragment != null
&& fragment is BackButtonListener
&& fragment.onBackPressed()) {
return
} else {
super.onBackPressed()
}
}
@alaershov
alaershov / build.gradle
Last active January 8, 2020 12:03
Toothpick: Gradle dependency
dependencies {
// ядро библиотеки
implementation 'com.github.stephanenicolas.toothpick:toothpick-runtime:3.1.0'
// плюшки для Android
implementation 'com.github.stephanenicolas.toothpick:smoothie-androidx:3.1.0'
// процессор аннотаций для генерации кода
annotationProcessor 'com.github.stephanenicolas.toothpick:toothpick-compiler:3.1.0'
}
@alaershov
alaershov / UserRepository.java
Created June 4, 2019 17:04
Toothpick: User repository with no DI
public final class UserRepository {
private final SharedPreferences sharedPreferences;
public UserRepository(SharedPreferences sharedPreferences) {
this.sharedPreferences = sharedPreferences;
}
public User getUser() {
// ...
@alaershov
alaershov / UserActivity.java
Created June 4, 2019 17:10
Toothpick: UserActivity with no DI
public final class UserActivity extends AppCompatActivity {
private UserRepository userRepository;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
userRepository = new UserRepository(getSharedPreferences("app.prefs", MODE_PRIVATE));
}
}
@alaershov
alaershov / UserRepository.java
Created June 4, 2019 17:12
Toothpick: user repository with Inject
public final class UserRepository {
private final SharedPreferences sharedPreferences;
@Inject
public UserRepository(SharedPreferences sharedPreferences) {
this.sharedPreferences = sharedPreferences;
}
// ...
@alaershov
alaershov / UserActivity.java
Last active June 7, 2019 06:25
Toothpick: UserActivity with Inject
public final class UserActivity extends AppCompatActivity {
// поле больше не приватное
@Inject
UserRepository userRepository;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@alaershov
alaershov / App.java
Created June 4, 2019 17:30
Toothpick: open App scope
public final class App extends Application {
@Override
public void onCreate() {
super.onCreate();
Scope appScope = Toothpick.openScope("APP");
}
}