diff --git a/StarWars.iml b/StarWars.iml deleted file mode 100644 index 115e577..0000000 --- a/StarWars.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build.gradle b/build.gradle index e370516..c31175e 100644 --- a/build.gradle +++ b/build.gradle @@ -2,13 +2,15 @@ buildscript { repositories { + google() jcenter() + mavenCentral() + maven { url 'https://jitpack.io' } maven { url 'https://maven.fabric.io/public' } } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0-alpha3' - classpath 'io.fabric.tools:gradle:1.21.0' - + classpath 'com.android.tools.build:gradle:4.0.0' + classpath 'io.fabric.tools:gradle:1.28.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } @@ -16,7 +18,10 @@ buildscript { allprojects { repositories { + google() jcenter() + maven { url 'https://jitpack.io' } + maven { url 'https://maven.google.com/' } } } diff --git a/demo/build.gradle b/demo/build.gradle index ad840a5..3bd840b 100644 --- a/demo/build.gradle +++ b/demo/build.gradle @@ -4,7 +4,7 @@ buildscript { } dependencies { - classpath 'io.fabric.tools:gradle:1.21.0' + classpath 'io.fabric.tools:gradle:1.28.0' } } apply plugin: 'com.android.application' @@ -17,13 +17,13 @@ apply plugin: 'io.fabric' android { - compileSdkVersion 23 - buildToolsVersion '23.0.2' + compileSdkVersion 29 + buildToolsVersion '29.0.3' defaultConfig { applicationId "com.yalantis.starwarsdemo" minSdkVersion 15 - targetSdkVersion 23 + targetSdkVersion 29 versionCode 1 versionName "0.1.0" } @@ -36,19 +36,23 @@ android { dataBinding { enabled = false } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:23.1.1' - compile 'com.android.support:design:23.1.1' - compile 'com.jakewharton.timber:timber:4.1.0' - compile 'com.jakewharton:butterknife:7.0.1' - compile 'com.android.support:recyclerview-v7:23.1.1' - compile 'com.android.support:percent:23.1.1' - compile project(':library') - compile('com.crashlytics.sdk.android:crashlytics:2.5.3@aar') { - transitive = true; + implementation fileTree(dir: 'libs', include: ['*.jar']) + testImplementation 'junit:junit:4.12' + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'com.google.android.material:material:1.1.0' + implementation 'com.jakewharton.timber:timber:4.1.0' + implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.percentlayout:percentlayout:1.0.0' + implementation project(':library') + implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') { + transitive = true } } diff --git a/demo/demo.iml b/demo/demo.iml deleted file mode 100644 index 4aecc03..0000000 --- a/demo/demo.iml +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/demo/src/main/java/com/yalantis/starwarsdemo/adapter/ProfileAdapter.java b/demo/src/main/java/com/yalantis/starwarsdemo/adapter/ProfileAdapter.java index cb43260..3ab638b 100644 --- a/demo/src/main/java/com/yalantis/starwarsdemo/adapter/ProfileAdapter.java +++ b/demo/src/main/java/com/yalantis/starwarsdemo/adapter/ProfileAdapter.java @@ -1,23 +1,20 @@ package com.yalantis.starwarsdemo.adapter; import android.content.Context; -import android.support.annotation.LayoutRes; -import android.support.annotation.Nullable; -import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CompoundButton; import android.widget.TextView; +import androidx.annotation.LayoutRes; +import androidx.recyclerview.widget.RecyclerView; + import com.yalantis.starwarsdemo.R; import com.yalantis.starwarsdemo.interfaces.ProfileAdapterListener; import com.yalantis.starwarsdemo.model.User; import com.yalantis.starwarsdemo.widget.BackgroundDrawableSwitchCompat; -import butterknife.Bind; -import butterknife.ButterKnife; - /** * Created by Artem Kholodnyi on 11/17/15. */ @@ -26,12 +23,11 @@ public class ProfileAdapter extends RecyclerView.Adapter doBreak()); return mRootView; } - - - @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); @@ -212,11 +209,9 @@ private void setUpToolbar(final Toolbar toolbar) { abstract User getUser(); - @Override public void onDestroyView() { super.onDestroyView(); - ButterKnife.unbind(this); } @Override @@ -230,7 +225,7 @@ public void onSideSwitch(SwitchCompat v) { if (this instanceof BrightSideFragment && v.isChecked()) { cx = rect.right - halfThumbWidth; postGoToSide(cy, cx, "dark"); - } else if (!v.isChecked()){ + } else if (!v.isChecked()) { cx = rect.left + halfThumbWidth; postGoToSide(cy, cx, "bright"); } @@ -278,8 +273,4 @@ public void onAnimationFinished() { public abstract String getTagString(); - @OnClick(R.id.btn_save) - void onClick() { - doBreak(); - } } diff --git a/demo/src/main/java/com/yalantis/starwarsdemo/widget/BackgroundDrawableSwitchCompat.java b/demo/src/main/java/com/yalantis/starwarsdemo/widget/BackgroundDrawableSwitchCompat.java index c2aaee2..931f085 100644 --- a/demo/src/main/java/com/yalantis/starwarsdemo/widget/BackgroundDrawableSwitchCompat.java +++ b/demo/src/main/java/com/yalantis/starwarsdemo/widget/BackgroundDrawableSwitchCompat.java @@ -4,16 +4,18 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.ColorFilter; +import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.LevelListDrawable; -import android.support.annotation.IntRange; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.SwitchCompat; import android.util.AttributeSet; import android.view.animation.Animation; import android.view.animation.LinearInterpolator; +import androidx.annotation.IntRange; +import androidx.appcompat.widget.SwitchCompat; +import androidx.core.content.ContextCompat; + import com.yalantis.starwarsdemo.R; /** @@ -66,6 +68,28 @@ public void setCheckedImmediate(boolean checked) { mTwoStatesDrawable.setBlend(checked ? OPAQUE : TRANSPARENT); } + private void startAnimation(boolean firstToSecond) { + if (animator != null) { + animator.cancel(); + } + animator = ValueAnimator.ofInt(firstToSecond ? OPAQUE : TRANSPARENT, firstToSecond ? TRANSPARENT : OPAQUE); + animator.setDuration(THUMB_ANIMATION_DURATION); + animator.setInterpolator(new LinearInterpolator()); +// animator.setRepeatMode(ValueAnimator.RESTART); +// animator.setRepeatCount(ValueAnimator.INFINITE); + + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mFirstDrawableAlpha = (int) animation.getAnimatedValue(); + mSecondDrawableAlpha = OPAQUE - (int) animation.getAnimatedValue(); + invalidate(); + } + }); + + animator.start(); + } + private class TwoStatesTrackDrawable extends LevelListDrawable { private final Drawable mFirstDrawable; private final Drawable mSecondDrawable; @@ -101,9 +125,10 @@ public void setColorFilter(ColorFilter colorFilter) { } + @Override public int getOpacity() { - return 0; + return PixelFormat.UNKNOWN; } private void setBlend(@IntRange(from = TRANSPARENT, to = OPAQUE) int k) { @@ -113,26 +138,4 @@ private void setBlend(@IntRange(from = TRANSPARENT, to = OPAQUE) int k) { } } - private void startAnimation(boolean firstToSecond) { - if (animator != null) { - animator.cancel(); - } - animator = ValueAnimator.ofInt(firstToSecond ? OPAQUE : TRANSPARENT, firstToSecond ? TRANSPARENT : OPAQUE); - animator.setDuration(THUMB_ANIMATION_DURATION); - animator.setInterpolator(new LinearInterpolator()); -// animator.setRepeatMode(ValueAnimator.RESTART); -// animator.setRepeatCount(ValueAnimator.INFINITE); - - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator animation) { - mFirstDrawableAlpha = (int) animation.getAnimatedValue(); - mSecondDrawableAlpha = OPAQUE - (int) animation.getAnimatedValue(); - invalidate(); - } - }); - - animator.start(); - } - } diff --git a/demo/src/main/java/com/yalantis/starwarsdemo/widget/CenterTopImageView.java b/demo/src/main/java/com/yalantis/starwarsdemo/widget/CenterTopImageView.java index 733a31e..117889d 100644 --- a/demo/src/main/java/com/yalantis/starwarsdemo/widget/CenterTopImageView.java +++ b/demo/src/main/java/com/yalantis/starwarsdemo/widget/CenterTopImageView.java @@ -3,12 +3,13 @@ import android.content.Context; import android.graphics.Matrix; import android.util.AttributeSet; -import android.widget.ImageView; + +import androidx.appcompat.widget.AppCompatImageView; /** * Created by Artem Kholodnyi on 11/23/15. */ -public class CenterTopImageView extends ImageView { +public class CenterTopImageView extends AppCompatImageView { private Matrix matrix = new Matrix(); public CenterTopImageView(Context context) { diff --git a/demo/src/main/res/layout/fragment_greetings.xml b/demo/src/main/res/layout/fragment_greetings.xml index b39d3fe..869250d 100644 --- a/demo/src/main/res/layout/fragment_greetings.xml +++ b/demo/src/main/res/layout/fragment_greetings.xml @@ -1,60 +1,57 @@ - + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> - + android:layout_height="?android:attr/actionBarSize" /> + android:textColor="@android:color/white" + android:textSize="22sp" />