diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 30aa626..0000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 96cc43e..fb7f4a8 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,22 +1,6 @@ - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 3b65dc8..1d50764 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,21 +1,22 @@ + diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 2edf4f5..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index d62475f..3cf7eed 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ allprojects { **Step 2.** Add the dependency ``` dependencies { - implementation 'com.github.Omega-R:OmegaRecyclerView:1.9.3@aar' // AndroidX + implementation 'com.github.Omega-R.OmegaRecyclerView:omegarecyclerview:1.10.1@aar' // AndroidX // or // implementation 'com.github.Omega-R:OmegaRecyclerView:1.8.2@aar' // Android Support } @@ -33,7 +33,7 @@ dependencies { # Usage Example of usage in xml layout ``` -com.omega_r.libs.omegarecyclerview.OmegaRecyclerView + { +public class ExpandableAdapter extends OmegaExpandableRecyclerView.Adapter { @Override protected ExGroupViewHolder provideGroupViewHolder(@NonNull ViewGroup viewGroup) { @@ -353,8 +353,8 @@ public class ExpandableAdapter extends OmegaExpandableRecyclerView.Adapter> expandableViewData) -void setItems(ExpandableViewData... expandableViewData) -void setItems(GroupProvider... groupProviders) +public final void setItems(@NonNull List> expandableViewData) +public final void setItems(ExpandableViewData... expandableViewData) +public final void setItemsAsGroupProviders(GroupProvider... groupProviders) +public final void setItemsAsGroupProviders(@NonNull List> groupProviders) ``` Your view data (group and childs) should be wrapped with ```ExpandableViewData``` using one of the following ways: @@ -387,6 +388,12 @@ public interface GroupProvider { } ``` +It is available to update only child item using +``` +// Adapter +public void notifyChildChanged(CH child) +``` + You can set expandMode and childAnimation both with xml attr and programmatically *Available expandModes are single and multiple* diff --git a/app/build.gradle b/app/build.gradle index 26db849..ca06a39 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,15 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 28 + compileSdkVersion rootProject.compileSdkVersion buildToolsVersion rootProject.buildToolsVersion defaultConfig { applicationId "com.omega_r.omegarecyclerview" - minSdkVersion 16 - targetSdkVersion 28 + minSdkVersion rootProject.minSdkVersion + targetSdkVersion rootProject.targetSdkVersion versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { @@ -17,21 +17,22 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - buildToolsVersion rootProject.buildToolsVersion } dependencies { - implementation 'com.android.support.constraint:constraint-layout:1.1.3' + implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4' implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'com.android.support:appcompat-v7:' + rootProject.supportLibVersion - implementation 'com.android.support:support-v4:' + rootProject.supportLibVersion - implementation 'com.android.support:design:' + rootProject.supportLibVersion + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'androidx.appcompat:appcompat:' + rootProject.appcompatVersion + implementation 'com.google.android.material:material:' + rootProject.materialVersion implementation 'com.github.Omega-R.OmegaIntentBuilder:core:' + rootProject.omegaIntentBuilder implementation 'com.github.Omega-R.OmegaIntentBuilder:annotations:' + rootProject.omegaIntentBuilder annotationProcessor 'com.github.Omega-R.OmegaIntentBuilder:processor:' + rootProject.omegaIntentBuilder - api project(':omegarecyclerviewlibs') + implementation project(':omegarecyclerview') + implementation project(':omegarecyclerview_fastscroll') + implementation project(':omegarecyclerview_expandable') androidTestImplementation('com.android.support.test.espresso:espresso-core:' + rootProject.espressoVersion, { exclude group: 'com.android.support', module: 'support-annotations' diff --git a/app/src/androidTest/java/com/omega_r/omegarecyclerview/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/omega_r/omegarecyclerview/ExampleInstrumentedTest.java index a601bb1..b83aea2 100644 --- a/app/src/androidTest/java/com/omega_r/omegarecyclerview/ExampleInstrumentedTest.java +++ b/app/src/androidTest/java/com/omega_r/omegarecyclerview/ExampleInstrumentedTest.java @@ -1,8 +1,8 @@ package com.omega_r.omegarecyclerview; 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/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 065a6d1..9d9d278 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ @@ -25,7 +25,7 @@ - + \ No newline at end of file diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/ListAdapterExample/ListAdapter.java b/app/src/main/java/com/omega_r/omegarecyclerview/ListAdapterExample/ListAdapter.java index 98c89ac..53aa337 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/ListAdapterExample/ListAdapter.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/ListAdapterExample/ListAdapter.java @@ -3,6 +3,7 @@ import android.view.ViewGroup; import android.widget.TextView; +import androidx.annotation.NonNull; import com.omega_r.libs.omegarecyclerview.BaseListAdapter; import com.omega_r.omegarecyclerview.R; @@ -13,8 +14,9 @@ public ListAdapter(BaseListAdapter.OnItemClickListener clickListener, super(clickListener, longClickListener); } + @NonNull @Override - protected ViewHolder provideViewHolder(ViewGroup parent) { + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new SampleViewHolder(parent); } diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/ListAdapterExample/ListAdapterActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/ListAdapterExample/ListAdapterActivity.java index 07e5260..11edb88 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/ListAdapterExample/ListAdapterActivity.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/ListAdapterExample/ListAdapterActivity.java @@ -1,15 +1,14 @@ package com.omega_r.omegarecyclerview.ListAdapterExample; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.widget.Toast; import com.omega_r.libs.omegarecyclerview.BaseListAdapter; import com.omega_r.omegarecyclerview.R; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import omega.com.annotations.OmegaActivity; diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/MainActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/MainActivity.java index ab5bd0d..2de84f0 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/MainActivity.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/MainActivity.java @@ -1,10 +1,12 @@ package com.omega_r.omegarecyclerview; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import android.view.View; import com.omega_r.libs.omegaintentbuilder.AppOmegaIntentBuilder; +import com.omega_r.libs.omegaintentbuilder.OmegaIntentBuilder; +import com.omega_r.omegarecyclerview.fastscroll_example.FastScrollActivity; public class MainActivity extends AppCompatActivity implements View.OnClickListener { @@ -20,6 +22,7 @@ protected void onCreate(Bundle savedInstanceState) { findViewById(R.id.button_viewpager).setOnClickListener(this); findViewById(R.id.button_list_adapter).setOnClickListener(this); findViewById(R.id.button_expandable_recyclerview).setOnClickListener(this); + findViewById(R.id.button_fastscroll).setOnClickListener(this); } /** @@ -34,49 +37,47 @@ public void onClick(View view) { AppOmegaIntentBuilder.from(this) .appActivities() .swipeMenuActivity() - .createIntentHandler() .startActivity(); break; case R.id.button_sticky_header: AppOmegaIntentBuilder.from(this) .appActivities() .stickyHeaderActivity() - .createIntentHandler() .startActivity(); break; case R.id.button_pagination: AppOmegaIntentBuilder.from(this) .appActivities() .paginationActivity() - .createIntentHandler() .startActivity(); break; case R.id.button_sections: AppOmegaIntentBuilder.from(this) .appActivities() .sectionsActivity() - .createIntentHandler() .startActivity(); break; case R.id.button_viewpager: AppOmegaIntentBuilder.from(this) .appActivities() .viewPagerActivity() - .createIntentHandler() .startActivity(); break; case R.id.button_list_adapter: AppOmegaIntentBuilder.from(this) .appActivities() .listAdapterActivity() - .createIntentHandler() .startActivity(); break; case R.id.button_expandable_recyclerview: AppOmegaIntentBuilder.from(this) .appActivities() .chooseExpandableActivity() - .createIntentHandler() + .startActivity(); + break; + case R.id.button_fastscroll: + OmegaIntentBuilder.from(this) + .activity(FastScrollActivity.class) .startActivity(); break; } diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/ChooseExpandableActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/ChooseExpandableActivity.java index 5304da4..26ef51e 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/ChooseExpandableActivity.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/ChooseExpandableActivity.java @@ -1,7 +1,7 @@ package com.omega_r.omegarecyclerview.expandable_example; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import android.view.View; import com.omega_r.libs.omegaintentbuilder.AppOmegaIntentBuilder; diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/ExpandableActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/ExpandableActivity.java index 45ff0ea..baf519b 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/ExpandableActivity.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/ExpandableActivity.java @@ -1,17 +1,24 @@ package com.omega_r.omegarecyclerview.expandable_example.core; import android.os.Bundle; -import android.support.annotation.LayoutRes; -import android.support.v7.app.AppCompatActivity; +import androidx.annotation.LayoutRes; +import androidx.appcompat.app.AppCompatActivity; + +import android.view.View; +import android.widget.Button; import android.widget.CompoundButton; import android.widget.RadioButton; -import com.omega_r.libs.omegarecyclerview.expandable_recycler_view.OmegaExpandableRecyclerView; -import com.omega_r.libs.omegarecyclerview.expandable_recycler_view.animation.ExpandableItemAnimator; -import com.omega_r.libs.omegarecyclerview.expandable_recycler_view.animation.standard_animations.DropDownItemAnimator; -import com.omega_r.libs.omegarecyclerview.expandable_recycler_view.animation.standard_animations.FadeItemAnimator; +import com.omega_r.libs.omegarecyclerview_expandable.OmegaExpandableRecyclerView; +import com.omega_r.libs.omegarecyclerview_expandable.animation.ExpandableItemAnimator; +import com.omega_r.libs.omegarecyclerview_expandable.animation.standard_animations.DropDownItemAnimator; +import com.omega_r.libs.omegarecyclerview_expandable.animation.standard_animations.FadeItemAnimator; +import com.omega_r.libs.omegarecyclerview_expandable.data.GroupProvider; import com.omega_r.omegarecyclerview.R; +import java.util.Arrays; +import java.util.List; + import omega.com.annotations.OmegaActivity; @OmegaActivity @@ -27,6 +34,8 @@ protected OmegaExpandableRecyclerView.Adapter provideAdapter() { return new ExpandableAdapter(); } + private List> items; + @LayoutRes protected int provideContentLayoutRes() { return R.layout.activity_expandable; @@ -37,9 +46,46 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(provideContentLayoutRes()); + createItems(); + setupRecyclerView(); setupRadioButtons(); fillAdapter(); + + findViewById(R.id.button_test_update_child).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Quote quote = items.get(3).provideChilds().get(1); + quote.setQuote("UPDATED QUOTE"); + mAdapter.notifyChildChanged(quote); + } + }); + } + + private void createItems() { + items = Arrays.asList( + SimpleData.from( + new QuoteGlobalInfo(getString(R.string.group_text_1), 1500), + new Quote(getString(R.string.child_text_1)) + ), + SimpleData.from( + new QuoteGlobalInfo(getString(R.string.group_text_2), 1500), + new Quote(getString(R.string.child_text_2)) + ), + SimpleData.from( + new QuoteGlobalInfo(getString(R.string.group_text_3), 1914), + new Quote(getString(R.string.child_text_3)), + new Quote(getString(R.string.child_text_5)) + ), + SimpleData.from( + new QuoteGlobalInfo(getString(R.string.group_text_5), 1914), + new Quote(getString(R.string.child_text_1)), + new Quote(getString(R.string.child_text_2)), + new Quote(getString(R.string.child_text_3)), + new Quote(getString(R.string.child_text_4)), + new Quote(getString(R.string.child_text_5)) + ) + ); } protected void setupRecyclerView() { @@ -48,19 +94,7 @@ protected void setupRecyclerView() { } protected void fillAdapter() { - mAdapter.setItems( - SimpleData.from(new QuoteGlobalInfo(getString(R.string.group_text_1), 1500), getString(R.string.child_text_1)), - SimpleData.from(new QuoteGlobalInfo(getString(R.string.group_text_2), 1500), getString(R.string.child_text_2)), - SimpleData.from(new QuoteGlobalInfo(getString(R.string.group_text_3), 1914), - getString(R.string.child_text_3), - getString(R.string.child_text_5)), - SimpleData.from(new QuoteGlobalInfo(getString(R.string.group_text_5), 1914), - getString(R.string.child_text_1), - getString(R.string.child_text_2), - getString(R.string.child_text_3), - getString(R.string.child_text_4), - getString(R.string.child_text_5)) - ); + mAdapter.setItemsAsGroupProviders(items); } protected void setupRadioButtons() { diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/ExpandableAdapter.java b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/ExpandableAdapter.java index e81afe8..4989389 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/ExpandableAdapter.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/ExpandableAdapter.java @@ -1,16 +1,13 @@ package com.omega_r.omegarecyclerview.expandable_example.core; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import android.widget.TextView; -import android.widget.Toast; -import com.omega_r.libs.omegarecyclerview.OmegaRecyclerView; -import com.omega_r.libs.omegarecyclerview.expandable_recycler_view.OmegaExpandableRecyclerView; -import com.omega_r.libs.omegarecyclerview.sticky_header.StickyHeaderAdapter; +import com.omega_r.libs.omegarecyclerview_expandable.OmegaExpandableRecyclerView; import com.omega_r.omegarecyclerview.R; -public class ExpandableAdapter extends OmegaExpandableRecyclerView.Adapter { +public class ExpandableAdapter extends OmegaExpandableRecyclerView.Adapter { @Override protected ExGroupViewHolder provideGroupViewHolder(@NonNull ViewGroup viewGroup) { @@ -57,8 +54,8 @@ class ExChildViewHolder extends ChildViewHolder { } @Override - protected void onBind(String item) { - textView.setText(item); + protected void onBind(Quote item) { + textView.setText(item.getQuote()); } } } diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/Quote.java b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/Quote.java new file mode 100644 index 0000000..c9b1456 --- /dev/null +++ b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/Quote.java @@ -0,0 +1,30 @@ +package com.omega_r.omegarecyclerview.expandable_example.core; + +public class Quote { + private String mQuote; + + public Quote(String quote) { + mQuote = quote; + } + + public String getQuote() { + return mQuote; + } + + public void setQuote(String quote) { + mQuote = quote; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Quote quote = (Quote) o; + return mQuote.equals(quote.mQuote); + } + + @Override + public int hashCode() { + return mQuote.hashCode(); + } +} diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/SimpleData.java b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/SimpleData.java index 927d3d1..4b86d33 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/SimpleData.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/core/SimpleData.java @@ -1,22 +1,23 @@ package com.omega_r.omegarecyclerview.expandable_example.core; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; -import com.omega_r.libs.omegarecyclerview.expandable_recycler_view.data.GroupProvider; + +import com.omega_r.libs.omegarecyclerview_expandable.data.GroupProvider; import java.util.Arrays; import java.util.List; -public class SimpleData implements GroupProvider { +public class SimpleData implements GroupProvider { private QuoteGlobalInfo mQuoteGlobalInfo; - private List mQuotes; + private List mQuotes; - public static SimpleData from(QuoteGlobalInfo title, String... quotes) { + public static SimpleData from(QuoteGlobalInfo title, Quote... quotes) { return new SimpleData(title, Arrays.asList(quotes)); } - public SimpleData(QuoteGlobalInfo quoteGlobalInfo, List quotes) { + public SimpleData(QuoteGlobalInfo quoteGlobalInfo, List quotes) { mQuoteGlobalInfo = quoteGlobalInfo; mQuotes = quotes; } @@ -29,11 +30,11 @@ public void setQuoteGlobalInfo(QuoteGlobalInfo quoteGlobalInfo) { mQuoteGlobalInfo = quoteGlobalInfo; } - public List getQuotes() { + public List getQuotes() { return mQuotes; } - public void setQuotes(List quotes) { + public void setQuotes(List quotes) { mQuotes = quotes; } @@ -43,7 +44,7 @@ public QuoteGlobalInfo provideGroup() { } @Override - public List provideChilds() { + public List provideChilds() { return mQuotes; } diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/support_sticky/DefaultStickyAdapter.java b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/support_sticky/DefaultStickyAdapter.java index defc207..57d27c8 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/support_sticky/DefaultStickyAdapter.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/support_sticky/DefaultStickyAdapter.java @@ -1,18 +1,20 @@ package com.omega_r.omegarecyclerview.expandable_example.support_sticky; -import android.support.annotation.NonNull; +import androidx.annotation.NonNull; import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; import com.omega_r.libs.omegarecyclerview.OmegaRecyclerView; -import com.omega_r.libs.omegarecyclerview.expandable_recycler_view.OmegaExpandableRecyclerView; -import com.omega_r.libs.omegarecyclerview.sticky_header.StickyHeaderAdapter; -import com.omega_r.libs.omegarecyclerview.sticky_header.BaseStickyHeaderDecoration; +import com.omega_r.libs.omegarecyclerview.sticky_decoration.StickyAdapter; +import com.omega_r.libs.omegarecyclerview.sticky_decoration.HeaderStickyDecoration; +import com.omega_r.libs.omegarecyclerview_expandable.OmegaExpandableRecyclerView; +import com.omega_r.libs.omegarecyclerview_expandable.data.ExpandableViewData; import com.omega_r.omegarecyclerview.R; +import com.omega_r.omegarecyclerview.expandable_example.core.Quote; import com.omega_r.omegarecyclerview.expandable_example.core.QuoteGlobalInfo; -public class DefaultStickyAdapter extends OmegaExpandableRecyclerView.Adapter implements StickyHeaderAdapter { +public class DefaultStickyAdapter extends OmegaExpandableRecyclerView.Adapter implements StickyAdapter { @Override protected ExGroupViewHolder provideGroupViewHolder(@NonNull ViewGroup viewGroup) { @@ -25,21 +27,28 @@ protected ExChildViewHolder provideChildViewHolder(@NonNull ViewGroup viewGroup) } @Override - public long getHeaderId(int position) { - Integer providedId = getItem(position).getStickyId(); - return providedId == null ? BaseStickyHeaderDecoration.NO_HEADER_ID : providedId; + public long getStickyId(int position) { + ExpandableViewData item = getItem(position); + if (item == null) return HeaderStickyDecoration.NO_STICKY_ID; + Integer providedId = item.getStickyId(); + return providedId == null ? HeaderStickyDecoration.NO_STICKY_ID : providedId; } @Override - public StickyViewHolder onCreateHeaderViewHolder(ViewGroup parent) { + public StickyViewHolder onCreateStickyViewHolder(ViewGroup parent) { return new StickyViewHolder(parent); } @Override - public void onBindHeaderViewHolder(StickyViewHolder viewHolder, int position) { + public void onBindStickyViewHolder(StickyViewHolder viewHolder, int position) { viewHolder.bind(getItem(position).getGroup().getYear()); } + @Override + public void onClickStickyViewHolder(long id) { + // nothing + } + class ExGroupViewHolder extends GroupViewHolder { private TextView textView; @@ -75,8 +84,8 @@ class ExChildViewHolder extends ChildViewHolder { } @Override - protected void onBind(String item) { - textView.setText(item); + protected void onBind(Quote item) { + textView.setText(item.getQuote()); } } diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/support_sticky/DefaultStickyExpandableActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/support_sticky/DefaultStickyExpandableActivity.java index 6b0f672..5a203db 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/support_sticky/DefaultStickyExpandableActivity.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/expandable_example/support_sticky/DefaultStickyExpandableActivity.java @@ -1,6 +1,6 @@ package com.omega_r.omegarecyclerview.expandable_example.support_sticky; -import com.omega_r.libs.omegarecyclerview.expandable_recycler_view.OmegaExpandableRecyclerView; +import com.omega_r.libs.omegarecyclerview_expandable.OmegaExpandableRecyclerView; import com.omega_r.omegarecyclerview.expandable_example.core.ExpandableActivity; import omega.com.annotations.OmegaActivity; diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/fastscroll_example/FastScrollActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/fastscroll_example/FastScrollActivity.java new file mode 100644 index 0000000..af94b8c --- /dev/null +++ b/app/src/main/java/com/omega_r/omegarecyclerview/fastscroll_example/FastScrollActivity.java @@ -0,0 +1,21 @@ +package com.omega_r.omegarecyclerview.fastscroll_example; + +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.RecyclerView; + +import com.omega_r.omegarecyclerview.R; + +public class FastScrollActivity extends AppCompatActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_fastscroll); + RecyclerView recyclerView = findViewById(R.id.recyclerview); + recyclerView.setAdapter(new FastScrollAdapter()); + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/fastscroll_example/FastScrollAdapter.java b/app/src/main/java/com/omega_r/omegarecyclerview/fastscroll_example/FastScrollAdapter.java new file mode 100644 index 0000000..83d62d1 --- /dev/null +++ b/app/src/main/java/com/omega_r/omegarecyclerview/fastscroll_example/FastScrollAdapter.java @@ -0,0 +1,51 @@ +package com.omega_r.omegarecyclerview.fastscroll_example; + +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.omega_r.libs.omegarecyclerview.OmegaRecyclerView; +import com.omega_r.omegarecyclerview.R; + +public class FastScrollAdapter extends OmegaRecyclerView.Adapter implements + com.omega_r.libs.omegarecyclerview_fastscroll.FastScrollAdapter.Text { + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ViewHolder(parent); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + holder.textView.setText(String.valueOf(position)); + } + + @Override + public int getItemCount() { + return 50; + } + + @Override + public String getText(int position) { + return String.valueOf(position); + } + + @Override + public long getFastScrollGroupId(int position) { + return position; + } + + class ViewHolder extends OmegaRecyclerView.ViewHolder { + + final TextView textView; + + ViewHolder(ViewGroup parent) { + super(parent, R.layout.item_text); + textView = findViewById(R.id.text_item); + } + + } + +} diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/Image.java b/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/Image.java index 4cbcef5..6ae2fb2 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/Image.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/Image.java @@ -1,6 +1,6 @@ package com.omega_r.omegarecyclerview.pagination_example; -import android.support.annotation.DrawableRes; +import androidx.annotation.DrawableRes; import com.omega_r.omegarecyclerview.R; diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/ImageAdapter.java b/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/ImageAdapter.java index 4980008..12764a7 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/ImageAdapter.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/ImageAdapter.java @@ -1,6 +1,6 @@ package com.omega_r.omegarecyclerview.pagination_example; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/PaginationActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/PaginationActivity.java index 7635462..3de8c4a 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/PaginationActivity.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/pagination_example/PaginationActivity.java @@ -2,7 +2,7 @@ import android.os.Bundle; import android.os.Handler; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import com.omega_r.libs.omegarecyclerview.OmegaRecyclerView; import com.omega_r.libs.omegarecyclerview.pagination.OnPageRequestListener; diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/sections_example/SectionsActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/sections_example/SectionsActivity.java index d17263e..3c516fe 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/sections_example/SectionsActivity.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/sections_example/SectionsActivity.java @@ -1,6 +1,6 @@ package com.omega_r.omegarecyclerview.sections_example; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Toast; diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/sticky_header_example/StickyHeaderActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/sticky_header_example/StickyHeaderActivity.java index 8b12e77..984732d 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/sticky_header_example/StickyHeaderActivity.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/sticky_header_example/StickyHeaderActivity.java @@ -1,6 +1,6 @@ package com.omega_r.omegarecyclerview.sticky_header_example; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.omega_r.libs.omegarecyclerview.OmegaRecyclerView; diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/sticky_header_example/StickyHeaderAdapter.java b/app/src/main/java/com/omega_r/omegarecyclerview/sticky_header_example/StickyHeaderAdapter.java index 5e848ce..8903a87 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/sticky_header_example/StickyHeaderAdapter.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/sticky_header_example/StickyHeaderAdapter.java @@ -5,17 +5,21 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import android.widget.Toast; import com.omega_r.libs.omegarecyclerview.OmegaRecyclerView; +import com.omega_r.libs.omegarecyclerview.sticky_decoration.StickyAdapter; import com.omega_r.omegarecyclerview.R; public class StickyHeaderAdapter extends OmegaRecyclerView.Adapter - implements com.omega_r.libs.omegarecyclerview.sticky_header.StickyHeaderAdapter { + implements StickyAdapter { private LayoutInflater mInflater; + private final Context mContext; public StickyHeaderAdapter(Context context) { mInflater = LayoutInflater.from(context); + mContext = context; } @Override @@ -35,19 +39,24 @@ public int getItemCount() { } @Override - public long getHeaderId(int position) { + public long getStickyId(int position) { return (long) position / 6; } @Override - public HeaderHolder onCreateHeaderViewHolder(ViewGroup parent) { + public HeaderHolder onCreateStickyViewHolder(ViewGroup parent) { View view = mInflater.inflate(R.layout.sticky_header_test, parent, false); return new HeaderHolder(view); } @Override - public void onBindHeaderViewHolder(HeaderHolder viewHolder, int position) { - viewHolder.header.setText("Header " + getHeaderId(position)); + public void onBindStickyViewHolder(HeaderHolder viewHolder, int position) { + viewHolder.header.setText("Header " + getStickyId(position)); + } + + @Override + public void onClickStickyViewHolder(long id) { + Toast.makeText(mContext, "onClickStickyViewHolder " + id, Toast.LENGTH_SHORT).show(); } static class ViewHolder extends OmegaRecyclerView.ViewHolder { @@ -56,6 +65,12 @@ static class ViewHolder extends OmegaRecyclerView.ViewHolder { public ViewHolder(View itemView) { super(itemView); item = (TextView) itemView; + item.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Toast.makeText(v.getContext(), "Clicked", Toast.LENGTH_SHORT).show(); + } + }); } } diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/swipe_menu_example/SwipeMenuActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/swipe_menu_example/SwipeMenuActivity.java index 4be3f19..66accab 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/swipe_menu_example/SwipeMenuActivity.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/swipe_menu_example/SwipeMenuActivity.java @@ -1,14 +1,11 @@ package com.omega_r.omegarecyclerview.swipe_menu_example; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; -import android.support.v7.widget.LinearLayoutManager; import com.omega_r.libs.omegarecyclerview.OmegaRecyclerView; import com.omega_r.omegarecyclerview.R; -import java.util.List; - import omega.com.annotations.OmegaActivity; @OmegaActivity diff --git a/app/src/main/java/com/omega_r/omegarecyclerview/viewpager/ViewPagerActivity.java b/app/src/main/java/com/omega_r/omegarecyclerview/viewpager/ViewPagerActivity.java index e49f216..8c44e6a 100644 --- a/app/src/main/java/com/omega_r/omegarecyclerview/viewpager/ViewPagerActivity.java +++ b/app/src/main/java/com/omega_r/omegarecyclerview/viewpager/ViewPagerActivity.java @@ -2,9 +2,9 @@ import android.annotation.SuppressLint; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.app.AppCompatActivity; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; diff --git a/app/src/main/res/layout/activity_expandable.xml b/app/src/main/res/layout/activity_expandable.xml index fc15ab7..08904be 100644 --- a/app/src/main/res/layout/activity_expandable.xml +++ b/app/src/main/res/layout/activity_expandable.xml @@ -29,6 +29,12 @@ android:text="@string/button_use_dropdown" android:textColor="@color/white"/> +