From 97fb228a509f9b396d93401d48736d0cac4c6ec0 Mon Sep 17 00:00:00 2001 From: hackersavinay Date: Wed, 5 Jul 2017 23:21:03 +0530 Subject: [PATCH] Completed --- .idea/encodings.xml | 6 --- .idea/misc.xml | 2 +- .idea/modules.xml | 2 +- .idea/statistic.xml | 6 --- app/build.gradle | 11 ++-- app/src/main/AndroidManifest.xml | 6 ++- .../restapiretrofitjson/MainActivity.kt | 7 ++- .../activities/PostsActivity.java | 1 - .../activities/TodosActivity.kt | 48 ----------------- .../adapters/TodoAdapter.kt | 53 ------------------- .../restapiretrofitjson/api/API.java | 24 ++++++--- .../restapiretrofitjson/api/TodosAPI.java | 16 ++++-- 12 files changed, 49 insertions(+), 133 deletions(-) delete mode 100644 .idea/encodings.xml delete mode 100644 .idea/statistic.xml delete mode 100644 app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodosActivity.kt delete mode 100644 app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 97626ba..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 5d19981..fbb6828 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + 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/.idea/statistic.xml b/.idea/statistic.xml deleted file mode 100644 index 5d396c1..0000000 --- a/.idea/statistic.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ 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..f3c899a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,14 +14,18 @@ + + + + + - \ 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..605d621 100644 --- a/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt @@ -1,8 +1,10 @@ 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 @@ -26,7 +28,10 @@ class MainActivity : AppCompatActivity() { btnTodos.setOnClickListener({ startActivity(Intent(this@MainActivity, TodosActivity::class.java)) }) + btnAlbums.setOnClickListener({ + startActivity(Intent(this@MainActivity, AlbumActivity::class.java)) + }) } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java index b244f79..48db3f8 100644 --- a/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java @@ -8,7 +8,6 @@ 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; 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/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/api/API.java b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java index 771fdc2..fd4e1cd 100644 --- a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java @@ -14,7 +14,9 @@ public class API { private PostsAPI postsAPI; private UsersAPI usersAPI; private CommentsAPI commentsAPI; - private TodosAPI todosAPI; + private TodosAPI todoAPI; + private AlbumAPI albumAPI; + private PhotosAPI photoAPI; public PostsAPI getPostsAPI() { return postsAPI; @@ -28,11 +30,19 @@ public CommentsAPI getCommentsAPI() { return commentsAPI; } - public TodosAPI getTodosAPI() { - return todosAPI; + public TodosAPI getTodoAPI() { + return todoAPI; } - private API() { + public AlbumAPI getAlbumAPI() { + return albumAPI; + } + + public PhotosAPI getPhotoAPI() { + return photoAPI; + } + + private API () { Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://jsonplaceholder.typicode.com") .addConverterFactory( @@ -43,10 +53,12 @@ private API() { postsAPI = retrofit.create(PostsAPI.class); usersAPI = retrofit.create(UsersAPI.class); commentsAPI = retrofit.create(CommentsAPI.class); - todosAPI = retrofit.create(TodosAPI.class); + todoAPI=retrofit.create(TodosAPI.class); + albumAPI=retrofit.create(AlbumAPI.class); + photoAPI=retrofit.create(PhotosAPI.class); } - public static API getInstance() { + public static API getInstance () { if (apiInstance == null) { apiInstance = new API(); } 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..882ef22 100644 --- a/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java +++ b/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java @@ -9,6 +9,7 @@ import retrofit2.Call; import retrofit2.http.GET; +import retrofit2.http.Path; import retrofit2.http.Query; /** @@ -17,10 +18,17 @@ public interface TodosAPI { - @GET("/todos") - Call> getTodos( - @Nullable - @Query("userId") Integer userId + @GET ("/todos") + Call> getTodos(); + + @GET ("/todos") + Call> getTodoByUserId( + @Query("userId")int userId + ); + + @GET ("/todos/{id}") + Call> getTodoById( + @Path("id") int id );