Skip to content

Instantly share code, notes, and snippets.

View vestrel00's full-sized avatar
👨‍💻
Working, life, and the universe!

Vandolf Estrellado vestrel00

👨‍💻
Working, life, and the universe!
View GitHub Profile
@vestrel00
vestrel00 / ContactsContract-GetAllContacts.kt
Last active October 5, 2021 21:43
This code snippet is taken from https://github.com/aminography/CommonUtils/blob/master/library/src/main/java/com/aminography/commonutils/ContactUtils.kt I take no credit for this snippet. I'm just using it for my blog.
// First, we define a structure to store contact data we want to retrieve
data class ContactData(
val contactId: Long,
val name: String,
val phoneNumber: List<String>,
val avatar: Uri?
)
// Here are the functions to retrieve all contacts matching the search pattern
fun Context.retrieveAllContacts(
@vestrel00
vestrel00 / ButterknifeBindingExample.java
Last active June 14, 2018 03:46
B: 2 - Butterknife binding in onViewCreated vs onViewStateRestored
/**
* Logs lifecycle events and provides subclasses a method to bind the views, bindViews().
*
* Note that the bindViews() uses Butterknife to bind the views. However, the views
* can also be bound without using Butterknife. Using Butterknife or not
* plays no part in this demonstration.
*/
// BaseFragment.java
public abstract class BaseFragment extends Fragment {
@vestrel00
vestrel00 / Example1View.java
Created July 28, 2017 17:12
C: 4 - ui/example_1/view/Example1View.java
public interface Example1View extends MVPView {
void showSomething(String something);
}
@vestrel00
vestrel00 / Example1PresenterModule.java
Created July 28, 2017 17:04
C: 4 - ui/example_1/presenter/Example1PresenterModule.java
@Module
public abstract class Example1PresenterModule {
@Binds
@PerFragment
abstract Example1Presenter example1Presenter(Example1PresenterImpl example1PresenterImpl);
}
@vestrel00
vestrel00 / Example1PresenterImpl.java
Created July 28, 2017 16:50
C: 4 - ui/example_1/presenter/Example1PresenterImpl.java
@PerFragment
final class Example1PresenterImpl extends BasePresenter<Example1View> implements Example1Presenter {
private final SingletonUtil singletonUtil;
private final PerActivityUtil perActivityUtil;
private final PerFragmentUtil perFragmentUtil;
@Inject
Example1PresenterImpl(Example1View view, SingletonUtil singletonUtil,
PerActivityUtil perActivityUtil, PerFragmentUtil perFragmentUtil) {
@vestrel00
vestrel00 / Example1Presenter.java
Created July 28, 2017 16:48
C: 4 - ui/example_1/presenter/Example1Presenter.java
public interface Example1Presenter extends Presenter {
void onDoSomething();
}
@vestrel00
vestrel00 / Navigator.java
Created July 28, 2017 15:56
C: 2 - navigation/Navigator.java
@Singleton
public final class Navigator {
@Inject
Navigator() {
}
public void toExample1(Context context) {
Intent intent = new Intent(context, Example1Activity.class);
context.startActivity(intent);
@vestrel00
vestrel00 / BaseViewFragment.java
Created July 28, 2017 15:41
C: 1 - ui/common/view/BaseViewFragment.java
public abstract class BaseViewFragment<T extends Presenter> extends BaseFragment
implements MVPView {
@Inject
protected T presenter;
@Override
public void onViewStateRestored(Bundle savedInstanceState) {
super.onViewStateRestored(savedInstanceState);
// Only start the presenter when the views have been bound.
@vestrel00
vestrel00 / BasePresenter.java
Created July 28, 2017 15:37
C: 1 - ui/common/presenter/BasePresenter.java
public abstract class BasePresenter<T extends MVPView> implements Presenter {
protected final T view;
protected BasePresenter(T view) {
this.view = view;
}
@Override
public void onStart(@Nullable Bundle savedInstanceState) {
@vestrel00
vestrel00 / Presenter.java
Created July 28, 2017 15:07
C: 1 - ui/common/presenter/Presenter.java
public interface Presenter {
/**
* Starts the presentation. This should be called in the view's (Activity or Fragment)
* onCreate() or onViewStatedRestored() method respectively.
*
* @param savedInstanceState the saved instance state that contains state saved in
* {@link #onSaveInstanceState(Bundle)}
*/
void onStart(@Nullable Bundle savedInstanceState);