diff --git a/.idea/modules.xml b/.idea/modules.xml
index 1b3ccab..3e12210 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,8 +2,11 @@
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index b963ad0..969f160 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -3,12 +3,12 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
- compileSdkVersion 26
+ compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.codingblocks.restapiretrofitjson"
minSdkVersion 16
- targetSdkVersion 26
+ targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -27,12 +27,13 @@ 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.3.1'
+ compile 'com.android.support:recyclerview-v7:25.3.1'
+ compile 'com.android.support:cardview-v7:25.3.1'
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..ec6a3db 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -21,7 +21,9 @@
-
+
+
+
\ 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
index f8ad985..ff45150 100644
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt
@@ -3,6 +3,7 @@ package com.codingblocks.restapiretrofitjson
import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
+import com.codingblocks.restapiretrofitjson.activities.AlbumActivity
import com.codingblocks.restapiretrofitjson.activities.PostsActivity
import com.codingblocks.restapiretrofitjson.activities.TodosActivity
import com.codingblocks.restapiretrofitjson.activities.UsersActivity
@@ -27,6 +28,7 @@ class MainActivity : AppCompatActivity() {
startActivity(Intent(this@MainActivity, TodosActivity::class.java))
})
-
+ btnAlbums.setOnClickListener ({
+ startActivity(Intent(this@MainActivity , AlbumActivity::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..fd8a9f2
--- /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.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.adapters.AlbumAdapter;
+import com.codingblocks.restapiretrofitjson.api.API;
+import com.codingblocks.restapiretrofitjson.interfaces.OnItemClickListener2;
+import com.codingblocks.restapiretrofitjson.models.Album;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class AlbumActivity extends AppCompatActivity {
+ RecyclerView rvAlbumList;
+ AlbumAdapter albumAdapter;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_album);
+ rvAlbumList= (RecyclerView) findViewById(R.id.rvAlbumList);
+ rvAlbumList.setLayoutManager(new LinearLayoutManager(this));
+ albumAdapter = new AlbumAdapter(this ,new ArrayList());
+ rvAlbumList.setAdapter(albumAdapter);
+
+ albumAdapter.setOnItemClickListener2(new OnItemClickListener2() {
+
+
+ @Override
+ public void onItemClick(String title , String url) {
+ Intent albumint = new Intent(AlbumActivity.this , AlbumPhotosActivity.class);
+ albumint.putExtra("title" , title);
+ albumint.putExtra("url" , url);
+ startActivity(albumint);
+ }
+ });
+
+
+ API.getInstance().getAlbumsAPI().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/activities/AlbumPhotosActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/AlbumPhotosActivity.java
new file mode 100644
index 0000000..9056f1b
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/AlbumPhotosActivity.java
@@ -0,0 +1,26 @@
+package com.codingblocks.restapiretrofitjson.activities;
+
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.squareup.picasso.Picasso;
+
+public class AlbumPhotosActivity extends AppCompatActivity {
+ TextView tvPhoto;
+ ImageView imageView;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_album_photos);
+ tvPhoto= (TextView) findViewById(R.id.tvPhoto);
+ imageView= (ImageView) findViewById(R.id.imageView);
+ String s = getIntent().getStringExtra("title");
+ String u = getIntent().getStringExtra("url");
+ tvPhoto.setText(s);
+ Picasso.with(this).load(u).into(imageView);
+
+ }
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt
index a5607aa..dc2cd98 100644
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt
@@ -31,11 +31,11 @@ class CommentsActivity : AppCompatActivity() {
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/adapters/AlbumAdapter.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/AlbumAdapter.java
new file mode 100644
index 0000000..336525d
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/AlbumAdapter.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.ImageView;
+import android.widget.TextView;
+
+import com.codingblocks.restapiretrofitjson.R;
+import com.codingblocks.restapiretrofitjson.interfaces.OnItemClickListener2;
+import com.codingblocks.restapiretrofitjson.models.Album;
+import com.squareup.picasso.Picasso;
+
+import java.util.ArrayList;
+
+import static com.codingblocks.restapiretrofitjson.R.id.ivAlbum;
+
+/**
+ * Created by kunalrustagi on 7/5/17.
+ */
+
+public class AlbumAdapter extends RecyclerView.Adapter {
+
+ private Context context;
+ public ArrayList albums;
+ private OnItemClickListener2 onItemClickListener2;
+
+ public void setOnItemClickListener2(OnItemClickListener2 onItemClickListener2) {
+ this.onItemClickListener2 = onItemClickListener2;
+ }
+
+ 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 AlbumViewHolder(itemView);
+ }
+
+ @Override
+ public void onBindViewHolder(AlbumViewHolder holder, int position) {
+ final Album thisalbum = albums.get(position);
+ holder.tvAlbumTitle.setText(albums.get(position).getTitle());
+ String url = albums.get(position).getThumbnailUrl();
+ Picasso.with(context).load(url).into(holder.ivAlbums);
+ holder.thisview.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (onItemClickListener2 !=null)
+ {
+ onItemClickListener2.onItemClick(thisalbum.getTitle() , thisalbum.getUrl());
+ }
+ }
+ });
+
+
+ }
+
+ @Override
+ public int getItemCount() {
+ return albums.size();
+ }
+
+ class AlbumViewHolder extends RecyclerView.ViewHolder
+ { TextView tvAlbumTitle;
+ ImageView ivAlbums;
+ View thisview;
+
+ public AlbumViewHolder(View itemView) {
+ super(itemView);
+ thisview=itemView;
+ tvAlbumTitle = (TextView) itemView.findViewById(R.id.tvAlbumTitle);
+ ivAlbums = (ImageView) itemView.findViewById(ivAlbum);
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt
index c0bb9b6..c0afd12 100644
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt
@@ -48,6 +48,12 @@ public class TodoAdapter (
fun bindTodo(todo: Todo) {
itemView.tvTodoTitle.text = todo.title;
+ if(todo.completed==true){
+ itemView.checkbox.setChecked(true);
+ }
+ else{
+ itemView.checkbox.setChecked(false);
+ }
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java
index 771fdc2..635d476 100644
--- a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java
@@ -15,6 +15,7 @@ public class API {
private UsersAPI usersAPI;
private CommentsAPI commentsAPI;
private TodosAPI todosAPI;
+ private AlbumsAPI albumsAPI;
public PostsAPI getPostsAPI() {
return postsAPI;
@@ -31,7 +32,9 @@ public CommentsAPI getCommentsAPI() {
public TodosAPI getTodosAPI() {
return todosAPI;
}
-
+ public AlbumsAPI getAlbumsAPI() {
+ return albumsAPI;
+ }
private API() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://jsonplaceholder.typicode.com")
@@ -44,6 +47,7 @@ private API() {
usersAPI = retrofit.create(UsersAPI.class);
commentsAPI = retrofit.create(CommentsAPI.class);
todosAPI = retrofit.create(TodosAPI.class);
+ albumsAPI = retrofit.create(AlbumsAPI.class);
}
public static API getInstance() {
@@ -53,4 +57,6 @@ public static API getInstance() {
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..6793f47
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/AlbumsAPI.java
@@ -0,0 +1,20 @@
+package com.codingblocks.restapiretrofitjson.api;
+
+import com.codingblocks.restapiretrofitjson.models.Album;
+
+import java.util.ArrayList;
+
+import retrofit2.Call;
+import retrofit2.http.GET;
+
+/**
+ * Created by kunalrustagi on 7/5/17.
+ */
+
+public interface AlbumsAPI {
+
+ @GET("/photos")
+ Call> getAlbums();
+
+
+}
diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener2.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener2.java
new file mode 100644
index 0000000..defa51a
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener2.java
@@ -0,0 +1,9 @@
+package com.codingblocks.restapiretrofitjson.interfaces;
+
+/**
+ * Created by kunalrustagi on 7/5/17.
+ */
+
+public interface OnItemClickListener2 {
+ void onItemClick(String title, String url);
+}
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..a125efa
--- /dev/null
+++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Album.kt
@@ -0,0 +1,12 @@
+package com.codingblocks.restapiretrofitjson.models
+
+/**
+ * Created by kunalrustagi on 7/5/17.
+ */
+data class Album(
+ val albumId : Int,
+ val title: String,
+ val id: Int,
+ val thumbnailUrl : String ,
+ val url: String
+)
\ 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..6d226f9
--- /dev/null
+++ b/app/src/main/res/layout/activity_album.xml
@@ -0,0 +1,17 @@
+
+
+
+
diff --git a/app/src/main/res/layout/activity_album_photos.xml b/app/src/main/res/layout/activity_album_photos.xml
new file mode 100644
index 0000000..daf7886
--- /dev/null
+++ b/app/src/main/res/layout/activity_album_photos.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_comments.xml b/app/src/main/res/layout/activity_comments.xml
index 79b765b..386e9c8 100644
--- a/app/src/main/res/layout/activity_comments.xml
+++ b/app/src/main/res/layout/activity_comments.xml
@@ -9,6 +9,8 @@
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index d7e01c2..b49f920 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -14,12 +14,17 @@
@@ -33,12 +38,16 @@
diff --git a/app/src/main/res/layout/activity_posts.xml b/app/src/main/res/layout/activity_posts.xml
index a2f599c..dfb4342 100644
--- a/app/src/main/res/layout/activity_posts.xml
+++ b/app/src/main/res/layout/activity_posts.xml
@@ -9,7 +9,9 @@
+ android:layout_height="match_parent"
+ android:layout_margin="5dp"
+ android:padding="3dp">
diff --git a/app/src/main/res/layout/activity_todos.xml b/app/src/main/res/layout/activity_todos.xml
index a2f6577..99f98c7 100644
--- a/app/src/main/res/layout/activity_todos.xml
+++ b/app/src/main/res/layout/activity_todos.xml
@@ -8,7 +8,9 @@
+ android:layout_height="match_parent"
+ android:layout_margin="5dp"
+ android:padding="3dp">
diff --git a/app/src/main/res/layout/activity_users.xml b/app/src/main/res/layout/activity_users.xml
index 8d689ef..a3c9e9d 100644
--- a/app/src/main/res/layout/activity_users.xml
+++ b/app/src/main/res/layout/activity_users.xml
@@ -15,6 +15,8 @@
diff --git a/app/src/main/res/layout/list_item_album.xml b/app/src/main/res/layout/list_item_album.xml
new file mode 100644
index 0000000..8b33d92
--- /dev/null
+++ b/app/src/main/res/layout/list_item_album.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_item_comment.xml b/app/src/main/res/layout/list_item_comment.xml
index f4df93b..1049cf4 100644
--- a/app/src/main/res/layout/list_item_comment.xml
+++ b/app/src/main/res/layout/list_item_comment.xml
@@ -7,7 +7,8 @@
@@ -18,13 +19,17 @@
-
+
diff --git a/app/src/main/res/layout/list_item_user.xml b/app/src/main/res/layout/list_item_user.xml
index 2f6f59d..cd0bb9f 100644
--- a/app/src/main/res/layout/list_item_user.xml
+++ b/app/src/main/res/layout/list_item_user.xml
@@ -54,13 +54,13 @@
android:layout_height="wrap_content">