Upgrade to AndroidX, move to MaterialComponents theme (#953)

* upgrade to AndroidX, upgrade libraries

* move to MaterialComponents theme

* make sure the compose button looks good everywhere

* fix tollbar title/button alignment on tablet

* move to new material color theming, consolidate colors and themes

* fix build, fix imports

* set error on TextInputLayout instead of EditText

* fix imports, TootButton when

* improve snackbar style

* fix task description color
This commit is contained in:
Konrad Pozniak 2018-12-17 15:25:35 +01:00 committed by GitHub
commit a445c12094
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
179 changed files with 862 additions and 866 deletions

View file

@ -18,7 +18,7 @@ package com.keylesspalace.tusky.view
import android.content.Context
import android.graphics.Canvas
import android.graphics.drawable.Drawable
import android.support.v7.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView
import android.view.View
import com.keylesspalace.tusky.R

View file

@ -16,10 +16,10 @@
package com.keylesspalace.tusky.view
import android.content.Context
import android.support.text.emoji.widget.EmojiEditTextHelper
import android.support.v13.view.inputmethod.EditorInfoCompat
import android.support.v13.view.inputmethod.InputConnectionCompat
import android.support.v7.widget.AppCompatMultiAutoCompleteTextView
import androidx.emoji.widget.EmojiEditTextHelper
import androidx.core.view.inputmethod.EditorInfoCompat
import androidx.core.view.inputmethod.InputConnectionCompat
import androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView
import android.text.InputType
import android.text.method.KeyListener
import android.util.AttributeSet

View file

@ -15,8 +15,8 @@
package com.keylesspalace.tusky.view;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
public abstract class EndlessOnScrollListener extends RecyclerView.OnScrollListener {
private static final int VISIBLE_THRESHOLD = 15;

View file

@ -16,7 +16,7 @@
package com.keylesspalace.tusky.view;
import android.content.Context;
import android.support.v4.view.ViewPager;
import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;

View file

@ -16,22 +16,20 @@
package com.keylesspalace.tusky.view
import android.content.Context
import android.support.v7.widget.CardView
import android.util.AttributeSet
import com.google.android.material.card.MaterialCardView
import com.keylesspalace.tusky.R
import com.keylesspalace.tusky.util.LinkHelper
import com.keylesspalace.tusky.util.ThemeUtils
import com.keylesspalace.tusky.util.hide
import kotlinx.android.synthetic.main.card_license.view.*
class LicenseCard
@JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : CardView(context, attrs, defStyleAttr) {
) : MaterialCardView(context, attrs, defStyleAttr) {
init {
inflate(context, R.layout.card_license, this)
@ -56,6 +54,5 @@ class LicenseCard
}
}

View file

@ -23,10 +23,10 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.support.v7.content.res.AppCompatResources;
import android.support.v7.widget.AppCompatImageView;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.AppCompatImageView;
import android.util.AttributeSet;
import com.keylesspalace.tusky.R;
@ -58,7 +58,7 @@ public final class ProgressImageView extends AppCompatImageView {
}
private void init() {
circlePaint.setColor(ContextCompat.getColor(getContext(), R.color.colorPrimary));
circlePaint.setColor(ContextCompat.getColor(getContext(), R.color.tusky_blue));
circlePaint.setStrokeWidth(Utils.dpToPx(getContext(), 4));
circlePaint.setStyle(Paint.Style.STROKE);
@ -82,7 +82,7 @@ public final class ProgressImageView extends AppCompatImageView {
public void setChecked(boolean checked) {
this.markBgPaint.setColor(ContextCompat.getColor(getContext(),
checked ? R.color.colorPrimary : R.color.description_marker_unselected));
checked ? R.color.tusky_blue : R.color.description_marker_unselected));
invalidate();
}

View file

@ -33,8 +33,8 @@ import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.support.annotation.DrawableRes;
import android.support.v7.widget.AppCompatImageView;
import androidx.annotation.DrawableRes;
import androidx.appcompat.widget.AppCompatImageView;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewOutlineProvider;

View file

@ -1,7 +1,7 @@
package com.keylesspalace.tusky.view
import android.content.Context
import android.support.v7.widget.AppCompatImageView
import androidx.appcompat.widget.AppCompatImageView
import android.util.AttributeSet
/**

View file

@ -17,8 +17,8 @@ package com.keylesspalace.tusky.view
import android.content.Context
import android.graphics.Color
import android.support.v7.widget.AppCompatButton
import android.util.AttributeSet
import com.google.android.material.button.MaterialButton
import com.keylesspalace.tusky.R
import com.keylesspalace.tusky.entity.Status
import com.mikepenz.google_material_typeface_library.GoogleMaterial
@ -29,48 +29,45 @@ class TootButton
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : AppCompatButton(context, attrs, defStyleAttr) {
) : MaterialButton(context, attrs, defStyleAttr) {
private val smallStyle: Boolean = context.resources.getBoolean(R.bool.show_small_toot_button)
init {
if(smallStyle) {
setCompoundDrawablesRelativeWithIntrinsicBounds(R.drawable.ic_send_24dp, 0, 0, 0)
setIconResource(R.drawable.ic_send_24dp)
} else {
compoundDrawablePadding = context.resources.getDimensionPixelSize(R.dimen.toot_button_drawable_padding)
setText(R.string.action_send)
iconGravity = ICON_GRAVITY_TEXT_START
}
val padding = resources.getDimensionPixelSize(R.dimen.toot_button_horizontal_padding)
setPadding(padding, 0, padding, 0)
}
fun setStatusVisibility(visibility: Status.Visibility) {
if(!smallStyle) {
when (visibility) {
icon = when (visibility) {
Status.Visibility.PUBLIC -> {
setText(R.string.action_send_public)
setCompoundDrawables(null, null, null, null)
null
}
Status.Visibility.UNLISTED -> {
setText(R.string.action_send)
setCompoundDrawables(null, null, null, null)
null
}
Status.Visibility.PRIVATE,
Status.Visibility.DIRECT -> {
addLock()
setText(R.string.action_send)
IconicsDrawable(context, GoogleMaterial.Icon.gmd_lock).sizeDp(18).color(Color.WHITE)
}
else -> {
setCompoundDrawables(null, null, null, null)
null
}
}
}
}
private fun addLock() {
setText(R.string.action_send)
val lock = IconicsDrawable(context, GoogleMaterial.Icon.gmd_lock).sizeDp(18).color(Color.WHITE)
setCompoundDrawablesWithIntrinsicBounds(lock, null, null, null)
}
}