From 7348f997f6740bed630f13db8de20ea84f4e5b7f Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Wed, 1 Mar 2017 22:05:11 +0300 Subject: [PATCH 1/5] Changes related to new storable logic applied --- .../utils/storables/PreferenceStore.java | 91 ++++++----- .../utils/storables/PreferenceUtils.java | 148 +++++++++--------- 2 files changed, 129 insertions(+), 110 deletions(-) diff --git a/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceStore.java b/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceStore.java index 1c3286f..f42f4d6 100644 --- a/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceStore.java +++ b/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceStore.java @@ -23,8 +23,12 @@ import android.content.SharedPreferences; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import java.lang.reflect.Type; + import ru.touchin.roboswag.core.log.Lc; -import ru.touchin.roboswag.core.observables.storable.SafeStore; +import ru.touchin.roboswag.core.observables.storable.Store; +import rx.Completable; +import rx.Single; /** @@ -33,7 +37,7 @@ import ru.touchin.roboswag.core.observables.storable.SafeStore; * * @param Type of storable. Could be Boolean, Integer, Long, Float or String. */ -public class PreferenceStore implements SafeStore { +public class PreferenceStore implements Store { @NonNull private final SharedPreferences preferences; @@ -42,54 +46,61 @@ public class PreferenceStore implements SafeStore { this.preferences = preferences; } + @NonNull @Override - public boolean contains(@NonNull final String key) { - return preferences.contains(key); + public Single contains(@NonNull final String key) { + return Single.fromCallable(() -> preferences.contains(key)); } + @NonNull @Override - public void storeObject(@NonNull final Class storeObjectClass, @NonNull final String key, @Nullable final T storeObject) { - if (storeObject == null) { - preferences.edit().remove(key).apply(); - return; - } + public Completable storeObject(@NonNull final Type storeObjectType, @NonNull final String key, @Nullable final T storeObject) { + return Completable.fromAction(() -> { + if (storeObject == null) { + preferences.edit().remove(key).apply(); + return; + } - if (storeObjectClass.equals(Boolean.class)) { - preferences.edit().putBoolean(key, (Boolean) storeObject).apply(); - } else if (storeObjectClass.equals(String.class)) { - preferences.edit().putString(key, (String) storeObject).apply(); - } else if (storeObjectClass.equals(Integer.class)) { - preferences.edit().putInt(key, (Integer) storeObject).apply(); - } else if (storeObjectClass.equals(Long.class)) { - preferences.edit().putLong(key, (Long) storeObject).apply(); - } else if (storeObjectClass.equals(Float.class)) { - preferences.edit().putFloat(key, (Float) storeObject).apply(); - } else { - Lc.assertion("Unsupported type of object " + storeObjectClass); - } + if (storeObjectType.equals(Boolean.class) || storeObjectType.equals(boolean.class)) { + preferences.edit().putBoolean(key, (Boolean) storeObject).apply(); + } else if (storeObjectType.equals(String.class)) { + preferences.edit().putString(key, (String) storeObject).apply(); + } else if (storeObjectType.equals(Integer.class) || storeObjectType.equals(int.class)) { + preferences.edit().putInt(key, (Integer) storeObject).apply(); + } else if (storeObjectType.equals(Long.class) || storeObjectType.equals(long.class)) { + preferences.edit().putLong(key, (Long) storeObject).apply(); + } else if (storeObjectType.equals(Float.class) || storeObjectType.equals(float.class)) { + preferences.edit().putFloat(key, (Float) storeObject).apply(); + } else { + Lc.assertion("Unsupported type of object " + storeObjectType); + } + }); } - @Nullable + @NonNull @Override @SuppressWarnings("unchecked") - public T loadObject(@NonNull final Class storeObjectClass, @NonNull final String key) { - if (!contains(key)) { - return null; - } + //unchecked: we checked class in if-else statements + public Single loadObject(@NonNull final Type storeObjectType, @NonNull final String key) { + return Single.fromCallable(() -> { + if (!preferences.contains(key)) { + return null; + } - if (storeObjectClass.equals(Boolean.class)) { - return (T) ((Boolean) preferences.getBoolean(key, false)); - } else if (storeObjectClass.equals(String.class)) { - return (T) (preferences.getString(key, null)); - } else if (storeObjectClass.equals(Integer.class)) { - return (T) ((Integer) preferences.getInt(key, 0)); - } else if (storeObjectClass.equals(Long.class)) { - return (T) ((Long) preferences.getLong(key, 0L)); - } else if (storeObjectClass.equals(Float.class)) { - return (T) ((Float) preferences.getFloat(key, 0f)); - } - Lc.assertion("Unsupported type of object " + storeObjectClass); - return null; + if (storeObjectType.equals(Boolean.class) || storeObjectType.equals(boolean.class)) { + return (T) ((Boolean) preferences.getBoolean(key, false)); + } else if (storeObjectType.equals(String.class)) { + return (T) (preferences.getString(key, null)); + } else if (storeObjectType.equals(Integer.class) || storeObjectType.equals(int.class)) { + return (T) ((Integer) preferences.getInt(key, 0)); + } else if (storeObjectType.equals(Long.class) || storeObjectType.equals(long.class)) { + return (T) ((Long) preferences.getLong(key, 0L)); + } else if (storeObjectType.equals(Float.class) || storeObjectType.equals(float.class)) { + return (T) ((Float) preferences.getFloat(key, 0f)); + } + Lc.assertion("Unsupported type of object " + storeObjectType); + return null; + }); } } diff --git a/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java b/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java index 7b53117..d3eb1b6 100644 --- a/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java +++ b/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java @@ -23,11 +23,12 @@ import android.content.SharedPreferences; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import ru.touchin.roboswag.core.observables.storable.SafeConverter; +import java.lang.reflect.Type; + +import ru.touchin.roboswag.core.observables.storable.Converter; import ru.touchin.roboswag.core.observables.storable.SameTypesConverter; import ru.touchin.roboswag.core.observables.storable.Storable; -import ru.touchin.roboswag.core.observables.storable.concrete.NonNullSafeStorable; -import ru.touchin.roboswag.core.observables.storable.concrete.SafeStorable; +import ru.touchin.roboswag.core.observables.storable.concrete.NonNullStorable; /** * Created by Gavriil Sitnikov on 01/09/2016. @@ -36,21 +37,21 @@ import ru.touchin.roboswag.core.observables.storable.concrete.SafeStorable; public final class PreferenceUtils { /** - * Creates {@link SafeStorable} that stores string into {@link SharedPreferences}. + * Creates {@link Storable} that stores string into {@link SharedPreferences}. * * @param name Name of preference; * @param preferences Preferences to store value; * @return {@link Storable} for string. */ @NonNull - public static SafeStorable stringStorable(@NonNull final String name, @NonNull final SharedPreferences preferences) { - return new Storable.Builder(name, String.class) - .setSafeStore(String.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) + public static Storable stringStorable(@NonNull final String name, @NonNull final SharedPreferences preferences) { + return new Storable.Builder(name, String.class, + String.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) .build(); } /** - * Creates {@link NonNullSafeStorable} that stores string into {@link SharedPreferences} with default value. + * Creates {@link NonNullStorable} that stores string into {@link SharedPreferences} with default value. * * @param name Name of preference; * @param preferences Preferences to store value; @@ -58,31 +59,31 @@ public final class PreferenceUtils { * @return {@link Storable} for string. */ @NonNull - public static NonNullSafeStorable stringStorable(@NonNull final String name, - @NonNull final SharedPreferences preferences, - @NonNull final String defaultValue) { - return new Storable.Builder(name, String.class) - .setSafeStore(String.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) + public static NonNullStorable stringStorable(@NonNull final String name, + @NonNull final SharedPreferences preferences, + @NonNull final String defaultValue) { + return new Storable.Builder(name, String.class, + String.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) .setDefaultValue(defaultValue) .build(); } /** - * Creates {@link SafeStorable} that stores long into {@link SharedPreferences}. + * Creates {@link Storable} that stores long into {@link SharedPreferences}. * * @param name Name of preference; * @param preferences Preferences to store value; * @return {@link Storable} for long. */ @NonNull - public static SafeStorable longStorable(@NonNull final String name, @NonNull final SharedPreferences preferences) { - return new Storable.Builder(name, Long.class) - .setSafeStore(Long.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) + public static Storable longStorable(@NonNull final String name, @NonNull final SharedPreferences preferences) { + return new Storable.Builder(name, Long.class, + Long.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) .build(); } /** - * Creates {@link NonNullSafeStorable} that stores long into {@link SharedPreferences} with default value. + * Creates {@link NonNullStorable} that stores long into {@link SharedPreferences} with default value. * * @param name Name of preference; * @param preferences Preferences to store value; @@ -90,31 +91,31 @@ public final class PreferenceUtils { * @return {@link Storable} for long. */ @NonNull - public static NonNullSafeStorable longStorable(@NonNull final String name, - @NonNull final SharedPreferences preferences, - final long defaultValue) { - return new Storable.Builder(name, Long.class) - .setSafeStore(Long.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) + public static NonNullStorable longStorable(@NonNull final String name, + @NonNull final SharedPreferences preferences, + final long defaultValue) { + return new Storable.Builder(name, Long.class, + Long.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) .setDefaultValue(defaultValue) .build(); } /** - * Creates {@link SafeStorable} that stores boolean into {@link SharedPreferences}. + * Creates {@link Storable} that stores boolean into {@link SharedPreferences}. * * @param name Name of preference; * @param preferences Preferences to store value; * @return {@link Storable} for boolean. */ @NonNull - public static SafeStorable booleanStorable(@NonNull final String name, @NonNull final SharedPreferences preferences) { - return new Storable.Builder(name, Boolean.class) - .setSafeStore(Boolean.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) + public static Storable booleanStorable(@NonNull final String name, @NonNull final SharedPreferences preferences) { + return new Storable.Builder(name, Boolean.class, + Boolean.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) .build(); } /** - * Creates {@link NonNullSafeStorable} that stores boolean into {@link SharedPreferences} with default value. + * Creates {@link NonNullStorable} that stores boolean into {@link SharedPreferences} with default value. * * @param name Name of preference; * @param preferences Preferences to store value; @@ -122,31 +123,31 @@ public final class PreferenceUtils { * @return {@link Storable} for boolean. */ @NonNull - public static NonNullSafeStorable booleanStorable(@NonNull final String name, - @NonNull final SharedPreferences preferences, - final boolean defaultValue) { - return new Storable.Builder(name, Boolean.class) - .setSafeStore(Boolean.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) + public static NonNullStorable booleanStorable(@NonNull final String name, + @NonNull final SharedPreferences preferences, + final boolean defaultValue) { + return new Storable.Builder(name, Boolean.class, + Boolean.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) .setDefaultValue(defaultValue) .build(); } /** - * Creates {@link SafeStorable} that stores integer into {@link SharedPreferences}. + * Creates {@link Storable} that stores integer into {@link SharedPreferences}. * * @param name Name of preference; * @param preferences Preferences to store value; * @return {@link Storable} for integer. */ @NonNull - public static SafeStorable integerStorable(@NonNull final String name, @NonNull final SharedPreferences preferences) { - return new Storable.Builder(name, Integer.class) - .setSafeStore(Integer.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) + public static Storable integerStorable(@NonNull final String name, @NonNull final SharedPreferences preferences) { + return new Storable.Builder(name, Integer.class, + Integer.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) .build(); } /** - * Creates {@link NonNullSafeStorable} that stores integer into {@link SharedPreferences} with default value. + * Creates {@link NonNullStorable} that stores integer into {@link SharedPreferences} with default value. * * @param name Name of preference; * @param preferences Preferences to store value; @@ -154,31 +155,31 @@ public final class PreferenceUtils { * @return {@link Storable} for integer. */ @NonNull - public static NonNullSafeStorable integerStorable(@NonNull final String name, - @NonNull final SharedPreferences preferences, - final int defaultValue) { - return new Storable.Builder(name, Integer.class) - .setSafeStore(Integer.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) + public static NonNullStorable integerStorable(@NonNull final String name, + @NonNull final SharedPreferences preferences, + final int defaultValue) { + return new Storable.Builder(name, Integer.class, + Integer.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) .setDefaultValue(defaultValue) .build(); } /** - * Creates {@link SafeStorable} that stores float into {@link SharedPreferences}. + * Creates {@link Storable} that stores float into {@link SharedPreferences}. * * @param name Name of preference; * @param preferences Preferences to store value; * @return {@link Storable} for float. */ @NonNull - public static SafeStorable floatStorable(@NonNull final String name, @NonNull final SharedPreferences preferences) { - return new Storable.Builder(name, Float.class) - .setSafeStore(Float.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) + public static Storable floatStorable(@NonNull final String name, @NonNull final SharedPreferences preferences) { + return new Storable.Builder(name, Float.class, + Float.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) .build(); } /** - * Creates {@link NonNullSafeStorable} that stores float into {@link SharedPreferences} with default value. + * Creates {@link NonNullStorable} that stores float into {@link SharedPreferences} with default value. * * @param name Name of preference; * @param preferences Preferences to store value; @@ -186,33 +187,33 @@ public final class PreferenceUtils { * @return {@link Storable} for float. */ @NonNull - public static NonNullSafeStorable floatStorable(@NonNull final String name, - @NonNull final SharedPreferences preferences, - final float defaultValue) { - return new Storable.Builder(name, Float.class) - .setSafeStore(Float.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) + public static NonNullStorable floatStorable(@NonNull final String name, + @NonNull final SharedPreferences preferences, + final float defaultValue) { + return new Storable.Builder(name, Float.class, + Float.class, new PreferenceStore<>(preferences), new SameTypesConverter<>()) .setDefaultValue(defaultValue) .build(); } /** - * Creates {@link SafeStorable} that stores enum into {@link SharedPreferences}. + * Creates {@link Storable} that stores enum into {@link SharedPreferences}. * * @param name Name of preference; * @param preferences Preferences to store value; * @return {@link Storable} for enum. */ @NonNull - public static > SafeStorable enumStorable(@NonNull final String name, - @NonNull final Class enumClass, - @NonNull final SharedPreferences preferences) { - return new Storable.Builder(name, enumClass) - .setSafeStore(String.class, new PreferenceStore<>(preferences), new EnumToStringConverter<>()) + public static > Storable enumStorable(@NonNull final String name, + @NonNull final Class enumClass, + @NonNull final SharedPreferences preferences) { + return new Storable.Builder(name, enumClass, + String.class, new PreferenceStore<>(preferences), new EnumToStringConverter<>()) .build(); } /** - * Creates {@link NonNullSafeStorable} that stores enum into {@link SharedPreferences} with default value. + * Creates {@link NonNullStorable} that stores enum into {@link SharedPreferences} with default value. * * @param name Name of preference; * @param preferences Preferences to store value; @@ -220,12 +221,12 @@ public final class PreferenceUtils { * @return {@link Storable} for enum. */ @NonNull - public static > NonNullSafeStorable enumStorable(@NonNull final String name, - @NonNull final Class enumClass, - @NonNull final SharedPreferences preferences, - @NonNull final T defaultValue) { - return new Storable.Builder(name, enumClass) - .setSafeStore(String.class, new PreferenceStore<>(preferences), new EnumToStringConverter<>()) + public static > NonNullStorable enumStorable(@NonNull final String name, + @NonNull final Class enumClass, + @NonNull final SharedPreferences preferences, + final T defaultValue) { + return new Storable.Builder(name, enumClass, + String.class, new PreferenceStore<>(preferences), new EnumToStringConverter<>()) .setDefaultValue(defaultValue) .build(); } @@ -233,18 +234,25 @@ public final class PreferenceUtils { private PreferenceUtils() { } - private static class EnumToStringConverter> implements SafeConverter { + private static class EnumToStringConverter> implements Converter { @Nullable @Override - public String toStoreObject(@NonNull final Class objectClass, @NonNull final Class stringClass, @Nullable final T object) { + public String toStoreObject(@NonNull final Type objectClass, @NonNull final Type stringClass, @Nullable final T object) + throws ConversionException { return object != null ? object.name() : null; } @Nullable @Override - public T toObject(@NonNull final Class objectClass, @NonNull final Class stringClass, @Nullable final String stringObject) { - return stringObject != null ? Enum.valueOf(objectClass, stringObject) : null; + @SuppressWarnings("unchecked") + //unchecked: we checked it before cast + public T toObject(@NonNull final Type objectClass, @NonNull final Type stringClass, @Nullable final String stringObject) + throws ConversionException { + if (!(objectClass instanceof Class) || !((Class) objectClass).isEnum()) { + throw new ConversionException(String.format("Type %s is not enum class", objectClass)); + } + return stringObject != null ? Enum.valueOf((Class) objectClass, stringObject) : null; } } From ca034dbdae50d09bd8316fae1472d1205905cbf6 Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Wed, 1 Mar 2017 22:32:12 +0300 Subject: [PATCH 2/5] static analysis fixes --- .../utils/storables/PreferenceStore.java | 32 ++++++++++++++----- .../utils/storables/PreferenceUtils.java | 2 +- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceStore.java b/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceStore.java index f42f4d6..38fddad 100644 --- a/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceStore.java +++ b/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceStore.java @@ -39,6 +39,22 @@ import rx.Single; */ public class PreferenceStore implements Store { + private static boolean isTypeBoolean(@NonNull final Type type) { + return type.equals(Boolean.class) || type.equals(boolean.class); + } + + private static boolean isTypeInteger(@NonNull final Type type) { + return type.equals(Integer.class) || type.equals(int.class); + } + + private static boolean isTypeFloat(@NonNull final Type type) { + return type.equals(Float.class) || type.equals(float.class); + } + + private static boolean isTypeLong(@NonNull final Type type) { + return type.equals(Long.class) || type.equals(long.class); + } + @NonNull private final SharedPreferences preferences; @@ -61,15 +77,15 @@ public class PreferenceStore implements Store { return; } - if (storeObjectType.equals(Boolean.class) || storeObjectType.equals(boolean.class)) { + if (isTypeBoolean(storeObjectType)) { preferences.edit().putBoolean(key, (Boolean) storeObject).apply(); } else if (storeObjectType.equals(String.class)) { preferences.edit().putString(key, (String) storeObject).apply(); - } else if (storeObjectType.equals(Integer.class) || storeObjectType.equals(int.class)) { + } else if (isTypeInteger(storeObjectType)) { preferences.edit().putInt(key, (Integer) storeObject).apply(); - } else if (storeObjectType.equals(Long.class) || storeObjectType.equals(long.class)) { + } else if (isTypeLong(storeObjectType)) { preferences.edit().putLong(key, (Long) storeObject).apply(); - } else if (storeObjectType.equals(Float.class) || storeObjectType.equals(float.class)) { + } else if (isTypeFloat(storeObjectType)) { preferences.edit().putFloat(key, (Float) storeObject).apply(); } else { Lc.assertion("Unsupported type of object " + storeObjectType); @@ -87,15 +103,15 @@ public class PreferenceStore implements Store { return null; } - if (storeObjectType.equals(Boolean.class) || storeObjectType.equals(boolean.class)) { + if (isTypeBoolean(storeObjectType)) { return (T) ((Boolean) preferences.getBoolean(key, false)); } else if (storeObjectType.equals(String.class)) { return (T) (preferences.getString(key, null)); - } else if (storeObjectType.equals(Integer.class) || storeObjectType.equals(int.class)) { + } else if (isTypeInteger(storeObjectType)) { return (T) ((Integer) preferences.getInt(key, 0)); - } else if (storeObjectType.equals(Long.class) || storeObjectType.equals(long.class)) { + } else if (isTypeLong(storeObjectType)) { return (T) ((Long) preferences.getLong(key, 0L)); - } else if (storeObjectType.equals(Float.class) || storeObjectType.equals(float.class)) { + } else if (isTypeFloat(storeObjectType)) { return (T) ((Float) preferences.getFloat(key, 0f)); } Lc.assertion("Unsupported type of object " + storeObjectType); diff --git a/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java b/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java index d3eb1b6..5693bb9 100644 --- a/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java +++ b/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java @@ -224,7 +224,7 @@ public final class PreferenceUtils { public static > NonNullStorable enumStorable(@NonNull final String name, @NonNull final Class enumClass, @NonNull final SharedPreferences preferences, - final T defaultValue) { + @NonNull final T defaultValue) { return new Storable.Builder(name, enumClass, String.class, new PreferenceStore<>(preferences), new EnumToStringConverter<>()) .setDefaultValue(defaultValue) From 1f4d0349a7636afa5f601e895f39199c7a368fe7 Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Thu, 9 Mar 2017 01:56:51 +0300 Subject: [PATCH 3/5] static fixes --- build.gradle | 10 +++++----- .../components/navigation/fragments/ViewFragment.java | 2 ++ .../roboswag/components/views/MaterialLoadingBar.java | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 00f7e22..c27196d 100644 --- a/build.gradle +++ b/build.gradle @@ -2,8 +2,8 @@ apply plugin: 'com.android.library' apply plugin: 'me.tatarka.retrolambda' android { - compileSdkVersion 24 - buildToolsVersion "24.0.3" + compileSdkVersion 25 + buildToolsVersion '25.0.2' compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -12,15 +12,15 @@ android { defaultConfig { minSdkVersion 9 - targetSdkVersion 24 + targetSdkVersion 25 } } dependencies { compile project(':libraries:core') - provided 'com.android.support:appcompat-v7:24.2.1' - provided 'com.android.support:recyclerview-v7:24.2.1' + provided 'com.android.support:appcompat-v7:25.2.0' + provided 'com.android.support:recyclerview-v7:25.2.0' provided 'io.reactivex:rxandroid:1.2.1' } diff --git a/src/main/java/ru/touchin/roboswag/components/navigation/fragments/ViewFragment.java b/src/main/java/ru/touchin/roboswag/components/navigation/fragments/ViewFragment.java index 2561c59..8613a49 100644 --- a/src/main/java/ru/touchin/roboswag/components/navigation/fragments/ViewFragment.java +++ b/src/main/java/ru/touchin/roboswag/components/navigation/fragments/ViewFragment.java @@ -134,6 +134,8 @@ public abstract class ViewFragment extends * @param activity Activity which fragment attached to. */ @CallSuper + @SuppressWarnings("RestrictedApi") + //RestrictedApi: we need isMenuVisible() to check analytics rightly! protected void onStart(@NonNull final View view, @NonNull final TActivity activity) { if (getParentFragment() instanceof OnFragmentStartedListener) { ((OnFragmentStartedListener) getParentFragment()).onFragmentStarted(this); diff --git a/src/main/java/ru/touchin/roboswag/components/views/MaterialLoadingBar.java b/src/main/java/ru/touchin/roboswag/components/views/MaterialLoadingBar.java index 726e08d..a951203 100644 --- a/src/main/java/ru/touchin/roboswag/components/views/MaterialLoadingBar.java +++ b/src/main/java/ru/touchin/roboswag/components/views/MaterialLoadingBar.java @@ -24,9 +24,9 @@ import android.content.res.TypedArray; import android.os.Build; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v7.widget.AppCompatImageView; import android.util.AttributeSet; import android.util.TypedValue; -import android.widget.ImageView; import ru.touchin.roboswag.components.R; import ru.touchin.roboswag.components.utils.UiUtils; @@ -52,7 +52,7 @@ import ru.touchin.roboswag.components.utils.UiUtils; * @style/MyAppLoadingBar * */ -public class MaterialLoadingBar extends ImageView { +public class MaterialLoadingBar extends AppCompatImageView { private static int getPrimaryColor(@NonNull final Context context) { final int colorAttr; From 377ac44332e3fa38537a486bd76e558362543f2d Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Thu, 9 Mar 2017 17:24:18 +0300 Subject: [PATCH 4/5] naming fixes --- .../components/utils/storables/PreferenceUtils.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java b/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java index 5693bb9..6d710b5 100644 --- a/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java +++ b/src/main/java/ru/touchin/roboswag/components/utils/storables/PreferenceUtils.java @@ -238,7 +238,7 @@ public final class PreferenceUtils { @Nullable @Override - public String toStoreObject(@NonNull final Type objectClass, @NonNull final Type stringClass, @Nullable final T object) + public String toStoreObject(@NonNull final Type objectType, @NonNull final Type storeObjectType, @Nullable final T object) throws ConversionException { return object != null ? object.name() : null; } @@ -247,12 +247,12 @@ public final class PreferenceUtils { @Override @SuppressWarnings("unchecked") //unchecked: we checked it before cast - public T toObject(@NonNull final Type objectClass, @NonNull final Type stringClass, @Nullable final String stringObject) + public T toObject(@NonNull final Type objectType, @NonNull final Type storeObjectType, @Nullable final String stringObject) throws ConversionException { - if (!(objectClass instanceof Class) || !((Class) objectClass).isEnum()) { - throw new ConversionException(String.format("Type %s is not enum class", objectClass)); + if (!(objectType instanceof Class) || !((Class) objectType).isEnum()) { + throw new ConversionException(String.format("Type %s is not enum class", objectType)); } - return stringObject != null ? Enum.valueOf((Class) objectClass, stringObject) : null; + return stringObject != null ? Enum.valueOf((Class) objectType, stringObject) : null; } } From 9038f58bb371f34942584362540db4da83416342 Mon Sep 17 00:00:00 2001 From: Alexander Bubnov Date: Thu, 16 Mar 2017 14:23:53 +0300 Subject: [PATCH 5/5] update to 25.3.0 --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index c27196d..6e4775c 100644 --- a/build.gradle +++ b/build.gradle @@ -19,8 +19,8 @@ android { dependencies { compile project(':libraries:core') - provided 'com.android.support:appcompat-v7:25.2.0' - provided 'com.android.support:recyclerview-v7:25.2.0' + provided 'com.android.support:appcompat-v7:25.3.0' + provided 'com.android.support:recyclerview-v7:25.3.0' provided 'io.reactivex:rxandroid:1.2.1' }