Commit 1e0f73a9 authored by 0xd9a's avatar 0xd9a
Browse files

Add accessibility actions to hide, delete timelines in 'Manage timelines' page

parent ce1b7cdf
Loading
Loading
Loading
Loading
+24 −18
Original line number Diff line number Diff line
@@ -100,24 +100,7 @@ public class ReorderBottomMenuAdapter extends RecyclerView.Adapter<RecyclerView.
            holder.binding.hide.setImageResource(R.drawable.ic_baseline_visibility_off_24);
        }

        holder.binding.hide.setOnClickListener(v -> {
            bottomMenu.bottom_menu.get(position).visible = !bottomMenu.bottom_menu.get(position).visible;
            bottomMenu.user_id = MainActivity.currentUserID;
            bottomMenu.instance = MainActivity.currentInstance;
            if (bottomMenu.bottom_menu.get(position).visible) {
                holder.binding.hide.setImageResource(R.drawable.ic_baseline_visibility_24);
            } else {
                holder.binding.hide.setImageResource(R.drawable.ic_baseline_visibility_off_24);
            }
            new Thread(() -> {
                try {
                    new BottomMenu(context).insertOrUpdate(bottomMenu);
                    ((ReorderTimelinesActivity) context).setBottomChanges(true);
                } catch (DBException e) {
                    e.printStackTrace();
                }
            }).start();
        });
        holder.binding.hide.setOnClickListener(v -> onHidePressed(holder, position));

        // Start a drag whenever the handle view it touched
        holder.binding.handle.setOnTouchListener((v, event) -> {
@@ -137,6 +120,29 @@ public class ReorderBottomMenuAdapter extends RecyclerView.Adapter<RecyclerView.
            if (bindingAdapterPosition < bottomMenu.bottom_menu.size() - 1) onItemMove(bindingAdapterPosition, bindingAdapterPosition + 1);
            return true;
        });
        ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.hide_timeline), (view, arguments) -> {
            onHidePressed(holder, position);
            return true;
        });
    }

    private void onHidePressed(ReorderViewHolder holder, int position) {
        bottomMenu.bottom_menu.get(position).visible = !bottomMenu.bottom_menu.get(position).visible;
        bottomMenu.user_id = MainActivity.currentUserID;
        bottomMenu.instance = MainActivity.currentInstance;
        if (bottomMenu.bottom_menu.get(position).visible) {
            holder.binding.hide.setImageResource(R.drawable.ic_baseline_visibility_24);
        } else {
            holder.binding.hide.setImageResource(R.drawable.ic_baseline_visibility_off_24);
        }
        new Thread(() -> {
            try {
                new BottomMenu(context).insertOrUpdate(bottomMenu);
                ((ReorderTimelinesActivity) context).setBottomChanges(true);
            } catch (DBException e) {
                e.printStackTrace();
            }
        }).start();
    }

    @Override
+72 −59
Original line number Diff line number Diff line
@@ -171,18 +171,7 @@ public class ReorderTabAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
            holder.binding.hide.setImageResource(R.drawable.ic_baseline_visibility_off_24);
        }

        holder.binding.hide.setOnClickListener(v -> {
            pinned.pinnedTimelines.get(position).displayed = !pinned.pinnedTimelines.get(position).displayed;
            notifyItemChanged(position);
            new Thread(() -> {
                try {
                    new Pinned(context).updatePinned(pinned);
                    ((ReorderTimelinesActivity) context).setChanges(true);
                } catch (DBException e) {
                    e.printStackTrace();
                }
            }).start();
        });
        holder.binding.hide.setOnClickListener(v -> onHidePressed(position));

        // Start a drag whenever the handle view it touched
        holder.binding.handle.setOnTouchListener((v, event) -> {
@@ -202,13 +191,37 @@ public class ReorderTabAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
            if (bindingAdapterPosition < pinned.pinnedTimelines.size() - 1) onItemMove(bindingAdapterPosition, bindingAdapterPosition + 1);
            return true;
        });
        ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.hide_timeline), (view, arguments) -> {
            onHidePressed(position);
            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);
            holder.binding.delete.setOnClickListener(v -> onDeletePressed(item, position));
            ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.delete_timeline), (view, arguments) -> {
                onDeletePressed(item, position);
                return true;
            });
        } else {
            holder.binding.delete.setVisibility(View.GONE);
        }
        holder.binding.delete.setOnClickListener(v -> {
    }

    private void onHidePressed(int position) {
        pinned.pinnedTimelines.get(position).displayed = !pinned.pinnedTimelines.get(position).displayed;
        notifyItemChanged(position);
        new Thread(() -> {
            try {
                new Pinned(context).updatePinned(pinned);
                ((ReorderTimelinesActivity) context).setChanges(true);
            } catch (DBException e) {
                e.printStackTrace();
            }
        }).start();
    }

    private void onDeletePressed(PinnedTimeline item, int position) {
        if (item.type == Timeline.TimeLineEnum.TAG || item.type == Timeline.TimeLineEnum.REMOTE || item.type == Timeline.TimeLineEnum.LIST) {
            AlertDialog.Builder alt_bld = new MaterialAlertDialogBuilder(context);
            String title = "";
@@ -260,7 +273,7 @@ public class ReorderTabAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
            alert.show();

        }
        });

    }

    @Override
+4 −2
Original line number Diff line number Diff line
@@ -30,13 +30,13 @@
            android:layout_gravity="center_vertical"
            android:layout_weight="1" />


        <androidx.appcompat.widget.AppCompatImageView
            android:id="@+id/hide"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_gravity="center"
            android:contentDescription="@string/hide_timeline"
            android:importantForAccessibility="no"
            android:scaleType="center"
            android:src="@drawable/ic_baseline_visibility_off_24"
            tools:ignore="RtlHardcoded" />
@@ -47,10 +47,12 @@
            android:layout_height="40dp"
            android:layout_gravity="center"
            android:contentDescription="@string/delete_timeline"
            android:importantForAccessibility="no"
            android:scaleType="center"
            android:src="@drawable/ic_baseline_delete_24"
            android:visibility="gone"
            tools:ignore="RtlHardcoded" />
            tools:ignore="RtlHardcoded"
            tools:visibility="visible" />

        <androidx.appcompat.widget.AppCompatImageView
            android:id="@+id/handle"