diff --git a/app/build.gradle b/app/build.gradle index 0f03d42d..cecba703 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -93,23 +93,23 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') { + compile('com.crashlytics.sdk.android:crashlytics:2.5.3@aar') { transitive = true; } - compile 'com.android.support:support-v4:23.1.0' - compile 'com.android.support:support-v13:23.1.0' - compile 'com.android.support:appcompat-v7:23.1.0' - compile 'com.android.support:recyclerview-v7:23.1.0' - compile 'com.android.support:gridlayout-v7:23.1.0' - compile 'com.android.support:cardview-v7:23.1.0' - compile 'com.android.support:palette-v7:23.1.0' - compile 'com.android.support:design:23.1.0' - compile 'com.android.support:support-annotations:23.1.0' + compile 'com.android.support:support-v4:23.1.1' + compile 'com.android.support:support-v13:23.1.1' + compile 'com.android.support:appcompat-v7:23.1.1' + compile 'com.android.support:recyclerview-v7:23.1.1' + compile 'com.android.support:gridlayout-v7:23.1.1' + compile 'com.android.support:cardview-v7:23.1.1' + compile 'com.android.support:palette-v7:23.1.1' + compile 'com.android.support:design:23.1.1' + compile 'com.android.support:support-annotations:23.1.1' compile 'com.github.ksoichiro:android-observablescrollview:1.6.0' compile 'asia.ivity.android:drag-sort-listview:1.0' compile 'com.github.semoncat.seekarc:library:0.1' - compile 'com.sothree.slidinguppanel:library:3.1.1' + compile 'com.sothree.slidinguppanel:library:3.2.0' compile 'com.squareup.retrofit:retrofit:2.0.0-beta2' compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' @@ -117,13 +117,15 @@ dependencies { compile 'com.github.kabouzeid:Android-Universal-Image-Loader:8ffb5d4afa' - compile('com.afollestad.material-dialogs:core:0.8.4.2@aar') { + compile('com.afollestad.material-dialogs:core:0.8.5.1@aar') { transitive = true } - compile('com.afollestad.material-dialogs:commons:0.8.4.2@aar') { + compile('com.afollestad.material-dialogs:commons:0.8.5.1@aar') { + transitive = true + } + compile('com.afollestad:material-cab:0.1.6@aar') { transitive = true } - compile 'com.afollestad:material-cab:0.1.5' compile 'com.jakewharton:butterknife:7.0.1' diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java index 11eff498..97ed9288 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java @@ -154,6 +154,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia new ColorChooserDialog.Builder(((SettingsActivity) getActivity()), R.string.primary_color) .accentMode(false) .allowUserColorInput(true) + .allowUserColorInputAlpha(false) .preselect(PreferenceUtil.getInstance(getActivity()).getThemeColorPrimary(getActivity())) .show(); return true; @@ -168,6 +169,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia new ColorChooserDialog.Builder(((SettingsActivity) getActivity()), R.string.accent_color) .accentMode(true) .allowUserColorInput(true) + .allowUserColorInputAlpha(false) .preselect(PreferenceUtil.getInstance(getActivity()).getThemeColorAccent(getActivity())) .show(); return true; diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java index 00ca2211..be7df108 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java @@ -98,7 +98,7 @@ public abstract class AbsThemeActivity extends AppCompatActivity implements KabV taskDescription = new ActivityManager.TaskDescription( null, null, - color); + ColorUtil.getOpaqueColor(color)); setTaskDescription(taskDescription); } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/ViewUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/ViewUtil.java index 03720841..ec3d1906 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/ViewUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/ViewUtil.java @@ -10,9 +10,8 @@ import android.os.Build; import android.support.annotation.ColorInt; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.support.v7.internal.view.menu.ListMenuItemView; -import android.support.v7.internal.view.menu.MenuPopupHelper; -import android.support.v7.widget.ActionMenuPresenter; +import android.support.v7.view.menu.ListMenuItemView; +import android.support.v7.view.menu.MenuPopupHelper; import android.support.v7.widget.ActionMenuView; import android.support.v7.widget.Toolbar; import android.util.Log; @@ -82,7 +81,7 @@ public class ViewUtil { Field f2 = ActionMenuView.class.getDeclaredField("mPresenter"); f2.setAccessible(true); - ActionMenuPresenter presenter = (ActionMenuPresenter) f2.get(actionMenuView); + Object presenter = f2.get(actionMenuView); // ActionMenuPresenter is not a public class, so we use Object here Field f3 = presenter.getClass().getDeclaredField("mOverflowPopup"); f3.setAccessible(true); diff --git a/app/src/main/java/com/kabouzeid/gramophone/views/DynamicSwitch.java b/app/src/main/java/com/kabouzeid/gramophone/views/DynamicSwitch.java deleted file mode 100644 index 73a66204..00000000 --- a/app/src/main/java/com/kabouzeid/gramophone/views/DynamicSwitch.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.kabouzeid.gramophone.views; - -import android.content.Context; -import android.content.res.ColorStateList; -import android.graphics.Color; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; -import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; -import android.support.v4.graphics.ColorUtils; -import android.support.v4.graphics.drawable.DrawableCompat; -import android.support.v7.internal.widget.ThemeUtils; -import android.support.v7.widget.SwitchCompat; -import android.util.AttributeSet; - -import com.afollestad.materialdialogs.internal.ThemeSingleton; -import com.kabouzeid.gramophone.R; - -import static android.support.v7.internal.widget.ThemeUtils.getThemeAttrColorStateList; - -/** - * @author Karim Abou Zeid (kabouzeid) - */ -public class DynamicSwitch extends SwitchCompat { - static final int[] DISABLED_STATE_SET = new int[]{-android.R.attr.state_enabled}; - static final int[] CHECKED_STATE_SET = new int[]{android.R.attr.state_checked}; - static final int[] EMPTY_STATE_SET = new int[0]; - - public DynamicSwitch(@NonNull Context context) { - super(context); - init(); - } - - public DynamicSwitch(@NonNull Context context, AttributeSet attrs) { - super(context, attrs); - init(); - } - - public DynamicSwitch(@NonNull Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(); - } - - private void init() { - final int color = ThemeSingleton.get().positiveColor.getDefaultColor(); - setTint(this, color); - } - - public static void setTint(@NonNull SwitchCompat switchCompat, int color) { - ColorStateList trackColorSl = createSwitchTrackColorStateList(switchCompat.getContext(), color); - ColorStateList thumbColorSl = createSwitchThumbColorStateList(switchCompat.getContext(), color); - - Drawable thumbDrawable = DrawableCompat.wrap(ContextCompat.getDrawable(switchCompat.getContext(), R.drawable.abc_switch_thumb_material)); - DrawableCompat.setTintList(thumbDrawable, thumbColorSl); - DrawableCompat.setTintMode(thumbDrawable, PorterDuff.Mode.MULTIPLY); - switchCompat.setThumbDrawable(thumbDrawable); - - Drawable trackDrawable = DrawableCompat.wrap(ContextCompat.getDrawable(switchCompat.getContext(), R.drawable.abc_switch_track_mtrl_alpha)); - DrawableCompat.setTintList(trackDrawable, trackColorSl); - switchCompat.setTrackDrawable(trackDrawable); - } - - @NonNull - private static ColorStateList createSwitchTrackColorStateList(@NonNull Context context, int colorActivated) { - final int[][] states = new int[3][]; - final int[] colors = new int[3]; - int i = 0; - - // Disabled state - states[i] = DISABLED_STATE_SET; - colors[i] = getColorWithMultipliedAlpha(ThemeUtils.getThemeAttrColor(context, android.R.attr.colorForeground), 0.1f); - i++; - - states[i] = CHECKED_STATE_SET; - colors[i] = getColorWithMultipliedAlpha(colorActivated, 0.3f); - i++; - - // Default enabled state - states[i] = EMPTY_STATE_SET; - colors[i] = getColorWithMultipliedAlpha(ThemeUtils.getThemeAttrColor(context, android.R.attr.colorForeground), 0.3f); - - return new ColorStateList(states, colors); - } - - @NonNull - private static ColorStateList createSwitchThumbColorStateList(@NonNull Context context, int colorActivated) { - final int[][] states = new int[3][]; - final int[] colors = new int[3]; - int i = 0; - - final ColorStateList thumbColor = getThemeAttrColorStateList(context, - android.support.v7.appcompat.R.attr.colorSwitchThumbNormal); - - if (thumbColor != null && thumbColor.isStateful()) { - // If colorSwitchThumbNormal is a valid ColorStateList, extract the default and - // disabled colors from it - - // Disabled state - states[i] = DISABLED_STATE_SET; - colors[i] = thumbColor.getColorForState(states[i], 0); - i++; - - states[i] = CHECKED_STATE_SET; - colors[i] = colorActivated; - i++; - - // Default enabled state - states[i] = EMPTY_STATE_SET; - colors[i] = thumbColor.getDefaultColor(); - } else { - // Else we'll use an approximation using the default disabled alpha - - // Disabled state - states[i] = DISABLED_STATE_SET; - colors[i] = ThemeUtils.getDisabledThemeAttrColor(context, android.support.v7.appcompat.R.attr.colorSwitchThumbNormal); - i++; - - states[i] = CHECKED_STATE_SET; - colors[i] = colorActivated; - i++; - - // Default enabled state - states[i] = EMPTY_STATE_SET; - colors[i] = ThemeUtils.getThemeAttrColor(context, android.support.v7.appcompat.R.attr.colorSwitchThumbNormal); - } - - return new ColorStateList(states, colors); - } - - private static int getColorWithMultipliedAlpha(int color, float alpha) { - final int originalAlpha = Color.alpha(color); - return ColorUtils.setAlphaComponent(color, Math.round(originalAlpha * alpha)); - } -} \ No newline at end of file