diff --git a/.circleci/config.yml b/.circleci/config.yml
index c5dd12d..e440d26 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -15,7 +15,8 @@ jobs:
# - image: circleci/postgres:9.4
working_directory: ~/repo
-
+ docker:
+ - image: circleci/android:api-27-alpha
environment:
# Customize the JVM maximum heap limit
JVM_OPTS: -Xmx3200m
@@ -31,15 +32,16 @@ jobs:
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- - run: gradle dependencies
+ - run:
+ name: Download Dependencies
+ command: ./gradlew androidDependencies
- save_cache:
paths:
- ~/.gradle
key: v1-dependencies-{{ checksum "build.gradle" }}
- # run tests!
- - run: gradle test
+
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
new file mode 100644
index 0000000..1b9da92
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,71 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+#
+# ******** NOTE ********
+# We have attempted to detect the languages in your repository. Please check
+# the `language` matrix defined below to confirm you have the correct set of
+# supported CodeQL languages.
+#
+name: "CodeQL"
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ # The branches below must be a subset of the branches above
+ branches: [ master ]
+ schedule:
+ - cron: '43 13 * * 4'
+
+jobs:
+ analyze:
+ name: Analyze
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'java' ]
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
+ # Learn more:
+ # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v1
+ with:
+ languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
+ # If this step fails, then you should remove it and run the build manually (see below)
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@v1
+
+ # âšī¸ Command-line programs to run using the OS shell.
+ # đ https://git.io/JvXDl
+
+ # âī¸ If the Autobuild fails above, remove it and uncomment the following three lines
+ # and modify them (or add more) to build your code if your project
+ # uses a compiled language
+
+ #- run: |
+ # make bootstrap
+ # make release
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v1
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index fdf2708..5564f60 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/README.md b/README.md
index af66172..717e415 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,15 @@
# EasyAdapter Based on [**Android Data Binding**](https://developer.android.com/topic/libraries/data-binding/index.html)
+
+
+
### Create your recyclerview adapter in just 3 lines.
> RecyclerView is mostly used android widgets in the Android Project, for that you have to implement an Adapter which provides the items for the view. In most cases it require the same base logic, but require you to write everything again and again.so here is sollution for it.
[](https://android-arsenal.com/details/1/6950)
[ ](https://bintray.com/mkrupal09/EasyAdapter/EasyAdapter/_latestVersion)
+[](https://circleci.com/gh/mkrupal09/EasyAdapter)
- Reduce Boilerplate code to create adapter and holder.
- you can filter adapter without coding much.
@@ -18,44 +23,33 @@
Download
--------
-Grab via Maven:
-```xml
-
- com.dc.easyadapter
- easyadapter
- 2.0.3
- pom
-
+app > build.gradle
+```groovy
+implementation 'com.github.mkrupal09:EasyAdapter:v2.0.5'
```
-or Gradle:
+
+root > build.gradle, add jitpack.io maven url in allprojects>repositories
```groovy
-implementation 'com.dc.easyadapter:easyadapter:2.0.3'
+allprojects {
+ repositories {
+ ...
+ maven { url 'https://jitpack.io' }
+ }
+ }
```
To enable data binding
-------------------------
-inside app build.gradle
+inside app build.gradle add buildFeatures block(if not) and add dataBinding flag as mentioned below
```groovy
android {
- dataBinding {
- enabled = true
+ buildFeatures {
+ dataBinding true
}
}
```
-For Kotlin also add
- ```groovy
- dependencies{
- kapt 'com.android.databinding:compiler:3.1.2'
-}
-
-apply plugin: 'kotlin-kapt' //Top at build.gradle
-```
-
-
-
-
## How?
``` java
adapter = new EasyAdapter(R.layout.inflater_category) {
@@ -64,6 +58,7 @@ adapter = new EasyAdapter(R.layout.inflater_c
binding.tvName.setText(model.name);
}
}
+
```
## Usage
@@ -79,6 +74,17 @@ class CategoryAdapter() :EasyAdapter(R.layout
}
}
```
+###java
+``` java
+ public CategoryAdapter() {
+ super(R.layout.inflater_category);
+ }
+
+ @Override
+ public void onBind(@NonNull InflaterCategoryBinding binding, @NonNull Category model) {
+ binding.tvName.setText(model.name);
+ }
+```
#### 1) To Handle recycler View item Events
@@ -288,6 +294,10 @@ without this person cannot achieve swipe action in recyclerview
https://android.jlelse.eu/android-tools-attributes-listitem-sample-data-rocks-bbf49aaa9f07
for sharing knowledge of Android Tools attributes
+* Buy me a Beer. :beer:
+
+
+
License
=======
diff --git a/app/build.gradle b/app/build.gradle
index daf0107..16d41da 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -3,11 +3,11 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
android {
- compileSdkVersion 27
+ compileSdkVersion 28
defaultConfig {
applicationId "easyadapter.dc.com.easyadapter"
minSdkVersion 16
- targetSdkVersion 27
+ targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -25,6 +25,10 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}*/
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
}
dependencies {
@@ -37,11 +41,17 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
kapt 'com.android.databinding:compiler:3.1.2'
implementation 'com.android.support:recyclerview-v7:27.1.1'
-
+ implementation 'com.github.warkiz.widget:indicatorseekbar:2.1.0'
implementation project(':library')
+
+ implementation 'com.android.support:cardview-v7:28.0.0'
+ implementation 'com.github.bumptech.glide:glide:4.8.0'
+ annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
/*implementation "com.github.mkrupal09:EasyAdapter:9be4f31"*/
/*implementation 'com.dc.easyadapter:easyadapter:1.2'*/
- debugImplementation 'com.amitshekhar.android:debug-db:1.0.4'
+
+ implementation 'com.devbrackets.android:exomedia:4.3.0'
+
}
repositories {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 08aa01f..4558652 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,8 @@
package="easyadapter.dc.com.easyadapter">
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/easyadapter/dc/com/easyadapter/Category.kt b/app/src/main/java/easyadapter/dc/com/easyadapter/Category.kt
index 1301de1..6ed8f86 100644
--- a/app/src/main/java/easyadapter/dc/com/easyadapter/Category.kt
+++ b/app/src/main/java/easyadapter/dc/com/easyadapter/Category.kt
@@ -15,6 +15,7 @@ public class Category : Serializable {
var parentId: String = ""
var image: String = ""
var isSelected: Boolean = false
+
companion object {
val BUN_SEL_CATEGORY_LIST = "SEL_CATEGORY_LIST"
const val SEND_OBJECT = "category"
diff --git a/app/src/main/java/easyadapter/dc/com/easyadapter/CategoryAdapter.kt b/app/src/main/java/easyadapter/dc/com/easyadapter/CategoryAdapter.kt
index e219a4f..3b296b4 100644
--- a/app/src/main/java/easyadapter/dc/com/easyadapter/CategoryAdapter.kt
+++ b/app/src/main/java/easyadapter/dc/com/easyadapter/CategoryAdapter.kt
@@ -1,5 +1,7 @@
package easyadapter.dc.com.easyadapter
+import android.widget.ImageView
+import com.bumptech.glide.Glide
import easyadapter.dc.com.easyadapter.databinding.InflaterCategoryBinding
import easyadapter.dc.com.library.EasyAdapter
@@ -22,9 +24,26 @@ class CategoryAdapter(val enableSwipToDelete: Boolean) :
}
override fun onBind(binding: InflaterCategoryBinding, model: Category) {
+ }
+
+ override fun onBind(binding: InflaterCategoryBinding, model: Category, holder: EasyHolder?) {
+ super.onBind(binding, model, holder)
binding.apply {
tvName.text = model.name
tvName.isSelected = model.isSelected
}
+ binding.ivCategoryIcon.setImageResource(R.drawable.abc_ic_ab_back_material)
+
+
+ if (data.indexOf(model) % 2 == 0) {
+ binding.ivCategoryIcon.layoutParams.height = 100
+ binding.ivCategoryIcon.scaleType = ImageView.ScaleType.FIT_CENTER
+ } else {
+ binding.ivCategoryIcon.layoutParams.height = 500
+ binding.ivCategoryIcon.scaleType = ImageView.ScaleType.CENTER_CROP
+ }
+
+ Glide.with(binding.ivCategoryIcon).load("https://www.healthywage.com/wp-content/uploads/2015/11/Kristin-W-BeforeAfter2-540x345.jpg").into(binding.ivCategoryIcon);
+ helper.startSwipe(holder)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/easyadapter/dc/com/easyadapter/CategoryAdapterJava.java b/app/src/main/java/easyadapter/dc/com/easyadapter/CategoryAdapterJava.java
new file mode 100644
index 0000000..3ff335c
--- /dev/null
+++ b/app/src/main/java/easyadapter/dc/com/easyadapter/CategoryAdapterJava.java
@@ -0,0 +1,20 @@
+package easyadapter.dc.com.easyadapter;
+
+import android.support.annotation.NonNull;
+
+import easyadapter.dc.com.easyadapter.databinding.InflaterCategoryBinding;
+import easyadapter.dc.com.library.EasyAdapter;
+
+/**
+ * Created by HB on 1/10/18.
+ */
+public class CategoryAdapterJava extends EasyAdapter {
+ public CategoryAdapterJava() {
+ super(R.layout.inflater_category);
+ }
+
+ @Override
+ public void onBind(@NonNull InflaterCategoryBinding binding, @NonNull Category model) {
+ binding.tvName.setText(model.getName());
+ }
+}
diff --git a/app/src/main/java/easyadapter/dc/com/easyadapter/MainActivity.kt b/app/src/main/java/easyadapter/dc/com/easyadapter/MainActivity.kt
index e1d2b43..0668f6a 100644
--- a/app/src/main/java/easyadapter/dc/com/easyadapter/MainActivity.kt
+++ b/app/src/main/java/easyadapter/dc/com/easyadapter/MainActivity.kt
@@ -1,18 +1,26 @@
package easyadapter.dc.com.easyadapter
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
import android.databinding.DataBindingUtil
import android.os.Bundle
import android.support.v4.content.ContextCompat
+import android.support.v4.content.LocalBroadcastManager
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.SearchView
+import android.util.Log
import android.view.View
+import android.webkit.WebView
+import android.webkit.WebViewClient
import android.widget.Toast
import easyadapter.dc.com.easyadapter.databinding.ActivityMainBinding
import easyadapter.dc.com.easyadapter.databinding.InflaterCategoryNameBinding
import easyadapter.dc.com.library.EasyAdapter
-import easyadapter.dc.com.library.EasySpinner
import easyadapter.dc.com.library.EasyArrayAdapter
+import easyadapter.dc.com.library.EasySpinner
class MainActivity : AppCompatActivity() {
@@ -37,6 +45,32 @@ class MainActivity : AppCompatActivity() {
temp.add(Category.createDummy("Darshak jani"))
temp.add(Category.createDummy("Sanket Chauhan"))
temp.add(Category.createDummy("Dhruv"))
+ temp.add(Category.createDummy("Krupal Mehta"))
+ temp.add(Category.createDummy("Aagam Mehta"))
+ temp.add(Category.createDummy("Anand Patel"))
+ temp.add(Category.createDummy("Sagar Panchal"))
+ temp.add(Category.createDummy("Pankaj Sharma"))
+ temp.add(Category.createDummy("Darshak jani"))
+ temp.add(Category.createDummy("Sanket Chauhan"))
+ temp.add(Category.createDummy("Dhruv"))
+ temp.add(Category.createDummy("Sagar Panchal"))
+ temp.add(Category.createDummy("Pankaj Sharma"))
+ temp.add(Category.createDummy("Darshak jani"))
+ temp.add(Category.createDummy("Sanket Chauhan"))
+ temp.add(Category.createDummy("Dhruv"))
+ temp.add(Category.createDummy("Krupal Mehta"))
+ temp.add(Category.createDummy("Aagam Mehta"))
+ temp.add(Category.createDummy("Anand Patel"))
+ temp.add(Category.createDummy("Sagar Panchal"))
+ temp.add(Category.createDummy("Pankaj Sharma"))
+ temp.add(Category.createDummy("Darshak jani"))
+ temp.add(Category.createDummy("Sanket Chauhan"))
+ temp.add(Category.createDummy("Dhruv"))
+ temp.add(Category.createDummy("Sagar Panchal"))
+ temp.add(Category.createDummy("Pankaj Sharma"))
+ temp.add(Category.createDummy("Darshak jani"))
+ temp.add(Category.createDummy("Sanket Chauhan"))
+ temp.add(Category.createDummy("Dhruv"))
return temp
}
@@ -56,12 +90,15 @@ class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ Log.d("MainActivityLog", "true");
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.recyclerView.isNestedScrollingEnabled = false
adapterExample()
spinnerExample()
autocomplete()
+ test()
+
}
private fun autocomplete() {
@@ -72,7 +109,7 @@ class MainActivity : AppCompatActivity() {
}
override fun onFilterApply(filter: Any?, model: Category): Boolean {
- return if(filter!=null) model.parentId.equals("1") else false
+ return if (filter != null) model.parentId.equals("1") else false
}
}) {
override fun onBind(binding: InflaterCategoryNameBinding, model: Category) {
@@ -180,5 +217,18 @@ class MainActivity : AppCompatActivity() {
spinnerAdapter.notifyDataSetChanged()
}
}
+
+ private fun test() {
+ val intentFilter = IntentFilter()
+ intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED)
+ intentFilter.addAction(Intent.ACTION_PACKAGE_INSTALL)
+ intentFilter.addDataScheme("package")
+ LocalBroadcastManager.getInstance(this).registerReceiver(object : BroadcastReceiver() {
+ override fun onReceive(context: Context, intent: Intent) {
+ Log.d("App Installed", "true")
+ }
+ }, intentFilter)
+
+ }
}
diff --git a/app/src/main/java/easyadapter/dc/com/easyadapter/MainActivityJava.java b/app/src/main/java/easyadapter/dc/com/easyadapter/MainActivityJava.java
new file mode 100644
index 0000000..4ee1643
--- /dev/null
+++ b/app/src/main/java/easyadapter/dc/com/easyadapter/MainActivityJava.java
@@ -0,0 +1,23 @@
+package easyadapter.dc.com.easyadapter;
+
+import android.databinding.DataBindingUtil;
+import android.databinding.ViewDataBinding;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.RecyclerView;
+
+import easyadapter.dc.com.library.EasyAdapter;
+
+/**
+ * Created by HB on 15/10/18.
+ */
+public class MainActivityJava extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ }
+}
diff --git a/app/src/main/java/easyadapter/dc/com/easyadapter/TestActivity.java b/app/src/main/java/easyadapter/dc/com/easyadapter/TestActivity.java
new file mode 100644
index 0000000..cdc2f60
--- /dev/null
+++ b/app/src/main/java/easyadapter/dc/com/easyadapter/TestActivity.java
@@ -0,0 +1,21 @@
+package easyadapter.dc.com.easyadapter;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+
+/**
+ * Created by HB on 28/9/18.
+ */
+public class TestActivity extends AppCompatActivity {
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_test);
+ RecyclerView recyclerView = findViewById(R.id.recyclerView);
+ CategoryAdapter categoryAdapter = new CategoryAdapter(false);
+ recyclerView.setAdapter(categoryAdapter);
+ }
+}
diff --git a/app/src/main/java/easyadapter/dc/com/easyadapter/TransBean.java b/app/src/main/java/easyadapter/dc/com/easyadapter/TransBean.java
new file mode 100644
index 0000000..b94218b
--- /dev/null
+++ b/app/src/main/java/easyadapter/dc/com/easyadapter/TransBean.java
@@ -0,0 +1,33 @@
+package easyadapter.dc.com.easyadapter;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * Created by HB on 3/1/19.
+ */
+public class TransBean implements Parcelable {
+ protected TransBean(Parcel in) {
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ public static final Creator CREATOR = new Creator() {
+ @Override
+ public TransBean createFromParcel(Parcel in) {
+ return new TransBean(in);
+ }
+
+ @Override
+ public TransBean[] newArray(int size) {
+ return new TransBean[size];
+ }
+ };
+}
diff --git a/app/src/main/java/easyadapter/dc/com/easyadapter/VideoActivity.java b/app/src/main/java/easyadapter/dc/com/easyadapter/VideoActivity.java
new file mode 100644
index 0000000..0e40f55
--- /dev/null
+++ b/app/src/main/java/easyadapter/dc/com/easyadapter/VideoActivity.java
@@ -0,0 +1,68 @@
+package easyadapter.dc.com.easyadapter;
+
+import android.net.Uri;
+import android.os.Build;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.NavUtils;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.view.WindowInsets;
+import android.view.WindowManager;
+
+import com.devbrackets.android.exomedia.core.video.scale.ScaleType;
+import com.devbrackets.android.exomedia.listener.OnPreparedListener;
+import com.devbrackets.android.exomedia.ui.widget.VideoView;
+import com.google.android.exoplayer2.ExoPlayer;
+import com.google.android.exoplayer2.SimpleExoPlayer;
+import com.google.android.exoplayer2.source.ClippingMediaSource;
+import com.google.android.exoplayer2.source.ExtractorMediaSource;
+import com.google.android.exoplayer2.source.MediaPeriod;
+import com.google.android.exoplayer2.source.MediaSource;
+
+/**
+ * Created by HB on 7/12/18.
+ */
+public class VideoActivity extends AppCompatActivity implements OnPreparedListener {
+
+ VideoView videoView;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+
+
+
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+ WindowManager.LayoutParams.FLAG_FULLSCREEN); // or add - true
in the theme
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
+
+ setContentView(R.layout.activity_video);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ WindowManager.LayoutParams attrib = getWindow().getAttributes();
+ attrib.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
+ }
+
+ videoView = (VideoView) findViewById(R.id.video_view);
+ videoView.setOnPreparedListener(this);
+
+
+
+ videoView.setScaleType(ScaleType.CENTER_CROP);
+
+ //For now we just picked an arbitrary item to play
+ videoView.setVideoURI(Uri.parse("http://pcock.com/public/upload/twilio_media/VIDEO_20181205_140947-20181205084109450389.mp4"));
+ }
+
+ @Override
+ public void onPrepared() {
+ videoView.start();
+ }
+
+ @Override
+ public void onBackPressed() {
+ NavUtils.navigateUpFromSameTask(this);
+ }
+}
diff --git a/app/src/main/res/drawable/gradient_drawable.xml b/app/src/main/res/drawable/gradient_drawable.xml
new file mode 100644
index 0000000..2a5007a
--- /dev/null
+++ b/app/src/main/res/drawable/gradient_drawable.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 5dbe5ec..414699f 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -13,15 +13,6 @@
android:layout_height="match_parent"
android:orientation="vertical">
-
-
-
-
+ android:textColorHint="@android:color/black"
+ android:visibility="gone" />
+ android:hint="Search Category"
+ android:paddingLeft="5dp" />
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_test.xml b/app/src/main/res/layout/activity_test.xml
new file mode 100644
index 0000000..e70c3bb
--- /dev/null
+++ b/app/src/main/res/layout/activity_test.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_video.xml b/app/src/main/res/layout/activity_video.xml
new file mode 100644
index 0000000..ee54065
--- /dev/null
+++ b/app/src/main/res/layout/activity_video.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/inflater_category.xml b/app/src/main/res/layout/inflater_category.xml
index da7c483..9076053 100644
--- a/app/src/main/res/layout/inflater_category.xml
+++ b/app/src/main/res/layout/inflater_category.xml
@@ -32,7 +32,7 @@
@@ -48,6 +48,8 @@
diff --git a/images/easyadapter-01.png b/images/easyadapter-01.png
new file mode 100644
index 0000000..e0fb602
Binary files /dev/null and b/images/easyadapter-01.png differ
diff --git a/library/build.gradle b/library/build.gradle
index 50db24d..9148097 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -3,14 +3,14 @@ apply plugin: 'com.android.library'
ext {
PUBLISH_GROUP_ID = 'com.dc.easyadapter'
PUBLISH_ARTIFACT_ID = 'easyadapter'
- PUBLISH_VERSION = '2.0.3'
+ PUBLISH_VERSION = '2.0.5'
}
android {
compileSdkVersion 27
defaultConfig {
- minSdkVersion 16
+ minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
diff --git a/library/src/main/java/easyadapter/dc/com/library/EasyAdapter.java b/library/src/main/java/easyadapter/dc/com/library/EasyAdapter.java
index 53077cd..431d1c6 100644
--- a/library/src/main/java/easyadapter/dc/com/library/EasyAdapter.java
+++ b/library/src/main/java/easyadapter/dc/com/library/EasyAdapter.java
@@ -27,473 +27,527 @@
public abstract class EasyAdapter extends RecyclerView.Adapter {
- private final int VIEW_ITEM = 1;
- private final int VIEW_PROGRESS = 0;
- private boolean loading = false;
- private boolean isLoadMoreEnabled = false;
- private int loadMoreRes = R.layout.layout_load_more;
- private final ArrayList data;
- private final ArrayList temp;
- private int layout;
- private OnRecyclerViewItemClick recyclerViewItemClick;
- private OnRecyclerViewItemCheckChange recyclerViewItemCheckChange;
- private ArrayList> onDataUpdateArrayList;
+ private final int VIEW_ITEM = 1;
+ private final int VIEW_PROGRESS = 0;
+ private boolean loading = false;
+ private boolean isLoadMoreEnabled = false;
+ private int loadMoreRes = R.layout.layout_load_more;
+ private final ArrayList data;
+ private final ArrayList temp;
+ private int layout;
+ private OnRecyclerViewItemClick recyclerViewItemClick;
+ private OnRecyclerViewItemCheckChange recyclerViewItemCheckChange;
+ private ArrayList> onDataUpdateArrayList;
- public interface OnRecyclerViewItemClick {
- void onRecyclerViewItemClick(View view, M model);
- }
+ public interface OnRecyclerViewItemClick {
+ void onRecyclerViewItemClick(View view, M model);
+ }
+
+ public interface OnRecyclerViewItemCheckChange {
+ void onRecyclerViewItemCheckChange(View view, boolean isCheck, M model);
+ }
+
+ public interface OnHolderItemClick {
+ void onHolderItemClick(View view, int position);
+ }
+
+ public interface OnHolderItemCheckChange {
+ void onHolderItemCheckChange(View view, boolean isCheck, int position);
+ }
+
+ public interface OnFilter {
+ boolean onFilterApply(@Nullable Object filter, @NonNull M model);
- public interface OnRecyclerViewItemCheckChange {
- void onRecyclerViewItemCheckChange(View view, boolean isCheck, M model);
- }
+ void onFilterResult(ArrayList filteredList);
+ }
+
+ public interface OnLoadMoreListener {
+ boolean onLoadMore();
+ }
- public interface OnHolderItemClick {
- void onHolderItemClick(View view, int position);
- }
+ public interface OnDataUpdate {
+ public void onDataUpdate(ArrayList data);
+ }
- public interface OnHolderItemCheckChange {
- void onHolderItemCheckChange(View view, boolean isCheck, int position);
- }
- public interface OnFilter {
- boolean onFilterApply(@Nullable Object filter, @NonNull M model);
+ public EasyAdapter(@LayoutRes int layout) {
+ data = new ArrayList<>();
+ temp = new ArrayList<>();
+ temp.addAll(data);
+ enableDataObserver();
+ this.layout = layout;
+ onDataUpdateArrayList = new ArrayList<>();
+ }
+
+ public void onCreatingHolder(@NonNull B binding, @NonNull EasyHolder holder) {
+
+ }
+
+ public abstract void onBind(@NonNull B binding, @NonNull M model);
+
+ public void onBind(@NonNull B binding, @NonNull M model, EasyHolder holder) {
+ }
+
+ public void onBind(@NonNull B binding, @NonNull M model, @NonNull List