mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 09:33:33 +00:00
Removed gesture swipe and drag&drop gesture from server item in login
This commit is contained in:
parent
677fe5dc60
commit
9bad7f6e77
8 changed files with 18 additions and 126 deletions
|
|
@ -60,10 +60,6 @@ public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder
|
|||
return servers.size();
|
||||
}
|
||||
|
||||
public List<Server> getItems() {
|
||||
return this.servers;
|
||||
}
|
||||
|
||||
public void setItems(List<Server> servers) {
|
||||
this.servers = servers;
|
||||
notifyDataSetChanged();
|
||||
|
|
@ -73,7 +69,7 @@ public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder
|
|||
return servers.get(id);
|
||||
}
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
|
||||
TextView serverName;
|
||||
TextView serverAddress;
|
||||
|
||||
|
|
@ -84,6 +80,7 @@ public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder
|
|||
serverAddress = itemView.findViewById(R.id.server_address_text_view);
|
||||
|
||||
itemView.setOnClickListener(this);
|
||||
itemView.setOnLongClickListener(this);
|
||||
|
||||
serverName.setSelected(true);
|
||||
}
|
||||
|
|
@ -109,6 +106,18 @@ public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder
|
|||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onLongClick(View v) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("server_object", servers.get(getBindingAdapterPosition()));
|
||||
|
||||
ServerSignupDialog dialog = new ServerSignupDialog();
|
||||
dialog.setArguments(bundle);
|
||||
dialog.show(mainActivity.getSupportFragmentManager(), null);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void enter() {
|
||||
mainActivity.goFromLogin();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import com.cappielloantonio.play.model.Queue;
|
|||
import com.cappielloantonio.play.model.RecentSearch;
|
||||
import com.cappielloantonio.play.model.Server;
|
||||
|
||||
@Database(entities = {Queue.class, Server.class, RecentSearch.class, Download.class}, version = 13, exportSchema = false)
|
||||
@Database(entities = {Queue.class, Server.class, RecentSearch.class, Download.class}, version = 14, exportSchema = false)
|
||||
public abstract class AppDatabase extends RoomDatabase {
|
||||
private static final String TAG = "AppDatabase";
|
||||
|
||||
|
|
|
|||
|
|
@ -20,12 +20,6 @@ public interface ServerDao {
|
|||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
void insert(Server server);
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
void insertAll(List<Server> servers);
|
||||
|
||||
@Delete
|
||||
void delete(Server server);
|
||||
|
||||
@Query("DELETE FROM server")
|
||||
void deleteAll();
|
||||
}
|
||||
|
|
@ -41,20 +41,6 @@ public class ServerRepository {
|
|||
thread.start();
|
||||
}
|
||||
|
||||
public void order(List<Server> servers) {
|
||||
try {
|
||||
final Thread delete = new Thread(new DeleteAllThreadSafe(serverDao));
|
||||
final Thread insertAll = new Thread(new InsertAllThreadSafe(serverDao, servers));
|
||||
|
||||
delete.start();
|
||||
delete.join();
|
||||
insertAll.start();
|
||||
insertAll.join();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static class InsertThreadSafe implements Runnable {
|
||||
private ServerDao serverDao;
|
||||
private Server server;
|
||||
|
|
@ -84,32 +70,4 @@ public class ServerRepository {
|
|||
serverDao.delete(server);
|
||||
}
|
||||
}
|
||||
|
||||
private static class InsertAllThreadSafe implements Runnable {
|
||||
private ServerDao serverDao;
|
||||
private List<Server> servers;
|
||||
|
||||
public InsertAllThreadSafe(ServerDao queueDao, List<Server> servers) {
|
||||
this.serverDao = queueDao;
|
||||
this.servers = servers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
serverDao.insertAll(servers);
|
||||
}
|
||||
}
|
||||
|
||||
private static class DeleteAllThreadSafe implements Runnable {
|
||||
private ServerDao serverDao;
|
||||
|
||||
public DeleteAllThreadSafe(ServerDao serverDao) {
|
||||
this.serverDao = serverDao;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
serverDao.deleteAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,58 +98,6 @@ public class LoginFragment extends Fragment {
|
|||
if (bind != null) bind.serverListRecyclerView.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
|
||||
int originalPosition = -1;
|
||||
int fromPosition = -1;
|
||||
int toPosition = -1;
|
||||
|
||||
@Override
|
||||
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
|
||||
if (originalPosition == -1)
|
||||
originalPosition = viewHolder.getBindingAdapterPosition();
|
||||
|
||||
fromPosition = viewHolder.getBindingAdapterPosition();
|
||||
toPosition = target.getBindingAdapterPosition();
|
||||
|
||||
Collections.swap(serverAdapter.getItems(), fromPosition, toPosition);
|
||||
recyclerView.getAdapter().notifyItemMoved(fromPosition, toPosition);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearView(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
|
||||
super.clearView(recyclerView, viewHolder);
|
||||
|
||||
loginViewModel.orderServer(serverAdapter.getItems());
|
||||
|
||||
originalPosition = -1;
|
||||
fromPosition = -1;
|
||||
toPosition = -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
|
||||
switch (direction) {
|
||||
case ItemTouchHelper.LEFT:
|
||||
loginViewModel.deleteServer(serverAdapter.getItem(viewHolder.getBindingAdapterPosition()));
|
||||
viewHolder.itemView.setBackgroundColor(Color.RED);
|
||||
break;
|
||||
case ItemTouchHelper.RIGHT:
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("server_object", serverAdapter.getItem(viewHolder.getBindingAdapterPosition()));
|
||||
|
||||
ServerSignupDialog dialog = new ServerSignupDialog();
|
||||
dialog.setArguments(bundle);
|
||||
dialog.show(activity.getSupportFragmentManager(), null);
|
||||
|
||||
bind.serverListRecyclerView.getAdapter().notifyDataSetChanged();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
).attachToRecyclerView(bind.serverListRecyclerView);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -53,10 +53,6 @@ public class LoginViewModel extends AndroidViewModel {
|
|||
}
|
||||
}
|
||||
|
||||
public void orderServer(List<Server> servers) {
|
||||
serverRepository.order(servers);
|
||||
}
|
||||
|
||||
public void setServerToEdit(Server server) {
|
||||
toEdit = server;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -107,8 +107,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="24dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_marginEnd="24dp"
|
||||
android:text="Direct access"
|
||||
android:onClick="onCheckboxClicked"/>
|
||||
android:text="Direct access"/>
|
||||
</LinearLayout>
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
android:scrollHorizontally="true"
|
||||
android:text="@string/label_placeholder"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/server_holder_image"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
|
|
@ -43,17 +43,6 @@
|
|||
android:paddingEnd="12dp"
|
||||
android:text="@string/label_placeholder"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/server_holder_image"
|
||||
app:layout_constraintTop_toBottomOf="@+id/server_name_text_view" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/server_holder_image"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:src="@drawable/ic_drag_handle"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/server_name_text_view" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
Loading…
Add table
Add a link
Reference in a new issue