package com.abewy.android.apps.klyph.view;
import com.abewy.android.apps.klyph.R;
import android.content.Context;
import android.content.res.Resources;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.MeasureSpec;
public class DismissibleListItemView extends SlidingPanelLayout
{
private final int mDismissScrollDeltaThreshold;
private int mDismissWidthThreshold;
private boolean mDismissed = false;
private boolean mDismissible;
private TransalatableTextView mLeftBackgroundView;
private ListItemActionListener mListItemActionListener;
private int mRead = 0;
private TransalatableTextView mRightBackgroundView;
private int mScrollDelta;
private Runnable mScrollToInitialPositionRunnable = new Runnable() {
public final void run()
{
DismissibleListItemView.this.smoothScrollTo(0);
}
};
private Runnable mScrollToLeftRunnable = new Runnable() {
public final void run()
{
DismissibleListItemView.this
.smoothScrollTo(DismissibleListItemView.this.mWidth);
DismissibleListItemView.this.dismiss();
}
};
private Runnable mScrollToRightRunnable = new Runnable() {
public final void run()
{
DismissibleListItemView.this
.smoothScrollTo(-DismissibleListItemView.this.mWidth);
DismissibleListItemView.this.dismiss();
}
};
private int mWidth;
public DismissibleListItemView(Context paramContext)
{
this(paramContext, null);
}
public DismissibleListItemView(Context paramContext, AttributeSet paramAttributeSet)
{
this(paramContext, paramAttributeSet, 0);
}
public DismissibleListItemView(Context paramContext, AttributeSet paramAttributeSet, int paramInt)
{
super(paramContext, paramAttributeSet, paramInt);
setVertical(false);
setScrollEnabled(true);
this.mDismissScrollDeltaThreshold = paramContext.getResources().getDimensionPixelSize(R.dimen.notification_dismiss_scroll_delta_threshold);
}
private void onSwipeComplete(int paramInt)
{
if ((paramInt < -this.mDismissWidthThreshold)
|| ((paramInt < 0) && (this.mScrollDelta < 0) && (-this.mScrollDelta > this.mDismissScrollDeltaThreshold)))
{
post(this.mScrollToRightRunnable);
return;
}
if ((paramInt > this.mDismissWidthThreshold)
|| ((paramInt > 0) && (this.mScrollDelta > 0) && (this.mScrollDelta > this.mDismissScrollDeltaThreshold)))
{
post(this.mScrollToLeftRunnable);
return;
}
post(this.mScrollToInitialPositionRunnable);
}
private static void updateBackgroundView(TransalatableTextView transalatabletextview, int i, boolean flag)
{
if (flag)
{
i = -i;
}
if (transalatabletextview != null)
{
if (i > 0)
{
transalatabletextview.setVisibility(0);
int j = transalatabletextview.getMeasuredWidth();
float f;
if (i >= j)
{
f = 0F;
}
else
{
float f1 = i;
float f2 = j;
f = f1 - f2;
}
if (!flag)
{
f = -f;
}
transalatabletextview.setTranslate(f, 0F);
}
else
{
transalatabletextview.setVisibility(8);
}
}
}
public final void dismiss()
{
if (!this.mDismissed)
{
this.mDismissed = true;
if (this.mListItemActionListener != null)
this.mListItemActionListener.onDismiss();
}
}
public final void init(TransalatableTextView paramTransalatableTextView1, TransalatableTextView paramTransalatableTextView2, boolean paramboolean)
{
this.mDismissible = paramboolean;
this.mDismissed = false;
this.mLeftBackgroundView = paramTransalatableTextView1;
this.mRightBackgroundView = paramTransalatableTextView2;
if (this.mLeftBackgroundView != null)
this.mLeftBackgroundView.clearAnimation();
if (this.mRightBackgroundView != null)
this.mRightBackgroundView.clearAnimation();
reset(0);
}
protected void onLayout(boolean paramboolean, int paramInt1, int paramInt2, int paramInt3, int paramInt4)
{
this.mPanel.layout(0, 0, paramInt3 - paramInt1, paramInt4 - paramInt2);
}
protected void onMeasure(int paramInt1, int paramInt2)
{
this.mWidth = View.MeasureSpec.getSize(paramInt1);
this.mDismissWidthThreshold = ((int) (0.5F * this.mWidth));
int i = View.MeasureSpec.getSize(paramInt2);
int j = View.MeasureSpec.getMode(paramInt2);
this.mPanel.measure(View.MeasureSpec.makeMeasureSpec(this.mWidth, 1073741824), View.MeasureSpec.makeMeasureSpec(i, j));
super.onMeasure(paramInt1, View.MeasureSpec.makeMeasureSpec(this.mPanel.getMeasuredHeight(), 1073741824));
setScrollLimits(-this.mWidth, this.mWidth);
}
protected void onScrollChanged(int paramInt1, int paramInt2, int paramInt3, int paramInt4)
{
super.onScrollChanged(paramInt1, paramInt2, paramInt3, paramInt4);
this.mScrollDelta = (paramInt1 - paramInt3);
if (Math.abs(paramInt1) == this.mWidth)
dismiss();
updateBackgroundView(this.mLeftBackgroundView, paramInt1, true);
updateBackgroundView(this.mRightBackgroundView, paramInt1, false);
}
public boolean onTouchEvent(MotionEvent paramMotionEvent)
{
boolean flag = super.onTouchEvent(paramMotionEvent);
if ((!this.mDismissible) || (this.mRead == 1))
return false;
switch (paramMotionEvent.getAction())
{
case 2:
default:
case 1:
case 3:
}
/*int i = getScroll();
if ((i == 0) && (this.mListItemActionListener != null))
{
// this.mPanel.setBackgroundResource(R.color.generic_selected_item);
this.mPanel.postDelayed(new Runnable() {
public final void run()
{
DismissibleListItemView.this.setRead(1);
}
}, 300L);
this.mListItemActionListener.onClick();
}
else
{
onSwipeComplete(i);
}*/
//onSwipeComplete(getScroll());
return flag;
}
public void setDismissListener(ListItemActionListener paramListItemActionListener)
{
this.mListItemActionListener = paramListItemActionListener;
}
public void setRead(int i)
{
mRead = i;
View view = mPanel;
int flag;
if (mRead == 0)
{
// flag = R.drawable.notification_item_background_unread;
}
else
{
// flag = R.drawable.notification_item_background_read;
}
// view.setBackgroundResource(flag);
boolean f = false;
if (mRead != 1 && mDismissible)
{
f = true;
}
else
{
f = false;
}
setScrollEnabled(f);
}
public static abstract interface ListItemActionListener
{
public abstract void onClick();
public abstract void onDismiss();
}
}