Skip to content

Instantly share code, notes, and snippets.

View alaershov's full-sized avatar

Alexey Ershov alaershov

View GitHub Profile
@alaershov
alaershov / RepositoryModule.java
Last active January 8, 2020 12:03
Toothpick: bind to singleton
public final class RepositoryModule extends Module {
public RepositoryModule(Context context) {
bind(UserRepository.class)
.to(PrefUserRepository.class)
.singleton();
}
}
@alaershov
alaershov / RepositoryModule.java
Created June 4, 2019 17:47
Toothpick: bind to an interface
public final class RepositoryModule extends Module {
public RepositoryModule(Context context) {
bind(UserRepository.class).to(PrefUserRepository.class);
...
}
}
@alaershov
alaershov / PrefUserRepository .java
Last active June 6, 2019 15:49
Toothpick: repository with an interface
public final class PrefUserRepository implements UserRepository {
private final SharedPreferences sharedPreferences;
@Inject
public PrefUserRepository(SharedPreferences sharedPreferences) {
this.sharedPreferences = sharedPreferences;
}
@Override
@alaershov
alaershov / RepositoryModule.java
Created June 4, 2019 17:40
Toothpick: bind to instance
public final class RepositoryModule extends Module {
public RepositoryModule(Context context) {
bind(UserRepository.class);
SharedPreferences sharedPreferences = context.getSharedPreferences("app.prefs", MODE_PRIVATE);
bind(SharedPreferences.class).toInstance(sharedPreferences);
}
}
@alaershov
alaershov / RepositoryModule.java
Created June 4, 2019 17:36
Toothpick: simple bind
public final class RepositoryModule extends Module {
public RepositoryModule() {
bind(UserRepository.class);
}
}
@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");
}
}
@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 / 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
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: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() {
// ...