diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..5b0290b --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..3b31283 --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 1b3ccab..c8978b2 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index b963ad0..8ec1018 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,7 +8,7 @@ android { defaultConfig { applicationId "com.codingblocks.restapiretrofitjson" minSdkVersion 16 - targetSdkVersion 26 + targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -27,9 +27,10 @@ dependencies { exclude group: 'com.android.support', module: 'support-annotations' }) compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" - 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:appcompat-v7:25.+' + compile 'com.android.support:recyclerview-v7:25.+' + compile 'com.android.support:cardview-v7:25.+' + compile 'com.squareup.picasso:picasso:2.5.2' 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' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 363fe63..3240798 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ - - - - @@ -21,7 +17,13 @@ - + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/AlbumThumbnail.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/AlbumThumbnail.java new file mode 100644 index 0000000..dcb1c2f --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/AlbumThumbnail.java @@ -0,0 +1,70 @@ +package com.codingblocks.restapiretrofitjson; + +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 com.codingblocks.restapiretrofitjson.adapters.ThumbnailAdapter; +import com.codingblocks.restapiretrofitjson.api.AlbumsAPI; +import com.codingblocks.restapiretrofitjson.interfaces.OnImageClickListener; +import com.codingblocks.restapiretrofitjson.models.ImageURL; +import com.codingblocks.restapiretrofitjson.models.Thumbnail; + +import java.util.ArrayList; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; + +/** + * Created by Harshi on 7/5/2017. + */ +public class AlbumThumbnail extends AppCompatActivity { + RecyclerView rvThumbnailList; + ThumbnailAdapter thumbnailAdapter; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.list_item_thumbnail); + + rvThumbnailList = (RecyclerView) findViewById(R.id.rvThumbnailList); + rvThumbnailList.setLayoutManager(new LinearLayoutManager(this)); + thumbnailAdapter = new ThumbnailAdapter(this, new ArrayList()); + thumbnailAdapter.setOnImageClickListener(new OnImageClickListener() { + @Override + public void OnImageClick(String url, String title) { + Intent i = new Intent(AlbumThumbnail.this, ImageURL.class); + i.putExtra("url", url); + i.putExtra("title", title); + startActivity(i); + } + }); + rvThumbnailList.setAdapter(thumbnailAdapter); + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("https://jsonplaceholder.typicode.com") + .addConverterFactory( + GsonConverterFactory.create() + ) + .build(); + AlbumsAPI albumsAPI = retrofit.create(AlbumsAPI.class); + albumsAPI.getThumbnail(getIntent().getIntExtra("albumId", 0)).enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + thumbnailAdapter.updateThumbnail(response.body()); + } + + @Override + public void onFailure(Call> call, Throwable t) { + + } + }); + + } +} + diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/AlbumsActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/AlbumsActivity.java new file mode 100644 index 0000000..319913b --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/AlbumsActivity.java @@ -0,0 +1,80 @@ +package com.codingblocks.restapiretrofitjson; + +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.widget.Button; + +import com.codingblocks.restapiretrofitjson.adapters.AlbumAdapter; +import com.codingblocks.restapiretrofitjson.api.AlbumsAPI; +import com.codingblocks.restapiretrofitjson.interfaces.onItemClickListener; +import com.codingblocks.restapiretrofitjson.models.Album; + +import java.util.ArrayList; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class AlbumsActivity extends AppCompatActivity { + public static final String TAG = "USERS"; + + RecyclerView rvAlbumList; + AlbumAdapter albumAdapter; + Button btnShowTodos,btnShowPosts; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_album); + + rvAlbumList = (RecyclerView) findViewById(R.id.rvAlbumsList); + rvAlbumList.setLayoutManager(new LinearLayoutManager(this)); + albumAdapter = new AlbumAdapter(this, new ArrayList()); + + albumAdapter.setOnItemClickListener(new onItemClickListener() { + @Override + public void onItemClick(int albumId) { + Intent i=new Intent(AlbumsActivity.this,AlbumThumbnail.class); + i.putExtra("albumId",albumId); + startActivity(i); + } + }); + rvAlbumList.setAdapter(albumAdapter); +// + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("https://jsonplaceholder.typicode.com") + .addConverterFactory( + GsonConverterFactory.create() + ) + .build(); + + + final AlbumsAPI albumsAPI = retrofit.create(AlbumsAPI.class); +// final UsersAPI usersAPI = RestAPI.getInstance().create(UsersAPI.class); + + + albumsAPI.getAlbums().enqueue(new Callback>() { + + @Override + public void onResponse(Call> call, Response> response) { + albumAdapter.updateAlbums(response.body()); + } + + @Override + public void onFailure(Call> call, Throwable t) { + + } + }); + } +} + + diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/ImageURL.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/ImageURL.java new file mode 100644 index 0000000..03910d7 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/ImageURL.java @@ -0,0 +1,29 @@ +package com.codingblocks.restapiretrofitjson; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.widget.ImageView; +import android.widget.TextView; + +import com.squareup.picasso.Picasso; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class ImageURL extends AppCompatActivity { + ImageView ivImageUrl; + TextView tvImageTitle; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.list_item_thumbnail); + ivImageUrl=(ImageView)findViewById(R.id.imageView1); + tvImageTitle=(TextView)findViewById(R.id.tvImageTitle); + String url=getIntent().getStringExtra("url"); + String title=getIntent().getStringExtra("title"); + tvImageTitle.setText(title); + Picasso.with(this).load(url).into(ivImageUrl); + } +} diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.java new file mode 100644 index 0000000..0b92ce3 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.java @@ -0,0 +1,68 @@ +package com.codingblocks.restapiretrofitjson; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.RecyclerView; +import android.view.View; +import android.widget.Button; + +import com.codingblocks.restapiretrofitjson.adapters.UserAdapter; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class MainActivity 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_main); + + Button btnOpenUsers,btnOpenAlbums,btnOpenTodos,btnOpenPosts; + + btnOpenAlbums = (Button) findViewById(R.id.btnImages); + btnOpenUsers = (Button) findViewById(R.id.btnUsers); + btnOpenTodos = (Button) findViewById(R.id.btnTodos); + btnOpenPosts = (Button) findViewById(R.id.btnPosts); + + btnOpenUsers.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent i = new Intent(MainActivity.this,UsersActivity.class); + startActivity(i); + } + }); + + btnOpenTodos.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent i = new Intent(MainActivity.this,TodosActiviy.class); + startActivity(i); + } + }); + + btnOpenAlbums.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent i = new Intent(MainActivity.this,AlbumsActivity.class); + startActivity(i); + } + }); + + btnOpenPosts.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent i = new Intent(MainActivity.this,PostsActivity.class); + startActivity(i); + } + }); + + } +} 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/PostsActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/PostsActivity.java similarity index 68% rename from app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java rename to app/src/main/java/com/codingblocks/restapiretrofitjson/PostsActivity.java index b244f79..f1db284 100644 --- a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/PostsActivity.java @@ -1,19 +1,13 @@ -package com.codingblocks.restapiretrofitjson.activities; +package com.codingblocks.restapiretrofitjson; -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; @@ -21,8 +15,14 @@ import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; -public class PostsActivity extends AppCompatActivity { +/** + * Created by Harshi on 7/5/2017. + */ + +public class PostsActivity extends AppCompatActivity { public static final String TAG = "PA"; @@ -38,17 +38,17 @@ protected void onCreate(Bundle savedInstanceState) { 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); - } - }); + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("https://jsonplaceholder.typicode.com") + .addConverterFactory( + GsonConverterFactory.create() + ) + .build(); + + PostsAPI postsAPI = retrofit.create(PostsAPI.class); +// PostsAPI postsAPI = RestAPI.getInstance().create(PostsAPI.class); - PostsAPI postsAPI = API.getInstance().getPostsAPI(); Callback> postCallback = new Callback>() { @Override @@ -71,3 +71,4 @@ public void onFailure(Call> call, Throwable t) { } } + diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/RestAPI.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/RestAPI.java new file mode 100644 index 0000000..bbd16fa --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/RestAPI.java @@ -0,0 +1,67 @@ +package com.codingblocks.restapiretrofitjson; + +import com.codingblocks.restapiretrofitjson.api.CommentsAPI; +import com.codingblocks.restapiretrofitjson.api.PostsAPI; +import com.codingblocks.restapiretrofitjson.api.UsersAPI; + +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class RestAPI { + + private static Retrofit apiInstance; + + private Retrofit retrofitInstance; + private PostsAPI postsAPI; + private UsersAPI usersAPI; + private CommentsAPI commentsAPI; + + private RestAPI(){ + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("https://jsonplaceholder.typicode.com") + .addConverterFactory( + GsonConverterFactory.create() + ) + .build(); + + postsAPI = retrofitInstance.create(PostsAPI.class); + usersAPI = retrofitInstance.create(UsersAPI.class); + commentsAPI = retrofitInstance.create(CommentsAPI.class); + } + + public PostsAPI getPostsAPI() { + return postsAPI; + } + + public UsersAPI getUsersAPI() { + return usersAPI; + } + + public CommentsAPI getCommentsAPI() { + return commentsAPI; + } + + public static Retrofit getInstance(){ + if (apiInstance == null){ + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("https://jsonplaceholder.typicode.com") + .addConverterFactory( + GsonConverterFactory.create() + ) + .build(); + } + return apiInstance; + +// public static RestAPI getInstance(){ +// if (apiInstance == null){ +// apiInstance = new RestAPI(); +// } +// return apiInstance; +// } + }} + + diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/TodosActiviy.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/TodosActiviy.java new file mode 100644 index 0000000..19ce2da --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/TodosActiviy.java @@ -0,0 +1,69 @@ +package com.codingblocks.restapiretrofitjson; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.widget.Button; + +import com.codingblocks.restapiretrofitjson.adapters.TodosAdapter; +import com.codingblocks.restapiretrofitjson.api.TodosAPI; +import com.codingblocks.restapiretrofitjson.models.Todos; + +import java.util.ArrayList; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class TodosActiviy extends AppCompatActivity { + + public static final String TAG = "USERS"; + + RecyclerView rvTodosList; + TodosAdapter todosAdapter; + Button btnShowTodos, btnShowPosts; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_todos); + + rvTodosList = (RecyclerView) findViewById(R.id.rvTodosList); + rvTodosList.setLayoutManager(new LinearLayoutManager(this)); + todosAdapter = new TodosAdapter(this, new ArrayList()); + rvTodosList.setAdapter(todosAdapter); + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("https://jsonplaceholder.typicode.com") + .addConverterFactory( + GsonConverterFactory.create() + ) + .build(); + + + final TodosAPI todosAPI = retrofit.create(TodosAPI.class); +// + final Callback> postCallback = new Callback>() { + + @Override + public void onResponse(Call> call, Response> response) { + todosAdapter.updateTodos(response.body()); + } + + @Override + public void onFailure(Call> call, Throwable t) { + + } + }; + int userIdReceived = getIntent().getIntExtra("userId", -1); + if (userIdReceived != -1) { + todosAPI.getTodos(userIdReceived).enqueue(postCallback); + } else { + todosAPI.getTodos(null).enqueue(postCallback); + }}} \ No newline at end of file diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/UsersActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/UsersActivity.java new file mode 100644 index 0000000..6e863a6 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/UsersActivity.java @@ -0,0 +1,118 @@ +package com.codingblocks.restapiretrofitjson; + +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.widget.Button; + +import com.codingblocks.restapiretrofitjson.adapters.UserAdapter; +import com.codingblocks.restapiretrofitjson.api.UsersAPI; +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; +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class UsersActivity extends AppCompatActivity { + + public static final String TAG = "USERS"; + + RecyclerView rvUserList; + UserAdapter userAdapter; + Button btnShowTodos, btnShowPosts; + + @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()); + + userAdapter.setOnItemClickListener(new onItemClickListener() { + @Override + public void onItemClick(int itemId) { + Intent postActIntent = new Intent(UsersActivity.this, + PostsActivity.class); + + postActIntent.putExtra("userId", itemId + 1); + startActivity(postActIntent); + } + }); + userAdapter.setOnItemClickListener(new onItemClickListener() { + @Override + public void onItemClick(int itemId) { + Intent postActIntent = new Intent(UsersActivity.this, + AlbumsActivity.class); + + postActIntent.putExtra("userId", itemId + 1); + startActivity(postActIntent); + } + }); + rvUserList.setAdapter(userAdapter); + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("https://jsonplaceholder.typicode.com") + .addConverterFactory( + GsonConverterFactory.create() + ) + .build(); + + + UsersAPI usersAPI = retrofit.create(UsersAPI.class); +// final UsersAPI usersAPI = RestAPI.getInstance().create(UsersAPI.class); + + Callback> postCallback = new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + userAdapter.updateUsers(response.body()); + } + + @Override + public void onFailure(Call> call, Throwable t) { + + } + + }; + + usersAPI.getUsers().enqueue(new Callback>() { + @Override + public void onResponse(Call> call, + Response> response) { + userAdapter.updateUsers(response.body()); + } + + @Override + public void onFailure(Call> call, Throwable t) { + + } + }); + +// btnShowTodos = (Button) findViewById(R.id.tvUserShowTodos); +// btnShowPosts = (Button) findViewById(R.id.tvUserShowPost); + +// btnShowTodos.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// Intent i = new Intent(UsersActivity.this,TodosActiviy.class); +// startActivity(i); +// } +// }); +// btnShowPosts.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// Intent i = new Intent(UsersActivity.this,PostsActivity.class); +// } +// }); + }} 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/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/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..d3d24df --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/AlbumAdapter.java @@ -0,0 +1,105 @@ +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.onItemClickListener; +import com.codingblocks.restapiretrofitjson.models.Album; + +import java.util.ArrayList; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class AlbumAdapter extends RecyclerView.Adapter { + + private Context context; + private ArrayList albums; + private onItemClickListener ontitleClickListener; + private onItemClickListener oicl; + + + public void setOnItemClickListener(onItemClickListener oicl) { + this.ontitleClickListener = (onItemClickListener) oicl; + } + + public AlbumAdapter(Context context, ArrayList albums) { + this.context = context; + this.albums = albums; + } + + public void updateAlbums (ArrayList albums) { + this.albums = albums; + notifyDataSetChanged(); + } + + @Override + public AlbumViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + LayoutInflater li = + (LayoutInflater) context.getSystemService( + Context.LAYOUT_INFLATER_SERVICE); + View itemView = li.inflate(R.layout.list_item_album, parent, false); + + return new AlbumAdapter.AlbumViewHolder(itemView); + } + + @Override + public void onBindViewHolder(AlbumViewHolder holder, final int position) { +// final Album thisAlbum = albums.get(position); +// holder.tvtitle.setText(thisAlbum.getTitle()); +// holder.thisView.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// if (ontitleClickListener != null) { +// ontitleClickListener.OnItemClicks(thisAlbum.getTitle()); +// } +// } +// }); +//// holder.thisView.setOnClickListener(new View.OnClickListener() { +//// @Override +//// public void onClick(View v) { +//// if(oicl!=null){ +//// oicl.OnItemClicks(position+1); +//// } +//// } +//// }); +// +// +// } + final Album thisAlbum=albums.get(position); + holder.tvtitle.setText(thisAlbum.getTitle()); + holder.thisView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(oicl!=null){ + oicl.onItemClick(position+1); + } + } + }); + + } + + @Override + public int getItemCount() { + return albums.size(); + } + + class AlbumViewHolder extends RecyclerView.ViewHolder { + + TextView tvtitle; + View thisView; + + public AlbumViewHolder(View itemView) { + super(itemView); + thisView = itemView; + tvtitle = (TextView) itemView.findViewById(R.id.tvShowTitle); + } + } +} + diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentAdapter.java new file mode 100644 index 0000000..9705a04 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentAdapter.java @@ -0,0 +1,68 @@ +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 Harshi on 7/5/2017. + */ + +public class CommentAdapter + extends RecyclerView.Adapter { + + private Context context; + private ArrayList comments; + + public CommentAdapter(Context context, ArrayList comments) { + this.context = context; + this.comments = comments; + } + + @Override + public CommentViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + LayoutInflater li = + (LayoutInflater) context.getSystemService( + Context.LAYOUT_INFLATER_SERVICE); + View itemView = li.inflate(R.layout.list_item_comment, parent, false); + + return new CommentViewHolder(itemView); + } + + @Override + public void onBindViewHolder(CommentViewHolder holder, int position) { + + Comment thisComment = comments.get(position); + + holder.tvCommentBody.setText(thisComment.getBody()); + holder.tvCommentName.setText(thisComment.getName()); + holder.tvCommentEmail.setText(thisComment.getEmail()); + + } + + @Override + public int getItemCount() { + return comments.size(); + } + + class CommentViewHolder extends RecyclerView.ViewHolder { + + TextView tvCommentBody, tvCommentName, tvCommentEmail; + + public CommentViewHolder(View itemView) { + super(itemView); + + tvCommentBody = (TextView) itemView.findViewById(R.id.tvCommentBody); + tvCommentName = (TextView) itemView.findViewById(R.id.tvCommentName); + tvCommentEmail = (TextView) itemView.findViewById(R.id.tvCommentEmail); + } + } +} 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/PostAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostAdapter.java index 5a6fdef..2f25eb1 100644 --- a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostAdapter.java +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostAdapter.java @@ -9,7 +9,6 @@ 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; @@ -19,18 +18,13 @@ */ public class PostAdapter - extends RecyclerView.Adapter { + 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; @@ -56,18 +50,10 @@ public PostViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { @Override public void onBindViewHolder(PostViewHolder holder, int position) { Log.d(TAG, "onBindViewHolder: "); - final Post thisPost = posts.get(position); + 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 @@ -78,11 +64,11 @@ public int getItemCount() { 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/ThumbnailAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/ThumbnailAdapter.java new file mode 100644 index 0000000..63307c9 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/ThumbnailAdapter.java @@ -0,0 +1,85 @@ +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.OnImageClickListener; +import com.codingblocks.restapiretrofitjson.models.Thumbnail; +import com.squareup.picasso.Picasso; + +import java.util.ArrayList; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class ThumbnailAdapter extends RecyclerView.Adapter { + + Context context; + ArrayList thumbnailArrayList; + + private OnImageClickListener oicl; + public void setOnImageClickListener(OnImageClickListener oicl){ + this.oicl=oicl; + } + + public ThumbnailAdapter(Context context, ArrayList thumbnailArrayList) { + this.context = context; + this.thumbnailArrayList = thumbnailArrayList; + } + + public void updateThumbnail(ArrayList newThumbnailList){ + this.thumbnailArrayList=newThumbnailList; + notifyDataSetChanged(); + } + + @Override + public ThumbnailViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + LayoutInflater li=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + View itemView=li.inflate(R.layout.list_item_thumbnail,parent,false); + return new ThumbnailViewHolder(itemView); + } + + + @Override + public void onBindViewHolder(ThumbnailViewHolder holder, int position) { + final Thumbnail thisThumbnail=thumbnailArrayList.get(position); + holder.tvThumbnail.setText(thisThumbnail.getTitle()); + Picasso.with(context).load(thisThumbnail.getThumbnailUrl()).into(holder.ivThumbnail); + holder.thisView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(oicl!=null){ + oicl.OnImageClick(thisThumbnail.getUrl(),thisThumbnail.getTitle()); + } + } + }); + + } + + + @Override + public int getItemCount() { + + return thumbnailArrayList.size(); + } + + class ThumbnailViewHolder extends RecyclerView.ViewHolder{ + TextView tvThumbnail; + ImageView ivThumbnail; + View thisView; + public ThumbnailViewHolder(View itemView){ + super(itemView); + tvThumbnail=(TextView)itemView.findViewById(R.id.tvThumbnail); + ivThumbnail=(ImageView)itemView.findViewById(R.id.imageView1); + thisView=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..aef7b06 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodosAdapter.java @@ -0,0 +1,89 @@ +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.interfaces.onTitleClickListener; +import com.codingblocks.restapiretrofitjson.models.Todos; + +import java.util.ArrayList; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class TodosAdapter extends RecyclerView.Adapter{ + + private Context context; + private ArrayList todos; + private onTitleClickListener ontitleClickListener; + private onTitleClickListener oicl; + + + public void setOnItemClickListener(onTitleClickListener oicl) { + this.ontitleClickListener = (onTitleClickListener) oicl; + } + + public TodosAdapter(Context context, ArrayList todos) { + this.context = context; + this.todos = todos; + } + + public void updateTodos (ArrayList newTodosList) { + this.todos = newTodosList; + 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_item_todo, parent, false); + + return new TodosViewHolder(itemView); + } + + @Override + public void onBindViewHolder(TodosViewHolder holder, int position) { + Todos thistodos = todos.get(position); + + holder.tvtitle.setText(thistodos.getTitle()); + holder.click.setChecked(thistodos.getCompleted()); +// holder.thisView.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// if (ontitleClickListener != null) { +// ontitleClickListener.OnItemClicks(thistodos.getTitle()); +// } +// } +// }); + } + + @Override + public int getItemCount() { + return todos.size(); + } + + class TodosViewHolder extends RecyclerView.ViewHolder { + + TextView tvtitle; + CheckBox click; + View thisView; + + public TodosViewHolder(View itemView) { + super(itemView); + thisView = itemView; + tvtitle = (TextView) itemView.findViewById(R.id.tvshowTodoTitle); + click = (CheckBox) itemView.findViewById(R.id.checkBox); + } + } +} + diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UserAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UserAdapter.java new file mode 100644 index 0000000..7243655 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UserAdapter.java @@ -0,0 +1,107 @@ +package com.codingblocks.restapiretrofitjson.adapters; + +import android.content.Context; +import android.content.Intent; +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.PostsActivity; +import com.codingblocks.restapiretrofitjson.R; +import com.codingblocks.restapiretrofitjson.TodosActiviy; +import com.codingblocks.restapiretrofitjson.interfaces.onItemClickListener; +import com.codingblocks.restapiretrofitjson.models.User; + +import java.util.ArrayList; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class UserAdapter + extends RecyclerView.Adapter { + + public static final String TAG = "UA"; + + private Context context; + private ArrayList users; + private onItemClickListener oicl; + private onItemClickListener onitemClickListener; + + + public void setOnItemClickListener(onItemClickListener oicl) { + this.onitemClickListener = oicl; + } + + public UserAdapter(Context context, ArrayList users) { + this.context = context; + this.users = users; + } + + public void updateUsers(ArrayList newUserList) { + this.users = newUserList; + notifyDataSetChanged(); + } + + @Override + public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + LayoutInflater li = + (LayoutInflater) context.getSystemService( + Context.LAYOUT_INFLATER_SERVICE); + View itemView = li.inflate(R.layout.list_item_user, parent, false); + + return new UserViewHolder(itemView); + } + + @Override + public void onBindViewHolder(UserViewHolder holder, final int position) { + final User thisUser = users.get(position); + + holder.tvUserUsername.setText(thisUser.getUsername()); + holder.tvUserName.setText(thisUser.getName()); + holder.tvUserPhone.setText(thisUser.getPhone()); + holder.tvUserEmail.setText(thisUser.getEmail()); + holder.btnshowPosts.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent i = new Intent(context, PostsActivity.class); + i.putExtra("userId",thisUser.getId()); + context.startActivity(i); + } + }); + holder.btnshowTodos.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent i = new Intent(context, TodosActiviy.class); + i.putExtra("userId",thisUser.getId()); + context.startActivity(i); + } + }); + } + + @Override + public int getItemCount() { + return users.size(); + } + + class UserViewHolder extends RecyclerView.ViewHolder { + + TextView tvUserUsername, tvUserName, tvUserPhone, tvUserEmail; + View thisView; + Button btnshowTodos, btnshowPosts; + + public UserViewHolder(View itemView) { + super(itemView); + thisView = itemView; + tvUserEmail = (TextView) itemView.findViewById(R.id.tvUserEmail); + tvUserName = (TextView) itemView.findViewById(R.id.tvUserName); + tvUserPhone = (TextView) itemView.findViewById(R.id.tvUserPhone); + tvUserUsername = (TextView) itemView.findViewById(R.id.tvUserUsername); + btnshowPosts = (Button) itemView.findViewById(R.id.tvUserShowPost); + btnshowTodos = (Button) itemView.findViewById(R.id.tvUserShowTodos); + } + } +} 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/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/AlbumsAPI.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/AlbumsAPI.java new file mode 100644 index 0000000..7df7c67 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/AlbumsAPI.java @@ -0,0 +1,21 @@ +package com.codingblocks.restapiretrofitjson.api; + +import com.codingblocks.restapiretrofitjson.models.Album; +import com.codingblocks.restapiretrofitjson.models.Thumbnail; + +import java.util.ArrayList; + +import retrofit2.Call; +import retrofit2.http.GET; +import retrofit2.http.Path; + +/** + * Created by Harshi on 7/5/2017. + */ + +public interface AlbumsAPI { + @GET("/albums") + Call> getAlbums (); + @GET("/albums/{id}/photos") + Call> getThumbnail(@Path("id") int albumId); +} diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java index fcbe15d..4fa0de8 100644 --- a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java @@ -1,9 +1,8 @@ package com.codingblocks.restapiretrofitjson.api; -import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import com.codingblocks.restapiretrofitjson.models.Todo; +import com.codingblocks.restapiretrofitjson.models.Todos; import java.util.ArrayList; @@ -18,7 +17,7 @@ public interface TodosAPI { @GET("/todos") - Call> getTodos( + Call> getTodos( @Nullable @Query("userId") Integer userId ); diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnImageClickListener.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnImageClickListener.java new file mode 100644 index 0000000..4dfda69 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnImageClickListener.java @@ -0,0 +1,9 @@ +package com.codingblocks.restapiretrofitjson.interfaces; + +/** + * Created by Harshi on 7/5/2017. + */ + +public interface OnImageClickListener { + public void OnImageClick(String url,String title); +} diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/onItemClickListener.java similarity index 50% rename from app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener.java rename to app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/onItemClickListener.java index 63e6f5c..184806b 100644 --- a/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener.java +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/onItemClickListener.java @@ -1,11 +1,9 @@ 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); +public interface onItemClickListener { + void onItemClick(int itemId); } diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/onTitleClickListener.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/onTitleClickListener.java new file mode 100644 index 0000000..ba7c947 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/onTitleClickListener.java @@ -0,0 +1,9 @@ +package com.codingblocks.restapiretrofitjson.interfaces; + +/** + * Created by Harshi on 7/5/2017. + */ + +public interface onTitleClickListener { + void OnItemClicks(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..e4b120a --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Album.kt @@ -0,0 +1,8 @@ +package com.codingblocks.restapiretrofitjson.models + +/** + * Created by Harshi on 7/5/2017. + */ +data class Album( + val title: String +) diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/ImageURL.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/ImageURL.java new file mode 100644 index 0000000..2b1e36a --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/ImageURL.java @@ -0,0 +1,30 @@ +package com.codingblocks.restapiretrofitjson.models; + +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; + +/** + * Created by Harshi on 7/5/2017. + */ + +public class ImageURL extends AppCompatActivity { + ImageView ivImageUrl; + TextView tvImageTitle; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.list_item_thumbnail); + ivImageUrl=(ImageView)findViewById(R.id.imageView1); + tvImageTitle=(TextView)findViewById(R.id.tvImageTitle); + String url=getIntent().getStringExtra("url"); + String title=getIntent().getStringExtra("title"); + tvImageTitle.setText(title); + Picasso.with(this).load(url).into(ivImageUrl); + } +} diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Thumbnail.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Thumbnail.kt new file mode 100644 index 0000000..b6cfbb6 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Thumbnail.kt @@ -0,0 +1,20 @@ +package com.codingblocks.restapiretrofitjson.models + +/** + * Created by Harshi on 7/5/2017. + */ +class Thumbnail(title: String, thumbnailURL: String, url: String) { + var title: String + internal set + var thumbnailUrl: String + internal set + var url: String + internal set + + init { + this.title = title + this.thumbnailUrl = thumbnailURL + this.url = url + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt deleted file mode 100644 index b5a3ff1..0000000 --- a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.codingblocks.restapiretrofitjson.models - -/** - * Created by championswimmer on 02/07/17. - */ -data class Todo ( - val id: Int, val userId: Int, - val title: String, val completed: Boolean -) \ No newline at end of file diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todos.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todos.kt new file mode 100644 index 0000000..a8ee985 --- /dev/null +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todos.kt @@ -0,0 +1,11 @@ +package com.codingblocks.restapiretrofitjson.models + +/** + * Created by championswimmer on 02/07/17. + */ +data class Todos( + val id: Int, + val userId: Int, + val title: String, + val completed: Boolean +) \ No newline at end of file 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..5836d9d --- /dev/null +++ b/app/src/main/res/layout/activity_album.xml @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_album_thumbnail.xml b/app/src/main/res/layout/activity_album_thumbnail.xml new file mode 100644 index 0000000..cfb564b --- /dev/null +++ b/app/src/main/res/layout/activity_album_thumbnail.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_image_url.xml b/app/src/main/res/layout/activity_image_url.xml new file mode 100644 index 0000000..d2f6200 --- /dev/null +++ b/app/src/main/res/layout/activity_image_url.xml @@ -0,0 +1,25 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index d7e01c2..ea92545 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,44 +4,34 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context="com.codingblocks.restapiretrofitjson.MainActivity"> + android:orientation="vertical" + tools:context="com.developer.harshi.apihomework.MainActivity" + android:weightSum="1"> - -