diff --git a/app/build.gradle b/app/build.gradle index d09fbb609..73233f09a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,11 +25,11 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'com.android.support:appcompat-v7:25.1.0' - compile 'com.android.support:recyclerview-v7:25.1.0' - compile 'com.android.support:support-v13:25.1.0' + compile 'com.android.support:appcompat-v7:25.2.0' + compile 'com.android.support:recyclerview-v7:25.2.0' + compile 'com.android.support:support-v13:25.2.0' + compile 'com.android.support:design:25.2.0' compile 'com.android.volley:volley:1.0.0' - compile 'com.android.support:design:25.1.0' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.pkmmte.view:circularimageview:1.1' compile 'com.github.peter9870:sparkbutton:master' diff --git a/app/src/main/java/com/keylesspalace/tusky/AccountActivity.java b/app/src/main/java/com/keylesspalace/tusky/AccountActivity.java index 1161bbff4..ef718b507 100644 --- a/app/src/main/java/com/keylesspalace/tusky/AccountActivity.java +++ b/app/src/main/java/com/keylesspalace/tusky/AccountActivity.java @@ -19,15 +19,16 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.drawable.Drawable; -import android.icu.text.NumberFormat; -import android.media.Image; import android.net.Uri; import android.os.Bundle; +import android.support.annotation.AttrRes; import android.support.annotation.Nullable; +import android.support.design.widget.AppBarLayout; import android.support.design.widget.CollapsingToolbarLayout; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.design.widget.TabLayout; +import android.support.v4.view.ViewCompat; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBar; import android.support.v7.widget.Toolbar; @@ -42,10 +43,8 @@ import com.android.volley.AuthFailureError; import com.android.volley.Request; import com.android.volley.Response; import com.android.volley.VolleyError; -import com.android.volley.toolbox.ImageLoader; import com.android.volley.toolbox.JsonArrayRequest; import com.android.volley.toolbox.JsonObjectRequest; -import com.android.volley.toolbox.NetworkImageView; import com.pkmmte.view.CircularImageView; import com.squareup.picasso.Picasso; @@ -82,7 +81,7 @@ public class AccountActivity extends BaseActivity { accessToken = preferences.getString("accessToken", null); String loggedInAccountId = preferences.getString("loggedInAccountId", null); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); ActionBar actionBar = getSupportActionBar(); @@ -93,6 +92,31 @@ public class AccountActivity extends BaseActivity { actionBar.setDisplayShowHomeEnabled(true); } + // Add a listener to change the toolbar icon color when it enters/exits its collapsed state. + AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.account_app_bar_layout); + final CollapsingToolbarLayout collapsingToolbar = + (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); + appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { + @AttrRes int priorAttribute = R.attr.account_toolbar_icon_tint_uncollapsed; + + @Override + public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { + @AttrRes int attribute; + if (collapsingToolbar.getHeight() + verticalOffset + < 2 * ViewCompat.getMinimumHeight(collapsingToolbar)) { + attribute = R.attr.account_toolbar_icon_tint_collapsed; + } else { + attribute = R.attr.account_toolbar_icon_tint_uncollapsed; + } + if (attribute != priorAttribute) { + priorAttribute = attribute; + Context context = toolbar.getContext(); + ThemeUtils.setDrawableTint(context, toolbar.getNavigationIcon(), attribute); + ThemeUtils.setDrawableTint(context, toolbar.getOverflowIcon(), attribute); + } + } + }); + FloatingActionButton floatingBtn = (FloatingActionButton) findViewById(R.id.floating_btn); floatingBtn.hide(); diff --git a/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java b/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java index 01f5476f1..da9f1b884 100644 --- a/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java +++ b/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java @@ -16,10 +16,11 @@ package com.keylesspalace.tusky; import android.content.Context; +import android.graphics.Color; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.support.annotation.AttrRes; -import android.support.annotation.ColorRes; +import android.support.annotation.ColorInt; import android.support.annotation.DrawableRes; import android.support.v4.content.ContextCompat; import android.util.TypedValue; @@ -48,16 +49,20 @@ class ThemeUtils { } } - static @ColorRes int getColor(Context context, @AttrRes int attribute) { + static @ColorInt int getColor(Context context, @AttrRes int attribute) { TypedValue value = new TypedValue(); if (context.getTheme().resolveAttribute(attribute, value, true)) { return value.data; } else { - return android.R.color.black; + return Color.BLACK; } } static void setImageViewTint(ImageView view, @AttrRes int attribute) { view.setColorFilter(getColor(view.getContext(), attribute), PorterDuff.Mode.SRC_IN); } + + static void setDrawableTint(Context context, Drawable drawable, @AttrRes int attribute) { + drawable.setColorFilter(getColor(context, attribute), PorterDuff.Mode.SRC_IN); + } } diff --git a/app/src/main/res/layout/activity_account.xml b/app/src/main/res/layout/activity_account.xml index f50c046e7..1b047bc0d 100644 --- a/app/src/main/res/layout/activity_account.xml +++ b/app/src/main/res/layout/activity_account.xml @@ -10,8 +10,9 @@ + android:layout_height="wrap_content" + android:theme="@style/AppTheme.Account.AppBarLayout" + android:id="@+id/account_app_bar_layout"> + + + app:layout_collapseMode="pin" + app:popupTheme="?attr/account_toolbar_popup_theme" /> diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 8240cd621..60780a6da 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -27,6 +27,9 @@ + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 73ac6fb2b..ed4b7a89a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -30,6 +30,7 @@ #A4B4BC #2f3441 #4C534B + #FFFFFF #000000 #FFFFFF #8F8F8F @@ -65,6 +66,7 @@ #34444C #CFCFCF #9F9F9F + #000000 #EFEFEF #000000 #8F8F8F diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 329170673..1574f158c 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -8,6 +8,12 @@ normal|bold + + + + + +