diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderBottomMenuAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderBottomMenuAdapter.java index 5c1278c6..5f7e54b2 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderBottomMenuAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderBottomMenuAdapter.java @@ -21,6 +21,7 @@ import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.ViewGroup; +import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.RecyclerView; import org.jetbrains.annotations.NotNull; @@ -126,7 +127,16 @@ public class ReorderBottomMenuAdapter extends RecyclerView.Adapter { + int bindingAdapterPosition = viewHolder.getBindingAdapterPosition(); + if (bindingAdapterPosition > 0) onItemMove(bindingAdapterPosition, bindingAdapterPosition - 1); + return true; + }); + ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.move_timeline_down), (view, arguments) -> { + int bindingAdapterPosition = viewHolder.getBindingAdapterPosition(); + if (bindingAdapterPosition < bottomMenu.bottom_menu.size() - 1) onItemMove(bindingAdapterPosition, bindingAdapterPosition + 1); + return true; + }); } @Override diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderTabAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderTabAdapter.java index 51bee2e1..e6f99cfc 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderTabAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderTabAdapter.java @@ -23,6 +23,7 @@ import android.view.View; import android.view.ViewGroup; import androidx.appcompat.app.AlertDialog; +import androidx.core.view.ViewCompat; import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelStoreOwner; import androidx.recyclerview.widget.RecyclerView; @@ -191,6 +192,16 @@ public class ReorderTabAdapter extends RecyclerView.Adapter { + int bindingAdapterPosition = viewHolder.getBindingAdapterPosition(); + if (bindingAdapterPosition > 0) onItemMove(bindingAdapterPosition, bindingAdapterPosition - 1); + return true; + }); + ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.move_timeline_down), (view, arguments) -> { + int bindingAdapterPosition = viewHolder.getBindingAdapterPosition(); + if (bindingAdapterPosition < pinned.pinnedTimelines.size() - 1) onItemMove(bindingAdapterPosition, bindingAdapterPosition + 1); + return true; + }); PinnedTimeline item = pinned.pinnedTimelines.get(position); if (item.type == Timeline.TimeLineEnum.TAG || item.type == Timeline.TimeLineEnum.REMOTE || item.type == Timeline.TimeLineEnum.LIST) { holder.binding.delete.setVisibility(View.VISIBLE); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 74666160..ef07ef29 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -483,6 +483,8 @@ List permanently deleted Followed instance removed Pinned tag removed + Move timeline up + Move timeline down Undo Main timelines can only be hidden! Always mark media as sensitive