Fix issue #56 - Overlap with undo action

This commit is contained in:
Thomas 2022-05-18 18:35:00 +02:00
parent 918c32dade
commit f0c36819b7
2 changed files with 20 additions and 55 deletions

View file

@ -19,7 +19,6 @@ import static app.fedilab.android.helper.PinnedTimelineHelper.sortMenuItem;
import static app.fedilab.android.helper.PinnedTimelineHelper.sortPositionAsc;
import android.content.Intent;
import android.graphics.Paint;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.Handler;
@ -28,7 +27,6 @@ import android.text.InputFilter;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
@ -43,6 +41,8 @@ import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.snackbar.Snackbar;
import java.io.IOException;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
@ -346,21 +346,22 @@ public class ReorderTimelinesActivity extends BaseActivity implements OnStartDra
@Override
public void onUndo(PinnedTimeline pinnedTimeline, int position) {
binding.undoContainer.setVisibility(View.VISIBLE);
String text = "";
switch (pinnedTimeline.type) {
case TAG:
binding.undoMessage.setText(R.string.reorder_tag_removed);
text = getString(R.string.reorder_tag_removed);
break;
case REMOTE:
binding.undoMessage.setText(R.string.reorder_instance_removed);
text = getString(R.string.reorder_instance_removed);
break;
case LIST:
binding.undoMessage.setText(R.string.reorder_list_deleted);
text = getString(R.string.reorder_list_deleted);
break;
}
binding.undoAction.setPaintFlags(binding.undoAction.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
Runnable runnable = () -> {
binding.undoContainer.setVisibility(View.GONE);
//change position of pinned that are after the removed item
for (int i = pinnedTimeline.position + 1; i < pinned.pinnedTimelines.size(); i++) {
pinned.pinnedTimelines.get(i).position -= 1;
@ -376,12 +377,16 @@ public class ReorderTimelinesActivity extends BaseActivity implements OnStartDra
};
Handler handler = new Handler();
handler.postDelayed(runnable, 4000);
binding.undoAction.setOnClickListener(v -> {
pinned.pinnedTimelines.add(position, pinnedTimeline);
reorderTabAdapter.notifyItemInserted(position);
binding.undoContainer.setVisibility(View.GONE);
handler.removeCallbacks(runnable);
});
Snackbar.make(binding.getRoot(), text, 4000)
.setAction(getString(R.string.undo), view -> {
pinned.pinnedTimelines.add(position, pinnedTimeline);
reorderTabAdapter.notifyItemInserted(position);
handler.removeCallbacks(runnable);
})
.setTextColor(ThemeHelper.getAttColor(ReorderTimelinesActivity.this, R.attr.mTextColor))
.setActionTextColor(ContextCompat.getColor(ReorderTimelinesActivity.this, R.color.cyanea_accent_reference))
.setBackgroundTint(ContextCompat.getColor(ReorderTimelinesActivity.this, R.color.cyanea_primary_dark_reference))
.show();
}
@Override

View file

@ -20,7 +20,7 @@
android:layout_width="match_parent"
android:layout_marginStart="@dimen/fab_margin"
android:layout_marginEnd="@dimen/fab_margin"
android:layout_height="match_parent">
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
@ -72,46 +72,6 @@
android:layout_height="wrap_content"
android:scrollbars="none" />
</androidx.cardview.widget.CardView>
<RelativeLayout
android:id="@+id/undo_container"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginBottom="0dp"
android:background="@color/cyanea_primary_reference"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent">
<TextView
android:id="@+id/undo_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerInParent="true"
android:layout_marginStart="10dp"
android:paddingLeft="20dp"
android:paddingTop="5dp"
android:paddingRight="20dp"
android:paddingBottom="5dp"
android:textColor="@color/cyanea_accent_dark_reference"
android:textSize="14sp" />
<TextView
android:id="@+id/undo_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerInParent="true"
android:layout_marginEnd="10dp"
android:paddingLeft="20dp"
android:paddingTop="5dp"
android:paddingRight="20dp"
android:paddingBottom="5dp"
android:text="@string/undo"
android:textAllCaps="true"
android:textColor="@color/cyanea_accent_dark_reference"
android:textSize="18sp" />
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>