From db3502a8bd1cf70f655089704d965929d57fe47e Mon Sep 17 00:00:00 2001 From: fazal Date: Tue, 23 Jul 2019 17:33:21 +0400 Subject: [PATCH] Migration to AndroidX --- app/build.gradle | 8 ++++---- .../widget/layoutmanager/demo/MainActivity.java | 14 +++++--------- app/src/main/res/layout/activity_main.xml | 2 +- build.gradle | 2 +- gradle.properties | 2 ++ gradle/wrapper/gradle-wrapper.properties | 4 ++-- sticky-layoutmanager/build.gradle | 2 +- .../main/java/com/jay/widget/StickyHeaders.java | 4 +++- .../widget/StickyHeadersGridLayoutManager.java | 17 +++++++++++------ .../StickyHeadersLinearLayoutManager.java | 8 ++++---- ...StickyHeadersStaggeredGridLayoutManager.java | 9 ++++----- 11 files changed, 38 insertions(+), 34 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ee04117..584695a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,11 +1,11 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 26 + compileSdkVersion 28 defaultConfig { applicationId "com.jay.widget.layoutmanager.demo" minSdkVersion 19 - targetSdkVersion 26 + targetSdkVersion 28 versionCode 1 versionName "1.0" } @@ -19,7 +19,7 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'com.android.support:appcompat-v7:26.1.0' + implementation 'androidx.appcompat:appcompat:1.0.0' implementation project(':sticky-layoutmanager') - implementation 'com.android.support:recyclerview-v7:26.1.0' + implementation 'androidx.recyclerview:recyclerview:1.0.0' } diff --git a/app/src/main/java/com/jay/widget/layoutmanager/demo/MainActivity.java b/app/src/main/java/com/jay/widget/layoutmanager/demo/MainActivity.java index b88d81b..8f810de 100644 --- a/app/src/main/java/com/jay/widget/layoutmanager/demo/MainActivity.java +++ b/app/src/main/java/com/jay/widget/layoutmanager/demo/MainActivity.java @@ -1,20 +1,16 @@ package com.jay.widget.layoutmanager.demo; import android.os.Bundle; -import android.support.v4.view.ViewCompat; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.StaggeredGridLayoutManager; +import androidx.core.view.ViewCompat; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.webkit.JsResult; -import android.webkit.WebChromeClient; -import android.webkit.WebView; import android.widget.TextView; import com.jay.widget.StickyHeaders; diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 8c8cd62..2e75f7a 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,7 +7,7 @@ android:layout_height="match_parent" tools:context="com.jay.widget.layoutmanager.demo.MainActivity"> - diff --git a/build.gradle b/build.gradle index e6b32bc..a868baa 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:3.4.0' // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle.properties b/gradle.properties index aac7c9b..9e6fce1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,6 +9,8 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. +android.enableJetifier=true +android.useAndroidX=true org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fbf73e0..bb2604a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Dec 04 10:20:36 CST 2017 +#Tue Jul 16 10:55:26 GST 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip diff --git a/sticky-layoutmanager/build.gradle b/sticky-layoutmanager/build.gradle index a993542..c69b06e 100644 --- a/sticky-layoutmanager/build.gradle +++ b/sticky-layoutmanager/build.gradle @@ -24,5 +24,5 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'com.android.support:recyclerview-v7:26.1.0' + implementation 'androidx.recyclerview:recyclerview:1.0.0' } diff --git a/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeaders.java b/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeaders.java index bdd8d16..c886fac 100644 --- a/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeaders.java +++ b/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeaders.java @@ -2,10 +2,12 @@ import android.view.View; +import androidx.recyclerview.widget.RecyclerView; + /** * Created by jay on 2017/12/4 上午10:52 * - * Adds sticky headers capabilities to the {@link android.support.v7.widget.RecyclerView.Adapter}. Should return {@code true} for all + * Adds sticky headers capabilities to the {@link RecyclerView.Adapter}. Should return {@code true} for all * positions that represent sticky headers. * * @link https://github.com/Doist/RecyclerViewExtensions/blob/master/StickyHeaders diff --git a/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersGridLayoutManager.java b/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersGridLayoutManager.java index cea2f19..234bfe2 100644 --- a/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersGridLayoutManager.java +++ b/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersGridLayoutManager.java @@ -4,12 +4,12 @@ import android.graphics.PointF; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.util.AttributeSet; +import android.util.Log; import android.view.View; import android.view.ViewTreeObserver; @@ -155,7 +155,12 @@ public int scrollHorizontallyBy(int dx, RecyclerView.Recycler recycler, Recycler @Override public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) { detachStickyHeader(); - super.onLayoutChildren(recycler, state); + + try { + super.onLayoutChildren(recycler, state); + } catch (IndexOutOfBoundsException e) { + Log.e("TAG", "meet a IOOBE in RecyclerView"); + } attachStickyHeader(); if (!state.isPreLayout()) { diff --git a/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersLinearLayoutManager.java b/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersLinearLayoutManager.java index 01d1873..6588354 100644 --- a/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersLinearLayoutManager.java +++ b/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersLinearLayoutManager.java @@ -4,10 +4,10 @@ import android.graphics.PointF; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; import android.view.ViewTreeObserver; diff --git a/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersStaggeredGridLayoutManager.java b/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersStaggeredGridLayoutManager.java index 267e18b..7dd5111 100644 --- a/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersStaggeredGridLayoutManager.java +++ b/sticky-layoutmanager/src/main/java/com/jay/widget/StickyHeadersStaggeredGridLayoutManager.java @@ -4,11 +4,10 @@ import android.graphics.PointF; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.StaggeredGridLayoutManager; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; import android.util.AttributeSet; import android.view.View; import android.view.ViewTreeObserver;