Behavior change for answering a call, now it's like the device was lock

This commit is contained in:
Erwan Croze 2016-12-19 14:33:00 +01:00
parent 8bbdd2f5ae
commit 23a9f95d88

View file

@ -57,7 +57,7 @@ public class CallIncomingActivity extends LinphoneGenericActivity implements Lin
private LinphoneCoreListenerBase mListener; private LinphoneCoreListenerBase mListener;
private LinearLayout acceptUnlock; private LinearLayout acceptUnlock;
private LinearLayout declineUnlock; private LinearLayout declineUnlock;
private boolean isScreenActive, alreadyAcceptedOrDeniedCall; private boolean alreadyAcceptedOrDeniedCall;
private float answerX; private float answerX;
private float declineX; private float declineX;
@ -89,7 +89,6 @@ public class CallIncomingActivity extends LinphoneGenericActivity implements Lin
getWindow().addFlags(flags); getWindow().addFlags(flags);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
isScreenActive = Compatibility.isScreenOn(pm);
final int screenWidth = getResources().getDisplayMetrics().widthPixels; final int screenWidth = getResources().getDisplayMetrics().widthPixels;
@ -101,87 +100,81 @@ public class CallIncomingActivity extends LinphoneGenericActivity implements Lin
accept.setOnClickListener(new View.OnClickListener() { accept.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if(isScreenActive) {
answer(); decline.setVisibility(View.GONE);
} else { acceptUnlock.setVisibility(View.VISIBLE);
decline.setVisibility(View.GONE);
acceptUnlock.setVisibility(View.VISIBLE);
}
} }
}); });
if(!isScreenActive) {
accept.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
float curX;
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
acceptUnlock.setVisibility(View.VISIBLE);
decline.setVisibility(View.GONE);
answerX = motionEvent.getX();
break;
case MotionEvent.ACTION_MOVE:
curX = motionEvent.getX();
if((answerX - curX) >= 0)
view.scrollBy((int) (answerX - curX), view.getScrollY());
answerX = curX;
if (curX < screenWidth/4) {
answer();
return true;
}
break;
case MotionEvent.ACTION_UP:
view.scrollTo(0, view.getScrollY());
decline.setVisibility(View.VISIBLE);
acceptUnlock.setVisibility(View.GONE);
break;
}
return true;
}
});
decline.setOnTouchListener(new View.OnTouchListener() { accept.setOnTouchListener(new View.OnTouchListener() {
@Override @Override
public boolean onTouch(View view, MotionEvent motionEvent) { public boolean onTouch(View view, MotionEvent motionEvent) {
float curX; float curX;
switch (motionEvent.getAction()) { switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_DOWN:
declineUnlock.setVisibility(View.VISIBLE); acceptUnlock.setVisibility(View.VISIBLE);
accept.setVisibility(View.GONE); decline.setVisibility(View.GONE);
declineX = motionEvent.getX(); answerX = motionEvent.getX();
break; break;
case MotionEvent.ACTION_MOVE: case MotionEvent.ACTION_MOVE:
curX = motionEvent.getX(); curX = motionEvent.getX();
view.scrollBy((int) (declineX - curX), view.getScrollY()); if((answerX - curX) >= 0)
declineX = curX; view.scrollBy((int) (answerX - curX), view.getScrollY());
Log.w(curX); answerX = curX;
if (curX > (screenWidth/2)){ if (curX < screenWidth/4) {
decline(); answer();
return true; return true;
} }
break; break;
case MotionEvent.ACTION_UP: case MotionEvent.ACTION_UP:
view.scrollTo(0, view.getScrollY()); view.scrollTo(0, view.getScrollY());
accept.setVisibility(View.VISIBLE); decline.setVisibility(View.VISIBLE);
declineUnlock.setVisibility(View.GONE); acceptUnlock.setVisibility(View.GONE);
break; break;
}
return true;
} }
}); return true;
} }
});
decline.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
float curX;
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
declineUnlock.setVisibility(View.VISIBLE);
accept.setVisibility(View.GONE);
declineX = motionEvent.getX();
break;
case MotionEvent.ACTION_MOVE:
curX = motionEvent.getX();
view.scrollBy((int) (declineX - curX), view.getScrollY());
declineX = curX;
Log.w(curX);
if (curX > (screenWidth/2)){
decline();
return true;
}
break;
case MotionEvent.ACTION_UP:
view.scrollTo(0, view.getScrollY());
accept.setVisibility(View.VISIBLE);
declineUnlock.setVisibility(View.GONE);
break;
}
return true;
}
});
decline.setOnClickListener(new View.OnClickListener() { decline.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if(isScreenActive) { accept.setVisibility(View.GONE);
decline(); acceptUnlock.setVisibility(View.VISIBLE);
} else {
accept.setVisibility(View.GONE);
acceptUnlock.setVisibility(View.VISIBLE);
}
} }
}); });