From cb900855cf3ebe2015435cb013c29fe458caae25 Mon Sep 17 00:00:00 2001 From: yarolegovich Date: Sat, 1 Aug 2020 18:29:15 +0300 Subject: [PATCH] Migrated to AndroidX --- build.gradle | 17 +++++++++----- gradle.properties | 16 +------------- gradle/wrapper/gradle-wrapper.properties | 4 ++-- library/build.gradle | 14 ++---------- .../slidingrootnav/SlideGravity.java | 3 ++- .../slidingrootnav/SlidingRootNavBuilder.java | 11 +++++----- .../slidingrootnav/SlidingRootNavLayout.java | 22 ++++++++++--------- .../util/ActionBarToggleAdapter.java | 3 ++- .../util/DrawerListenerAdapter.java | 3 ++- .../util/HiddenMenuClickConsumer.java | 2 ++ sample/build.gradle | 9 ++++---- .../slidingrootnav/sample/SampleActivity.java | 22 ++++++++++--------- .../sample/fragment/CenteredTextFragment.java | 8 ++++--- .../sample/menu/DrawerAdapter.java | 10 ++++++--- .../sample/menu/DrawerItem.java | 2 +- sample/src/main/res/layout/activity_main.xml | 6 ++--- sample/src/main/res/layout/fragment_text.xml | 1 + sample/src/main/res/layout/item_option.xml | 4 +++- .../src/main/res/layout/menu_left_drawer.xml | 2 +- 19 files changed, 80 insertions(+), 79 deletions(-) diff --git a/build.gradle b/build.gradle index 60ca777..d9f62fc 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,10 @@ buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' - classpath 'com.novoda:bintray-release:0.4.0' + classpath 'com.android.tools.build:gradle:4.0.1' } } @@ -27,10 +27,15 @@ ext { publishVersion = '1.1.0' licences = ['Apache-2.0'] - compileSdkVersion = 26 - buildToolsVersion = '26.0.1' + compileSdkVersion = 29 + buildToolsVersion = '29.0.2' minSdkVersion = 16 - targetSdkVersion = 25 + targetSdkVersion = 29 - supportLibVersion = '26.0.0' + deps = [ + recycler : 'androidx.recyclerview:recyclerview:1.0.0', + designSupport : 'com.google.android.material:material:1.0.0', + annotations : 'androidx.annotation:annotation:1.1.0', + androidxCompat: 'androidx.appcompat:appcompat:1.1.0', + ] } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index aac7c9b..cc6563d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,17 +1,3 @@ -# Project-wide Gradle settings. +android.useAndroidX=true -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. org.gradle.jvmargs=-Xmx1536m - -# 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 15b0667..6373062 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun Sep 03 13:36:54 WIB 2017 +#Sat Aug 01 18:16:29 EEST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip diff --git a/library/build.gradle b/library/build.gradle index f395667..c28f2eb 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,5 +1,4 @@ apply plugin: 'com.android.library' -apply plugin: 'com.novoda.bintray-release' android { compileSdkVersion rootProject.ext.compileSdkVersion @@ -12,15 +11,6 @@ android { } dependencies { - compile "com.android.support:appcompat-v7:$supportLibVersion" -} - -publish { - artifactId = 'sliding-root-nav' - userOrg = rootProject.userOrg - groupId = rootProject.groupId - uploadName = rootProject.uploadName - publishVersion = rootProject.publishVersion - description = rootProject.description - licences = rootProject.licences + implementation deps.annotations + implementation deps.androidxCompat } \ No newline at end of file diff --git a/library/src/main/java/com/yarolegovich/slidingrootnav/SlideGravity.java b/library/src/main/java/com/yarolegovich/slidingrootnav/SlideGravity.java index 419eb23..d83e1d9 100644 --- a/library/src/main/java/com/yarolegovich/slidingrootnav/SlideGravity.java +++ b/library/src/main/java/com/yarolegovich/slidingrootnav/SlideGravity.java @@ -1,6 +1,7 @@ package com.yarolegovich.slidingrootnav; -import android.support.v4.widget.ViewDragHelper; + +import androidx.customview.widget.ViewDragHelper; /** * Created by yarolegovich on 25.03.2017. diff --git a/library/src/main/java/com/yarolegovich/slidingrootnav/SlidingRootNavBuilder.java b/library/src/main/java/com/yarolegovich/slidingrootnav/SlidingRootNavBuilder.java index a734be3..2e1bfaf 100644 --- a/library/src/main/java/com/yarolegovich/slidingrootnav/SlidingRootNavBuilder.java +++ b/library/src/main/java/com/yarolegovich/slidingrootnav/SlidingRootNavBuilder.java @@ -2,15 +2,16 @@ package com.yarolegovich.slidingrootnav; import android.app.Activity; import android.os.Bundle; -import android.support.annotation.FloatRange; -import android.support.annotation.IntRange; -import android.support.annotation.LayoutRes; -import android.support.v7.app.ActionBarDrawerToggle; -import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.FloatRange; +import androidx.annotation.IntRange; +import androidx.annotation.LayoutRes; +import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.appcompat.widget.Toolbar; + import com.yarolegovich.slidingrootnav.callback.DragListener; import com.yarolegovich.slidingrootnav.callback.DragStateListener; import com.yarolegovich.slidingrootnav.transform.CompositeTransformation; diff --git a/library/src/main/java/com/yarolegovich/slidingrootnav/SlidingRootNavLayout.java b/library/src/main/java/com/yarolegovich/slidingrootnav/SlidingRootNavLayout.java index 8bb31bd..7349061 100644 --- a/library/src/main/java/com/yarolegovich/slidingrootnav/SlidingRootNavLayout.java +++ b/library/src/main/java/com/yarolegovich/slidingrootnav/SlidingRootNavLayout.java @@ -1,16 +1,19 @@ package com.yarolegovich.slidingrootnav; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Rect; import android.os.Bundle; import android.os.Parcelable; -import android.support.v4.view.ViewCompat; -import android.support.v4.widget.ViewDragHelper; import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; import android.widget.FrameLayout; +import androidx.annotation.NonNull; +import androidx.core.view.ViewCompat; +import androidx.customview.widget.ViewDragHelper; + import com.yarolegovich.slidingrootnav.callback.DragListener; import com.yarolegovich.slidingrootnav.callback.DragStateListener; import com.yarolegovich.slidingrootnav.transform.RootTransformation; @@ -69,6 +72,7 @@ public class SlidingRootNavLayout extends FrameLayout implements SlidingRootNav } @Override + @SuppressLint("ClickableViewAccessibility") public boolean onTouchEvent(MotionEvent event) { dragHelper.processTouchEvent(event); return true; @@ -199,9 +203,7 @@ public class SlidingRootNavLayout extends FrameLayout implements SlidingRootNav } if (rootView != null && isMenuOpened()) { rootView.getHitRect(tempRect); - if (tempRect.contains((int) event.getX(), (int) event.getY())) { - return true; - } + return tempRect.contains((int) event.getX(), (int) event.getY()); } return false; } @@ -251,7 +253,7 @@ public class SlidingRootNavLayout extends FrameLayout implements SlidingRootNav private boolean edgeTouched; @Override - public boolean tryCaptureView(View child, int pointerId) { + public boolean tryCaptureView(@NonNull View child, int pointerId) { if (isMenuLocked) { return false; } @@ -269,7 +271,7 @@ public class SlidingRootNavLayout extends FrameLayout implements SlidingRootNav } @Override - public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) { + public void onViewPositionChanged(@NonNull View changedView, int left, int top, int dx, int dy) { dragProgress = positionHelper.getDragProgress(left, maxDragDistance); rootTransformation.transform(dragProgress, rootView); notifyDrag(); @@ -277,7 +279,7 @@ public class SlidingRootNavLayout extends FrameLayout implements SlidingRootNav } @Override - public void onViewReleased(View releasedChild, float xvel, float yvel) { + public void onViewReleased(@NonNull View releasedChild, float xvel, float yvel) { int left = Math.abs(xvel) < FLING_MIN_VELOCITY ? positionHelper.getLeftToSettle(dragProgress, maxDragDistance) : positionHelper.getLeftAfterFling(xvel, maxDragDistance); @@ -302,12 +304,12 @@ public class SlidingRootNavLayout extends FrameLayout implements SlidingRootNav } @Override - public int getViewHorizontalDragRange(View child) { + public int getViewHorizontalDragRange(@NonNull View child) { return child == rootView ? maxDragDistance : 0; } @Override - public int clampViewPositionHorizontal(View child, int left, int dx) { + public int clampViewPositionHorizontal(@NonNull View child, int left, int dx) { return positionHelper.clampViewPosition(left, maxDragDistance); } } diff --git a/library/src/main/java/com/yarolegovich/slidingrootnav/util/ActionBarToggleAdapter.java b/library/src/main/java/com/yarolegovich/slidingrootnav/util/ActionBarToggleAdapter.java index 3343312..2fd5496 100644 --- a/library/src/main/java/com/yarolegovich/slidingrootnav/util/ActionBarToggleAdapter.java +++ b/library/src/main/java/com/yarolegovich/slidingrootnav/util/ActionBarToggleAdapter.java @@ -1,7 +1,8 @@ package com.yarolegovich.slidingrootnav.util; import android.content.Context; -import android.support.v4.widget.DrawerLayout; + +import androidx.drawerlayout.widget.DrawerLayout; import com.yarolegovich.slidingrootnav.SlidingRootNavLayout; diff --git a/library/src/main/java/com/yarolegovich/slidingrootnav/util/DrawerListenerAdapter.java b/library/src/main/java/com/yarolegovich/slidingrootnav/util/DrawerListenerAdapter.java index 1d73a83..0036ad2 100644 --- a/library/src/main/java/com/yarolegovich/slidingrootnav/util/DrawerListenerAdapter.java +++ b/library/src/main/java/com/yarolegovich/slidingrootnav/util/DrawerListenerAdapter.java @@ -1,8 +1,9 @@ package com.yarolegovich.slidingrootnav.util; -import android.support.v4.widget.DrawerLayout; import android.view.View; +import androidx.drawerlayout.widget.DrawerLayout; + import com.yarolegovich.slidingrootnav.callback.DragListener; import com.yarolegovich.slidingrootnav.callback.DragStateListener; diff --git a/library/src/main/java/com/yarolegovich/slidingrootnav/util/HiddenMenuClickConsumer.java b/library/src/main/java/com/yarolegovich/slidingrootnav/util/HiddenMenuClickConsumer.java index 75d8369..1ee29b3 100644 --- a/library/src/main/java/com/yarolegovich/slidingrootnav/util/HiddenMenuClickConsumer.java +++ b/library/src/main/java/com/yarolegovich/slidingrootnav/util/HiddenMenuClickConsumer.java @@ -1,5 +1,6 @@ package com.yarolegovich.slidingrootnav.util; +import android.annotation.SuppressLint; import android.content.Context; import android.view.MotionEvent; import android.view.View; @@ -19,6 +20,7 @@ public class HiddenMenuClickConsumer extends View { } @Override + @SuppressLint("ClickableViewAccessibility") public boolean onTouchEvent(MotionEvent event) { return menuHost.isMenuClosed(); } diff --git a/sample/build.gradle b/sample/build.gradle index ea0b534..6628c85 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -20,9 +20,10 @@ android { } dependencies { - compile "com.android.support:appcompat-v7:$supportLibVersion" - compile "com.android.support:design:$supportLibVersion" - compile "com.android.support:recyclerview-v7:$supportLibVersion" + implementation deps.annotations + implementation deps.androidxCompat + implementation deps.designSupport + implementation deps.recycler - compile project(':library') + implementation project(':library') } diff --git a/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/SampleActivity.java b/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/SampleActivity.java index 1c88f6b..90db337 100644 --- a/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/SampleActivity.java +++ b/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/SampleActivity.java @@ -1,17 +1,18 @@ package com.yarolegovich.slidingrootnav.sample; -import android.app.Fragment; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.support.annotation.ColorInt; -import android.support.annotation.ColorRes; -import android.support.annotation.Nullable; -import android.support.v4.content.ContextCompat; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.Toolbar; + +import androidx.annotation.ColorInt; +import androidx.annotation.ColorRes; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.yarolegovich.slidingrootnav.SlidingRootNav; import com.yarolegovich.slidingrootnav.SlidingRootNavBuilder; @@ -87,11 +88,12 @@ public class SampleActivity extends AppCompatActivity implements DrawerAdapter.O } private void showFragment(Fragment fragment) { - getFragmentManager().beginTransaction() + getSupportFragmentManager().beginTransaction() .replace(R.id.container, fragment) .commit(); } + @SuppressWarnings("rawtypes") private DrawerItem createItemFor(int position) { return new SimpleItem(screenIcons[position], screenTitles[position]) .withIconTint(color(R.color.textColorSecondary)) diff --git a/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/fragment/CenteredTextFragment.java b/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/fragment/CenteredTextFragment.java index 4869737..0b0864f 100644 --- a/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/fragment/CenteredTextFragment.java +++ b/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/fragment/CenteredTextFragment.java @@ -1,14 +1,15 @@ package com.yarolegovich.slidingrootnav.sample.fragment; -import android.app.Fragment; import android.os.Bundle; -import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + import com.yarolegovich.slidingrootnav.sample.R; @@ -36,7 +37,8 @@ public class CenteredTextFragment extends Fragment { @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { - final String text = getArguments().getString(EXTRA_TEXT); + Bundle args = getArguments(); + final String text = args != null ? args.getString(EXTRA_TEXT) : ""; TextView textView = view.findViewById(R.id.text); textView.setText(text); textView.setOnClickListener(new View.OnClickListener() { diff --git a/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/menu/DrawerAdapter.java b/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/menu/DrawerAdapter.java index 51a1a16..c78bb87 100644 --- a/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/menu/DrawerAdapter.java +++ b/sample/src/main/java/com/yarolegovich/slidingrootnav/sample/menu/DrawerAdapter.java @@ -1,10 +1,12 @@ package com.yarolegovich.slidingrootnav.sample.menu; -import android.support.v7.widget.RecyclerView; import android.util.SparseArray; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + import java.util.HashMap; import java.util.List; import java.util.Map; @@ -13,6 +15,7 @@ import java.util.Map; * Created by yarolegovich on 25.03.2017. */ +@SuppressWarnings({"rawtypes", "ConstantConditions"}) public class DrawerAdapter extends RecyclerView.Adapter { private List items; @@ -29,8 +32,9 @@ public class DrawerAdapter extends RecyclerView.Adapter { public abstract void bindViewHolder(T holder); - public DrawerItem setChecked(boolean isChecked) { + public DrawerItem setChecked(boolean isChecked) { this.isChecked = isChecked; return this; } diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index 5b57331..0fe5580 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -6,16 +6,16 @@ android:background="@android:color/white" android:orientation="vertical"> - - - + diff --git a/sample/src/main/res/layout/item_option.xml b/sample/src/main/res/layout/item_option.xml index 21f4cf7..49cbf72 100644 --- a/sample/src/main/res/layout/item_option.xml +++ b/sample/src/main/res/layout/item_option.xml @@ -1,5 +1,6 @@ + android:layout_height="wrap_content" + tools:ignore="ContentDescription" /> -