mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +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();
|
return servers.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Server> getItems() {
|
|
||||||
return this.servers;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setItems(List<Server> servers) {
|
public void setItems(List<Server> servers) {
|
||||||
this.servers = servers;
|
this.servers = servers;
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
|
@ -73,7 +69,7 @@ public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder
|
||||||
return servers.get(id);
|
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 serverName;
|
||||||
TextView serverAddress;
|
TextView serverAddress;
|
||||||
|
|
||||||
|
|
@ -84,6 +80,7 @@ public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ViewHolder
|
||||||
serverAddress = itemView.findViewById(R.id.server_address_text_view);
|
serverAddress = itemView.findViewById(R.id.server_address_text_view);
|
||||||
|
|
||||||
itemView.setOnClickListener(this);
|
itemView.setOnClickListener(this);
|
||||||
|
itemView.setOnLongClickListener(this);
|
||||||
|
|
||||||
serverName.setSelected(true);
|
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() {
|
private void enter() {
|
||||||
mainActivity.goFromLogin();
|
mainActivity.goFromLogin();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import com.cappielloantonio.play.model.Queue;
|
||||||
import com.cappielloantonio.play.model.RecentSearch;
|
import com.cappielloantonio.play.model.RecentSearch;
|
||||||
import com.cappielloantonio.play.model.Server;
|
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 {
|
public abstract class AppDatabase extends RoomDatabase {
|
||||||
private static final String TAG = "AppDatabase";
|
private static final String TAG = "AppDatabase";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,6 @@ public interface ServerDao {
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
void insert(Server server);
|
void insert(Server server);
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
|
||||||
void insertAll(List<Server> servers);
|
|
||||||
|
|
||||||
@Delete
|
@Delete
|
||||||
void delete(Server server);
|
void delete(Server server);
|
||||||
|
|
||||||
@Query("DELETE FROM server")
|
|
||||||
void deleteAll();
|
|
||||||
}
|
}
|
||||||
|
|
@ -41,20 +41,6 @@ public class ServerRepository {
|
||||||
thread.start();
|
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 static class InsertThreadSafe implements Runnable {
|
||||||
private ServerDao serverDao;
|
private ServerDao serverDao;
|
||||||
private Server server;
|
private Server server;
|
||||||
|
|
@ -84,32 +70,4 @@ public class ServerRepository {
|
||||||
serverDao.delete(server);
|
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);
|
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
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -53,10 +53,6 @@ public class LoginViewModel extends AndroidViewModel {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void orderServer(List<Server> servers) {
|
|
||||||
serverRepository.order(servers);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setServerToEdit(Server server) {
|
public void setServerToEdit(Server server) {
|
||||||
toEdit = server;
|
toEdit = server;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -107,8 +107,6 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="24dp"
|
android:layout_marginStart="24dp"
|
||||||
android:layout_marginTop="12dp"
|
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="24dp"
|
||||||
android:text="Direct access"
|
android:text="Direct access"/>
|
||||||
android:onClick="onCheckboxClicked"/>
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
android:scrollHorizontally="true"
|
android:scrollHorizontally="true"
|
||||||
android:text="@string/label_placeholder"
|
android:text="@string/label_placeholder"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/server_holder_image"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -43,17 +43,6 @@
|
||||||
android:paddingEnd="12dp"
|
android:paddingEnd="12dp"
|
||||||
android:text="@string/label_placeholder"
|
android:text="@string/label_placeholder"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
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_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toBottomOf="@+id/server_name_text_view" />
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue