private WebViewClient mWebViewClient = new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(final WebView view, WebResourceRequest request) {
try {
String url;
if (Build.VERSION.SDK_INT >= 21) {
url = request.getUrl().toString();
} else {
url = view.getUrl();
}
return urlLoading(view, url);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
try {
return urlLoading(view, url);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
@Override
public void onPageFinished(final WebView view, String url) {
super.onPageFinished(view, url);
mIsClicked = false;
}
private boolean urlLoading(WebView view, String url) {
if (mIsClicked && url != null) {
mIsClicked = false;
// RCPC 리워드 지급 or 이미 지급 된 경우 바로 랜딩
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
return true;
} else {
view.loadUrl(url);
return false;
}
}
};
private View.OnTouchListener mOnTouchListener = new View.OnTouchListener() {
private float startX;
private float startY;
private float totalScrollY = 0;
private int CLICK_ACTION_THRESHOLD = 200;
private int SCROLL_ACTION_THRESHOLD = 1000;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
break;
case MotionEvent.ACTION_UP:
float endX = event.getX();
float endY = event.getY();
if (isAClick(startX, endX, startY, endY)) {
mIsClicked = true;
}
break;
}
return false;
}
private boolean isAClick(float startX, float endX, float startY, float endY) {
float differenceX = Math.abs(startX - endX);
float differenceY = Math.abs(startY - endY);
if (differenceX > CLICK_ACTION_THRESHOLD/* =5 */ || differenceY > CLICK_ACTION_THRESHOLD) {
return false;
}
return true;
}
};