diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
new file mode 100644
index 0000000..6aee837
Binary files /dev/null and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser
new file mode 100644
index 0000000..72280fa
Binary files /dev/null and b/.idea/caches/gradle_models.ser differ
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..15a15b2
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 7ac24c7..f43d428 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -3,6 +3,9 @@
-
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index d3dc902..102820f 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,6 +2,7 @@
+
diff --git a/app/build.gradle b/app/build.gradle
index ed34f61..2c0a730 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,14 +1,15 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 26
+ compileSdkVersion 29
defaultConfig {
applicationId "info.androidhive.rxjavasearch"
- minSdkVersion 16
- targetSdkVersion 26
+ minSdkVersion 26
+ targetSdkVersion 29
versionCode 1
versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ multiDexEnabled true
}
buildTypes {
release {
@@ -16,37 +17,43 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+ compileOptions {
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+ }
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'com.android.support:appcompat-v7:26.1.0'
- implementation 'com.android.support.constraint:constraint-layout:1.0.2'
- implementation 'com.android.support:design:26.1.0'
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.1'
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
-
- implementation 'com.android.support:recyclerview-v7:26.1.0'
+ implementation 'androidx.appcompat:appcompat:1.0.2'
+ implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+ implementation 'com.google.android.material:material:1.0.0'
- implementation 'io.reactivex.rxjava2:rxjava:2.1.9'
- implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
+ implementation 'androidx.recyclerview:recyclerview:1.0.0'
- compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
+ implementation 'io.reactivex.rxjava2:rxjava:2.2.7'
+ implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
- // butter knife
- implementation "com.jakewharton:butterknife:8.8.1"
- annotationProcessor "com.jakewharton:butterknife-compiler:8.8.1"
+ implementation 'com.squareup.retrofit2:adapter-rxjava2:2.5.0'
+ //implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
+ implementation 'com.jakewharton.rxbinding3:rxbinding-material:3.0.0-alpha2'
+ implementation 'com.jakewharton.rxbinding3:rxbinding:3.0.0-alpha2'
+ implementation "com.jakewharton:butterknife:10.1.0"
+ annotationProcessor "com.jakewharton:butterknife-compiler:10.1.0"
- implementation "com.squareup.retrofit2:retrofit:2.0.0"
- implementation "com.squareup.retrofit2:converter-gson:2.0.0"
+ implementation "com.squareup.retrofit2:retrofit:2.5.0"
+ implementation "com.squareup.retrofit2:converter-gson:2.5.0"
implementation "com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0"
- implementation "com.squareup.okhttp3:okhttp:3.0.1"
- implementation "com.squareup.okhttp3:okhttp-urlconnection:3.0.1"
- implementation "com.squareup.okhttp3:logging-interceptor:3.4.1"
+ implementation 'com.squareup.okhttp3:okhttp:4.0.0-alpha02'
+ implementation 'com.squareup.okhttp3:okhttp-urlconnection:4.0.0-alpha02'
+ implementation 'com.squareup.okhttp3:logging-interceptor:4.0.0-alpha02'
// glide image library
- implementation "com.github.bumptech.glide:glide:4.3.1"
+ implementation "com.github.bumptech.glide:glide:4.9.0"
- implementation "com.jakewharton.rxbinding2:rxbinding:2.0.0"
+ testImplementation 'junit:junit:4.13-beta-3'
+ androidTestImplementation 'androidx.test:runner:1.2.0'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
diff --git a/app/src/androidTest/java/info/androidhive/rxjavasearch/ExampleInstrumentedTest.java b/app/src/androidTest/java/info/androidhive/rxjavasearch/ExampleInstrumentedTest.java
index 7e1c525..ff03373 100644
--- a/app/src/androidTest/java/info/androidhive/rxjavasearch/ExampleInstrumentedTest.java
+++ b/app/src/androidTest/java/info/androidhive/rxjavasearch/ExampleInstrumentedTest.java
@@ -1,8 +1,8 @@
package info.androidhive.rxjavasearch;
import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/app/src/main/java/info/androidhive/rxjavasearch/adapter/ContactsAdapter.java b/app/src/main/java/info/androidhive/rxjavasearch/adapter/ContactsAdapter.java
index c002dbe..5b687dc 100644
--- a/app/src/main/java/info/androidhive/rxjavasearch/adapter/ContactsAdapter.java
+++ b/app/src/main/java/info/androidhive/rxjavasearch/adapter/ContactsAdapter.java
@@ -5,7 +5,7 @@
*/
import android.content.Context;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -19,10 +19,11 @@
import info.androidhive.rxjavasearch.R;
import info.androidhive.rxjavasearch.network.model.Contact;
+import info.androidhive.rxjavasearch.network.model.Person;
public class ContactsAdapter extends RecyclerView.Adapter {
private Context context;
- private List contactList;
+ private List personList;
private ContactsAdapterListener listener;
public class MyViewHolder extends RecyclerView.ViewHolder {
@@ -39,17 +40,17 @@ public MyViewHolder(View view) {
@Override
public void onClick(View view) {
// send selected contact in callback
- listener.onContactSelected(contactList.get(getAdapterPosition()));
+ listener.onContactSelected(personList.get(getAdapterPosition()));
}
});
}
}
- public ContactsAdapter(Context context, List contactList, ContactsAdapterListener listener) {
+ public ContactsAdapter(Context context, List personList, ContactsAdapterListener listener) {
this.context = context;
this.listener = listener;
- this.contactList = contactList;
+ this.personList = personList;
}
@Override
@@ -62,22 +63,22 @@ public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
- final Contact contact = contactList.get(position);
- holder.name.setText(contact.getName());
- holder.phone.setText(contact.getPhone());
+ final Person person = personList.get(position);
+ holder.name.setText(person.getFirstName());
+ holder.phone.setText(person.getLastName());
- Glide.with(context)
- .load(contact.getProfileImage())
+/* Glide.with(context)
+ .load(person.getProfileImage())
.apply(RequestOptions.circleCropTransform())
- .into(holder.thumbnail);
+ .into(holder.thumbnail);*/
}
@Override
public int getItemCount() {
- return contactList.size();
+ return personList.size();
}
public interface ContactsAdapterListener {
- void onContactSelected(Contact contact);
+ void onContactSelected(Person person);
}
}
diff --git a/app/src/main/java/info/androidhive/rxjavasearch/adapter/ContactsAdapterFilterable.java b/app/src/main/java/info/androidhive/rxjavasearch/adapter/ContactsAdapterFilterable.java
index 2efbfa2..63ce273 100644
--- a/app/src/main/java/info/androidhive/rxjavasearch/adapter/ContactsAdapterFilterable.java
+++ b/app/src/main/java/info/androidhive/rxjavasearch/adapter/ContactsAdapterFilterable.java
@@ -5,7 +5,7 @@
*/
import android.content.Context;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/info/androidhive/rxjavasearch/app/Const.java b/app/src/main/java/info/androidhive/rxjavasearch/app/Const.java
index e493cb0..8a92f58 100644
--- a/app/src/main/java/info/androidhive/rxjavasearch/app/Const.java
+++ b/app/src/main/java/info/androidhive/rxjavasearch/app/Const.java
@@ -6,4 +6,5 @@
public class Const {
public static final String BASE_URL = "https://api.androidhive.info/json/";
+ public static final String LOCALHOST_URL = "http://192.168.0.5/~gmiklay/rest_api_demo/";
}
diff --git a/app/src/main/java/info/androidhive/rxjavasearch/network/ApiClient.java b/app/src/main/java/info/androidhive/rxjavasearch/network/ApiClient.java
index 74ad208..0019b02 100644
--- a/app/src/main/java/info/androidhive/rxjavasearch/network/ApiClient.java
+++ b/app/src/main/java/info/androidhive/rxjavasearch/network/ApiClient.java
@@ -32,7 +32,7 @@ public static Retrofit getClient() {
if (retrofit == null) {
retrofit = new Retrofit.Builder()
- .baseUrl(Const.BASE_URL)
+ .baseUrl(Const.LOCALHOST_URL)
.client(okHttpClient)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
diff --git a/app/src/main/java/info/androidhive/rxjavasearch/network/ApiService.java b/app/src/main/java/info/androidhive/rxjavasearch/network/ContactApi.java
similarity index 92%
rename from app/src/main/java/info/androidhive/rxjavasearch/network/ApiService.java
rename to app/src/main/java/info/androidhive/rxjavasearch/network/ContactApi.java
index 54b0317..7f1bbf1 100644
--- a/app/src/main/java/info/androidhive/rxjavasearch/network/ApiService.java
+++ b/app/src/main/java/info/androidhive/rxjavasearch/network/ContactApi.java
@@ -11,7 +11,7 @@
* Created by ravi on 31/01/18.
*/
-public interface ApiService {
+public interface ContactApi {
@GET("contacts.php")
Single> getContacts(@Query("source") String source, @Query("search") String query);
diff --git a/app/src/main/java/info/androidhive/rxjavasearch/network/PersonsApi.java b/app/src/main/java/info/androidhive/rxjavasearch/network/PersonsApi.java
new file mode 100644
index 0000000..874a3ae
--- /dev/null
+++ b/app/src/main/java/info/androidhive/rxjavasearch/network/PersonsApi.java
@@ -0,0 +1,46 @@
+package info.androidhive.rxjavasearch.network;
+
+import java.util.List;
+
+import info.androidhive.rxjavasearch.network.model.Person;
+import io.reactivex.Single;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Headers;
+import retrofit2.http.POST;
+import retrofit2.http.Path;
+import retrofit2.http.Query;
+
+public interface PersonsApi {
+
+ @Headers("Content-Type: application/json")
+ @GET("persons")
+ Single> getPersons(
+ @Query("uid[]") Integer[] uid,
+ @Query("limit") Integer limit,
+ @Query("like") String like
+ );
+
+ @GET("persons/{uid}")
+ Call> getPersonById(@Path("uid") int uid);
+
+ @GET("persons/generate/{no_of_persons}")
+ Call> generatePersons(
+ @Path("no_of_persons") int no_of_persons,
+ @Query("with_confirm") boolean with_confirm
+ );
+
+ @Headers("Content-Type: application/json")
+ @POST("persons")
+ Call> getPersonsUnlimited(
+ @Body String body,
+ @Query("limit") Integer limit
+ );
+
+ @Headers("Content-Type: application/json")
+ @POST("persons/insert")
+ Call> insertPersons(
+ @Body String body
+ );
+}
\ No newline at end of file
diff --git a/app/src/main/java/info/androidhive/rxjavasearch/network/model/Person.java b/app/src/main/java/info/androidhive/rxjavasearch/network/model/Person.java
new file mode 100644
index 0000000..a72a7af
--- /dev/null
+++ b/app/src/main/java/info/androidhive/rxjavasearch/network/model/Person.java
@@ -0,0 +1,103 @@
+package info.androidhive.rxjavasearch.network.model;
+
+import com.google.gson.annotations.SerializedName;
+
+public class Person {
+
+ private int uid;
+
+ @SerializedName("first_name")
+ private String firstName;
+
+ @SerializedName("last_name")
+ private String lastName;
+
+ @SerializedName("sex_def_uid")
+ private int sexDefUid;
+
+ @SerializedName("date_of_birth")
+ private String dateOfBirth;
+
+ private String sex;
+ private String age;
+
+ public Person() {
+ }
+
+ public Person(int uid, String firstName, String lastName, int sexDefUid, String dateOfBirth, String sex) {
+ this.uid = uid;
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.sexDefUid = sexDefUid;
+ this.dateOfBirth = dateOfBirth;
+ this.sex = sex;
+ }
+
+ public int getUid() {
+ return uid;
+ }
+
+ public void setUid(int uid) {
+ this.uid = uid;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public int getSexDefUid() {
+ return sexDefUid;
+ }
+
+ public void setSexDefUid(int sexDefUid) {
+ this.sexDefUid = sexDefUid;
+ }
+
+ public String getDateOfBirth() {
+ return dateOfBirth;
+ }
+
+ public void setDateOfBirth(String dateOfBirth) {
+ this.dateOfBirth = dateOfBirth;
+ }
+
+ public String getSex() {
+ return sex;
+ }
+
+ public void setSex(String sex) {
+ this.sex = sex;
+ }
+
+ public String getAge() {
+ return age;
+ }
+
+ public void setAge(String age) {
+ this.age = age;
+ }
+
+ @Override
+ public String toString() {
+ return "Person{" +
+ "uid=" + uid +
+ ", firstName='" + firstName + '\'' +
+ ", lastName='" + lastName + '\'' +
+ ", sexDefUid=" + sexDefUid +
+ ", dateOfBirth=" + dateOfBirth +
+ ", sex='" + sex + '\'' +
+ '}';
+ }
+}
diff --git a/app/src/main/java/info/androidhive/rxjavasearch/view/LocalSearchActivity.java b/app/src/main/java/info/androidhive/rxjavasearch/view/LocalSearchActivity.java
index 4c58839..2a036d8 100644
--- a/app/src/main/java/info/androidhive/rxjavasearch/view/LocalSearchActivity.java
+++ b/app/src/main/java/info/androidhive/rxjavasearch/view/LocalSearchActivity.java
@@ -2,20 +2,20 @@
import android.graphics.Color;
import android.os.Build;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
-import android.support.v7.widget.DefaultItemAnimator;
-import android.support.v7.widget.DividerItemDecoration;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.Toolbar;
+import androidx.recyclerview.widget.DefaultItemAnimator;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
-import com.jakewharton.rxbinding2.widget.RxTextView;
-import com.jakewharton.rxbinding2.widget.TextViewTextChangeEvent;
+import com.jakewharton.rxbinding3.widget.RxTextView;
+import com.jakewharton.rxbinding3.widget.TextViewTextChangeEvent;
import java.util.ArrayList;
import java.util.List;
@@ -27,7 +27,7 @@
import info.androidhive.rxjavasearch.R;
import info.androidhive.rxjavasearch.adapter.ContactsAdapterFilterable;
import info.androidhive.rxjavasearch.network.ApiClient;
-import info.androidhive.rxjavasearch.network.ApiService;
+import info.androidhive.rxjavasearch.network.ContactApi;
import info.androidhive.rxjavasearch.network.model.Contact;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
@@ -40,7 +40,7 @@ public class LocalSearchActivity extends AppCompatActivity implements ContactsAd
private static final String TAG = LocalSearchActivity.class.getSimpleName();
private CompositeDisposable disposable = new CompositeDisposable();
- private ApiService apiService;
+ private ContactApi contactApi;
private ContactsAdapterFilterable mAdapter;
private List contactsList = new ArrayList<>();
@@ -72,7 +72,7 @@ protected void onCreate(Bundle savedInstanceState) {
whiteNotificationBar(recyclerView);
- apiService = ApiClient.getClient().create(ApiService.class);
+ contactApi = ApiClient.getClient().create(ContactApi.class);
disposable.add(RxTextView.textChangeEvents(inputSearch)
.skipInitialValue()
@@ -99,8 +99,8 @@ private DisposableObserver searchContacts() {
return new DisposableObserver() {
@Override
public void onNext(TextViewTextChangeEvent textViewTextChangeEvent) {
- Log.d(TAG, "Search query: " + textViewTextChangeEvent.text());
- mAdapter.getFilter().filter(textViewTextChangeEvent.text());
+ Log.d(TAG, "Search query: " + textViewTextChangeEvent.getText());
+ mAdapter.getFilter().filter(textViewTextChangeEvent.getText());
}
@Override
@@ -119,7 +119,7 @@ public void onComplete() {
* Fetching all contacts
*/
private void fetchContacts(String source) {
- disposable.add(apiService
+ disposable.add(contactApi
.getContacts(source, null)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
diff --git a/app/src/main/java/info/androidhive/rxjavasearch/view/MainActivity.java b/app/src/main/java/info/androidhive/rxjavasearch/view/MainActivity.java
index fd46650..8d11208 100644
--- a/app/src/main/java/info/androidhive/rxjavasearch/view/MainActivity.java
+++ b/app/src/main/java/info/androidhive/rxjavasearch/view/MainActivity.java
@@ -4,13 +4,10 @@
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import android.view.View;
-import android.view.Menu;
-import android.view.MenuItem;
import butterknife.ButterKnife;
import butterknife.OnClick;
diff --git a/app/src/main/java/info/androidhive/rxjavasearch/view/RemoteSearchActivity.java b/app/src/main/java/info/androidhive/rxjavasearch/view/RemoteSearchActivity.java
index 977eb3b..e8b2bc3 100644
--- a/app/src/main/java/info/androidhive/rxjavasearch/view/RemoteSearchActivity.java
+++ b/app/src/main/java/info/androidhive/rxjavasearch/view/RemoteSearchActivity.java
@@ -2,20 +2,20 @@
import android.graphics.Color;
import android.os.Build;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
-import android.support.v7.widget.DefaultItemAnimator;
-import android.support.v7.widget.DividerItemDecoration;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.Toolbar;
+import androidx.recyclerview.widget.DefaultItemAnimator;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
-import com.jakewharton.rxbinding2.widget.RxTextView;
-import com.jakewharton.rxbinding2.widget.TextViewTextChangeEvent;
+import com.jakewharton.rxbinding3.widget.RxTextView;
+import com.jakewharton.rxbinding3.widget.TextViewTextChangeEvent;
import java.util.ArrayList;
import java.util.List;
@@ -27,8 +27,10 @@
import info.androidhive.rxjavasearch.R;
import info.androidhive.rxjavasearch.adapter.ContactsAdapter;
import info.androidhive.rxjavasearch.network.ApiClient;
-import info.androidhive.rxjavasearch.network.ApiService;
+import info.androidhive.rxjavasearch.network.ContactApi;
+import info.androidhive.rxjavasearch.network.PersonsApi;
import info.androidhive.rxjavasearch.network.model.Contact;
+import info.androidhive.rxjavasearch.network.model.Person;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
@@ -43,9 +45,11 @@ public class RemoteSearchActivity extends AppCompatActivity implements ContactsA
private CompositeDisposable disposable = new CompositeDisposable();
private PublishSubject publishSubject = PublishSubject.create();
- private ApiService apiService;
+ private ContactApi contactApi;
+ private PersonsApi personsApi;
private ContactsAdapter mAdapter;
private List contactsList = new ArrayList<>();
+ private List personList = new ArrayList<>();
@BindView(R.id.input_search)
EditText inputSearch;
@@ -66,7 +70,7 @@ protected void onCreate(Bundle savedInstanceState) {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- mAdapter = new ContactsAdapter(this, contactsList, this);
+ mAdapter = new ContactsAdapter(this, personList, this);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
@@ -76,18 +80,24 @@ protected void onCreate(Bundle savedInstanceState) {
whiteNotificationBar(recyclerView);
- apiService = ApiClient.getClient().create(ApiService.class);
+ contactApi = ApiClient.getClient().create(ContactApi.class);
+ personsApi = ApiClient.getClient().create(PersonsApi.class);
- DisposableObserver> observer = getSearchObserver();
+ initReactiveX();
+ }
+
+ private void initReactiveX() {
+ DisposableObserver> observer = getSearchObserver();
disposable.add(
publishSubject
.debounce(300, TimeUnit.MILLISECONDS)
.distinctUntilChanged()
- .switchMapSingle(new Function>>() {
+ .switchMapSingle(new Function>>() {
@Override
- public Single> apply(String s) throws Exception {
- return apiService.getContacts(null, s)
+ public Single> apply(String s) throws Exception {
+ Log.d("From_me", "personsApi.getPersons: " + s);
+ return personsApi.getPersons(null, 10000, s)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
@@ -110,12 +120,12 @@ public Single> apply(String s) throws Exception {
publishSubject.onNext("");
}
- private DisposableObserver> getSearchObserver() {
- return new DisposableObserver>() {
+ private DisposableObserver> getSearchObserver() {
+ return new DisposableObserver>() {
@Override
- public void onNext(List contacts) {
- contactsList.clear();
- contactsList.addAll(contacts);
+ public void onNext(List persons) {
+ personList.clear();
+ personList.addAll(persons);
mAdapter.notifyDataSetChanged();
}
@@ -135,9 +145,9 @@ private DisposableObserver searchContactsTextWatcher()
return new DisposableObserver() {
@Override
public void onNext(TextViewTextChangeEvent textViewTextChangeEvent) {
- Log.d(TAG, "Search query: " + textViewTextChangeEvent.text());
+ Log.d(TAG, "Search query: " + textViewTextChangeEvent.getText());
- publishSubject.onNext(textViewTextChangeEvent.text().toString());
+ publishSubject.onNext(textViewTextChangeEvent.getText().toString());
}
@Override
@@ -160,7 +170,7 @@ protected void onDestroy() {
}
@Override
- public void onContactSelected(Contact contact) {
+ public void onContactSelected(Person contact) {
}
diff --git a/app/src/main/res/layout/activity_local_search.xml b/app/src/main/res/layout/activity_local_search.xml
index 27f3312..09248e2 100644
--- a/app/src/main/res/layout/activity_local_search.xml
+++ b/app/src/main/res/layout/activity_local_search.xml
@@ -1,25 +1,25 @@
-
-
-
-
+
-
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 9e8a0f4..f4e380d 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,25 +1,25 @@
-
-
-
-
+
-
+
diff --git a/app/src/main/res/layout/activity_remote_search.xml b/app/src/main/res/layout/activity_remote_search.xml
index 8cc0caa..454b1b9 100644
--- a/app/src/main/res/layout/activity_remote_search.xml
+++ b/app/src/main/res/layout/activity_remote_search.xml
@@ -1,25 +1,25 @@
-
-
-
-
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/content_local_search.xml b/app/src/main/res/layout/content_local_search.xml
index cd4c9d5..ac98593 100644
--- a/app/src/main/res/layout/content_local_search.xml
+++ b/app/src/main/res/layout/content_local_search.xml
@@ -16,7 +16,7 @@
android:hint="@string/hint_search"
android:paddingBottom="@dimen/dimen_20" />
-
-