package com.tutosandroidfrance.dagger2sample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import com.tutosandroidfrance.dagger2sample.dagger2.component.DaggerGithubComponent;
import com.tutosandroidfrance.dagger2sample.dagger2.component.GithubComponent;
import com.tutosandroidfrance.dagger2sample.model.Repo;
import com.tutosandroidfrance.dagger2sample.webservice.GithubService;
import java.util.List;
import javax.inject.Inject;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
public class MainActivity extends AppCompatActivity {
@Inject
GithubService githubService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//je demande à mon GithubComponent d'injecter les dépendances dans cette activity
Application.app().component().inject(this);
//une fois le GithubComponent créer par Dagger2, nous pouvons récupérer le GithubService qu'il a créé
// GithubService githubService = githubComponent.githubService();
//on peux maintenant utiliser notre webservice REST via Retrofit
githubService.listRepos("florent37", new Callback<List<Repo>>() {
@Override
public void success(List<Repo> repos, Response response) {
Toast.makeText(MainActivity.this, repos.size() + " repos", Toast.LENGTH_LONG).show();
}
@Override
public void failure(RetrofitError error) {
Toast.makeText(MainActivity.this, error.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
}