From 8ba8488da25849973ad02b81ba48b084160bb224 Mon Sep 17 00:00:00 2001 From: Ghansham Bansal Date: Wed, 5 Jul 2017 19:49:33 +0530 Subject: [PATCH 1/5] Albums Activity Added --- AndroidSample_Retrofit_RESTAPI/.gitignore | 9 + .../.idea/compiler.xml | 22 +++ .../.idea/copyright/profiles_settings.xml | 3 + .../.idea/encodings.xml | 6 + .../.idea/gradle.xml | 18 ++ AndroidSample_Retrofit_RESTAPI/.idea/misc.xml | 46 +++++ .../.idea/modules.xml | 11 ++ .../.idea/runConfigurations.xml | 12 ++ .../.idea/statistic.xml | 6 + AndroidSample_Retrofit_RESTAPI/.idea/vcs.xml | 6 + AndroidSample_Retrofit_RESTAPI/app/.gitignore | 1 + .../app/build.gradle | 40 +++++ .../app/proguard-rules.pro | 25 +++ .../ExampleInstrumentedTest.java | 26 +++ .../app/src/main/AndroidManifest.xml | 29 ++++ .../restapiretrofitjson/AlbumsActivity.java | 56 ++++++ .../restapiretrofitjson/MainActivity.kt | 32 ++++ .../activities/CommentsActivity.kt | 43 +++++ .../activities/PhotosActivity.java | 15 ++ .../activities/PostsActivity.java | 73 ++++++++ .../activities/TodosActivity.kt | 48 ++++++ .../activities/UsersActivity.java | 92 ++++++++++ .../adapters/AlbumsAdapter.java | 87 ++++++++++ .../adapters/CommentAdapter.kt | 63 +++++++ .../adapters/PostAdapter.java | 90 ++++++++++ .../adapters/TodoAdapter.kt | 53 ++++++ .../adapters/UserAdapter.kt | 73 ++++++++ .../restapiretrofitjson/api/API.java | 62 +++++++ .../restapiretrofitjson/api/AlbumsApi.java | 17 ++ .../restapiretrofitjson/api/CommentsAPI.java | 25 +++ .../restapiretrofitjson/api/PostsAPI.java | 40 +++++ .../restapiretrofitjson/api/TodosAPI.java | 27 +++ .../restapiretrofitjson/api/UsersAPI.java | 18 ++ .../interfaces/OnItemClickListener.java | 11 ++ .../restapiretrofitjson/models/Album.kt | 10 ++ .../restapiretrofitjson/models/Comment.kt | 12 ++ .../restapiretrofitjson/models/Post.kt | 12 ++ .../restapiretrofitjson/models/Todo.kt | 9 + .../restapiretrofitjson/models/User.kt | 12 ++ .../src/main/res/layout/activity_albums.xml | 18 ++ .../src/main/res/layout/activity_comments.xml | 14 ++ .../app/src/main/res/layout/activity_main.xml | 47 +++++ .../src/main/res/layout/activity_photos.xml | 9 + .../src/main/res/layout/activity_posts.xml | 16 ++ .../src/main/res/layout/activity_todos.xml | 14 ++ .../src/main/res/layout/activity_users.xml | 23 +++ .../src/main/res/layout/list_item_albums.xml | 23 +++ .../src/main/res/layout/list_item_comment.xml | 34 ++++ .../src/main/res/layout/list_item_post.xml | 21 +++ .../src/main/res/layout/list_item_todo.xml | 12 ++ .../src/main/res/layout/list_item_user.xml | 71 ++++++++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4208 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2555 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6114 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10056 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10486 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 14696 bytes .../app/src/main/res/values/colors.xml | 6 + .../app/src/main/res/values/strings.xml | 3 + .../app/src/main/res/values/styles.xml | 11 ++ .../restapiretrofitjson/ExampleUnitTest.java | 17 ++ AndroidSample_Retrofit_RESTAPI/build.gradle | 25 +++ .../gradle.properties | 17 ++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + AndroidSample_Retrofit_RESTAPI/gradlew | 160 ++++++++++++++++++ AndroidSample_Retrofit_RESTAPI/gradlew.bat | 90 ++++++++++ .../settings.gradle | 1 + 72 files changed, 1878 insertions(+) create mode 100644 AndroidSample_Retrofit_RESTAPI/.gitignore create mode 100644 AndroidSample_Retrofit_RESTAPI/.idea/compiler.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/.idea/copyright/profiles_settings.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/.idea/encodings.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/.idea/gradle.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/.idea/misc.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/.idea/modules.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/.idea/runConfigurations.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/.idea/statistic.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/.idea/vcs.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/.gitignore create mode 100644 AndroidSample_Retrofit_RESTAPI/app/build.gradle create mode 100644 AndroidSample_Retrofit_RESTAPI/app/proguard-rules.pro create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/androidTest/java/com/codingblocks/restapiretrofitjson/ExampleInstrumentedTest.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/AndroidManifest.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/AlbumsActivity.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PhotosActivity.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodosActivity.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/UsersActivity.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/AlbumsAdapter.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentAdapter.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostAdapter.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UserAdapter.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/AlbumsApi.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/CommentsAPI.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/PostsAPI.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/UsersAPI.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener.java create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Album.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Comment.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Post.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/User.kt create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_albums.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_comments.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_main.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_photos.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_posts.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_todos.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_users.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/list_item_albums.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/list_item_comment.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/list_item_post.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/list_item_todo.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/list_item_user.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/values/colors.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/values/strings.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/main/res/values/styles.xml create mode 100644 AndroidSample_Retrofit_RESTAPI/app/src/test/java/com/codingblocks/restapiretrofitjson/ExampleUnitTest.java create mode 100644 AndroidSample_Retrofit_RESTAPI/build.gradle create mode 100644 AndroidSample_Retrofit_RESTAPI/gradle.properties create mode 100644 AndroidSample_Retrofit_RESTAPI/gradle/wrapper/gradle-wrapper.jar create mode 100644 AndroidSample_Retrofit_RESTAPI/gradle/wrapper/gradle-wrapper.properties create mode 100755 AndroidSample_Retrofit_RESTAPI/gradlew create mode 100644 AndroidSample_Retrofit_RESTAPI/gradlew.bat create mode 100644 AndroidSample_Retrofit_RESTAPI/settings.gradle diff --git a/AndroidSample_Retrofit_RESTAPI/.gitignore b/AndroidSample_Retrofit_RESTAPI/.gitignore new file mode 100644 index 0000000..39fb081 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/AndroidSample_Retrofit_RESTAPI/.idea/compiler.xml b/AndroidSample_Retrofit_RESTAPI/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/.idea/copyright/profiles_settings.xml b/AndroidSample_Retrofit_RESTAPI/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/.idea/encodings.xml b/AndroidSample_Retrofit_RESTAPI/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/.idea/gradle.xml b/AndroidSample_Retrofit_RESTAPI/.idea/gradle.xml new file mode 100644 index 0000000..7ac24c7 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/.idea/misc.xml b/AndroidSample_Retrofit_RESTAPI/.idea/misc.xml new file mode 100644 index 0000000..5d19981 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/.idea/misc.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/.idea/modules.xml b/AndroidSample_Retrofit_RESTAPI/.idea/modules.xml new file mode 100644 index 0000000..0092c81 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/.idea/modules.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/.idea/runConfigurations.xml b/AndroidSample_Retrofit_RESTAPI/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/.idea/statistic.xml b/AndroidSample_Retrofit_RESTAPI/.idea/statistic.xml new file mode 100644 index 0000000..5d396c1 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/.idea/statistic.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/.idea/vcs.xml b/AndroidSample_Retrofit_RESTAPI/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/app/.gitignore b/AndroidSample_Retrofit_RESTAPI/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/AndroidSample_Retrofit_RESTAPI/app/build.gradle b/AndroidSample_Retrofit_RESTAPI/app/build.gradle new file mode 100644 index 0000000..9e8cd25 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/build.gradle @@ -0,0 +1,40 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' + +android { + compileSdkVersion 25 + buildToolsVersion "25.0.2" + defaultConfig { + applicationId "com.codingblocks.restapiretrofitjson" + minSdkVersion 16 + targetSdkVersion 25 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(include: ['*.jar'], dir: 'libs') + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" + compile 'com.android.support:appcompat-v7:25.1.0' + compile 'com.android.support:recyclerview-v7:25.1.0' + compile 'com.android.support:cardview-v7:25.1.0' + compile 'com.squareup.retrofit2:retrofit:2.3.0' + compile 'com.squareup.retrofit2:converter-gson:2.3.0' + compile 'com.android.support.constraint:constraint-layout:1.0.2' + testCompile 'junit:junit:4.12' +} +repositories { + mavenCentral() +} diff --git a/AndroidSample_Retrofit_RESTAPI/app/proguard-rules.pro b/AndroidSample_Retrofit_RESTAPI/app/proguard-rules.pro new file mode 100644 index 0000000..36a7b84 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /Users/championswimmer/Library/Android/sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/androidTest/java/com/codingblocks/restapiretrofitjson/ExampleInstrumentedTest.java b/AndroidSample_Retrofit_RESTAPI/app/src/androidTest/java/com/codingblocks/restapiretrofitjson/ExampleInstrumentedTest.java new file mode 100644 index 0000000..1e14941 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/androidTest/java/com/codingblocks/restapiretrofitjson/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.codingblocks.restapiretrofitjson; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumentation test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("com.codingblocks.restapiretrofitjson", appContext.getPackageName()); + } +} diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/AndroidManifest.xml b/AndroidSample_Retrofit_RESTAPI/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..065bd6f --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/AndroidManifest.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/AlbumsActivity.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/AlbumsActivity.java new file mode 100644 index 0000000..d872f55 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/AlbumsActivity.java @@ -0,0 +1,56 @@ +package com.codingblocks.restapiretrofitjson; + +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 android.view.View; + +import com.codingblocks.restapiretrofitjson.activities.PhotosActivity; +import com.codingblocks.restapiretrofitjson.adapters.AlbumsAdapter; +import com.codingblocks.restapiretrofitjson.api.API; +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; + +public class AlbumsActivity extends AppCompatActivity { + + RecyclerView rvAlbums; + AlbumsAdapter albumsAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_albums); + rvAlbums =(RecyclerView) findViewById(R.id.rv_Albums); + rvAlbums.setLayoutManager(new LinearLayoutManager(this)); + albumsAdapter = new AlbumsAdapter(this,new ArrayList()); + rvAlbums.setAdapter(albumsAdapter); + albumsAdapter.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(int itemId, View view) { + startActivity((new Intent(AlbumsActivity.this,PhotosActivity.class)).putExtra("albumId",itemId)); + } + }); + + API.getInstance().getAlbumsApi().getTitle().enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + albumsAdapter.updateAlbums(response.body()); + } + + @Override + public void onFailure(Call> call, Throwable t) { + + } + }); + + + } +} diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt new file mode 100644 index 0000000..f8ad985 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/MainActivity.kt @@ -0,0 +1,32 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt new file mode 100644 index 0000000..a5607aa --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/CommentsActivity.kt @@ -0,0 +1,43 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PhotosActivity.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PhotosActivity.java new file mode 100644 index 0000000..8ec65fe --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PhotosActivity.java @@ -0,0 +1,15 @@ +package com.codingblocks.restapiretrofitjson.activities; + +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; + +import com.codingblocks.restapiretrofitjson.R; + +public class PhotosActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_photos); + } +} diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java new file mode 100644 index 0000000..b244f79 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/PostsActivity.java @@ -0,0 +1,73 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodosActivity.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodosActivity.kt new file mode 100644 index 0000000..b7c7813 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/TodosActivity.kt @@ -0,0 +1,48 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/UsersActivity.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/UsersActivity.java new file mode 100644 index 0000000..f70648e --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/activities/UsersActivity.java @@ -0,0 +1,92 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/AlbumsAdapter.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/AlbumsAdapter.java new file mode 100644 index 0000000..765d725 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/AlbumsAdapter.java @@ -0,0 +1,87 @@ +package com.codingblocks.restapiretrofitjson.adapters; + + +/** + * Created by GhanshamBansal on 05/07/17. + */ +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 GhanshamBansal on 01/07/17. + */ + +public class AlbumsAdapter extends RecyclerView.Adapter { + + private Context context; + private ArrayList albums; + private OnItemClickListener onItemClickListener; + + public AlbumsAdapter(Context context, ArrayList albums) { + this.context = context; + this.albums = albums; + } + public void setOnItemClickListener(OnItemClickListener onItemClickListener) + { + this.onItemClickListener = onItemClickListener; + } + + public void updateAlbums(ArrayList newAlbumList) { + this.albums = newAlbumList; + notifyDataSetChanged(); + } + + @Override + public AlbumsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + View itemView = li.inflate(R.layout.list_item_albums,parent,false); + return new AlbumsViewHolder(itemView); + } + + @Override + public void onBindViewHolder(AlbumsViewHolder holder, int position) { + final Album thisAlbum = albums.get(position); + holder.tvAlbums.setText(thisAlbum.getTitle()); + holder.thisView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (onItemClickListener != null) { + onItemClickListener.onItemClick(thisAlbum.getId(),v); + } + } + }); + + } + + @Override + public int getItemCount() { + return albums.size(); + } + + class AlbumsViewHolder extends RecyclerView.ViewHolder{ + TextView tvAlbums; + View thisView; + public AlbumsViewHolder(View itemView) { + super(itemView); + thisView = itemView; + tvAlbums = (TextView) itemView.findViewById(R.id.tv_Albums); + + } + } +} + + + diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentAdapter.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentAdapter.kt new file mode 100644 index 0000000..01c70e7 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/CommentAdapter.kt @@ -0,0 +1,63 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostAdapter.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostAdapter.java new file mode 100644 index 0000000..5a6fdef --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/PostAdapter.java @@ -0,0 +1,90 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt new file mode 100644 index 0000000..c0bb9b6 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/TodoAdapter.kt @@ -0,0 +1,53 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UserAdapter.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UserAdapter.kt new file mode 100644 index 0000000..f9c5e79 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/adapters/UserAdapter.kt @@ -0,0 +1,73 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java new file mode 100644 index 0000000..fc0ad04 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/API.java @@ -0,0 +1,62 @@ +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 AlbumsApi albumsApi; + private UsersAPI usersAPI; + private CommentsAPI commentsAPI; + private TodosAPI todosAPI; + + public PostsAPI getPostsAPI() { + return postsAPI; + } + + public AlbumsApi getAlbumsApi() { + return albumsApi; + } + + 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); + albumsApi = retrofit.create(AlbumsApi.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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/AlbumsApi.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/AlbumsApi.java new file mode 100644 index 0000000..ea0e2f7 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/AlbumsApi.java @@ -0,0 +1,17 @@ +package com.codingblocks.restapiretrofitjson.api; + +import com.codingblocks.restapiretrofitjson.models.Album; + +import java.util.ArrayList; + +import retrofit2.Call; +import retrofit2.http.GET; + +/** + * Created by GhanshamBansal on 05/07/17. + */ + +public interface AlbumsApi { + @GET("/albums") + Call> getTitle(); +} diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/CommentsAPI.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/CommentsAPI.java new file mode 100644 index 0000000..3f23b0f --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/CommentsAPI.java @@ -0,0 +1,25 @@ +package com.codingblocks.restapiretrofitjson.api; + +import com.codingblocks.restapiretrofitjson.models.Comment; + +import java.util.ArrayList; + +import retrofit2.Call; +import retrofit2.http.GET; +import retrofit2.http.Query; + +/** + * Created by championswimmer on 29/06/17. + */ + +public interface CommentsAPI { + + @GET("/comments") + Call> getComments(); + + @GET("/comments") + Call> getCommentsByPostId( + @Query("postId") int postId + ); + +} diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/PostsAPI.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/PostsAPI.java new file mode 100644 index 0000000..e9a48a9 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/PostsAPI.java @@ -0,0 +1,40 @@ +package com.codingblocks.restapiretrofitjson.api; + +import com.codingblocks.restapiretrofitjson.models.Comment; +import com.codingblocks.restapiretrofitjson.models.Post; + +import java.util.ArrayList; + +import retrofit2.Call; +import retrofit2.http.GET; +import retrofit2.http.Path; +import retrofit2.http.Query; + +/** + * Created by championswimmer on 29/06/17. + */ + +public interface PostsAPI { + + @GET("/posts") + Call> getPosts(); + + @GET("/posts/{id}") + Call getPostById( + @Path("id") int id + ); + + @GET("/posts") + Call> getPostsByUserId( + @Query("userId") int userId + ); + + interface CommentsAPI { + + @GET("/posts/{postId}/comments") + Call> getCommentsOfPostId( + @Path("postId") int postId + ); + + } +} diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java new file mode 100644 index 0000000..fcbe15d --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/TodosAPI.java @@ -0,0 +1,27 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/UsersAPI.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/UsersAPI.java new file mode 100644 index 0000000..190ebaa --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/api/UsersAPI.java @@ -0,0 +1,18 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener.java b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener.java new file mode 100644 index 0000000..63e6f5c --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/interfaces/OnItemClickListener.java @@ -0,0 +1,11 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Album.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Album.kt new file mode 100644 index 0000000..3b5e2cb --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Album.kt @@ -0,0 +1,10 @@ +package com.codingblocks.restapiretrofitjson.models + +/** + * Created by GhanshamBansal on 05/07/17. + */ +data class Album( + val userId: Int, + val id :Int, + val title : String +) \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Comment.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Comment.kt new file mode 100644 index 0000000..932fdd9 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Comment.kt @@ -0,0 +1,12 @@ +package com.codingblocks.restapiretrofitjson.models + +/** + * Created by championswimmer on 29/06/17. + */ +data class Comment( + val postId: Int, + val id: Int, + val name: String, + val email: String, + val body: String +) \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Post.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Post.kt new file mode 100644 index 0000000..f8a8746 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Post.kt @@ -0,0 +1,12 @@ +package com.codingblocks.restapiretrofitjson.models + +/** + * Created by championswimmer on 29/06/17. + */ + +data class Post( + val userId: Int, + val id: Int, + val title: String, + val body: String +) diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt new file mode 100644 index 0000000..b5a3ff1 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/Todo.kt @@ -0,0 +1,9 @@ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/User.kt b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/User.kt new file mode 100644 index 0000000..d8b192e --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/java/com/codingblocks/restapiretrofitjson/models/User.kt @@ -0,0 +1,12 @@ +package com.codingblocks.restapiretrofitjson.models + +/** + * Created by championswimmer on 29/06/17. + */ +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/AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_albums.xml b/AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_albums.xml new file mode 100644 index 0000000..0beeb5f --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_albums.xml @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_comments.xml b/AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_comments.xml new file mode 100644 index 0000000..79b765b --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_comments.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_main.xml b/AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..d7e01c2 --- /dev/null +++ b/AndroidSample_Retrofit_RESTAPI/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,47 @@ + + + + +