From 907a02271da53e7d719afb616500069af3702523 Mon Sep 17 00:00:00 2001 From: omeriyioz Date: Mon, 9 Dec 2019 10:41:40 +0300 Subject: [PATCH] updated to use api 28. migrated to androidX --- app/build.gradle | 32 ++++---- .../java/com/saulmm/cui/HomeActivity.java | 10 +-- .../com/saulmm/cui/OrderDialogFragment.java | 76 +++++++++---------- .../cui/recycler/OnItemSelectedListener.java | 2 +- .../saulmm/cui/recycler/ProductAdapter.java | 16 ++-- .../ProductItemPaddingDecoration.java | 2 +- app/src/main/res/layout/activity_home.xml | 6 +- .../main/res/layout/fragment_order_form.xml | 6 +- app/src/main/res/layout/item_product.xml | 4 +- .../res/layout/layout_form_order_step1.xml | 4 +- .../res/layout/layout_form_order_step2.xml | 4 +- .../res/layout/layout_order_confirmation.xml | 4 +- build.gradle | 4 +- gradle.properties | 4 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 15 files changed, 88 insertions(+), 88 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ccc7732..00b3459 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,19 +1,14 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion "25.0.2" + compileSdkVersion 28 defaultConfig { applicationId "com.saulmm.cui" minSdkVersion 19 - targetSdkVersion 25 + targetSdkVersion 28 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - - jackOptions { - enabled true - } + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } dataBinding { @@ -26,16 +21,19 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } -} -def SUPPORT = '25.2.0' + compileOptions{ + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} dependencies { - compile fileTree(include: ['*.jar'], dir: 'libs') - compile "com.android.support:appcompat-v7:$SUPPORT" - compile "com.android.support:design:$SUPPORT" - compile "com.android.support:recyclerview-v7:$SUPPORT" - compile 'de.hdodenhof:circleimageview:2.1.0' - compile 'uk.co.chrisjenx:calligraphy:2.2.0' - compile 'com.android.support.constraint:constraint-layout:1.0.2' + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'com.google.android.material:material:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'de.hdodenhof:circleimageview:3.0.1' + implementation 'uk.co.chrisjenx:calligraphy:2.2.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' } diff --git a/app/src/main/java/com/saulmm/cui/HomeActivity.java b/app/src/main/java/com/saulmm/cui/HomeActivity.java index 73ecf98..86a36ba 100644 --- a/app/src/main/java/com/saulmm/cui/HomeActivity.java +++ b/app/src/main/java/com/saulmm/cui/HomeActivity.java @@ -16,11 +16,10 @@ package com.saulmm.cui; import android.content.Context; -import android.databinding.DataBindingUtil; +import androidx.databinding.DataBindingUtil; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.RecyclerView; -import android.view.View; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.RecyclerView; import com.saulmm.cui.databinding.ActivityHomeBinding; import com.saulmm.cui.model.Product; @@ -39,8 +38,7 @@ public class HomeActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ActivityHomeBinding binding = DataBindingUtil.setContentView( - this, R.layout.activity_home); + ActivityHomeBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_home); initRecycler(binding.productsRecycler); } diff --git a/app/src/main/java/com/saulmm/cui/OrderDialogFragment.java b/app/src/main/java/com/saulmm/cui/OrderDialogFragment.java index 94df3b6..a997ff8 100644 --- a/app/src/main/java/com/saulmm/cui/OrderDialogFragment.java +++ b/app/src/main/java/com/saulmm/cui/OrderDialogFragment.java @@ -15,7 +15,7 @@ */ package com.saulmm.cui; -import android.databinding.BindingAdapter; +import androidx.databinding.BindingAdapter; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.ColorDrawable; @@ -24,12 +24,12 @@ import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.OvalShape; import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.constraint.ConstraintLayout; -import android.support.design.widget.BottomSheetDialogFragment; -import android.support.v4.content.ContextCompat; -import android.support.v4.view.ViewCompat; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; +import com.google.android.material.bottomsheet.BottomSheetDialogFragment; +import androidx.core.content.ContextCompat; +import androidx.core.view.ViewCompat; import android.text.Spannable; import android.text.SpannableString; import android.text.style.RelativeSizeSpan; @@ -113,13 +113,13 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { orderSelection = new OrderSelection(); selectedViewTransition = TransitionInflater.from(getContext()) - .inflateTransition(R.transition.transition_selected_view); + .inflateTransition(R.transition.transition_selected_view); binding.setProduct(getProduct()); binding.imgProduct.setImageDrawable(createProductImageDrawable(getProduct())); binding.btnGo.setBackground(new ColorDrawable(ContextCompat.getColor( - getContext(), getProduct().color))); + getContext(), getProduct().color))); initOrderStepOneView(binding.layoutStep1); } @@ -145,11 +145,11 @@ private void transitionSelectedView(View v) { private void startCloneAnimation(View clonedView, View targetView) { clonedView.post(() -> { - TransitionManager.beginDelayedTransition( + TransitionManager.beginDelayedTransition( (ViewGroup) binding.getRoot(), selectedViewTransition); - // Fires the transition - clonedView.setLayoutParams(SelectedParamsFactory + // Fires the transition + clonedView.setLayoutParams(SelectedParamsFactory .endParams(clonedView, targetView)); }); } @@ -158,20 +158,20 @@ private View createSelectionView(View v) { final String resourceName = getResources().getResourceEntryName(v.getId()); return (resourceName.startsWith(ID_COLOR_SUFFIX)) - ? createSelectedColorView((ImageView) v) - : createSelectedTextView(v); + ? createSelectedColorView((ImageView) v) + : createSelectedTextView(v); } private View getTargetView(View v) { final String resourceName = getResources().getResourceEntryName(v.getId()); if (resourceName.startsWith(ID_SIZE_SUFFIX) || - resourceName.startsWith(ID_DATE_SUFFIX)) { + resourceName.startsWith(ID_DATE_SUFFIX)) { v.setId(R.id.first_position); return binding.txtLabelSize; } else if (resourceName.startsWith(ID_COLOR_SUFFIX) || - resourceName.startsWith(ID_TIME_SUFFIX)) { + resourceName.startsWith(ID_TIME_SUFFIX)) { v.setId(R.id.second_position); return binding.txtLabelColour; } @@ -185,7 +185,7 @@ public static void setItemSpan(View v, int spanOffset) { final SpannableString sString = new SpannableString(itemText); sString.setSpan(new RelativeSizeSpan(1.65f), itemText.length() - spanOffset, itemText.length(), - Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ((TextView) v).setText(sString); } @@ -254,7 +254,7 @@ private String getCleanedText(View v) { private View createSelectedTextView(View v) { final TextView fakeSelectedTextView = new TextView( - getContext(), null, R.attr.selectedTextStyle); + getContext(), null, R.attr.selectedTextStyle); final String resourceName = getResources().getResourceEntryName(v.getId()); @@ -273,7 +273,7 @@ else if (resourceName.startsWith(ID_SIZE_SUFFIX)) private View createSelectedColorView(ImageView selectedView) { final ImageView fakeImageView = new CircleImageView( - getContext(), null, R.attr.colorStyle); + getContext(), null, R.attr.colorStyle); fakeImageView.setImageDrawable(selectedView.getDrawable()); fakeImageView.setLayoutParams(SelectedParamsFactory.startColorParams(selectedView)); @@ -284,31 +284,31 @@ private void changeToConfirmScene() { final LayoutOrderConfirmationBinding confBinding = prepareConfirmationBinding(); final Scene scene = new Scene(binding.content, - ((ViewGroup) confBinding.getRoot())); + ((ViewGroup) confBinding.getRoot())); scene.setEnterAction(onEnterConfirmScene(confBinding)); final Transition transition = TransitionInflater.from(getContext()) - .inflateTransition(R.transition.transition_confirmation_view); + .inflateTransition(R.transition.transition_confirmation_view); TransitionManager.go(scene, transition); } private LayoutOrderConfirmationBinding prepareConfirmationBinding() { LayoutOrderConfirmationBinding confBinding = LayoutOrderConfirmationBinding - .inflate(LayoutInflater.from(getContext()), binding.mainContainer, false); + .inflate(LayoutInflater.from(getContext()), binding.mainContainer, false); confBinding.getRoot().setBackground(new ColorDrawable(ContextCompat.getColor( - getContext(), getProduct().color))); + getContext(), getProduct().color))); confBinding.setProduct(getProduct()); confBinding.setSelection(orderSelection); confBinding.imgProduct.setImageDrawable(ContextCompat - .getDrawable(getContext(), getProduct().image)); + .getDrawable(getContext(), getProduct().image)); confBinding.txtColor.setText(getString(R.string.txt_label_conf_color, String.format( - "#%06X", (0xFFFFFF & getProduct().color)))); + "#%06X", (0xFFFFFF & getProduct().color)))); return confBinding; } @@ -323,10 +323,10 @@ private Drawable createProductImageDrawable(Product product) { background.getPaint().setColor(ContextCompat.getColor(getContext(), product.color)); final BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), - BitmapFactory.decodeResource(getResources(), product.image)); + BitmapFactory.decodeResource(getResources(), product.image)); final LayerDrawable layerDrawable = new LayerDrawable - (new Drawable[]{background, bitmapDrawable}); + (new Drawable[]{background, bitmapDrawable}); final int padding = (int) getResources().getDimension(R.dimen.spacing_huge); layerDrawable.setLayerInset(1, padding, padding, padding, padding); @@ -338,20 +338,20 @@ private Drawable createProductImageDrawable(Product product) { private Runnable onEnterConfirmScene(LayoutOrderConfirmationBinding confirmationBinding) { return () -> { ViewCompat.animate(confirmationBinding.txtSubtitle) - .scaleX(1).scaleY(1) - .setInterpolator(new OvershootInterpolator()) - .setStartDelay(200) - .start(); + .scaleX(1).scaleY(1) + .setInterpolator(new OvershootInterpolator()) + .setStartDelay(200) + .start(); }; } private static class SelectedParamsFactory { private static ConstraintLayout.LayoutParams startColorParams(View selectedView) { final int colorSize = selectedView.getContext().getResources() - .getDimensionPixelOffset(R.dimen.product_color_size); + .getDimensionPixelOffset(R.dimen.product_color_size); final ConstraintLayout.LayoutParams layoutParams = - new ConstraintLayout.LayoutParams(colorSize, colorSize); + new ConstraintLayout.LayoutParams(colorSize, colorSize); setStartState(selectedView, layoutParams); return layoutParams; @@ -359,9 +359,9 @@ private static ConstraintLayout.LayoutParams startColorParams(View selectedView) private static ConstraintLayout.LayoutParams startTextParams(View selectedView) { final ConstraintLayout.LayoutParams layoutParams = - new ConstraintLayout.LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, - ViewGroup.LayoutParams.WRAP_CONTENT); + new ConstraintLayout.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT); setStartState(selectedView, layoutParams); return layoutParams; @@ -375,10 +375,10 @@ private static void setStartState(View selectedView, ConstraintLayout.LayoutPara private static ConstraintLayout.LayoutParams endParams(View v, View targetView) { final ConstraintLayout.LayoutParams layoutParams = - (ConstraintLayout.LayoutParams) v.getLayoutParams(); + (ConstraintLayout.LayoutParams) v.getLayoutParams(); final int marginLeft = v.getContext().getResources() - .getDimensionPixelOffset(R.dimen.spacing_medium); + .getDimensionPixelOffset(R.dimen.spacing_medium); layoutParams.setMargins(marginLeft, 0, 0, 0); layoutParams.topToTop = targetView.getId(); diff --git a/app/src/main/java/com/saulmm/cui/recycler/OnItemSelectedListener.java b/app/src/main/java/com/saulmm/cui/recycler/OnItemSelectedListener.java index 3f81434..462f873 100644 --- a/app/src/main/java/com/saulmm/cui/recycler/OnItemSelectedListener.java +++ b/app/src/main/java/com/saulmm/cui/recycler/OnItemSelectedListener.java @@ -16,7 +16,7 @@ package com.saulmm.cui.recycler; import android.content.Context; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; diff --git a/app/src/main/java/com/saulmm/cui/recycler/ProductAdapter.java b/app/src/main/java/com/saulmm/cui/recycler/ProductAdapter.java index 73e9ae5..32ffbff 100644 --- a/app/src/main/java/com/saulmm/cui/recycler/ProductAdapter.java +++ b/app/src/main/java/com/saulmm/cui/recycler/ProductAdapter.java @@ -17,9 +17,9 @@ import android.content.Context; import android.graphics.drawable.GradientDrawable; -import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.RecyclerView; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.RecyclerView; import android.view.LayoutInflater; import android.view.ViewGroup; @@ -39,7 +39,7 @@ public ProductAdapter(List products) { @Override public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { final ItemProductBinding productBinding = ItemProductBinding.inflate( - LayoutInflater.from(parent.getContext()), parent, false); + LayoutInflater.from(parent.getContext()), parent, false); return new ProductViewHolder(productBinding); } @@ -72,10 +72,10 @@ void bind(Product product) { @NonNull private GradientDrawable createProductBackground(Product product) { final GradientDrawable gradientDrawable = (GradientDrawable) ContextCompat.getDrawable( - itemView.getContext(), R.drawable.bg_product); + itemView.getContext(), R.drawable.bg_product); gradientDrawable.setColor(ContextCompat.getColor( - itemView.getContext(), product.color)); + itemView.getContext(), product.color)); gradientDrawable.setSize(itemView.getWidth(), getDrawableHeight()); gradientDrawable.mutate(); @@ -86,8 +86,8 @@ private int getDrawableHeight() { final Context context = itemView.getContext(); return getAdapterPosition() % 2 == 0 - ? context.getResources().getDimensionPixelOffset(R.dimen.product_regular_height) - : context.getResources().getDimensionPixelOffset(R.dimen.product_large_height); + ? context.getResources().getDimensionPixelOffset(R.dimen.product_regular_height) + : context.getResources().getDimensionPixelOffset(R.dimen.product_large_height); } } } diff --git a/app/src/main/java/com/saulmm/cui/recycler/ProductItemPaddingDecoration.java b/app/src/main/java/com/saulmm/cui/recycler/ProductItemPaddingDecoration.java index 9ec43e5..dc15a44 100644 --- a/app/src/main/java/com/saulmm/cui/recycler/ProductItemPaddingDecoration.java +++ b/app/src/main/java/com/saulmm/cui/recycler/ProductItemPaddingDecoration.java @@ -17,7 +17,7 @@ import android.content.Context; import android.graphics.Rect; -import android.support.v7.widget.RecyclerView; +import androidx.recyclerview.widget.RecyclerView; import android.view.View; import com.saulmm.cui.R; diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index c2e73a5..12c087c 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -1,7 +1,7 @@ - - - + diff --git a/app/src/main/res/layout/fragment_order_form.xml b/app/src/main/res/layout/fragment_order_form.xml index f6f0be2..a81a837 100644 --- a/app/src/main/res/layout/fragment_order_form.xml +++ b/app/src/main/res/layout/fragment_order_form.xml @@ -19,7 +19,7 @@ android:layout_height="wrap_content" > - - - + diff --git a/app/src/main/res/layout/item_product.xml b/app/src/main/res/layout/item_product.xml index f762423..b821aea 100644 --- a/app/src/main/res/layout/item_product.xml +++ b/app/src/main/res/layout/item_product.xml @@ -13,7 +13,7 @@ /> - - + diff --git a/app/src/main/res/layout/layout_form_order_step1.xml b/app/src/main/res/layout/layout_form_order_step1.xml index 6664ff2..08f5f80 100644 --- a/app/src/main/res/layout/layout_form_order_step1.xml +++ b/app/src/main/res/layout/layout_form_order_step1.xml @@ -11,7 +11,7 @@ /> - - + diff --git a/app/src/main/res/layout/layout_form_order_step2.xml b/app/src/main/res/layout/layout_form_order_step2.xml index 7f454ce..45037d6 100644 --- a/app/src/main/res/layout/layout_form_order_step2.xml +++ b/app/src/main/res/layout/layout_form_order_step2.xml @@ -13,7 +13,7 @@ /> - @@ -124,5 +124,5 @@ app:layout_constraintTop_toBottomOf="@+id/txt_label_time" app:spanOffset="@{3}" /> - + diff --git a/app/src/main/res/layout/layout_order_confirmation.xml b/app/src/main/res/layout/layout_order_confirmation.xml index 53acc71..30fe155 100644 --- a/app/src/main/res/layout/layout_order_confirmation.xml +++ b/app/src/main/res/layout/layout_order_confirmation.xml @@ -18,7 +18,7 @@ /> - - + diff --git a/build.gradle b/build.gradle index de40537..5da1891 100644 --- a/build.gradle +++ b/build.gradle @@ -2,15 +2,17 @@ buildscript { repositories { + google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.0' + classpath 'com.android.tools.build:gradle:3.2.1' } } allprojects { repositories { + google() jcenter() } } diff --git a/gradle.properties b/gradle.properties index 514ea33..3916cb4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,7 +14,9 @@ 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 +# org.gradle.parallel=true# # enable build cache android.enableBuildCache=true +android.useAndroidX=true +android.enableJetifier=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 913c209..b87fee4 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ 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-4.6-all.zip