Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@
.DS_Store
/build
/captures

\.idea/
Binary file removed .idea/caches/build_file_checksums.ser
Binary file not shown.
29 changes: 0 additions & 29 deletions .idea/codeStyles/Project.xml

This file was deleted.

19 changes: 0 additions & 19 deletions .idea/gradle.xml

This file was deleted.

34 changes: 0 additions & 34 deletions .idea/misc.xml

This file was deleted.

9 changes: 0 additions & 9 deletions .idea/modules.xml

This file was deleted.

12 changes: 0 additions & 12 deletions .idea/runConfigurations.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

20 changes: 8 additions & 12 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'

android {
compileSdkVersion 25
compileSdkVersion 27
buildToolsVersion '27.0.3'

defaultConfig {
applicationId "com.motondon.rxjavademoapp"
minSdkVersion 21
targetSdkVersion 25
targetSdkVersion 27
versionCode 1
versionName "1.0"

Expand All @@ -30,17 +29,14 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design: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:appcompat-v7:27.1.1'
compile 'com.android.support:design:27.1.1'
compile 'com.android.support:recyclerview-v7:27.1.1'
compile 'com.android.support:cardview-v7:27.1.1'

// RxJava dependency
compile 'io.reactivex:rxjava:1.1.9'

// RxAndroid dependency
compile 'io.reactivex:rxandroid:1.2.1'

implementation "io.reactivex.rxjava2:rxjava:2.1.13"
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
// RxBindings dependency
compile 'com.jakewharton.rxbinding:rxbinding:0.4.0'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,60 +7,58 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import butterknife.BindView;
import butterknife.ButterKnife;
import com.motondon.rxjavademoapp.R;
import com.motondon.rxjavademoapp.view.main.CategoryItem;

import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class CategoryItemsAdapter extends RecyclerView.Adapter<CategoryItemsAdapter.ViewHolder> {

private Context mContext;
private List<CategoryItem> mCategoryItemList;
private Context mContext;
private List<CategoryItem> mCategoryItemList;

public CategoryItemsAdapter(Context context, List<CategoryItem> categoryItemList) {
mContext = context;
mCategoryItemList = categoryItemList;
}
public CategoryItemsAdapter(Context context, List<CategoryItem> categoryItemList) {
mContext = context;
mCategoryItemList = categoryItemList;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater
.from(mContext)
.inflate(R.layout.item_category_list, parent, false);
return new ViewHolder(v);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(mContext).inflate(R.layout.item_category_list, parent, false);
return new ViewHolder(v);
}

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.mCategoryItemName.setText(mCategoryItemList.get(position).mExampleName);
holder.mCategoryItemDetails.setText(mCategoryItemList.get(position).mExampleDetails);
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.mCategoryItemName.setText(mCategoryItemList.get(position).mExampleName);
holder.mCategoryItemDetails.setText(mCategoryItemList.get(position).mExampleDetails);

// When user clicks on an example, extract a class that implements that example and call it by using an intent.
holder.itemView.setOnClickListener((v) -> {
Intent exampleIntent = new Intent(mContext, mCategoryItemList.get(position).mExampleActivityClass);
exampleIntent.putExtra("TITLE", mCategoryItemList.get(position).mExampleName);
// When user clicks on an example, extract a class that implements that example and call it by using an intent.
holder.itemView.setOnClickListener((v) -> {
Intent exampleIntent =
new Intent(mContext, mCategoryItemList.get(position).mExampleActivityClass);
exampleIntent.putExtra("TITLE", mCategoryItemList.get(position).mExampleName);

mContext.startActivity(exampleIntent);
});
}
mContext.startActivity(exampleIntent);
});
}

@Override
public int getItemCount() {
return mCategoryItemList.size();
}
@Override
public int getItemCount() {
return mCategoryItemList.size();
}

public static class ViewHolder extends RecyclerView.ViewHolder {
public static class ViewHolder extends RecyclerView.ViewHolder {

@BindView(R.id.item) TextView mCategoryItemName;
@BindView(R.id.item_details) TextView mCategoryItemDetails;
@BindView(R.id.item)
TextView mCategoryItemName;
@BindView(R.id.item_details)
TextView mCategoryItemDetails;

public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,70 +7,74 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import butterknife.BindView;
import butterknife.ButterKnife;
import com.motondon.rxjavademoapp.R;
import com.motondon.rxjavademoapp.view.main.ExampleByCategoryActivity;
import com.motondon.rxjavademoapp.view.main.CategoryItem;
import com.motondon.rxjavademoapp.view.main.ExampleByCategoryActivity;
import com.motondon.rxjavademoapp.view.main.MainActivity;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivityAdapter extends RecyclerView.Adapter<MainActivityAdapter.ViewHolder> {

private List<Pair<List<CategoryItem>, Pair<String, String>>> mExampleCategoriessList = new ArrayList<>();
private MainActivity mMainActivity;
private List<Pair<List<CategoryItem>, Pair<String, String>>> mExampleCategoriessList =
new ArrayList<>();
private MainActivity mMainActivity;

public MainActivityAdapter(MainActivity mainActivity, List<Pair<List<CategoryItem>, Pair<String, String>>> mExampleCategoriessList) {
this.mExampleCategoriessList = mExampleCategoriessList;
this.mMainActivity = mainActivity;
}
public MainActivityAdapter(MainActivity mainActivity,
List<Pair<List<CategoryItem>, Pair<String, String>>> mExampleCategoriessList) {
this.mExampleCategoriessList = mExampleCategoriessList;
this.mMainActivity = mainActivity;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_cardview_options, parent, false);
return new ViewHolder(view);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_cardview_options, parent, false);
return new ViewHolder(view);
}

@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {

// Not too much to say here. We just get the item and set a listener for it. When user clicks on it, he will be redirected
// to the activity that implements the selected example.
Pair<List<CategoryItem>, Pair<String, String>> categoriesDetailsList = mExampleCategoriessList.get(position);
// Not too much to say here. We just get the item and set a listener for it. When user clicks on it, he will be redirected
// to the activity that implements the selected example.
Pair<List<CategoryItem>, Pair<String, String>> categoriesDetailsList =
mExampleCategoriessList.get(position);

final List<CategoryItem> categoryItemList = categoriesDetailsList.first;
Pair<String, String> item = categoriesDetailsList.second;
final List<CategoryItem> categoryItemList = categoriesDetailsList.first;
Pair<String, String> item = categoriesDetailsList.second;

holder.categoryName.setText(item.first);
holder.categoryDetails.setText(item.second);
holder.categoryName.setText(item.first);
holder.categoryDetails.setText(item.second);

holder.itemView.setOnClickListener((v) -> {
Intent exampleByCategoryIntent = new Intent(mMainActivity.getApplicationContext(), ExampleByCategoryActivity.class);
holder.itemView.setOnClickListener((v) -> {
Intent exampleByCategoryIntent =
new Intent(mMainActivity.getApplicationContext(), ExampleByCategoryActivity.class);

exampleByCategoryIntent.putExtra("CATEGORY_ITEMS",(ArrayList) categoryItemList);
exampleByCategoryIntent.putExtra("TITLE", holder.categoryName.getText().toString());
exampleByCategoryIntent.putExtra("CATEGORY_ITEMS", (ArrayList) categoryItemList);
exampleByCategoryIntent.putExtra("TITLE", holder.categoryName.getText().toString());

mMainActivity.startActivity(exampleByCategoryIntent);
});
}
mMainActivity.startActivity(exampleByCategoryIntent);
});
}

@Override
public int getItemCount() {
return mExampleCategoriessList.size();
}
@Override
public int getItemCount() {
return mExampleCategoriessList.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
public class ViewHolder extends RecyclerView.ViewHolder {

@BindView(R.id.category_name) TextView categoryName;
@BindView(R.id.category_details) TextView categoryDetails;
@BindView(R.id.category_name)
TextView categoryName;
@BindView(R.id.category_details)
TextView categoryDetails;

public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
}
Loading