Add accessibility actions to move timelines up/down in Manage timelines page

This commit is contained in:
0xd9a 2025-09-18 11:52:43 +05:30
parent 7f57b0ad36
commit f270ff8085
3 changed files with 24 additions and 1 deletions

View file

@ -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<RecyclerView.
}
return false;
});
ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.move_timeline_up), (view, arguments) -> {
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

View file

@ -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<RecyclerView.ViewHol
}
return false;
});
ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.move_timeline_up), (view, arguments) -> {
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);

View file

@ -483,6 +483,8 @@
<string name="reorder_list_deleted">List permanently deleted</string>
<string name="reorder_instance_removed">Followed instance removed</string>
<string name="reorder_tag_removed">Pinned tag removed</string>
<string name="move_timeline_up">Move timeline up</string>
<string name="move_timeline_down">Move timeline down</string>
<string name="undo">Undo</string>
<string name="warning_main_timeline">Main timelines can only be hidden!</string>
<string name="set_sensitive_content">Always mark media as sensitive</string>