Skip to content

Instantly share code, notes, and snippets.

/refactored.java Secret

Created May 16, 2016 15:49
import android.content.ClipData;
import android.content.ClipDescription;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.util.Base64;
import android.util.Log;
import android.view.DragEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.view.ViewGroup.LayoutParams;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MatchingGame extends AppCompatActivity implements View.OnDragListener {
String TAG = "tag";
RelativeLayout rLayout;
int trainingID,objectCount;
DatabaseHandler dbHandler;
List<TrainingObject> trainingObjectList;
ObjectObject object;
byte[] imgBytes;
int isAnswered = 0;
Handler handler;
int isDragged=0;
// Bitmap bmpAnswer,bmpOne, bmpTwo, bmpThree, bmpFour, bmpFive;
ImageView imageAnswer, imageOne, imageTwo, imageThree, imageFour, imageFive;
// ImageView image;
Bitmap bmp;
CountDownTimer cTimer = null;
// use on create to only set content view
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG,"1isanswered : "+isAnswered);
Log.d(TAG, "matchinggame OnCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_matchgame);
initializeStuff();
}
// remove any spaces in code. makes it hard to read
private void initializeStuff() {
dbHandler = new DatabaseHandler(this);
// rLayout = new RelativeLayout(this);
object = new ObjectObject();
imageAnswer=new ImageView(this);
// setContentView(rLayout);
// Log.d(TAG, "mx");
rLayout = (RelativeLayout) findViewById(R.id.relative_layout);
trainingID = getIntent().getExtras().getInt("trainingid");
trainingObjectList = new ArrayList<TrainingObject>();
trainingObjectList = dbHandler.getAllTrainingObject(trainingID);
//// TODO: 02.05.2016 egitim kismi oalcak burda tek tek gosterilecek
rLayout.setBackgroundColor(Color.MAGENTA);
// Handler handler = new Handler(); Log.d(TAG,"2isanswered : "+isAnswered);
for(int i=0;i<2;i++){Log.d(TAG,"i:"+i); Log.d(TAG,"3tisanswered : "+isAnswered);
final int finalI = i;
Log.d(TAG,"4isanswered : "+isAnswered);
isAnswered = 0;
TrainingObject trainingObject = new TrainingObject();
trainingObject = trainingObjectList.get(finalI);
objectCount = 2;
//test icin
Log.d(TAG,"testicin trainingobjectid: "+trainingObject.getTrainingobjectID());
object = dbHandler.getObjectObject(trainingObject.getTrainingobjectAnswer());
if(trainingObject.getTrainingobjectThree()!=0) objectCount++;
if(trainingObject.getTrainingobjectFour()!=0) objectCount++;
if(trainingObject.getTrainingobjectFive()!=0) objectCount++;
Log.d(TAG,"matchinggame objcount: "+objectCount);
RelativeLayout.LayoutParams rLayParams = new RelativeLayout.LayoutParams(140,140);
rLayParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
rLayParams.addRule(RelativeLayout.CENTER_IN_PARENT);
imgBytes = object.getObjectImageBlob();
bmp = BitmapFactory.decodeByteArray(imgBytes, 0, imgBytes.length);
imageAnswer.setImageBitmap(bmp);
imageAnswer.setTag(trainingObject.getTrainingobjectAnswer());
imageAnswer.setId(R.id.imgAnswer);
rLayout.removeAllViews();
rLayout.addView(imageAnswer,rLayParams);
rLayParams = null;
object = null;
bmp = null;
imgBytes = null;
rLayParams = new RelativeLayout.LayoutParams(140,140);
imageOne = new ImageView(MatchingGame.this);
object = dbHandler.getObjectObject(trainingObject.getTrainingobjectOne());
imgBytes = object.getObjectImageBlob();
bmp = BitmapFactory.decodeByteArray(imgBytes, 0, imgBytes.length);
rLayParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
rLayParams.addRule(RelativeLayout.ABOVE,R.id.imgAnswer);
rLayParams.addRule(RelativeLayout.CENTER_IN_PARENT);
imageOne.setImageBitmap(bmp);
imageOne.setTag(trainingObject.getTrainingobjectOne());
imageOne.setId(R.id.imgOne);
rLayout.addView(imageOne,rLayParams);
rLayParams = null;;
object = null;
bmp = null;
imgBytes = null;
rLayParams = new RelativeLayout.LayoutParams(140,140);
imageTwo = new ImageView(MatchingGame.this);
object = dbHandler.getObjectObject(trainingObject.getTrainingobjectTwo());
imgBytes = object.getObjectImageBlob();
bmp = BitmapFactory.decodeByteArray(imgBytes, 0, imgBytes.length);
rLayParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
rLayParams.addRule(RelativeLayout.BELOW,R.id.imgAnswer);
imageTwo.setImageBitmap(bmp);
imageTwo.setTag(trainingObject.getTrainingobjectTwo());
imageTwo.setId(R.id.imgTwo);
rLayout.addView(imageTwo,rLayParams);
imageOne.setOnDragListener(MatchingGame.this);
imageTwo.setOnDragListener(MatchingGame.this);
imageAnswer.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) { Log.d(TAG,"6isanswered : "+isAnswered);
Log.d(TAG,"matchinggame setontouch");
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Log.d(TAG,"matchinggame setontouch if yes");
ClipData data = ClipData.newPlainText("", "");
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
v.startDrag(data, shadowBuilder, v, 0);
v.setVisibility(View.INVISIBLE); Log.d(TAG,"7isanswered : "+isAnswered);
return true;
} else { Log.d(TAG,"8isanswered : "+isAnswered);
return false;
}
}
});
imageAnswer.setOnDragListener(MatchingGame.this);
Log.d(TAG,"*");
while(isAnswered==1){
//Log.d(TAG,"*");
}
}Log.d(TAG,"ff");
}
public boolean onTouch(View view, MotionEvent motionEvent) {
Log.d(TAG,"matchinggame ontouch");
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
ClipData data = ClipData.newPlainText("", "");
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
view.startDrag(data, shadowBuilder, view, 0);
view.setVisibility(View.INVISIBLE);
return true;
} else {
return false;
}
}
@Override
public boolean onDrag(View receivingLayoutView, DragEvent dragEvent) { Log.d(TAG,"9isanswered : "+isAnswered);
// Log.d(TAG, "match game ondrag start");
// View draggedImageView = (View) dragEvent.getLocalState();
// ImageView draggedImg = (ImageView) draggedImageView;
// Log.d(TAG, "ondrag start receiving visibility: "+receivingLayoutView.getVisibility()+" draggged visib "+draggedImageView.getVisibility());
// Handles each of the expected events
switch (dragEvent.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
if (dragEvent.getClipDescription()
.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
return true;
}
// Returns false. During the current drag and drop operation, this View will
// not receive events again until ACTION_DRAG_ENDED is sent.
return false;
case DragEvent.ACTION_DRAG_ENTERED:
return true;
case DragEvent.ACTION_DRAG_LOCATION:
receivingLayoutView.setVisibility(View.VISIBLE);
return true;
case DragEvent.ACTION_DRAG_EXITED:
return true;
case DragEvent.ACTION_DROP: Log.d(TAG, "drag action droop");
ImageView dropOntoImg = (ImageView) receivingLayoutView;
View draggedImageView = (View) dragEvent.getLocalState();
// ImageView draggedImg = (ImageView) draggedImageView;
Log.d(TAG,"droponto: "+receivingLayoutView.getTag()+" dropped: "+draggedImageView.getTag());
// Log.d(TAG, "swtich önesi "+ dropOntoImg.getId());
Log.d(TAG, "swtich önesii "+dropOntoImg.getTag()+" vs "+draggedImageView.getTag());
// ImgTags imgtag = ImgTags.valueOf(dropOntoImg.getTag().toString()
//.toUpperCase(Locale.ENGLISH))
//) ;
// Log.d(TAG, "swtich ön esi "+imgtag.toString());
//// TODO: 5/15/2016 baska yere bırakinca da false veriyor
if(dropOntoImg.getTag().equals(draggedImageView.getTag())){
// Log.d(TAG,"true "+dropOntoImg.getTag()+" droppeged true with dragged"+ draggedImageView.getTag() + "");
return true;
}
else{
// Log.d(TAG,"false "+dropOntoImg.getTag()+" droppeged true with dragged"+ draggedImageView.getTag() + "");
return false;
}
case DragEvent.ACTION_DRAG_ENDED:
isAnswered = 1;
Log.d(TAG, "isAnswered "+isAnswered);
draggedImageView = (View) dragEvent.getLocalState();
Log.d(TAG, "drag action ended");
Log.d(TAG, "getResult: " + dragEvent.getResult());
// receivingLayoutView.setVisibility(View.VISIBLE);
// draggedImageView.setVisibility(View.VISIBLE);
// if the drop was not successful, set the ball to visible
if (!dragEvent.getResult()) {
Log.d(TAG,"10isanswered : "+isAnswered);isAnswered =2;
Log.d(TAG, "false, setting visible");
Toast.makeText(getApplicationContext(),"False",Toast.LENGTH_SHORT).show();
final View droppedView = (View) dragEvent.getLocalState();
droppedView.post(new Runnable() {
@Override
public void run() {
droppedView.setVisibility(View.VISIBLE);
}
}); Log.d(TAG,"11isanswered : "+isAnswered);
}
else{ Log.d(TAG,"12isanswered : "+isAnswered);isAnswered=1;
Toast.makeText(getApplicationContext(),"True",Toast.LENGTH_SHORT).show(); Log.d(TAG,"13isanswered : "+isAnswered);
}
//// TODO: 5/15/2016 burda response kaydedilecek
return true;
// An unknown action type was received.
default:
Log.d(TAG, "Unknown action type received by OnDragListener.");
break;
}
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment