// Path: base/src/main/java/io/kimo/base/Presenter.java
// public abstract class Presenter<V extends Base.View> implements Base.Presenter {
// 
//     private V mView;
// 
//     public Presenter(V view) {
//         this.mView = view;
//         if(getView() == null) {
//             throw new IllegalArgumentException("View cannot be null");
//         }
//     }
// 
//     @Override
//     public void destroyView() {}
// 
//     public V getView() {
//         return mView;
//     }
// }
// 
// Path: example/src/main/java/io/kimo/base/example/data/Student.java
// public class Student implements Serializable {
//     private String name;
//     private String description;
//     private String course;
//     private String imageUrl;
// 
//     public Student(String name, String description, String imageUrl, String course) {
//         this.name = name;
//         this.description = description;
//         this.imageUrl = imageUrl;
//         this.course = course;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String getCourse() {
//         return course;
//     }
// 
//     public String getImageUrl() {
//         return imageUrl;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// }


import android.content.Context;
import java.util.ArrayList;
import java.util.List;
import io.kimo.base.Presenter;
import io.kimo.base.example.data.Student;
import io.kimo.lib.faker.Faker;
package io.kimo.base.example.ui.list;




public class StudentListPresenter extends Presenter<StudentListContract.View> implements StudentListContract.Presenter {

    private Context mContext;
    private List<Student> mStudents = new ArrayList<>();

    public StudentListPresenter(StudentListContract.View view, Context context) {
        super(view);
        mContext = context;
    }

    @Override
    public void createView() {
        getView().showLoading();
        fetchDataFromSomewhere();
    }

    @Override
    public void destroyView() {}

    @Override
    public void fetchDataFromSomewhere() {
        mStudents.clear();

        Faker faker = Faker.with(mContext);

        for(int i = 0; i < 30; i++) {
            String name = faker.Name.fullName();
            String description = faker.Lorem.paragraph();
            String course = faker.Name.title();
            String imageUrl = faker.Url.avatar();
// Path: base/src/main/java/io/kimo/base/Presenter.java
// public abstract class Presenter<V extends Base.View> implements Base.Presenter {
// 
//     private V mView;
// 
//     public Presenter(V view) {
//         this.mView = view;
//         if(getView() == null) {
//             throw new IllegalArgumentException("View cannot be null");
//         }
//     }
// 
//     @Override
//     public void destroyView() {}
// 
//     public V getView() {
//         return mView;
//     }
// }
// 
// Path: example/src/main/java/io/kimo/base/example/data/Student.java
// public class Student implements Serializable {
//     private String name;
//     private String description;
//     private String course;
//     private String imageUrl;
// 
//     public Student(String name, String description, String imageUrl, String course) {
//         this.name = name;
//         this.description = description;
//         this.imageUrl = imageUrl;
//         this.course = course;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String getCourse() {
//         return course;
//     }
// 
//     public String getImageUrl() {
//         return imageUrl;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// }


// Path: example/src/main/java/io/kimo/base/example/ui/list/StudentListPresenter.java
import android.content.Context;
import java.util.ArrayList;
import java.util.List;
import io.kimo.base.Presenter;
import io.kimo.base.example.data.Student;
import io.kimo.lib.faker.Faker;

package io.kimo.base.example.ui.list;




public class StudentListPresenter extends Presenter<StudentListContract.View> implements StudentListContract.Presenter {

    private Context mContext;
    private List<Student> mStudents = new ArrayList<>();

    public StudentListPresenter(StudentListContract.View view, Context context) {
        super(view);
        mContext = context;
    }

    @Override
    public void createView() {
        getView().showLoading();
        fetchDataFromSomewhere();
    }

    @Override
    public void destroyView() {}

    @Override
    public void fetchDataFromSomewhere() {
        mStudents.clear();

        Faker faker = Faker.with(mContext);

        for(int i = 0; i < 30; i++) {
            String name = faker.Name.fullName();
            String description = faker.Lorem.paragraph();
            String course = faker.Name.title();
            String imageUrl = faker.Url.avatar();
            mStudents.add(new Student(name,description, imageUrl, course));