diff --git a/.idea/modules.xml b/.idea/modules.xml
index 1b3ccab..0092c81 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,8 +2,10 @@
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index b963ad0..859335c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -30,9 +30,9 @@ dependencies {
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support:recyclerview-v7:26.+'
compile 'com.android.support:cardview-v7:26.+'
- compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha8'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
+ compile 'com.squareup.picasso:picasso:2.5.2'
testCompile 'junit:junit:4.12'
}
repositories {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 363fe63..b393510 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,17 +11,21 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
-
-
-
-
+
+
-
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt
deleted file mode 100644
index f8ad985..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.codingblocks.restapiretrofitjson
-
-import android.content.Intent
-import android.support.v7.app.AppCompatActivity
-import android.os.Bundle
-import com.codingblocks.restapiretrofitjson.activities.PostsActivity
-import com.codingblocks.restapiretrofitjson.activities.TodosActivity
-import com.codingblocks.restapiretrofitjson.activities.UsersActivity
-
-import kotlinx.android.synthetic.main.activity_main.*
-
-class MainActivity : AppCompatActivity() {
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
-
- btnPosts.setOnClickListener({
- startActivity(Intent(this@MainActivity, PostsActivity::class.java))
- })
-
- btnUsers.setOnClickListener({
- startActivity(Intent(this@MainActivity, UsersActivity::class.java))
- })
-
- btnTodos.setOnClickListener({
- startActivity(Intent(this@MainActivity, TodosActivity::class.java))
- })
-
-
- }
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/AlbumActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/AlbumActivity.java
new file mode 100644
index 0000000..db687f0
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/AlbumActivity.java
@@ -0,0 +1,58 @@
+package com.codingblocks.restapiretrofitjson.activities;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.adapters.AlbumAdapter;
+import com.codingblocks.restapiretrofitjson.apis.AlbumApi;
+import com.codingblocks.restapiretrofitjson.apis.RestApi;
+import com.codingblocks.restapiretrofitjson.interfaces.OnButtonClickListener;
+import com.codingblocks.restapiretrofitjson.models.Album;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class AlbumActivity extends AppCompatActivity {
+
+ private static final String TAG = "AlbumActivity";
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_album);
+
+ RecyclerView recyclerView = (RecyclerView)findViewById(R.id.rv_Album);
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+ final AlbumAdapter albumAdapter = new AlbumAdapter(new ArrayList(),this);
+ recyclerView.setAdapter(albumAdapter);
+
+ AlbumApi albumApi = RestApi.getInstance().getAlbumApi();
+ albumApi.getAlbums().enqueue(new Callback>() {
+ @Override
+ public void onResponse(@NonNull Call> call, @NonNull Response> response) {
+ albumAdapter.updateList(response.body());
+ }
+ @Override
+ public void onFailure(@NonNull Call> call, @NonNull Throwable t) {
+ Log.d(TAG, "onFailure: ");
+ }
+ });
+ albumAdapter.setOnButtonClickListener(new OnButtonClickListener() {
+ @Override
+ public void onButtonClicked(int Id, int buttonId) {
+ Intent i = new Intent(AlbumActivity.this,PhotosActivity.class);
+ i.putExtra("albumId",Id);
+ startActivity(i);
+ }
+ });
+
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.java
new file mode 100644
index 0000000..ed69347
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.java
@@ -0,0 +1,49 @@
+package com.codingblocks.restapiretrofitjson.activities;
+
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.adapters.CommentsAdapter;
+import com.codingblocks.restapiretrofitjson.apis.CommentApi;
+import com.codingblocks.restapiretrofitjson.apis.RestApi;
+import com.codingblocks.restapiretrofitjson.models.Comment;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class CommentsActivity extends AppCompatActivity {
+
+ private static final String TAG = "CommentsActivity";
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_comments);
+
+ final RecyclerView recyclerView = (RecyclerView)findViewById(R.id.rv_comments);
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+ final CommentsAdapter commentsAdapter = new CommentsAdapter(new ArrayList(),this);
+ recyclerView.setAdapter(commentsAdapter);
+
+ CommentApi commentApi = RestApi.getInstance().getCommentApi();
+ commentApi.getCommentsByPostId(getIntent().getIntExtra("postId",-1)).enqueue(new Callback>() {
+ @Override
+ public void onResponse(@NonNull Call> call, @NonNull Response> response) {
+ Log.d(TAG, "onResponse: "+response.body());
+ commentsAdapter.updateList(response.body());
+ }
+
+ @Override
+ public void onFailure(@NonNull Call> call, @NonNull Throwable t) {
+ Log.d(TAG, "onFailure: ");
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt
deleted file mode 100644
index a5607aa..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.codingblocks.restapiretrofitjson.activities
-
-import android.support.v7.app.AppCompatActivity
-import android.os.Bundle
-import android.support.v7.widget.LinearLayoutManager
-
-import com.codingblocks.restapiretrofitjson.R
-import com.codingblocks.restapiretrofitjson.adapters.CommentAdapter
-import com.codingblocks.restapiretrofitjson.api.API
-import com.codingblocks.restapiretrofitjson.models.Comment
-import kotlinx.android.synthetic.main.activity_comments.*
-
-import kotlinx.android.synthetic.main.activity_comments.view.*
-import retrofit2.Call
-import retrofit2.Callback
-import retrofit2.Response
-import retrofit2.Retrofit
-
-class CommentsActivity : AppCompatActivity() {
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_comments)
-
- val commentAdapter = CommentAdapter(this, ArrayList())
- rvCommentsList.layoutManager = LinearLayoutManager(this)
- rvCommentsList.adapter = commentAdapter
-
-
-
- API.getInstance().commentsAPI.getCommentsByPostId(intent.getIntExtra("postId", 0))
- .enqueue(object : Callback> {
- override fun onFailure(call: Call>?, t: Throwable?) {
- //
- }
-
- override fun onResponse(call: Call>?, response: Response>?) {
- //
- commentAdapter.updateComments(response!!.body()!!)
- }
- })
- }
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/MainActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/MainActivity.java
new file mode 100644
index 0000000..5fd698a
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/MainActivity.java
@@ -0,0 +1,47 @@
+package com.codingblocks.restapiretrofitjson.activities;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+
+import com.codingblocks.restapiretrofitjson.R;
+
+public class MainActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ findViewById(R.id.btn_users).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent i = new Intent(MainActivity.this,UserActivity.class);
+ startActivity(i);
+ }
+ });
+ findViewById(R.id.btn_posts).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent i = new Intent(MainActivity.this,PostActivity.class);
+ startActivity(i);
+ }
+ });
+ findViewById(R.id.btn_album).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent i = new Intent(MainActivity.this,AlbumActivity.class);
+ startActivity(i);
+
+ }
+ });
+ findViewById(R.id.btn_todo).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent i = new Intent(MainActivity.this,TodoActivity.class);
+ startActivity(i);
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PhotoViewActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PhotoViewActivity.java
new file mode 100644
index 0000000..ea28922
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PhotoViewActivity.java
@@ -0,0 +1,23 @@
+package com.codingblocks.restapiretrofitjson.activities;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.squareup.picasso.Picasso;
+
+public class PhotoViewActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_photo_view);
+
+ ImageView imageView = (ImageView)findViewById(R.id.iv_photo);
+ TextView textView = (TextView)findViewById(R.id.tv_photo);
+ Picasso.with(this).load(getIntent().getStringExtra("url")).into(imageView);
+ textView.setText(getIntent().getStringExtra("title"));
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PhotosActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PhotosActivity.java
new file mode 100644
index 0000000..5f28088
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PhotosActivity.java
@@ -0,0 +1,60 @@
+package com.codingblocks.restapiretrofitjson.activities;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.adapters.PhotosAdapter;
+import com.codingblocks.restapiretrofitjson.apis.PhotoApi;
+import com.codingblocks.restapiretrofitjson.apis.RestApi;
+import com.codingblocks.restapiretrofitjson.interfaces.OnPhotoClickListener;
+import com.codingblocks.restapiretrofitjson.models.Photo;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class PhotosActivity extends AppCompatActivity {
+
+ private static final String TAG = "PhotosActivity";
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_photos);
+ RecyclerView recyclerView = (RecyclerView)findViewById(R.id.rv_photo);
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+ final PhotosAdapter photosAdapter = new PhotosAdapter(new ArrayList(),this);
+ recyclerView.setAdapter(photosAdapter);
+
+ PhotoApi photoApi = RestApi.getInstance().getPhotoApi();
+ photoApi.getPhotosByAlbumId(getIntent().getIntExtra("albumId",-1)).enqueue(new Callback>() {
+ @Override
+ public void onResponse(@NonNull Call> call, @NonNull Response> response) {
+ photosAdapter.updateList(response.body());
+ }
+
+ @Override
+ public void onFailure(@NonNull Call> call, @NonNull Throwable t) {
+ Log.d(TAG, "onFailure: ");
+ }
+ });
+
+ photosAdapter.setOnPhotoClickListener(new OnPhotoClickListener() {
+ @Override
+ public void onPhotoClicked(String url, String title) {
+ Intent i = new Intent(PhotosActivity.this,PhotoViewActivity.class);
+ i.putExtra("url",url);
+ i.putExtra("title",title);
+ startActivity(i);
+ }
+ });
+
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostActivity.java
new file mode 100644
index 0000000..264c776
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostActivity.java
@@ -0,0 +1,65 @@
+package com.codingblocks.restapiretrofitjson.activities;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.adapters.PostsAdapter;
+import com.codingblocks.restapiretrofitjson.apis.PostApi;
+import com.codingblocks.restapiretrofitjson.apis.RestApi;
+import com.codingblocks.restapiretrofitjson.interfaces.OnButtonClickListener;
+import com.codingblocks.restapiretrofitjson.models.Post;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class PostActivity extends AppCompatActivity {
+ private static final String TAG = "PostActivity";
+ private PostsAdapter postsAdapter;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_post);
+ final RecyclerView recyclerView = (RecyclerView)findViewById(R.id.rv_posts);
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+ postsAdapter = new PostsAdapter(new ArrayList(),this);
+ recyclerView.setAdapter(postsAdapter);
+
+ PostApi postApi = RestApi.getInstance().getPostApi();
+ Call> call;
+ int userId = getIntent().getIntExtra("userId",-1);
+ if(userId==-1)
+ call = postApi.getPostsByUserId(null);
+ else
+ call = postApi.getPostsByUserId(userId);
+
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(@NonNull Call> call, @NonNull Response> response) {
+ postsAdapter.updateList(response.body());
+ }
+ @Override
+ public void onFailure(@NonNull Call> call, @NonNull Throwable t) {
+ Log.d(TAG, "onFailure: ");
+ t.printStackTrace();
+ }
+ });
+
+ postsAdapter.setOnButtonClickListener(new OnButtonClickListener() {
+ @Override
+ public void onButtonClicked(int Id, int buttonId) {
+ Intent i = new Intent(PostActivity.this,CommentsActivity.class);
+ i.putExtra("postId",Id);
+ startActivity(i);
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java
deleted file mode 100644
index b244f79..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.codingblocks.restapiretrofitjson.activities;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.util.Log;
-import android.view.View;
-
-import com.codingblocks.restapiretrofitjson.MainActivity;
-import com.codingblocks.restapiretrofitjson.R;
-import com.codingblocks.restapiretrofitjson.adapters.PostAdapter;
-import com.codingblocks.restapiretrofitjson.api.API;
-import com.codingblocks.restapiretrofitjson.api.PostsAPI;
-import com.codingblocks.restapiretrofitjson.interfaces.OnItemClickListener;
-import com.codingblocks.restapiretrofitjson.models.Post;
-
-import java.util.ArrayList;
-
-import retrofit2.Call;
-import retrofit2.Callback;
-import retrofit2.Response;
-
-public class PostsActivity extends AppCompatActivity {
-
- public static final String TAG = "PA";
-
- RecyclerView rvPostsList;
- PostAdapter postAdapter;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_posts);
-
- rvPostsList = (RecyclerView) findViewById(R.id.rvPostsList);
- rvPostsList.setLayoutManager(new LinearLayoutManager(this));
- postAdapter = new PostAdapter(this, new ArrayList());
- rvPostsList.setAdapter(postAdapter);
- postAdapter.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(int itemId, View view) {
- Intent i = new Intent(PostsActivity.this, CommentsActivity.class);
- i.putExtra("postId", itemId);
- startActivity(i);
- }
- });
-
-
- PostsAPI postsAPI = API.getInstance().getPostsAPI();
- Callback> postCallback = new Callback>() {
-
- @Override
- public void onResponse(Call> call, Response> response) {
- Log.d(TAG, "onResponse: ");
- postAdapter.updatePosts(response.body());
- }
-
- @Override
- public void onFailure(Call> call, Throwable t) {
-
- }
- };
- int userIdReceived = getIntent().getIntExtra("userId", -1);
- if (userIdReceived != -1) {
- postsAPI.getPostsByUserId(userIdReceived).enqueue(postCallback);
- } else {
- postsAPI.getPosts().enqueue(postCallback);
- }
-
- }
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodoActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodoActivity.java
new file mode 100644
index 0000000..739d49c
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodoActivity.java
@@ -0,0 +1,55 @@
+package com.codingblocks.restapiretrofitjson.activities;
+
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.adapters.TodosAdapter;
+import com.codingblocks.restapiretrofitjson.apis.RestApi;
+import com.codingblocks.restapiretrofitjson.apis.TodoApi;
+import com.codingblocks.restapiretrofitjson.models.Todo;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class TodoActivity extends AppCompatActivity {
+
+ private static final String TAG = "TodoActivity";
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_todo);
+
+ final RecyclerView recyclerView = (RecyclerView)findViewById(R.id.rv_todo);
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+ final TodosAdapter todosAdapter = new TodosAdapter(new ArrayList(),this);
+ recyclerView.setAdapter(todosAdapter);
+
+ TodoApi todoApi = RestApi.getInstance().getTodoApi();
+ Call> call;
+ int userId = getIntent().getIntExtra("userId",-1);
+ if(userId==-1){
+ call = todoApi.getTodos();
+ }else{
+ call = todoApi.getTodosByUserId(userId);
+ }
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(@NonNull Call> call, @NonNull Response> response) {
+ todosAdapter.updateList(response.body());
+ }
+
+ @Override
+ public void onFailure(@NonNull Call> call, @NonNull Throwable t) {
+ Log.d(TAG, "onFailure: ");
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodosActivity.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodosActivity.kt
deleted file mode 100644
index b7c7813..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodosActivity.kt
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.codingblocks.restapiretrofitjson.activities
-
-import android.support.v7.app.AppCompatActivity
-import android.os.Bundle
-import android.support.v7.widget.LinearLayoutManager
-import android.util.Log
-
-import kotlinx.android.synthetic.main.activity_todos.*
-
-import com.codingblocks.restapiretrofitjson.R
-import com.codingblocks.restapiretrofitjson.adapters.TodoAdapter
-import com.codingblocks.restapiretrofitjson.api.API
-import com.codingblocks.restapiretrofitjson.models.Todo
-import retrofit2.Call
-import retrofit2.Callback
-import retrofit2.Response
-
-class TodosActivity : AppCompatActivity() {
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_todos)
-
- rvTodosList.layoutManager = LinearLayoutManager(this)
- var todoAdapter = TodoAdapter(ArrayList())
- rvTodosList.adapter = todoAdapter
-
- var todoCallback = object: Callback> {
- override fun onFailure(call: Call>?, t: Throwable?) {
- }
-
- override fun onResponse(call: Call>?, response: Response>?) {
- todoAdapter.updateTodos(response!!.body()!!)
- }
-
- }
- var userId = intent.getIntExtra("userId", -1)
- if (userId != -1) {
- API.getInstance().todosAPI.getTodos(userId).enqueue(todoCallback)
-
- } else {
- API.getInstance().todosAPI.getTodos(null).enqueue(todoCallback)
- }
-
-
-
- }
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/UserActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/UserActivity.java
new file mode 100644
index 0000000..b4826b1
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/UserActivity.java
@@ -0,0 +1,63 @@
+package com.codingblocks.restapiretrofitjson.activities;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.adapters.UsersAdapter;
+import com.codingblocks.restapiretrofitjson.apis.RestApi;
+import com.codingblocks.restapiretrofitjson.apis.UserApi;
+import com.codingblocks.restapiretrofitjson.interfaces.OnButtonClickListener;
+import com.codingblocks.restapiretrofitjson.models.User;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class UserActivity extends AppCompatActivity {
+ private static final String TAG = "UserActivity";
+ private UsersAdapter usersAdapter;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_user);
+ final RecyclerView recyclerView = (RecyclerView)findViewById(R.id.rv_users);
+ recyclerView.setLayoutManager(new LinearLayoutManager(this));
+ usersAdapter = new UsersAdapter(new ArrayList(),this);
+ recyclerView.setAdapter(usersAdapter);
+
+ UserApi userApi = RestApi.getInstance().getUserApi();
+ userApi.getUsers().enqueue(new Callback>() {
+ @Override
+ public void onResponse(@NonNull Call> call, @NonNull Response> response) {
+ usersAdapter.updateList(response.body());
+ //Log.d(TAG, "onResponse: "+response.body());
+ }
+ @Override
+ public void onFailure(@NonNull Call> call, @NonNull Throwable t) {
+ Log.d(TAG, "onFailure: ");
+ }
+ });
+ usersAdapter.setOnButtonClickListener(new OnButtonClickListener() {
+ @Override
+ public void onButtonClicked(int Id, int buttonId) {
+ if(buttonId==UsersAdapter.POST_BUTTON){
+ Intent i = new Intent(UserActivity.this,PostActivity.class);
+ i.putExtra("userId",Id);
+ startActivity(i);
+ }else if(buttonId==UsersAdapter.TODO_BUTTON){
+ Intent i = new Intent(UserActivity.this,TodoActivity.class);
+ i.putExtra("userId",Id);
+ startActivity(i);
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/UsersActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/UsersActivity.java
deleted file mode 100644
index f70648e..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/UsersActivity.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.codingblocks.restapiretrofitjson.activities;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-import android.widget.Button;
-
-import com.codingblocks.restapiretrofitjson.R;
-import com.codingblocks.restapiretrofitjson.adapters.UserAdapter;
-import com.codingblocks.restapiretrofitjson.api.API;
-import com.codingblocks.restapiretrofitjson.interfaces.OnItemClickListener;
-import com.codingblocks.restapiretrofitjson.models.User;
-
-import java.util.ArrayList;
-
-import retrofit2.Call;
-import retrofit2.Callback;
-import retrofit2.Response;
-
-public class UsersActivity extends AppCompatActivity {
-
- public static final String TAG = "USERS";
-
- RecyclerView rvUserList;
- UserAdapter userAdapter;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_users);
-
- rvUserList = (RecyclerView) findViewById(R.id.rvUserList);
- rvUserList.setLayoutManager(new LinearLayoutManager(this));
- userAdapter = new UserAdapter(this, new ArrayList());
- rvUserList.setAdapter(userAdapter);
- userAdapter.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(int itemId, View view) {
-
- switch (view.getId()) {
- case R.id.btnUserComments:
- Intent todosActIntent = new Intent(UsersActivity.this,
- TodosActivity.class);
- todosActIntent.putExtra("userId", itemId);
- startActivity(todosActIntent);
- break;
- case R.id.btnUserPosts:
- Intent postActIntent = new Intent(UsersActivity.this,
- PostsActivity.class);
-
- postActIntent.putExtra("userId", itemId);
- startActivity(postActIntent);
- break;
- }
-
-
- }
- });
-
- ((Button) findViewById(R.id.btnAllPosts)).setOnClickListener(
- new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- startActivity(new Intent(
- UsersActivity.this,
- PostsActivity.class
- ));
- }
- }
- );
-
-
- API.getInstance().getUsersAPI().getUsers().enqueue(new Callback>() {
- @Override
- public void onResponse(Call> call,
- Response> response) {
- userAdapter.updateUsers(response.body());
- }
-
- @Override
- public void onFailure(Call> call, Throwable t) {
-
- }
- });
-
- }
-
-
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/AlbumAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/AlbumAdapter.java
new file mode 100644
index 0000000..e9f553f
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/AlbumAdapter.java
@@ -0,0 +1,71 @@
+package com.codingblocks.restapiretrofitjson.adapters;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.codingblocks.restapiretrofitjson.interfaces.OnButtonClickListener;
+import com.codingblocks.restapiretrofitjson.models.Album;
+
+import java.util.ArrayList;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public class AlbumAdapter extends RecyclerView.Adapter {
+ private ArrayList albumsList;
+ private final Context context;
+ private OnButtonClickListener onButtonClickListener;
+ public AlbumAdapter(ArrayList albumsList, Context context) {
+ this.albumsList = albumsList;
+ this.context = context;
+ }
+
+ public void setOnButtonClickListener(OnButtonClickListener onButtonClickListener) {
+ this.onButtonClickListener = onButtonClickListener;
+ }
+
+ public void updateList(ArrayList albumsList){
+ this.albumsList = albumsList;
+ notifyDataSetChanged();
+ }
+ @Override
+ public AlbumViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ View itemView = li.inflate(android.R.layout.simple_list_item_1,parent,false);
+ return new AlbumViewHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(AlbumViewHolder holder, int position) {
+ final Album album = albumsList.get(position);
+ holder.tvAlbum.setText(album.getTitle());
+ holder.rootView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if(onButtonClickListener!=null){
+ onButtonClickListener.onButtonClicked(album.getId(),-1);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return albumsList.size();
+ }
+
+ class AlbumViewHolder extends RecyclerView.ViewHolder{
+ final TextView tvAlbum;
+ final View rootView;
+ public AlbumViewHolder(View itemView) {
+ super(itemView);
+ tvAlbum = (TextView)itemView.findViewById(android.R.id.text1);
+ rootView = itemView;
+ }
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentAdapter.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentAdapter.kt
deleted file mode 100644
index 01c70e7..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentAdapter.kt
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.codingblocks.restapiretrofitjson.adapters
-
-import android.content.Context
-import android.support.v7.widget.RecyclerView
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.TextView
-import com.codingblocks.restapiretrofitjson.R
-import com.codingblocks.restapiretrofitjson.models.Comment
-import kotlinx.android.synthetic.main.list_item_comment.view.*
-import java.util.*
-
-/**
- * Created by championswimmer on 29/06/17.
- */
-
-class CommentAdapter(private val context: Context,
- private var comments: ArrayList)
- : RecyclerView.Adapter() {
-
- fun updateComments(comments: ArrayList) {
- this.comments = comments;
- notifyDataSetChanged();
- }
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CommentViewHolder {
-
-
- val itemView = LayoutInflater.from(parent.context)
- .inflate(R.layout.list_item_comment, parent, false)
-
- return CommentViewHolder(
- itemView.tvCommentBody,
- itemView.tvCommentName,
- itemView.tvCommentEmail,
- itemView
- )
- }
-
- override fun onBindViewHolder(holder: CommentViewHolder, position: Int) {
-
- val (_, _, name, email, body) = comments[position]
- holder.tvCommentBody.text = body
- holder.tvCommentName.text = name
- holder.tvCommentEmail.text = email
-
- }
-
- override fun getItemCount(): Int {
- return comments.size
- }
-
- class CommentViewHolder(
- public val tvCommentBody: TextView,
- public val tvCommentName: TextView,
- public val tvCommentEmail: TextView,
- itemView: View
- ) : RecyclerView.ViewHolder(itemView) {
-
-
- }
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentsAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentsAdapter.java
new file mode 100644
index 0000000..4f5fa93
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentsAdapter.java
@@ -0,0 +1,65 @@
+package com.codingblocks.restapiretrofitjson.adapters;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.models.Comment;
+
+import java.util.ArrayList;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public class CommentsAdapter extends RecyclerView.Adapter {
+
+ private ArrayList commentsList;
+ private final Context context;
+
+ public CommentsAdapter(ArrayList commentsList, Context context) {
+ this.commentsList = commentsList;
+ this.context = context;
+ }
+
+ public void updateList(ArrayList commentsList){
+ this.commentsList = commentsList;
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public CommentsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ View itemView = li.inflate(R.layout.list_comments,parent,false);
+ return new CommentsViewHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(CommentsViewHolder holder, int position) {
+ Comment comment = commentsList.get(position);
+ holder.tvCommentBody.setText(comment.getBody());
+ holder.tvCommentName.setText(comment.getName());
+ holder.tvCommentEmail.setText(comment.getEmail());
+ }
+
+ @Override
+ public int getItemCount() {
+ return commentsList.size();
+ }
+
+ class CommentsViewHolder extends RecyclerView.ViewHolder{
+ final TextView tvCommentBody;
+ final TextView tvCommentName;
+ final TextView tvCommentEmail;
+ public CommentsViewHolder(View itemView) {
+ super(itemView);
+ tvCommentBody = itemView.findViewById(R.id.tv_CommentBody);
+ tvCommentName = itemView.findViewById(R.id.tv_CommentName);
+ tvCommentEmail = itemView.findViewById(R.id.tv_CommentEmail);
+ }
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PhotosAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PhotosAdapter.java
new file mode 100644
index 0000000..53efa86
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PhotosAdapter.java
@@ -0,0 +1,79 @@
+package com.codingblocks.restapiretrofitjson.adapters;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.interfaces.OnPhotoClickListener;
+import com.codingblocks.restapiretrofitjson.models.Photo;
+import com.squareup.picasso.Picasso;
+
+import java.util.ArrayList;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public class PhotosAdapter extends RecyclerView.Adapter {
+
+ private ArrayList photosList;
+ private final Context context;
+ private OnPhotoClickListener onPhotoClickListener;
+ public PhotosAdapter(ArrayList photosList, Context context) {
+ this.photosList = photosList;
+ this.context = context;
+ }
+
+ public void setOnPhotoClickListener(OnPhotoClickListener onPhotoClickListener) {
+ this.onPhotoClickListener = onPhotoClickListener;
+ }
+
+ public void updateList(ArrayList photosList){
+ this.photosList = photosList;
+ notifyDataSetChanged();
+ }
+ @Override
+ public PhotosViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ View itemView = li.inflate(R.layout.list_photos,parent,false);
+ return new PhotosViewHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(PhotosViewHolder holder, int position) {
+ final Photo photo = photosList.get(position);
+ holder.tvPhotoTitle.setText(photo.getTitle());
+ Picasso.with(context).load(photo.getThumbnailUrl()).into(holder.ivThumbnail);
+ holder.rootView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if(onPhotoClickListener!=null){
+ onPhotoClickListener.onPhotoClicked(photo.getUrl(),photo.getTitle());
+ }
+
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return photosList.size();
+ }
+
+ class PhotosViewHolder extends RecyclerView.ViewHolder{
+ final TextView tvPhotoTitle;
+ final ImageView ivThumbnail;
+ final View rootView;
+ public PhotosViewHolder(View itemView) {
+ super(itemView);
+ tvPhotoTitle = itemView.findViewById(R.id.tv_title);
+ ivThumbnail = itemView.findViewById(R.id.iv_thumb);
+ rootView = itemView;
+ }
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostAdapter.java
deleted file mode 100644
index 5a6fdef..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostAdapter.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.codingblocks.restapiretrofitjson.adapters;
-
-import android.content.Context;
-import android.support.v7.widget.RecyclerView;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import com.codingblocks.restapiretrofitjson.R;
-import com.codingblocks.restapiretrofitjson.interfaces.OnItemClickListener;
-import com.codingblocks.restapiretrofitjson.models.Post;
-
-import java.util.ArrayList;
-
-/**
- * Created by championswimmer on 29/06/17.
- */
-
-public class PostAdapter
- extends RecyclerView.Adapter {
-
- public static final String TAG = "PADPTR";
-
- private Context context;
- private ArrayList posts;
-
- private OnItemClickListener onItemClickListener;
-
- public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
- this.onItemClickListener = onItemClickListener;
- }
-
- public PostAdapter(Context context, ArrayList posts) {
- this.context = context;
- this.posts = posts;
- }
-
- public void updatePosts(ArrayList posts) {
- this.posts = posts;
- notifyDataSetChanged();
- }
-
- @Override
- public PostViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- Log.d(TAG, "onCreateViewHolder: ");
- LayoutInflater li =
- (LayoutInflater) context.getSystemService(
- Context.LAYOUT_INFLATER_SERVICE);
- View itemView = li.inflate(R.layout.list_item_post, parent, false);
-
- return new PostViewHolder(itemView);
- }
-
- @Override
- public void onBindViewHolder(PostViewHolder holder, int position) {
- Log.d(TAG, "onBindViewHolder: ");
- final Post thisPost = posts.get(position);
-
- holder.tvPostTitle.setText(thisPost.getTitle());
- holder.tvPostBody.setText(thisPost.getBody());
- holder.thisView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- if (onItemClickListener != null) {
- onItemClickListener.onItemClick(thisPost.getId(), view);
- }
- }
- });
- }
-
- @Override
- public int getItemCount() {
- return posts.size();
- }
-
- class PostViewHolder extends RecyclerView.ViewHolder {
-
- TextView tvPostBody, tvPostTitle;
- View thisView;
-
- public PostViewHolder(View itemView) {
- super(itemView);
- thisView = itemView;
- tvPostBody = (TextView) itemView.findViewById(R.id.tvPostBody);
- tvPostTitle = (TextView) itemView.findViewById(R.id.tvPostTitle);
- }
- }
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostsAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostsAdapter.java
new file mode 100644
index 0000000..90cd9e9
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostsAdapter.java
@@ -0,0 +1,77 @@
+package com.codingblocks.restapiretrofitjson.adapters;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.interfaces.OnButtonClickListener;
+import com.codingblocks.restapiretrofitjson.models.Post;
+
+import java.util.ArrayList;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public class PostsAdapter extends RecyclerView.Adapter {
+
+ private ArrayList postList;
+ private final Context context;
+ private OnButtonClickListener onButtonClickListener;
+ public PostsAdapter(ArrayList postList, Context context) {
+ this.postList = postList;
+ this.context = context;
+ }
+ public void setOnButtonClickListener(OnButtonClickListener onButtonClickListener) {
+ this.onButtonClickListener = onButtonClickListener;
+ }
+
+ public void updateList(ArrayList postList){
+ this.postList = postList;
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public PostsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ View itemView = li.inflate(R.layout.list_posts,parent,false);
+ return new PostsViewHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(PostsViewHolder holder, int position) {
+
+ final Post post = postList.get(position);
+ holder.tvPostTitle.setText(post.getTitle());
+ holder.tvPostBody.setText(post.getBody());
+ holder.rootView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if(onButtonClickListener!=null){
+ onButtonClickListener.onButtonClicked(post.getId(),0);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return postList.size();
+ }
+
+ class PostsViewHolder extends RecyclerView.ViewHolder{
+ final TextView tvPostTitle;
+ final TextView tvPostBody;
+ final View rootView;
+ public PostsViewHolder(View itemView) {
+ super(itemView);
+ tvPostTitle = itemView.findViewById(R.id.tv_PostTitle);
+ tvPostBody = itemView.findViewById(R.id.tv_PostBody);
+ rootView = itemView;
+ }
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt
deleted file mode 100644
index c0bb9b6..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.codingblocks.restapiretrofitjson.adapters
-
-import android.support.v7.widget.RecyclerView
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.codingblocks.restapiretrofitjson.R
-import com.codingblocks.restapiretrofitjson.models.Todo
-
-import kotlinx.android.synthetic.main.list_item_todo.view.*
-
-/**
- * Created by championswimmer on 02/07/17.
- */
-public class TodoAdapter (
- var todos: ArrayList
-) : RecyclerView.Adapter() {
-
- fun updateTodos(todos: ArrayList) {
- this.todos = todos
- notifyDataSetChanged()
- }
-
- override fun onBindViewHolder(holder: TodoViewHolder?, position: Int) {
-
- holder?.bindTodo(todos[position])
-
- }
-
- override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): TodoViewHolder {
-
- var itemView: View = LayoutInflater.from(parent?.context)
- .inflate(R.layout.list_item_todo, parent, false)
-
- return TodoViewHolder(itemView)
-
- }
-
- override fun getItemCount(): Int {
- Log.d("TODOS", todos.size.toString())
- return todos.size
- }
-
-
- inner class TodoViewHolder(itemView: View?)
- : RecyclerView.ViewHolder(itemView) {
-
- fun bindTodo(todo: Todo) {
- itemView.tvTodoTitle.text = todo.title;
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodosAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodosAdapter.java
new file mode 100644
index 0000000..1484e65
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodosAdapter.java
@@ -0,0 +1,64 @@
+package com.codingblocks.restapiretrofitjson.adapters;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CheckBox;
+import android.widget.TextView;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.models.Todo;
+
+import java.util.ArrayList;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public class TodosAdapter extends RecyclerView.Adapter {
+
+ private ArrayList todosList;
+ private final Context context;
+
+ public TodosAdapter(ArrayList todosList, Context context) {
+ this.todosList = todosList;
+ this.context = context;
+ }
+
+ public void updateList(ArrayList todosList){
+ this.todosList = todosList;
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public TodosViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ View itemView = li.inflate(R.layout.list_todo,parent,false);
+ return new TodosViewHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(TodosViewHolder holder, int position) {
+
+ final Todo todo = todosList.get(position);
+ holder.todoTitle.setText(todo.getTitle());
+ holder.todoCheckBox.setChecked(todo.getCompleted());
+ }
+
+ @Override
+ public int getItemCount() {
+ return todosList.size();
+ }
+
+ class TodosViewHolder extends RecyclerView.ViewHolder{
+ final TextView todoTitle;
+ final CheckBox todoCheckBox;
+ public TodosViewHolder(View itemView) {
+ super(itemView);
+ todoTitle = itemView.findViewById(R.id.tv_Todo);
+ todoCheckBox = itemView.findViewById(R.id.cb_Todo);
+ }
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UserAdapter.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UserAdapter.kt
deleted file mode 100644
index f9c5e79..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UserAdapter.kt
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.codingblocks.restapiretrofitjson.adapters
-
-import android.content.Context
-import android.support.v7.widget.RecyclerView
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import com.codingblocks.restapiretrofitjson.R
-import com.codingblocks.restapiretrofitjson.interfaces.OnItemClickListener
-import com.codingblocks.restapiretrofitjson.models.User
-import kotlinx.android.synthetic.main.list_item_user.view.*
-import java.util.*
-
-/**
- * Created by championswimmer on 29/06/17.
- */
-
-class UserAdapter(private val context: Context,
- private var users: ArrayList?)
- : RecyclerView.Adapter() {
- internal var onItemClickListener: OnItemClickListener? = null
-
- fun setOnItemClickListener(onItemClickListener: OnItemClickListener) {
- this.onItemClickListener = onItemClickListener
- }
-
- fun updateUsers(newUserList: ArrayList) {
- this.users = newUserList
- notifyDataSetChanged()
- }
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {
- val itemView = LayoutInflater.from(parent.context)
- .inflate(R.layout.list_item_user, parent, false)
-
- return UserViewHolder(itemView)
- }
-
- override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
- holder.bindUser(users!![position])
- }
-
- override fun getItemCount(): Int {
- return users!!.size
- }
-
- inner class UserViewHolder(
- public var thisView: View
- ) : RecyclerView.ViewHolder(thisView) {
-
- fun bindUser(user: User) {
- thisView.tvUserUsername.text = user.username
- thisView.tvUserName.text = user.name
- thisView.tvUserPhone.text = user.phone
- thisView.tvUserEmail.text = user.email
- thisView.btnUserPosts.setOnClickListener {
- onItemClickListener?.onItemClick(user.id,
- itemView.btnUserPosts)
- }
- thisView.btnUserComments.setOnClickListener {
- onItemClickListener?.onItemClick(user.id,
- itemView.btnUserComments)
- }
-
- }
-
- }
-
- companion object {
-
- val TAG = "UA"
- }
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UsersAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UsersAdapter.java
new file mode 100644
index 0000000..addf9e1
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UsersAdapter.java
@@ -0,0 +1,99 @@
+package com.codingblocks.restapiretrofitjson.adapters;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.interfaces.OnButtonClickListener;
+import com.codingblocks.restapiretrofitjson.models.User;
+
+import java.util.ArrayList;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public class UsersAdapter extends RecyclerView.Adapter {
+
+ public static final int POST_BUTTON =1,TODO_BUTTON=2;
+
+ private ArrayList userList;
+ private final Context context;
+ private OnButtonClickListener onButtonClickListener;
+
+ public void setOnButtonClickListener(OnButtonClickListener onButtonClickListener) {
+ this.onButtonClickListener = onButtonClickListener;
+ }
+
+ public UsersAdapter(ArrayList userList, Context context) {
+ this.userList = userList;
+ this.context = context;
+ }
+
+ public void updateList(ArrayList userList){
+ this.userList = userList;
+ notifyDataSetChanged();
+ }
+
+ // test
+ @Override
+ public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ View itemView = li.inflate(R.layout.list_users,parent,false);
+ return new UserViewHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(UserViewHolder holder, int position) {
+ final User user = userList.get(position);
+ holder.tvUser.setText(user.getUsername());
+ holder.tvName.setText(user.getName());
+ holder.tvEmail.setText(user.getEmail());
+ holder.tvPhone.setText(user.getPhone());
+ holder.btnUserPosts.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if(onButtonClickListener!=null){
+ onButtonClickListener.onButtonClicked(user.getId(),POST_BUTTON);
+ }
+ }
+ });
+ holder.btnUserTodo.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if(onButtonClickListener!=null){
+ onButtonClickListener.onButtonClicked(user.getId(),TODO_BUTTON);
+ }
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return userList.size();
+ }
+
+ class UserViewHolder extends RecyclerView.ViewHolder{
+ final TextView tvUser;
+ final TextView tvName;
+ final TextView tvPhone;
+ final TextView tvEmail;
+ final Button btnUserPosts;
+ final Button btnUserTodo;
+
+ public UserViewHolder(View itemView) {
+ super(itemView);
+ tvUser = itemView.findViewById(R.id.tvUser);
+ tvName = itemView.findViewById(R.id.tv_Name);
+ tvPhone = itemView.findViewById(R.id.tv_Phone);
+ tvEmail = itemView.findViewById(R.id.tv_Email);
+ btnUserPosts = itemView.findViewById(R.id.btn_UserPosts);
+ btnUserTodo = itemView.findViewById(R.id.btn_UserTodo);
+ }
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java
deleted file mode 100644
index 771fdc2..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.codingblocks.restapiretrofitjson.api;
-
-import retrofit2.Retrofit;
-import retrofit2.converter.gson.GsonConverterFactory;
-
-/**
- * Created by championswimmer on 30/06/17.
- */
-
-public class API {
-
- private static API apiInstance;
-
- private PostsAPI postsAPI;
- private UsersAPI usersAPI;
- private CommentsAPI commentsAPI;
- private TodosAPI todosAPI;
-
- public PostsAPI getPostsAPI() {
- return postsAPI;
- }
-
- public UsersAPI getUsersAPI() {
- return usersAPI;
- }
-
- public CommentsAPI getCommentsAPI() {
- return commentsAPI;
- }
-
- public TodosAPI getTodosAPI() {
- return todosAPI;
- }
-
- private API() {
- Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("https://jsonplaceholder.typicode.com")
- .addConverterFactory(
- GsonConverterFactory.create()
- )
- .build();
-
- postsAPI = retrofit.create(PostsAPI.class);
- usersAPI = retrofit.create(UsersAPI.class);
- commentsAPI = retrofit.create(CommentsAPI.class);
- todosAPI = retrofit.create(TodosAPI.class);
- }
-
- public static API getInstance() {
- if (apiInstance == null) {
- apiInstance = new API();
- }
-
- return apiInstance;
- }
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java
deleted file mode 100644
index fcbe15d..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.codingblocks.restapiretrofitjson.api;
-
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-
-import com.codingblocks.restapiretrofitjson.models.Todo;
-
-import java.util.ArrayList;
-
-import retrofit2.Call;
-import retrofit2.http.GET;
-import retrofit2.http.Query;
-
-/**
- * Created by championswimmer on 02/07/17.
- */
-
-public interface TodosAPI {
-
- @GET("/todos")
- Call> getTodos(
- @Nullable
- @Query("userId") Integer userId
- );
-
-
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/UsersAPI.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/UsersAPI.java
deleted file mode 100644
index 190ebaa..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/UsersAPI.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.codingblocks.restapiretrofitjson.api;
-
-import com.codingblocks.restapiretrofitjson.models.User;
-
-import java.util.ArrayList;
-
-import retrofit2.Call;
-import retrofit2.http.GET;
-
-/**
- * Created by championswimmer on 29/06/17.
- */
-
-public interface UsersAPI {
-
- @GET("/users")
- Call> getUsers();
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/AlbumApi.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/AlbumApi.java
new file mode 100644
index 0000000..6cb2908
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/AlbumApi.java
@@ -0,0 +1,28 @@
+package com.codingblocks.restapiretrofitjson.apis;
+
+
+import com.codingblocks.restapiretrofitjson.models.Album;
+import com.codingblocks.restapiretrofitjson.models.Photo;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.http.GET;
+import retrofit2.http.Path;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public interface AlbumApi {
+
+ @GET("/albums")
+ Call> getAlbums();
+
+ interface PhotoApi{
+ @GET("/albums/{albumId}/photos")
+ Call> getPhotosOfAlbumId(
+ @Path("albumId") int albumId
+ );
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/CommentsAPI.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/CommentApi.java
similarity index 61%
rename from app/src/main/java/com/codingblocks/restapiretrofitjson/api/CommentsAPI.java
rename to app/src/main/java/com/codingblocks/restapiretrofitjson/apis/CommentApi.java
index 3f23b0f..56e950f 100644
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/CommentsAPI.java
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/CommentApi.java
@@ -1,4 +1,5 @@
-package com.codingblocks.restapiretrofitjson.api;
+package com.codingblocks.restapiretrofitjson.apis;
+
import com.codingblocks.restapiretrofitjson.models.Comment;
@@ -9,17 +10,13 @@
import retrofit2.http.Query;
/**
- * Created by championswimmer on 29/06/17.
+ * Created by Suraj on 6/30/2017.
*/
-public interface CommentsAPI {
-
- @GET("/comments")
- Call> getComments();
+public interface CommentApi {
@GET("/comments")
Call> getCommentsByPostId(
@Query("postId") int postId
);
-
}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/PhotoApi.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/PhotoApi.java
new file mode 100644
index 0000000..b92d471
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/PhotoApi.java
@@ -0,0 +1,21 @@
+package com.codingblocks.restapiretrofitjson.apis;
+
+
+import com.codingblocks.restapiretrofitjson.models.Photo;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public interface PhotoApi {
+ @GET("/photos")
+ Call> getPhotosByAlbumId(
+ @Query("albumId") int albumId
+ );
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/PostsAPI.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/PostApi.java
similarity index 57%
rename from app/src/main/java/com/codingblocks/restapiretrofitjson/api/PostsAPI.java
rename to app/src/main/java/com/codingblocks/restapiretrofitjson/apis/PostApi.java
index e9a48a9..07bc954 100644
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/PostsAPI.java
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/PostApi.java
@@ -1,4 +1,7 @@
-package com.codingblocks.restapiretrofitjson.api;
+package com.codingblocks.restapiretrofitjson.apis;
+
+import android.support.annotation.Nullable;
+
import com.codingblocks.restapiretrofitjson.models.Comment;
import com.codingblocks.restapiretrofitjson.models.Post;
@@ -11,30 +14,28 @@
import retrofit2.http.Query;
/**
- * Created by championswimmer on 29/06/17.
+ * Created by Suraj on 6/30/2017.
*/
-public interface PostsAPI {
+public interface PostApi {
- @GET("/posts")
- Call> getPosts();
+// @GET("/posts")
+// Call> getPosts();
@GET("/posts/{id}")
- Call getPostById(
+ Call> getPostsbyId(
@Path("id") int id
);
@GET("/posts")
Call> getPostsByUserId(
- @Query("userId") int userId
+ @Nullable
+ @Query("userId") Integer userId
);
-
- interface CommentsAPI {
-
- @GET("/posts/{postId}/comments")
+ interface CommentApi{
+ @GET("posts/{postId}/comments/")
Call> getCommentsOfPostId(
@Path("postId") int postId
);
-
}
}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/RestApi.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/RestApi.java
new file mode 100644
index 0000000..bab7dad
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/RestApi.java
@@ -0,0 +1,63 @@
+package com.codingblocks.restapiretrofitjson.apis;
+
+import retrofit2.Retrofit;
+import retrofit2.converter.gson.GsonConverterFactory;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public class RestApi {
+ private static RestApi restApi;
+ private final Retrofit retrofit;
+ private final AlbumApi albumApi;
+ private final CommentApi commentApi;
+ private final PhotoApi photoApi;
+ private final PostApi postApi;
+ private final TodoApi todoApi;
+ private final UserApi userApi;
+
+ public AlbumApi getAlbumApi() {
+ return albumApi;
+ }
+
+ public CommentApi getCommentApi() {
+ return commentApi;
+ }
+
+ public PhotoApi getPhotoApi() {
+ return photoApi;
+ }
+
+ public PostApi getPostApi() {
+ return postApi;
+ }
+
+ public TodoApi getTodoApi() {
+ return todoApi;
+ }
+
+ public UserApi getUserApi() {
+ return userApi;
+ }
+ private RestApi(){
+ retrofit = new Retrofit.Builder()
+ .baseUrl("https://jsonplaceholder.typicode.com")
+ .addConverterFactory(
+ GsonConverterFactory.create()
+ )
+ .build();
+ albumApi = retrofit.create(AlbumApi.class);
+ commentApi = retrofit.create(CommentApi.class);
+ photoApi = retrofit.create(PhotoApi.class);
+ postApi = retrofit.create(PostApi.class);
+ todoApi = retrofit.create(TodoApi.class);
+ userApi = retrofit.create(UserApi.class);
+ }
+ public static RestApi getInstance(){
+ if(restApi==null){
+ restApi = new RestApi();
+ }
+ return restApi;
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/TodoApi.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/TodoApi.java
new file mode 100644
index 0000000..11e6104
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/TodoApi.java
@@ -0,0 +1,24 @@
+package com.codingblocks.restapiretrofitjson.apis;
+
+
+import com.codingblocks.restapiretrofitjson.models.Todo;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public interface TodoApi {
+ @GET("/todos")
+ Call> getTodos();
+
+ @GET("/todos")
+ Call> getTodosByUserId(
+ @Query("userId") int userId
+ );
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/UserApi.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/UserApi.java
new file mode 100644
index 0000000..a5c57d6
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/apis/UserApi.java
@@ -0,0 +1,35 @@
+package com.codingblocks.restapiretrofitjson.apis;
+
+
+import com.codingblocks.restapiretrofitjson.models.Post;
+import com.codingblocks.restapiretrofitjson.models.Todo;
+import com.codingblocks.restapiretrofitjson.models.User;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.http.GET;
+import retrofit2.http.Path;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public interface UserApi {
+
+ @GET("/users")
+ Call> getUsers();
+
+ interface PostApi{
+ @GET("/users/{userId}/posts")
+ Call> getPostsOfUserId(
+ @Path("userId") int userId
+ );
+ }
+ interface TodoApi{
+ @GET("/users/{userId}/todos")
+ Call> getTodosOfUserId(
+ @Path("userId") int userId
+ );
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnButtonClickListener.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnButtonClickListener.java
new file mode 100644
index 0000000..17144aa
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnButtonClickListener.java
@@ -0,0 +1,9 @@
+package com.codingblocks.restapiretrofitjson.interfaces;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public interface OnButtonClickListener {
+ void onButtonClicked(int Id, int buttonId);
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener.java
deleted file mode 100644
index 63e6f5c..0000000
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.codingblocks.restapiretrofitjson.interfaces;
-
-import android.view.View;
-
-/**
- * Created by championswimmer on 29/06/17.
- */
-
-public interface OnItemClickListener {
- void onItemClick(int itemId, View view);
-}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnPhotoClickListener.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnPhotoClickListener.java
new file mode 100644
index 0000000..8d44a27
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnPhotoClickListener.java
@@ -0,0 +1,9 @@
+package com.codingblocks.restapiretrofitjson.interfaces;
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+public interface OnPhotoClickListener {
+ void onPhotoClicked(String url, String title);
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Album.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Album.kt
new file mode 100644
index 0000000..a6869f0
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Album.kt
@@ -0,0 +1,11 @@
+package com.codingblocks.restapiretrofitjson.models
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+data class Album(
+ val userId: kotlin.Int,
+ val id: kotlin.Int,
+ val title: String
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Comment.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Comment.kt
index 932fdd9..ba606c3 100644
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Comment.kt
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Comment.kt
@@ -1,9 +1,10 @@
package com.codingblocks.restapiretrofitjson.models
/**
- * Created by championswimmer on 29/06/17.
+ * Created by Suraj on 6/29/2017.
*/
-data class Comment(
+
+data class Comment (
val postId: Int,
val id: Int,
val name: String,
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Photo.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Photo.kt
new file mode 100644
index 0000000..6c68255
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Photo.kt
@@ -0,0 +1,13 @@
+package com.codingblocks.restapiretrofitjson.models
+
+/**
+ * Created by Suraj on 6/30/2017.
+ */
+
+data class Photo(
+ val albumId: kotlin.Int,
+ val id: kotlin.Int,
+ val title: String,
+ val url: String,
+ val thumbnailUrl: String
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Post.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Post.kt
index f8a8746..156e866 100644
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Post.kt
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Post.kt
@@ -1,10 +1,10 @@
package com.codingblocks.restapiretrofitjson.models
/**
- * Created by championswimmer on 29/06/17.
+ * Created by Suraj on 6/29/2017.
*/
-data class Post(
+data class Post (
val userId: Int,
val id: Int,
val title: String,
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt
index b5a3ff1..e4172f5 100644
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt
@@ -1,9 +1,12 @@
package com.codingblocks.restapiretrofitjson.models
/**
- * Created by championswimmer on 02/07/17.
+ * Created by Suraj on 6/30/2017.
*/
-data class Todo (
- val id: Int, val userId: Int,
- val title: String, val completed: Boolean
+
+data class Todo(
+ val userId: kotlin.Int,
+ val id: kotlin.Int,
+ val title: String,
+ val completed: kotlin.Boolean
)
\ No newline at end of file
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/User.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/User.kt
index d8b192e..301adf0 100644
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/User.kt
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/User.kt
@@ -1,12 +1,14 @@
package com.codingblocks.restapiretrofitjson.models
/**
- * Created by championswimmer on 29/06/17.
+ * Created by Suraj on 6/29/2017.
*/
+
data class User(
val id: Int,
val username: String,
val name: String,
val email: String,
val phone: String
+
)
\ No newline at end of file
diff --git a/app/src/main/res/activity_album.xml b/app/src/main/res/activity_album.xml
new file mode 100644
index 0000000..13faa3c
--- /dev/null
+++ b/app/src/main/res/activity_album.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/app/src/main/res/activity_comments.xml b/app/src/main/res/activity_comments.xml
new file mode 100644
index 0000000..cb7d88b
--- /dev/null
+++ b/app/src/main/res/activity_comments.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/activity_main.xml b/app/src/main/res/activity_main.xml
new file mode 100644
index 0000000..c0d99a1
--- /dev/null
+++ b/app/src/main/res/activity_main.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/activity_photo_view.xml b/app/src/main/res/activity_photo_view.xml
new file mode 100644
index 0000000..81b5264
--- /dev/null
+++ b/app/src/main/res/activity_photo_view.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/activity_photos.xml b/app/src/main/res/activity_photos.xml
new file mode 100644
index 0000000..f0db32d
--- /dev/null
+++ b/app/src/main/res/activity_photos.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/app/src/main/res/activity_post.xml b/app/src/main/res/activity_post.xml
new file mode 100644
index 0000000..edd777d
--- /dev/null
+++ b/app/src/main/res/activity_post.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/activity_todo.xml b/app/src/main/res/activity_todo.xml
new file mode 100644
index 0000000..edbc399
--- /dev/null
+++ b/app/src/main/res/activity_todo.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/activity_user.xml b/app/src/main/res/activity_user.xml
new file mode 100644
index 0000000..84ff44c
--- /dev/null
+++ b/app/src/main/res/activity_user.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_album.xml b/app/src/main/res/layout/activity_album.xml
new file mode 100644
index 0000000..c53c450
--- /dev/null
+++ b/app/src/main/res/layout/activity_album.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_comments.xml b/app/src/main/res/layout/activity_comments.xml
index 79b765b..2156253 100644
--- a/app/src/main/res/layout/activity_comments.xml
+++ b/app/src/main/res/layout/activity_comments.xml
@@ -4,11 +4,13 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context="com.codingblocks.restapiretrofitjson.activities.CommentsActivity">
-
+ android:layout_margin="8dp"
+ tools:context="com.codingblocks.restapiretrofitjson.activities.AlbumActivity">
+
+ android:layout_height="match_parent">
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index d7e01c2..104e857 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -4,44 +4,63 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context="com.codingblocks.restapiretrofitjson.MainActivity">
+ android:layout_margin="16dp"
+ android:orientation="vertical"
+ tools:context="com.codingblocks.restapiretrofitjson.activities.MainActivity">
+ android:orientation="horizontal"
+ style="?android:attr/buttonBarStyle">
+ android:text="Users"
+ android:textAllCaps="false"
+ android:textSize="25sp"/>
-
+ android:text="Posts"
+ android:textAllCaps="false"
+ android:textSize="25sp"/>
+ android:orientation="horizontal"
+ style="?android:attr/buttonBarStyle">
+ android:text="Albums"
+ android:textAllCaps="false"
+ android:textSize="25sp"
+ style="?android:attr/buttonBarButtonStyle"/>
+ android:text="To-do"
+ android:textAllCaps="false"
+ android:textSize="25sp"/>
-
diff --git a/app/src/main/res/layout/activity_photo_view.xml b/app/src/main/res/layout/activity_photo_view.xml
new file mode 100644
index 0000000..97ee974
--- /dev/null
+++ b/app/src/main/res/layout/activity_photo_view.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_photos.xml b/app/src/main/res/layout/activity_photos.xml
new file mode 100644
index 0000000..a6479d1
--- /dev/null
+++ b/app/src/main/res/layout/activity_photos.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_posts.xml b/app/src/main/res/layout/activity_post.xml
similarity index 86%
rename from app/src/main/res/layout/activity_posts.xml
rename to app/src/main/res/layout/activity_post.xml
index a2f599c..02f740e 100644
--- a/app/src/main/res/layout/activity_posts.xml
+++ b/app/src/main/res/layout/activity_post.xml
@@ -4,13 +4,13 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context="com.codingblocks.restapiretrofitjson.activities.PostsActivity">
+ android:layout_margin="8dp"
+ tools:context="com.codingblocks.restapiretrofitjson.activities.PostActivity">
+
-
-
diff --git a/app/src/main/res/layout/activity_todos.xml b/app/src/main/res/layout/activity_todo.xml
similarity index 90%
rename from app/src/main/res/layout/activity_todos.xml
rename to app/src/main/res/layout/activity_todo.xml
index a2f6577..c26f617 100644
--- a/app/src/main/res/layout/activity_todos.xml
+++ b/app/src/main/res/layout/activity_todo.xml
@@ -4,9 +4,10 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context="com.codingblocks.restapiretrofitjson.activities.TodosActivity">
+ tools:context="com.codingblocks.restapiretrofitjson.activities.TodoActivity">
+
diff --git a/app/src/main/res/layout/activity_users.xml b/app/src/main/res/layout/activity_user.xml
similarity index 63%
rename from app/src/main/res/layout/activity_users.xml
rename to app/src/main/res/layout/activity_user.xml
index 8d689ef..c83093b 100644
--- a/app/src/main/res/layout/activity_users.xml
+++ b/app/src/main/res/layout/activity_user.xml
@@ -4,20 +4,13 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context="com.codingblocks.restapiretrofitjson.activities.UsersActivity">
-
+ android:layout_margin="8dp"
+ tools:context="com.codingblocks.restapiretrofitjson.activities.UserActivity">
-
diff --git a/app/src/main/res/layout/list_item_comment.xml b/app/src/main/res/layout/list_comments.xml
similarity index 89%
rename from app/src/main/res/layout/list_item_comment.xml
rename to app/src/main/res/layout/list_comments.xml
index f4df93b..2cf5ec3 100644
--- a/app/src/main/res/layout/list_item_comment.xml
+++ b/app/src/main/res/layout/list_comments.xml
@@ -4,11 +4,10 @@
android:padding="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_item_todo.xml b/app/src/main/res/layout/list_item_todo.xml
deleted file mode 100644
index 7dd7af1..0000000
--- a/app/src/main/res/layout/list_item_todo.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_photos.xml b/app/src/main/res/layout/list_photos.xml
new file mode 100644
index 0000000..b84d1a6
--- /dev/null
+++ b/app/src/main/res/layout/list_photos.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_item_post.xml b/app/src/main/res/layout/list_posts.xml
similarity index 88%
rename from app/src/main/res/layout/list_item_post.xml
rename to app/src/main/res/layout/list_posts.xml
index e6f9cce..2a1692d 100644
--- a/app/src/main/res/layout/list_item_post.xml
+++ b/app/src/main/res/layout/list_posts.xml
@@ -8,13 +8,13 @@
diff --git a/app/src/main/res/layout/list_todo.xml b/app/src/main/res/layout/list_todo.xml
new file mode 100644
index 0000000..d1f82b2
--- /dev/null
+++ b/app/src/main/res/layout/list_todo.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_item_user.xml b/app/src/main/res/layout/list_users.xml
similarity index 52%
rename from app/src/main/res/layout/list_item_user.xml
rename to app/src/main/res/layout/list_users.xml
index cd0bb9f..364e9bf 100644
--- a/app/src/main/res/layout/list_item_user.xml
+++ b/app/src/main/res/layout/list_users.xml
@@ -2,70 +2,67 @@
-
+ android:layout_height="wrap_content"
+ android:layout_margin="5dp"
+ app:cardCornerRadius="3dp"
+ app:cardElevation="5dp">
-
-
-
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="20dp">
+ android:layout_height="wrap_content"
+ android:text="tv_Username"
+ android:textSize="20sp" />
-
+ android:layout_height="wrap_content"
+ android:text="Firstname Lastname"
+ android:textSize="15sp" />
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
-
+
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="email@domain.com"
+ android:textSize="15sp" />
-
+
-
+
+ android:layout_height="wrap_content"
+ android:layout_marginRight="5dp"
+ android:layout_weight="1"
+ android:text="Posts"
+ android:textAllCaps="false"/>
-
-
diff --git a/app/src/main/res/list_comments.xml b/app/src/main/res/list_comments.xml
new file mode 100644
index 0000000..2cf5ec3
--- /dev/null
+++ b/app/src/main/res/list_comments.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/list_photos.xml b/app/src/main/res/list_photos.xml
new file mode 100644
index 0000000..b84d1a6
--- /dev/null
+++ b/app/src/main/res/list_photos.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/list_posts.xml b/app/src/main/res/list_posts.xml
new file mode 100644
index 0000000..2a1692d
--- /dev/null
+++ b/app/src/main/res/list_posts.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/list_todo.xml b/app/src/main/res/list_todo.xml
new file mode 100644
index 0000000..d1f82b2
--- /dev/null
+++ b/app/src/main/res/list_todo.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/list_users.xml b/app/src/main/res/list_users.xml
new file mode 100644
index 0000000..364e9bf
--- /dev/null
+++ b/app/src/main/res/list_users.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+