// 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/Router.java
// public class Router {
//     public static void studentDetailScreen(Context context, Student student) {
//         Intent intent = new Intent(context, StudentDetailActivity.class);
//         intent.putExtra(StudentDetailActivity.STUDENT, student);
//         context.startActivity(intent);
//     }
// }
// 
// Path: base-v7/src/main/java/io/kimo/base/v7/BaseAppCompatActivity.java
// public abstract class BaseAppCompatActivity <P extends Base.Presenter>
//         extends AppCompatActivity
//         implements Base.View<P> {
// 
//     private P mPresenter;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
// 
//         setContentView(getLayoutResource());
//         mPresenter = injectDependencies();
// 
//         if(getPresenter() == null) {
//             throw new IllegalArgumentException("You must inject the " +
//                     "dependencies before retrieving the presenter");
//         } else {
//             mapUI(findViewById(android.R.id.content));
//             configureUI();
//         }
// 
//         mPresenter.createView();
//     }
// 
//     @Override
//     protected void onDestroy() {
//         super.onDestroy();
//         mPresenter.destroyView();
//     }
// 
//     @Override
//     public P getPresenter() {
//         return mPresenter;
//     }
// }


import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import io.kimo.base.example.R;
import io.kimo.base.example.data.Student;
import io.kimo.base.example.ui.Router;
import io.kimo.base.v7.BaseAppCompatActivity;
        });
    }

    @Override
    public StudentListPresenter injectDependencies() {
        return new StudentListPresenter(this, this);
    }

    public class StudentListAdapter extends BaseAdapter {

        private List<Student> mData = new ArrayList<>();
        private LayoutInflater mLayoutInflater;

        public StudentListAdapter(Context context) {
            mLayoutInflater = LayoutInflater.from(context);
        }

        public void setData(List<Student> newData) {
            mData.clear();
            mData.addAll(newData);

            notifyDataSetChanged();
        }

        @Override
        public int getCount() {
            return mData.size();
        }

        @Override
// 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/Router.java
// public class Router {
//     public static void studentDetailScreen(Context context, Student student) {
//         Intent intent = new Intent(context, StudentDetailActivity.class);
//         intent.putExtra(StudentDetailActivity.STUDENT, student);
//         context.startActivity(intent);
//     }
// }
// 
// Path: base-v7/src/main/java/io/kimo/base/v7/BaseAppCompatActivity.java
// public abstract class BaseAppCompatActivity <P extends Base.Presenter>
//         extends AppCompatActivity
//         implements Base.View<P> {
// 
//     private P mPresenter;
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
// 
//         setContentView(getLayoutResource());
//         mPresenter = injectDependencies();
// 
//         if(getPresenter() == null) {
//             throw new IllegalArgumentException("You must inject the " +
//                     "dependencies before retrieving the presenter");
//         } else {
//             mapUI(findViewById(android.R.id.content));
//             configureUI();
//         }
// 
//         mPresenter.createView();
//     }
// 
//     @Override
//     protected void onDestroy() {
//         super.onDestroy();
//         mPresenter.destroyView();
//     }
// 
//     @Override
//     public P getPresenter() {
//         return mPresenter;
//     }
// }


// Path: example/src/main/java/io/kimo/base/example/ui/list/StudentListActivity.java
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import io.kimo.base.example.R;
import io.kimo.base.example.data.Student;
import io.kimo.base.example.ui.Router;
import io.kimo.base.v7.BaseAppCompatActivity;

        });
    }

    @Override
    public StudentListPresenter injectDependencies() {
        return new StudentListPresenter(this, this);
    }

    public class StudentListAdapter extends BaseAdapter {

        private List<Student> mData = new ArrayList<>();
        private LayoutInflater mLayoutInflater;

        public StudentListAdapter(Context context) {
            mLayoutInflater = LayoutInflater.from(context);
        }

        public void setData(List<Student> newData) {
            mData.clear();
            mData.addAll(newData);

            notifyDataSetChanged();
        }

        @Override
        public int getCount() {
            return mData.size();
        }

        @Override
        public Student getItem(int position) {