From 440e9bf7304b48755c9ca812a8b178e9ad2ee54b Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 16:39:54 +0800
Subject: [PATCH 01/22] update gradle wrapper/sdk/android x
---
app/build.gradle | 22 +++++++++-------
.../fitfilter/DividerItemDecoration.java | 3 ++-
.../yalantis/fitfilter/ExampleActivity.java | 4 +--
.../yalantis/fitfilter/QuestionsAdapter.java | 3 ++-
build.gradle | 14 ++++++++---
filter/build.gradle | 25 ++++++-------------
.../animator/FiltersListItemAnimator.kt | 6 ++---
.../com/yalantis/filter/widget/FilterItem.kt | 4 +--
gradle.properties | 4 ++-
gradle/wrapper/gradle-wrapper.properties | 4 +--
10 files changed, 47 insertions(+), 42 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index c212465..12518dd 100755
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,13 +1,12 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 24
- buildToolsVersion "24.0.1"
+ compileSdkVersion 28
defaultConfig {
applicationId "com.yalantis.fitfilter"
- minSdkVersion 18
- targetSdkVersion 24
+ minSdkVersion 19
+ targetSdkVersion 28
versionCode 1
versionName "1.0"
}
@@ -20,9 +19,14 @@ android {
}
dependencies {
- compile fileTree(include: ['*.jar'], dir: 'libs')
- compile 'com.android.support:appcompat-v7:24.2.0'
- compile 'com.facebook.fresco:fresco:0.13.0'
- compile 'com.android.support:design:24.2.0'
- compile project(':filter')
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
+ implementation 'androidx.appcompat:appcompat:1.0.2'
+ implementation ('com.facebook.fresco:fresco:1.13.0') {
+ exclude group: 'com.android.support', module: 'appcompat'
+ exclude group: 'com.android.support', module: 'support-v4'
+ exclude module: 'recyclerview-v7'
+ }
+ implementation 'com.google.android.material:material:1.0.0'
+ implementation "org.jetbrains:annotations:15.0"
+ implementation project(':filter')
}
diff --git a/app/src/main/java/com/yalantis/fitfilter/DividerItemDecoration.java b/app/src/main/java/com/yalantis/fitfilter/DividerItemDecoration.java
index ac9b0b6..68cbe82 100755
--- a/app/src/main/java/com/yalantis/fitfilter/DividerItemDecoration.java
+++ b/app/src/main/java/com/yalantis/fitfilter/DividerItemDecoration.java
@@ -3,7 +3,8 @@
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
-import android.support.v4.content.ContextCompat;
+
+import androidx.core.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.View;
diff --git a/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java b/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
index 9d87f51..fdda682 100755
--- a/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
+++ b/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
@@ -1,8 +1,8 @@
package com.yalantis.fitfilter;
-import android.graphics.Color;
import android.os.Bundle;
-import android.support.v4.content.ContextCompat;
+
+import androidx.core.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.util.DiffUtil;
import android.support.v7.widget.LinearLayoutManager;
diff --git a/app/src/main/java/com/yalantis/fitfilter/QuestionsAdapter.java b/app/src/main/java/com/yalantis/fitfilter/QuestionsAdapter.java
index 0f842c9..615aa3a 100755
--- a/app/src/main/java/com/yalantis/fitfilter/QuestionsAdapter.java
+++ b/app/src/main/java/com/yalantis/fitfilter/QuestionsAdapter.java
@@ -2,7 +2,8 @@
import android.content.Context;
import android.graphics.drawable.GradientDrawable;
-import android.support.v4.content.ContextCompat;
+
+import androidx.core.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
diff --git a/build.gradle b/build.gradle
index 24e63b8..885f06b 100755
--- a/build.gradle
+++ b/build.gradle
@@ -1,17 +1,25 @@
buildscript {
repositories {
jcenter()
+ maven {
+ url 'https://maven.google.com/'
+ name 'Google'
+ }
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.1.3'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.0"
- classpath "org.jetbrains.kotlin:kotlin-android-extensions:1.0.0"
+ classpath 'com.android.tools.build:gradle:3.4.0'
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31"
+ classpath "org.jetbrains.kotlin:kotlin-android-extensions:1.3.31"
}
}
allprojects {
repositories {
jcenter()
+ maven {
+ url 'https://maven.google.com/'
+ name 'Google'
+ }
}
}
diff --git a/filter/build.gradle b/filter/build.gradle
index ac11e4f..9afa411 100755
--- a/filter/build.gradle
+++ b/filter/build.gradle
@@ -1,26 +1,15 @@
apply plugin: 'com.android.library'
-buildscript {
- repositories {
- jcenter()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:2.1.3'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.0"
- classpath "org.jetbrains.kotlin:kotlin-android-extensions:1.0.0"
- }
-}
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
- compileSdkVersion 24
- buildToolsVersion "24.0.1"
+ compileSdkVersion 28
defaultConfig {
- minSdkVersion 18
- targetSdkVersion 24
+ minSdkVersion 19
+ targetSdkVersion 28
versionCode 1
versionName "1.0"
}
@@ -33,8 +22,8 @@ android {
}
dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
- compile 'com.android.support:appcompat-v7:24.2.0'
- compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.0"
- compile 'com.android.support:design:24.2.0'
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'androidx.appcompat:appcompat:1.0.2'
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.31"
+ implementation 'com.google.android.material:material:1.0.0'
}
diff --git a/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt b/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
index a294c85..da4ac8c 100755
--- a/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
+++ b/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
@@ -1,9 +1,9 @@
package com.yalantis.filter.animator
import android.animation.ValueAnimator
-import android.support.v4.animation.AnimatorCompatHelper
-import android.support.v4.view.ViewCompat
-import android.support.v4.view.ViewPropertyAnimatorListener
+import androidx.core.animation.AnimatorCompatHelper
+import androidx.core.view.ViewCompat
+import androidx.core.view.ViewPropertyAnimatorListener
import android.support.v7.widget.RecyclerView
import android.support.v7.widget.SimpleItemAnimator
import android.view.View
diff --git a/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt b/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt
index 03881e6..62dc580 100755
--- a/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt
+++ b/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt
@@ -8,8 +8,8 @@ import android.graphics.drawable.GradientDrawable
import android.support.annotation.ColorInt
import android.support.annotation.ColorRes
import android.support.annotation.DrawableRes
-import android.support.v4.content.ContextCompat
-import android.support.v4.content.res.ResourcesCompat
+import androidx.core.content.ContextCompat
+import androidx.core.content.res.ResourcesCompat
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.MotionEvent
diff --git a/gradle.properties b/gradle.properties
index 7791533..23b3308 100755
--- a/gradle.properties
+++ b/gradle.properties
@@ -11,4 +11,6 @@
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
\ No newline at end of file
+# org.gradle.parallel=true
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 7e74c91..2698a03 100755
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Tue Aug 30 17:05:23 EEST 2016
+#Sat Apr 27 16:35:07 CST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
From e1ccda7fc91f7588151baab81252bde0b0def6c9 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 16:42:07 +0800
Subject: [PATCH 02/22] Android X RecyclerView
---
.../com/yalantis/filter/animator/FiltersListItemAnimator.kt | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt b/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
index da4ac8c..467c7f5 100755
--- a/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
+++ b/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
@@ -1,12 +1,11 @@
package com.yalantis.filter.animator
import android.animation.ValueAnimator
-import androidx.core.animation.AnimatorCompatHelper
import androidx.core.view.ViewCompat
import androidx.core.view.ViewPropertyAnimatorListener
-import android.support.v7.widget.RecyclerView
-import android.support.v7.widget.SimpleItemAnimator
import android.view.View
+import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.SimpleItemAnimator
import java.util.*
/**
From 5e82cfc6e7e57bbe1b1f3737b4226c4cc5ac5810 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 16:43:48 +0800
Subject: [PATCH 03/22] Android X RecyclerView
---
.../java/com/yalantis/fitfilter/DividerItemDecoration.java | 3 ++-
.../main/java/com/yalantis/fitfilter/ExampleActivity.java | 7 +++----
.../main/java/com/yalantis/fitfilter/QuestionsAdapter.java | 4 +++-
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/app/src/main/java/com/yalantis/fitfilter/DividerItemDecoration.java b/app/src/main/java/com/yalantis/fitfilter/DividerItemDecoration.java
index 68cbe82..5fd0698 100755
--- a/app/src/main/java/com/yalantis/fitfilter/DividerItemDecoration.java
+++ b/app/src/main/java/com/yalantis/fitfilter/DividerItemDecoration.java
@@ -5,7 +5,8 @@
import android.graphics.drawable.Drawable;
import androidx.core.content.ContextCompat;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView;
+
import android.view.View;
/**
diff --git a/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java b/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
index fdda682..88db5fe 100755
--- a/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
+++ b/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
@@ -2,11 +2,10 @@
import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.util.DiffUtil;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.imagepipeline.core.ImagePipelineConfig;
diff --git a/app/src/main/java/com/yalantis/fitfilter/QuestionsAdapter.java b/app/src/main/java/com/yalantis/fitfilter/QuestionsAdapter.java
index 615aa3a..84ef1f0 100755
--- a/app/src/main/java/com/yalantis/fitfilter/QuestionsAdapter.java
+++ b/app/src/main/java/com/yalantis/fitfilter/QuestionsAdapter.java
@@ -4,7 +4,9 @@
import android.graphics.drawable.GradientDrawable;
import androidx.core.content.ContextCompat;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView;
+
+
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
From 39d0ebf13ed4697123e4721ee215de65779f84a6 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 16:44:55 +0800
Subject: [PATCH 04/22] Fix issues #16
---
app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java | 1 +
app/src/main/java/com/yalantis/fitfilter/Tag.java | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java b/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
index 88db5fe..40bf772 100755
--- a/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
+++ b/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
@@ -4,6 +4,7 @@
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
diff --git a/app/src/main/java/com/yalantis/fitfilter/Tag.java b/app/src/main/java/com/yalantis/fitfilter/Tag.java
index a23e746..260591e 100755
--- a/app/src/main/java/com/yalantis/fitfilter/Tag.java
+++ b/app/src/main/java/com/yalantis/fitfilter/Tag.java
@@ -1,6 +1,7 @@
package com.yalantis.fitfilter;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
import com.yalantis.filter.model.FilterModel;
From 0e7f5ec908d2e45affa4a9a27a986ba8c4fc60d2 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 16:46:04 +0800
Subject: [PATCH 05/22] Fix layout manager wrong orientation argument
---
app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java b/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
index 40bf772..6692979 100755
--- a/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
+++ b/app/src/main/java/com/yalantis/fitfilter/ExampleActivity.java
@@ -55,7 +55,7 @@ protected void onCreate(Bundle savedInstanceState) {
mRecyclerView = (RecyclerView) findViewById(R.id.list);
- mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
+ mRecyclerView.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
mRecyclerView.setAdapter(mAdapter = new QuestionsAdapter(this, mAllQuestions = getQuestions()));
mRecyclerView.setItemAnimator(new FiltersListItemAnimator());
}
From d64402ca48f956631901cea8e13970266d20be83 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 16:48:11 +0800
Subject: [PATCH 06/22] Fix supportBackgroundTintList and res annotation
---
.../com/yalantis/filter/widget/FilterItem.kt | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt b/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt
index 62dc580..6927af3 100755
--- a/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt
+++ b/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt
@@ -3,11 +3,9 @@ package com.yalantis.filter.widget
import android.content.Context
import android.content.res.ColorStateList
import android.graphics.Canvas
+import android.graphics.Color
import android.graphics.Typeface
import android.graphics.drawable.GradientDrawable
-import android.support.annotation.ColorInt
-import android.support.annotation.ColorRes
-import android.support.annotation.DrawableRes
import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat
import android.util.AttributeSet
@@ -16,6 +14,10 @@ import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
+import androidx.annotation.ColorInt
+import androidx.annotation.ColorRes
+import androidx.annotation.DrawableRes
+import androidx.core.view.ViewCompat
import com.yalantis.filter.R
import com.yalantis.filter.listener.FilterItemListener
import kotlinx.android.synthetic.main.item_filter.view.*
@@ -30,8 +32,10 @@ class FilterItem : FrameLayout, Serializable {
var isIncreased: Boolean = false
var startX: Float = 0f
var startY: Float = 0f
- @ColorInt var cancelIconTint: Int = android.R.color.white
- @DrawableRes var cancelIcon: Int = R.drawable.ic_cancel
+ @ColorInt
+ var cancelIconTint: Int = Color.WHITE
+ @DrawableRes
+ var cancelIcon: Int = R.drawable.ic_cancel
@ColorInt var color: Int? = null
@ColorInt var checkedColor: Int? = null
@ColorInt var strokeColor: Int? = null
@@ -101,7 +105,7 @@ class FilterItem : FrameLayout, Serializable {
viewLeft.performClick()
}
}
- buttonCancel.supportBackgroundTintList = ColorStateList.valueOf(getColor(cancelIconTint))
+ ViewCompat.setBackgroundTintList(buttonCancel, ColorStateList.valueOf(cancelIconTint))
isIncreased = true
}
From f95b58862a8e8046216ab747333365edfb3ef955 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 16:49:36 +0800
Subject: [PATCH 07/22] Fix FiltersListItemAnimator resetAnimation()
---
.../com/yalantis/filter/animator/FiltersListItemAnimator.kt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt b/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
index 467c7f5..0a38179 100755
--- a/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
+++ b/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
@@ -423,7 +423,8 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
}
private fun resetAnimation(holder: RecyclerView.ViewHolder) {
- AnimatorCompatHelper.clearInterpolator(holder.itemView)
+ val defaultInterpolator = ValueAnimator().interpolator
+ holder.itemView.animate().interpolator = defaultInterpolator
endAnimation(holder)
}
From 55f3884c1bc843c61b07f08ff85f16a45806b917 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 16:53:09 +0800
Subject: [PATCH 08/22] Fix androidx layout xml file/wrong res import Now it
can run on Android Studio 3.4 And Android Pie(9)
---
README.md | 4 ++--
app/src/main/res/layout/activity_example.xml | 4 ++--
app/src/main/res/layout/item_list.xml | 6 +++---
filter/src/main/java/com/yalantis/filter/widget/Filter.kt | 1 -
filter/src/main/res/layout/item_filter.xml | 6 +++---
filter/src/main/res/layout/view_collapse.xml | 4 ++--
6 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/README.md b/README.md
index 6159f5e..a1468ee 100644
--- a/README.md
+++ b/README.md
@@ -63,7 +63,7 @@ Firstly you need to place `Filter` above your `RecyclerView` in the layout file
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
-
-
-
-
-
-
-
-
-
-
Date: Sat, 27 Apr 2019 16:58:52 +0800
Subject: [PATCH 09/22] Fix androidx layout xml file
---
app/src/main/res/layout/activity_example.xml | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/app/src/main/res/layout/activity_example.xml b/app/src/main/res/layout/activity_example.xml
index bef418c..3b438c0 100755
--- a/app/src/main/res/layout/activity_example.xml
+++ b/app/src/main/res/layout/activity_example.xml
@@ -1,15 +1,15 @@
-
-
-
-
-
+
+
-
-
\ No newline at end of file
+
\ No newline at end of file
From 302b9a7762f34260934d5442a5cacbdcd9d2b9df Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:02:34 +0800
Subject: [PATCH 10/22] fix layout wrong type
---
app/src/main/res/layout/activity_example.xml | 4 ++--
app/src/main/res/layout/item_list.xml | 6 +++---
filter/src/main/res/layout/item_filter.xml | 6 +++---
filter/src/main/res/layout/view_collapse.xml | 4 ++--
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/app/src/main/res/layout/activity_example.xml b/app/src/main/res/layout/activity_example.xml
index 3b438c0..e7c9077 100755
--- a/app/src/main/res/layout/activity_example.xml
+++ b/app/src/main/res/layout/activity_example.xml
@@ -20,7 +20,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
-
-
-
-
-
-
-
-
Date: Sat, 27 Apr 2019 17:05:22 +0800
Subject: [PATCH 11/22] fix item stroke height
---
filter/src/main/res/layout/item_filter.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/filter/src/main/res/layout/item_filter.xml b/filter/src/main/res/layout/item_filter.xml
index 5bd05cd..adec25c 100755
--- a/filter/src/main/res/layout/item_filter.xml
+++ b/filter/src/main/res/layout/item_filter.xml
@@ -40,14 +40,14 @@
From ec6986700509eec428505f6eb43a5040671be388 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:24:35 +0800
Subject: [PATCH 12/22] Make FiltersListItemAnimator.kt GREEN
---
.../animator/FiltersListItemAnimator.kt | 116 ++++++++----------
1 file changed, 52 insertions(+), 64 deletions(-)
diff --git a/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt b/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
index 0a38179..3fadd75 100755
--- a/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
+++ b/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
@@ -2,8 +2,6 @@ package com.yalantis.filter.animator
import android.animation.ValueAnimator
import androidx.core.view.ViewCompat
-import androidx.core.view.ViewPropertyAnimatorListener
-import android.view.View
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.SimpleItemAnimator
import java.util.*
@@ -14,17 +12,17 @@ import java.util.*
class FiltersListItemAnimator : SimpleItemAnimator() {
override fun isRunning(): Boolean {
- return !mPendingAdditions.isEmpty() ||
- !mPendingChanges.isEmpty() ||
- !mPendingMoves.isEmpty() ||
- !mPendingRemovals.isEmpty() ||
- !mMoveAnimations.isEmpty() ||
- !mRemoveAnimations.isEmpty() ||
- !mAddAnimations.isEmpty() ||
- !mChangeAnimations.isEmpty() ||
- !mMovesList.isEmpty() ||
- !mAdditionsList.isEmpty() ||
- !mChangesList.isEmpty()
+ return mPendingAdditions.isNotEmpty() ||
+ mPendingChanges.isNotEmpty() ||
+ mPendingMoves.isNotEmpty() ||
+ mPendingRemovals.isNotEmpty() ||
+ mMoveAnimations.isNotEmpty() ||
+ mRemoveAnimations.isNotEmpty() ||
+ mAddAnimations.isNotEmpty() ||
+ mChangeAnimations.isNotEmpty() ||
+ mMovesList.isNotEmpty() ||
+ mAdditionsList.isNotEmpty() ||
+ mChangesList.isNotEmpty()
}
private val mPendingRemovals = mutableListOf()
@@ -51,10 +49,10 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
override fun runPendingAnimations() {
- val removalsPending = !mPendingRemovals.isEmpty()
- val movesPending = !mPendingMoves.isEmpty()
- val changesPending = !mPendingChanges.isEmpty()
- val additionsPending = !mPendingAdditions.isEmpty()
+ val removalsPending = mPendingRemovals.isNotEmpty()
+ val movesPending = mPendingMoves.isNotEmpty()
+ val changesPending = mPendingChanges.isNotEmpty()
+ val additionsPending = mPendingAdditions.isNotEmpty()
if (!removalsPending && !movesPending && !additionsPending && !changesPending) {
// nothing to animate
return
@@ -80,7 +78,7 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
}
if (removalsPending) {
val view = moves[0].holder.itemView
- ViewCompat.postOnAnimationDelayed(view, mover, getRemoveDuration())
+ ViewCompat.postOnAnimationDelayed(view, mover, removeDuration)
} else {
mover.run()
}
@@ -100,7 +98,7 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
}
if (removalsPending) {
val holder = changes[0].oldHolder
- ViewCompat.postOnAnimationDelayed(holder!!.itemView, changer, getRemoveDuration())
+ ViewCompat.postOnAnimationDelayed(holder!!.itemView, changer, removeDuration)
} else {
changer.run()
}
@@ -162,7 +160,7 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
override fun animateAdd(holder: RecyclerView.ViewHolder): Boolean {
resetAnimation(holder)
- ViewCompat.setAlpha(holder.itemView, 0f)
+ holder.itemView.alpha = 0f
mPendingAdditions.add(holder)
return true
}
@@ -190,25 +188,25 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
override fun animateMove(holder: RecyclerView.ViewHolder, fromX: Int, fromY: Int,
toX: Int, toY: Int): Boolean {
- var fromX = fromX
- var fromY = fromY
+ var fx = fromX
+ var fy = fromY
val view = holder.itemView
- fromX += ViewCompat.getTranslationX(holder.itemView).toInt()
- fromY += ViewCompat.getTranslationY(holder.itemView).toInt()
+ fx += holder.itemView.translationX.toInt()
+ fy += holder.itemView.translationY.toInt()
resetAnimation(holder)
- val deltaX = toX - fromX
- val deltaY = toY - fromY
+ val deltaX = toX - fx
+ val deltaY = toY - fy
if (deltaX == 0 && deltaY == 0) {
dispatchMoveFinished(holder)
return false
}
if (deltaX != 0) {
- ViewCompat.setTranslationX(view, (-deltaX).toFloat())
+ view.translationY = (-deltaX).toFloat()
}
if (deltaY != 0) {
- ViewCompat.setTranslationY(view, (-deltaY).toFloat())
+ view.translationY = (-deltaY).toFloat()
}
- mPendingMoves += MoveInfo(holder, fromX, fromY, toX, toY)
+ mPendingMoves += MoveInfo(holder, fx, fy, toX, toY)
return true
}
@@ -248,22 +246,22 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
// run a move animation to handle position changes.
return animateMove(oldHolder, fromX, fromY, toX, toY)
}
- val prevTranslationX = ViewCompat.getTranslationX(oldHolder.itemView)
- val prevTranslationY = ViewCompat.getTranslationY(oldHolder.itemView)
- val prevAlpha = ViewCompat.getAlpha(oldHolder.itemView)
+ val prevTranslationX = oldHolder.itemView.translationX
+ val prevTranslationY = oldHolder.itemView.translationY
+ val prevAlpha = oldHolder.itemView.alpha
resetAnimation(oldHolder)
val deltaX = (toX.toFloat() - fromX.toFloat() - prevTranslationX).toInt()
val deltaY = (toY.toFloat() - fromY.toFloat() - prevTranslationY).toInt()
// recover prev translation state after ending animation
- ViewCompat.setTranslationX(oldHolder.itemView, prevTranslationX)
- ViewCompat.setTranslationY(oldHolder.itemView, prevTranslationY)
- ViewCompat.setAlpha(oldHolder.itemView, prevAlpha)
+ oldHolder.itemView.translationX = prevTranslationX
+ oldHolder.itemView.translationY = prevTranslationY
+ oldHolder.itemView.alpha = prevAlpha
if (newHolder != null) {
// carry over translation values
resetAnimation(newHolder)
- ViewCompat.setTranslationX(newHolder.itemView, (-deltaX).toFloat())
- ViewCompat.setTranslationY(newHolder.itemView, (-deltaY).toFloat())
- ViewCompat.setAlpha(newHolder.itemView, 0f)
+ newHolder.itemView.translationX = (-deltaX).toFloat()
+ newHolder.itemView.translationY = (-deltaY).toFloat()
+ newHolder.itemView.alpha = 0f
}
mPendingChanges += ChangeInfo(oldHolder, newHolder, fromX, fromY, toX, toY)
return true
@@ -355,9 +353,9 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
} else {
return false
}
- ViewCompat.setAlpha(item.itemView, 1f)
- ViewCompat.setTranslationX(item.itemView, 0f)
- ViewCompat.setTranslationY(item.itemView, 0f)
+ item.itemView.alpha = 1f
+ item.itemView.translationX = 0f
+ item.itemView.translationY = 0f
dispatchChangeFinished(item, oldItem)
return true
}
@@ -370,19 +368,19 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
for (i in mPendingMoves.indices.reversed()) {
val moveInfo = mPendingMoves[i]
if (moveInfo.holder === item) {
- ViewCompat.setTranslationY(view, 0f)
- ViewCompat.setTranslationX(view, 0f)
+ view.translationY = 0f
+ view.translationX = 0f
dispatchMoveFinished(item)
mPendingMoves.removeAt(i)
}
}
endChangeAnimation(mPendingChanges, item)
if (mPendingRemovals.remove(item)) {
- ViewCompat.setAlpha(view, 1f)
+ view.alpha = 1f
dispatchRemoveFinished(item)
}
if (mPendingAdditions.remove(item)) {
- ViewCompat.setAlpha(view, 1f)
+ view.alpha = 1f
dispatchAddFinished(item)
}
@@ -398,8 +396,8 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
for (j in moves.indices.reversed()) {
val moveInfo = moves[j]
if (moveInfo.holder === item) {
- ViewCompat.setTranslationY(view, 0f)
- ViewCompat.setTranslationX(view, 0f)
+ view.translationY = 0f
+ view.translationX = 0f
dispatchMoveFinished(item)
moves.removeAt(j)
if (moves.isEmpty()) {
@@ -412,7 +410,7 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
for (i in mAdditionsList.indices.reversed()) {
val additions = mAdditionsList[i]
if (additions.remove(item)) {
- ViewCompat.setAlpha(view, 1f)
+ view.alpha = 1f
dispatchAddFinished(item)
if (additions.isEmpty()) {
mAdditionsList.removeAt(i)
@@ -445,8 +443,8 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
for (i in count - 1 downTo 0) {
val item = mPendingMoves[i]
val view = item.holder.itemView
- ViewCompat.setTranslationY(view, 0f)
- ViewCompat.setTranslationX(view, 0f)
+ view.translationY = 0f
+ view.translationX = 0f
dispatchMoveFinished(item.holder)
mPendingMoves.removeAt(i)
}
@@ -460,7 +458,7 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
for (i in count - 1 downTo 0) {
val item = mPendingAdditions[i]
val view = item.itemView
- ViewCompat.setAlpha(view, 1f)
+ view.alpha = 1f
dispatchAddFinished(item)
mPendingAdditions.removeAt(i)
}
@@ -481,8 +479,8 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
val moveInfo = moves[j]
val item = moveInfo.holder
val view = item.itemView
- ViewCompat.setTranslationY(view, 0f)
- ViewCompat.setTranslationX(view, 0f)
+ view.translationY = 0f
+ view.translationX = 0f
dispatchMoveFinished(moveInfo.holder)
moves.removeAt(j)
if (moves.isEmpty()) {
@@ -497,7 +495,7 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
for (j in count - 1 downTo 0) {
val item = additions[j]
val view = item.itemView
- ViewCompat.setAlpha(view, 1f)
+ view.alpha = 1f
dispatchAddFinished(item)
additions.removeAt(j)
if (additions.isEmpty()) {
@@ -553,14 +551,4 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
return !payloads.isEmpty() || super.canReuseUpdatedViewHolder(viewHolder, payloads)
}
- private open class VpaListenerAdapter : ViewPropertyAnimatorListener {
- override fun onAnimationStart(view: View) {
- }
-
- override fun onAnimationEnd(view: View) {
- }
-
- override fun onAnimationCancel(view: View) {
- }
- }
}
\ No newline at end of file
From d3e995582a49d3e344e8c7b514b6f94f943b9df4 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:26:06 +0800
Subject: [PATCH 13/22] Make CollapsedFilterContainer.kt GREEN
---
.../java/com/yalantis/filter/widget/CollapsedFilterContainer.kt | 2 ++
1 file changed, 2 insertions(+)
diff --git a/filter/src/main/java/com/yalantis/filter/widget/CollapsedFilterContainer.kt b/filter/src/main/java/com/yalantis/filter/widget/CollapsedFilterContainer.kt
index 3461f9f..861d1a8 100755
--- a/filter/src/main/java/com/yalantis/filter/widget/CollapsedFilterContainer.kt
+++ b/filter/src/main/java/com/yalantis/filter/widget/CollapsedFilterContainer.kt
@@ -1,5 +1,6 @@
package com.yalantis.filter.widget
+import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
@@ -39,6 +40,7 @@ class CollapsedFilterContainer : RelativeLayout {
return isEmpty || !containsEvent
}
+ @SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(event: MotionEvent): Boolean {
when (event.action) {
MotionEvent.ACTION_DOWN -> {
From e290c6d0c126d88b006ee0de02def35769ec8da4 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:28:24 +0800
Subject: [PATCH 14/22] Make CollapsedFilterView.kt GREEN
---
.../com/yalantis/filter/widget/CollapsedFilterView.kt | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/filter/src/main/java/com/yalantis/filter/widget/CollapsedFilterView.kt b/filter/src/main/java/com/yalantis/filter/widget/CollapsedFilterView.kt
index 1029004..6e1b45b 100755
--- a/filter/src/main/java/com/yalantis/filter/widget/CollapsedFilterView.kt
+++ b/filter/src/main/java/com/yalantis/filter/widget/CollapsedFilterView.kt
@@ -1,6 +1,7 @@
package com.yalantis.filter.widget
import android.animation.ValueAnimator
+import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.view.MotionEvent
@@ -27,7 +28,7 @@ class CollapsedFilterView : ViewGroup {
constructor(context: Context, attrs: AttributeSet?, defStyleRes: Int) : super(context, attrs, defStyleRes)
override fun onLayout(p0: Boolean, p1: Int, p2: Int, p3: Int, p4: Int) {
- for (i in 0..childCount - 1) {
+ for (i in 0 until childCount) {
val child: FilterItem = getChildAt(i) as FilterItem
child.layout(0, 0, child.collapsedSize / 2 + child.measuredWidth / 2 + 1, child.measuredHeight)
}
@@ -58,7 +59,7 @@ class CollapsedFilterView : ViewGroup {
ValueAnimator.ofFloat(0f, Constant.ANIMATION_DURATION / 2.toFloat()).setDuration(Constant.ANIMATION_DURATION / 2).apply {
addUpdateListener {
val ratio = it.animatedValue as Float / (Constant.ANIMATION_DURATION / 2)
- for (i in index + 1..childCount - 1) {
+ for (i in index + 1 until childCount) {
val item = getChildAt(i) as FilterItem
if (ratio == 0f) {
@@ -80,6 +81,7 @@ class CollapsedFilterView : ViewGroup {
override fun onInterceptTouchEvent(ev: MotionEvent?): Boolean = childCount > 0
+ @SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(event: MotionEvent): Boolean {
when (event.action) {
MotionEvent.ACTION_DOWN -> {
@@ -107,7 +109,7 @@ class CollapsedFilterView : ViewGroup {
private fun findViewByCoord(x: Float): FilterItem? {
- for (i in 0..childCount - 1) {
+ for (i in 0 until childCount) {
val item: FilterItem = getChildAt(i) as FilterItem
if (containsCoord(item, x)) {
From 11ae37f0bb91e85459422b08ad14a1ba774d00b7 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:33:04 +0800
Subject: [PATCH 15/22] Make CollapseView.kt GREEN
---
.../main/java/com/yalantis/filter/widget/CollapseView.kt | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/filter/src/main/java/com/yalantis/filter/widget/CollapseView.kt b/filter/src/main/java/com/yalantis/filter/widget/CollapseView.kt
index 113f899..acfa3cd 100755
--- a/filter/src/main/java/com/yalantis/filter/widget/CollapseView.kt
+++ b/filter/src/main/java/com/yalantis/filter/widget/CollapseView.kt
@@ -13,9 +13,9 @@ import kotlinx.android.synthetic.main.view_collapse.view.*
*/
class CollapseView : FrameLayout {
- constructor(context: Context?) : this(context, null)
- constructor(context: Context?, attrs: AttributeSet?) : this(context, attrs, 0)
- constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
+ constructor(context: Context) : this(context, null)
+ constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
+ constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
LayoutInflater.from(context).inflate(R.layout.view_collapse, this, true)
}
@@ -27,7 +27,7 @@ class CollapseView : FrameLayout {
buttonOk.visibility = if (hasText) View.VISIBLE else GONE
}
- internal fun rotateArrow(rotation: Float): Unit {
+ internal fun rotateArrow(rotation: Float) {
imageArrow.rotation = rotation
}
From be361b4a571f3ece1bb85ddf1597a7afdce89704 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:34:40 +0800
Subject: [PATCH 16/22] Make ExpandedFilterView.kt GREEN
---
.../filter/widget/ExpandedFilterView.kt | 32 +++++++++++--------
1 file changed, 18 insertions(+), 14 deletions(-)
diff --git a/filter/src/main/java/com/yalantis/filter/widget/ExpandedFilterView.kt b/filter/src/main/java/com/yalantis/filter/widget/ExpandedFilterView.kt
index 8572cf1..c3c0bfa 100755
--- a/filter/src/main/java/com/yalantis/filter/widget/ExpandedFilterView.kt
+++ b/filter/src/main/java/com/yalantis/filter/widget/ExpandedFilterView.kt
@@ -1,5 +1,6 @@
package com.yalantis.filter.widget
+import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.view.MotionEvent
@@ -31,8 +32,8 @@ class ExpandedFilterView : ViewGroup {
constructor(context: Context, attrs: AttributeSet?, defStyleRes: Int) : super(context, attrs, defStyleRes)
override fun onLayout(p0: Boolean, p1: Int, p2: Int, p3: Int, p4: Int) {
- if (!filters.isEmpty()) {
- for (i in 0..childCount - 1) {
+ if (filters.isNotEmpty()) {
+ for (i in 0 until childCount) {
val child: View = getChildAt(i)
val coord: Coord? = filters[child]
@@ -57,27 +58,29 @@ class ExpandedFilterView : ViewGroup {
var height: Int = mPrevHeight
if (filters.isEmpty()) {
- for (i in 0..childCount - 1) {
+ for (i in 0 until childCount) {
val child: FilterItem = getChildAt(i) as FilterItem
child.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)
- if (mPrevItem == null) {
- mPrevX = margin
- mPrevY = margin
- height = child.measuredHeight + margin
- } else if (canPlaceOnTheSameLine(child)) {
- mPrevX = mPrevX!! + mPrevItem!!.measuredWidth + margin / 2
- } else {
- mPrevX = margin
- mPrevY = mPrevY!! + mPrevItem!!.measuredHeight + margin / 2
- height += child.measuredHeight + margin / 2
+ when {
+ mPrevItem == null -> {
+ mPrevX = margin
+ mPrevY = margin
+ height = child.measuredHeight + margin
+ }
+ canPlaceOnTheSameLine(child) -> mPrevX = mPrevX!! + mPrevItem!!.measuredWidth + margin / 2
+ else -> {
+ mPrevX = margin
+ mPrevY = mPrevY!! + mPrevItem!!.measuredHeight + margin / 2
+ height += child.measuredHeight + margin / 2
+ }
}
mPrevItem = child
if (filters.size < childCount) {
- filters.put(child, Coord(mPrevX!!, mPrevY!!))
+ filters[child] = Coord(mPrevX!!, mPrevY!!)
}
}
height = if (height > 0) height + margin else 0
@@ -92,6 +95,7 @@ class ExpandedFilterView : ViewGroup {
calculateSize(heightMeasureSpec, calculateDesiredHeight()))
}
+ @SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(event: MotionEvent): Boolean {
when (event.action) {
MotionEvent.ACTION_DOWN -> {
From c2bbab955206bcef832bff8d392fece791fe1fe4 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:44:27 +0800
Subject: [PATCH 17/22] Make Filter.kt GREEN
---
.../java/com/yalantis/filter/widget/Filter.kt | 35 ++++---------------
1 file changed, 6 insertions(+), 29 deletions(-)
diff --git a/filter/src/main/java/com/yalantis/filter/widget/Filter.kt b/filter/src/main/java/com/yalantis/filter/widget/Filter.kt
index b334954..1a144b9 100755
--- a/filter/src/main/java/com/yalantis/filter/widget/Filter.kt
+++ b/filter/src/main/java/com/yalantis/filter/widget/Filter.kt
@@ -2,6 +2,7 @@ package com.yalantis.filter.widget
import android.animation.ValueAnimator
import android.content.Context
+import android.graphics.Color
import android.os.Bundle
import android.os.Parcelable
import android.util.AttributeSet
@@ -18,10 +19,7 @@ import com.yalantis.filter.model.Coord
import com.yalantis.filter.model.FilterModel
import kotlinx.android.synthetic.main.collapsed_container.view.*
import kotlinx.android.synthetic.main.filter.view.*
-import java.io.Serializable
import java.util.*
-import android.content.res.TypedArray
-import android.graphics.Color
/**
@@ -35,29 +33,7 @@ class Filter : FrameLayout, FilterItemListener, CollapseListene
var noSelectedItemText: String = ""
set(value) {
collapsedText.text = value
- }
- var textToReplaceArrow: String = ""
- set(value) {
- collapseView.setText(value)
- }
-
- var replaceArrowByText: Boolean = false
- set(value) {
- collapseView.setHasText(value)
- }
-
- var collapsedBackground: Int = Color.WHITE
- set(value) {
- field = value
- collapsedContainer.containerBackground = value
- collapsedContainer.invalidate()
- }
-
- var expandedBackground: Int = Color.WHITE
- set(value) {
field = value
- expandedFilter.setBackgroundColor(value)
- expandedFilter.invalidate()
}
private var mIsBusy = false
@@ -280,7 +256,7 @@ class Filter : FrameLayout, FilterItemListener, CollapseListene
if (mItems.contains(item)) {
mSelectedItems.add(filter)
}
- mSelectedFilters.put(item, Coord(item.x.toInt(), item.y.toInt()))
+ mSelectedFilters[item] = Coord(item.x.toInt(), item.y.toInt())
listener?.onFilterSelected(filter)
}
@@ -298,7 +274,7 @@ class Filter : FrameLayout, FilterItemListener, CollapseListene
if (coord != null && collapsedFilter.removeItem(item)) {
mSelectedFilters.remove(item)
mSelectedItems.remove(mItems[item])
- mRemovedFilters.put(item, coord)
+ mRemovedFilters[item] = coord
postDelayed({
remove(item)
@@ -348,15 +324,16 @@ class Filter : FrameLayout, FilterItemListener, CollapseListene
putBoolean(STATE_COLLAPSED, isCollapsed!!)
val selected = mSelectedItems
val removed = mRemovedItems
- if (selected is Serializable) {
+ if (true) {
putSerializable(STATE_SELECTED, selected)
}
- if (removed is Serializable) {
+ if (true) {
putSerializable(STATE_REMOVED, removed)
}
}
}
+ @Suppress("UNCHECKED_CAST")
override fun onRestoreInstanceState(state: Parcelable?) {
if (state is Bundle) {
super.onRestoreInstanceState(state.getParcelable(STATE_SUPER))
From eacf9c0847e19f091ac1804ce808d18ee7892465 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:46:56 +0800
Subject: [PATCH 18/22] Make FilterItem.kt GREEN
---
.../com/yalantis/filter/widget/FilterItem.kt | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt b/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt
index 6927af3..049b6e7 100755
--- a/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt
+++ b/filter/src/main/java/com/yalantis/filter/widget/FilterItem.kt
@@ -2,12 +2,8 @@ package com.yalantis.filter.widget
import android.content.Context
import android.content.res.ColorStateList
-import android.graphics.Canvas
import android.graphics.Color
-import android.graphics.Typeface
import android.graphics.drawable.GradientDrawable
-import androidx.core.content.ContextCompat
-import androidx.core.content.res.ResourcesCompat
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.MotionEvent
@@ -17,6 +13,7 @@ import android.widget.FrameLayout
import androidx.annotation.ColorInt
import androidx.annotation.ColorRes
import androidx.annotation.DrawableRes
+import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat
import com.yalantis.filter.R
import com.yalantis.filter.listener.FilterItemListener
@@ -41,10 +38,6 @@ class FilterItem : FrameLayout, Serializable {
@ColorInt var strokeColor: Int? = null
@ColorInt var checkedTextColor: Int? = null
@ColorInt var textColor: Int? = null
- var typeface: Typeface? = null
- set(value) {
- textView.typeface = value
- }
var text: String
get() = textView.text.toString()
set(value) {
@@ -52,10 +45,10 @@ class FilterItem : FrameLayout, Serializable {
textView.text = value
}
- var circlePosition: Float = 0f
+ val circlePosition: Float
get() = (textBackground.width / 2 + 1).toFloat()
- var collapsedSize: Int = 0
+ val collapsedSize: Int
get() = viewLeft.width
var cornerRadius: Float = 100f
@@ -198,7 +191,7 @@ class FilterItem : FrameLayout, Serializable {
color = removeAlpha(color)
val strokeColor = if (isFilterSelected) color else removeAlpha(strokeColor)
- val drawable: GradientDrawable = GradientDrawable()
+ val drawable = GradientDrawable()
drawable.cornerRadius = cornerRadius
if (color != null) {
@@ -215,8 +208,8 @@ class FilterItem : FrameLayout, Serializable {
bottomStroke.setBackgroundColor(strokeColor)
}
- viewLeft.setBackgroundDrawable(drawable)
- viewRight.setBackgroundDrawable(drawable)
+ ViewCompat.setBackground(viewLeft, drawable)
+ ViewCompat.setBackground(viewRight, drawable)
}
From a48224e9b6cbb2caf70451305579baa76775d4c8 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:47:37 +0800
Subject: [PATCH 19/22] Make Constant.kt GREEN
---
filter/src/main/java/com/yalantis/filter/Constant.kt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/filter/src/main/java/com/yalantis/filter/Constant.kt b/filter/src/main/java/com/yalantis/filter/Constant.kt
index bc8f0c1..81fe832 100755
--- a/filter/src/main/java/com/yalantis/filter/Constant.kt
+++ b/filter/src/main/java/com/yalantis/filter/Constant.kt
@@ -5,6 +5,6 @@ package com.yalantis.filter
*/
object Constant {
- val ANIMATION_DURATION: Long = 400
+ const val ANIMATION_DURATION: Long = 400
}
\ No newline at end of file
From df60b50710fd8ec199d35d9a3ddc216b8bdafcfe Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:53:39 +0800
Subject: [PATCH 20/22] update README Android SDK version
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index a1468ee..7f9ddbc 100644
--- a/README.md
+++ b/README.md
@@ -15,7 +15,7 @@ Read how we did it [on our blog](https://yalantis.com/blog/develop-filter-animat
##Requirements
-- Android SDK 18+
+- Android SDK 19+
##Usage
From aeba4007854bc4a494645752625ad8d4e5768779 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Sat, 27 Apr 2019 17:54:40 +0800
Subject: [PATCH 21/22] update README Example layout code
---
README.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md
index 7f9ddbc..cb63bfc 100644
--- a/README.md
+++ b/README.md
@@ -42,17 +42,17 @@ Firstly you need to place `Filter` above your `RecyclerView` in the layout file
```xml
-
-
-
-
-
-
-
+
+
-
-
+
```
From 7ba1e1605f645921cf0016ba9f64535e1a640bf6 Mon Sep 17 00:00:00 2001
From: attect <412966721@qq.com>
Date: Mon, 29 Apr 2019 09:05:07 +0800
Subject: [PATCH 22/22] change some code with ciscorucinski's suggestions/move
resources
---
.../filter/animator/FiltersListItemAnimator.kt | 15 ++++++++-------
.../java/com/yalantis/filter/widget/Filter.kt | 8 ++------
.../{drawable-xxhdpi => drawable}/ic_arrow.png | Bin
.../{drawable-xxhdpi => drawable}/ic_cancel.png | Bin
4 files changed, 10 insertions(+), 13 deletions(-)
rename filter/src/main/res/{drawable-xxhdpi => drawable}/ic_arrow.png (100%)
rename filter/src/main/res/{drawable-xxhdpi => drawable}/ic_cancel.png (100%)
diff --git a/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt b/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
index 3fadd75..ea37426 100755
--- a/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
+++ b/filter/src/main/java/com/yalantis/filter/animator/FiltersListItemAnimator.kt
@@ -186,16 +186,17 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
}.start()
}
+ @Suppress("NAME_SHADOWING")
override fun animateMove(holder: RecyclerView.ViewHolder, fromX: Int, fromY: Int,
toX: Int, toY: Int): Boolean {
- var fx = fromX
- var fy = fromY
+ var fromX = fromX
+ var fromY = fromY
val view = holder.itemView
- fx += holder.itemView.translationX.toInt()
- fy += holder.itemView.translationY.toInt()
+ fromX += holder.itemView.translationX.toInt()
+ fromY += holder.itemView.translationY.toInt()
resetAnimation(holder)
- val deltaX = toX - fx
- val deltaY = toY - fy
+ val deltaX = toX - fromX
+ val deltaY = toY - fromY
if (deltaX == 0 && deltaY == 0) {
dispatchMoveFinished(holder)
return false
@@ -206,7 +207,7 @@ class FiltersListItemAnimator : SimpleItemAnimator() {
if (deltaY != 0) {
view.translationY = (-deltaY).toFloat()
}
- mPendingMoves += MoveInfo(holder, fx, fy, toX, toY)
+ mPendingMoves += MoveInfo(holder, fromX, fromY, toX, toY)
return true
}
diff --git a/filter/src/main/java/com/yalantis/filter/widget/Filter.kt b/filter/src/main/java/com/yalantis/filter/widget/Filter.kt
index 1a144b9..74b9c53 100755
--- a/filter/src/main/java/com/yalantis/filter/widget/Filter.kt
+++ b/filter/src/main/java/com/yalantis/filter/widget/Filter.kt
@@ -324,12 +324,8 @@ class Filter : FrameLayout, FilterItemListener, CollapseListene
putBoolean(STATE_COLLAPSED, isCollapsed!!)
val selected = mSelectedItems
val removed = mRemovedItems
- if (true) {
- putSerializable(STATE_SELECTED, selected)
- }
- if (true) {
- putSerializable(STATE_REMOVED, removed)
- }
+ putSerializable(STATE_SELECTED, selected)
+ putSerializable(STATE_REMOVED, removed)
}
}
diff --git a/filter/src/main/res/drawable-xxhdpi/ic_arrow.png b/filter/src/main/res/drawable/ic_arrow.png
similarity index 100%
rename from filter/src/main/res/drawable-xxhdpi/ic_arrow.png
rename to filter/src/main/res/drawable/ic_arrow.png
diff --git a/filter/src/main/res/drawable-xxhdpi/ic_cancel.png b/filter/src/main/res/drawable/ic_cancel.png
similarity index 100%
rename from filter/src/main/res/drawable-xxhdpi/ic_cancel.png
rename to filter/src/main/res/drawable/ic_cancel.png