import
androidx.annotation.NonNull;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.recyclerview.widget.ItemTouchHelper;
import
androidx.recyclerview.widget.LinearLayoutManager;
import
androidx.recyclerview.widget.RecyclerView;
import
android.app.AlertDialog;
import
android.content.DialogInterface;
import
android.os.Bundle;
import
android.widget.Toast;
import
org.jetbrains.annotations.NotNull;
import
java.util.ArrayList;
import
java.util.List;
import
java.util.Random;
public
class
MainActivity
extends
AppCompatActivity {
private
RecyclerView recyclerView;
private
List<Modelclass> barsColor;
AlertDialog.Builder alertDialog;
private
Adapter adapter;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
barsColor=
new
ArrayList<>();
Random random =
new
Random();
for
(
int
i=
0
;i<
15
;i++)
{
int
n= random.nextInt(
2
);
if
(n==
0
)
{
barsColor.add(
new
Modelclass(
"Yellow"
));
}
else
{
barsColor.add(
new
Modelclass(
"Red"
));
}
}
recyclerView = findViewById(R.id.recyclerview);
adapter=
new
Adapter(
this
,barsColor);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(
new
LinearLayoutManager(
this
));
ItemTouchHelper itemTouchHelper =
new
ItemTouchHelper(simpleCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);
adapter.notifyDataSetChanged();
}
ItemTouchHelper.SimpleCallback simpleCallback=
new
ItemTouchHelper.SimpleCallback(
0
,ItemTouchHelper.LEFT|ItemTouchHelper.RIGHT) {
@Override
public
boolean
onMove(
@NonNull
@NotNull
RecyclerView recyclerView,
@NonNull
@NotNull
RecyclerView.ViewHolder viewHolder,
@NonNull
@NotNull
RecyclerView.ViewHolder target) {
return
false
;
}
@Override
public
void
onSwiped(
@NonNull
@NotNull
RecyclerView.ViewHolder viewHolder,
int
direction) {
int
position = viewHolder.getPosition();
switch
(direction) {
case
ItemTouchHelper.LEFT: {
if
((barsColor.get(position).getColor()).equals(
"Red"
)) {
barsColor.remove(position);
adapter.notifyDataSetChanged();
}
else
{
endthegame();
adapter.notifyDataSetChanged();
alertDialog.show();
}
break
;
}
case
ItemTouchHelper.RIGHT: {
if
((barsColor.get(position).getColor()).equals(
"Yellow"
)) {
barsColor.remove(position);
adapter.notifyDataSetChanged();
}
else
{
endthegame();
adapter.notifyDataSetChanged();
alertDialog.show();
}
break
;
}
}
}
};
private
void
endthegame()
{
alertDialog=
new
AlertDialog.Builder(
this
);
alertDialog.setMessage(
"Oopa! Wrong side! Try Again! "
).setPositiveButton(
"Try Again"
,
new
DialogInterface.OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which) {
Toast.makeText(MainActivity.
this
,
"Try again"
, Toast.LENGTH_SHORT).show();
}
}).setNegativeButton(
"Later"
,
new
DialogInterface.OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which) {
Toast.makeText(MainActivity.
this
,
"Later!"
, Toast.LENGTH_SHORT).show();
}
});
alertDialog.create();
}
}