From 4205f5493eba5b96acef1bfa25a582988ddeedde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9lanie=20Chauvel?= Date: Tue, 7 Jul 2020 20:35:31 +0200 Subject: [PATCH 01/28] Make account views clickable instead of avatar only (#1855) Affects: - New follower request and New follower notifications - Accounts in Blocked users and Muted users pages --- .../java/com/keylesspalace/tusky/adapter/BlocksAdapter.java | 2 +- .../com/keylesspalace/tusky/adapter/FollowRequestViewHolder.kt | 2 +- .../main/java/com/keylesspalace/tusky/adapter/MutesAdapter.java | 2 +- .../com/keylesspalace/tusky/adapter/NotificationsAdapter.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/BlocksAdapter.java b/app/src/main/java/com/keylesspalace/tusky/adapter/BlocksAdapter.java index 3cc686ffc..073d76dab 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/BlocksAdapter.java +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/BlocksAdapter.java @@ -103,7 +103,7 @@ public class BlocksAdapter extends AccountAdapter { listener.onBlock(false, id, position); } }); - avatar.setOnClickListener(v -> listener.onViewAccount(id)); + itemView.setOnClickListener(v -> listener.onViewAccount(id)); } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/FollowRequestViewHolder.kt b/app/src/main/java/com/keylesspalace/tusky/adapter/FollowRequestViewHolder.kt index 41a96a6f9..ff87f9781 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/FollowRequestViewHolder.kt +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/FollowRequestViewHolder.kt @@ -44,6 +44,6 @@ internal class FollowRequestViewHolder(itemView: View, private val showHeader: B listener.onRespondToFollowRequest(false, id, position) } } - itemView.avatar.setOnClickListener { listener.onViewAccount(id) } + itemView.setOnClickListener { listener.onViewAccount(id) } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/MutesAdapter.java b/app/src/main/java/com/keylesspalace/tusky/adapter/MutesAdapter.java index db3a0ae55..34338dbb2 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/MutesAdapter.java +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/MutesAdapter.java @@ -83,7 +83,7 @@ public class MutesAdapter extends AccountAdapter { void setupActionListener(final AccountActionListener listener) { unmute.setOnClickListener(v -> listener.onMute(false, id, getAdapterPosition())); - avatar.setOnClickListener(v -> listener.onViewAccount(id)); + itemView.setOnClickListener(v -> listener.onViewAccount(id)); } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/NotificationsAdapter.java b/app/src/main/java/com/keylesspalace/tusky/adapter/NotificationsAdapter.java index 2e168a7f6..936d0edf1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/NotificationsAdapter.java +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/NotificationsAdapter.java @@ -350,7 +350,7 @@ public class NotificationsAdapter extends RecyclerView.Adapter { } void setupButtons(final NotificationActionListener listener, final String accountId) { - avatar.setOnClickListener(v -> listener.onViewAccount(accountId)); + itemView.setOnClickListener(v -> listener.onViewAccount(accountId)); } } From 7f0093bd58d7b9948f413d70093342db0069063f Mon Sep 17 00:00:00 2001 From: Konrad Pozniak Date: Mon, 20 Jul 2020 11:25:36 +0200 Subject: [PATCH 02/28] remove scrolling from notification options bar (#1858) --- .../util/AppBarLayoutNoEmptyScrollBehavior.kt | 74 ------------------- .../fragment_timeline_notifications.xml | 6 +- .../fragment_timeline_notifications.xml | 6 +- 3 files changed, 4 insertions(+), 82 deletions(-) delete mode 100644 app/src/main/java/com/keylesspalace/tusky/util/AppBarLayoutNoEmptyScrollBehavior.kt diff --git a/app/src/main/java/com/keylesspalace/tusky/util/AppBarLayoutNoEmptyScrollBehavior.kt b/app/src/main/java/com/keylesspalace/tusky/util/AppBarLayoutNoEmptyScrollBehavior.kt deleted file mode 100644 index a6bbac801..000000000 --- a/app/src/main/java/com/keylesspalace/tusky/util/AppBarLayoutNoEmptyScrollBehavior.kt +++ /dev/null @@ -1,74 +0,0 @@ -/* Copyright 2019 Joel Pyska - * - * This file is a part of Tusky. - * - * This program is free software; you can redistribute it and/or modify it under the terms of the - * GNU General Public License as published by the Free Software Foundation; either version 3 of the - * License, or (at your option) any later version. - * - * Tusky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even - * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General - * Public License for more details. - * - * You should have received a copy of the GNU General Public License along with Tusky; if not, - * see . */ - -package com.keylesspalace.tusky.util - -import android.content.Context -import android.util.AttributeSet -import android.view.MotionEvent -import com.google.android.material.appbar.AppBarLayout -import androidx.coordinatorlayout.widget.CoordinatorLayout -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView - - -/** - * Disable AppBar scroll if content view empty or don't need to scroll - */ -class AppBarLayoutNoEmptyScrollBehavior : AppBarLayout.Behavior { - - constructor() : super() - - constructor (context: Context, attrs: AttributeSet) : super(context, attrs) - - private fun isRecyclerViewScrollable(appBar: AppBarLayout, recyclerView: RecyclerView?): Boolean { - if (recyclerView == null) - return false - var recyclerViewHeight = recyclerView.height // Height includes RecyclerView plus AppBarLayout at same level - val appCompatHeight = appBar.height - recyclerViewHeight -= appCompatHeight - - return recyclerView.computeVerticalScrollRange() > recyclerViewHeight - } - - override fun onStartNestedScroll(parent: CoordinatorLayout, child: AppBarLayout, directTargetChild: View, target: View, nestedScrollAxes: Int, type: Int): Boolean { - return if (isRecyclerViewScrollable(child, getRecyclerView(parent))) { - super.onStartNestedScroll(parent, child, directTargetChild, target, nestedScrollAxes, type) - } else false - } - - override fun onTouchEvent(parent: CoordinatorLayout, child: AppBarLayout, ev: MotionEvent): Boolean { - //Prevent scroll on app bar drag - return if (child.isShown && !isRecyclerViewScrollable(child, getRecyclerView(parent))) - true - else - super.onTouchEvent(parent, child, ev) - } - - private fun getRecyclerView(parent: ViewGroup): RecyclerView? { - for (i in 0 until parent.childCount) { - val child = parent.getChildAt(i) - if (child is RecyclerView) - return child - else if (child is ViewGroup) { - val childRecyclerView = getRecyclerView(child) - if (childRecyclerView is RecyclerView) - return childRecyclerView - } - } - return null - } -} \ No newline at end of file diff --git a/app/src/main/res/layout-sw640dp/fragment_timeline_notifications.xml b/app/src/main/res/layout-sw640dp/fragment_timeline_notifications.xml index e39998bfa..da5a204bd 100644 --- a/app/src/main/res/layout-sw640dp/fragment_timeline_notifications.xml +++ b/app/src/main/res/layout-sw640dp/fragment_timeline_notifications.xml @@ -17,15 +17,13 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorSurface" - app:elevation="0dp" - app:layout_behavior="com.keylesspalace.tusky.util.AppBarLayoutNoEmptyScrollBehavior"> + app:elevation="0dp"> + android:orientation="horizontal">