package net.dev123.yibo.service.listener;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.PopupWindow;
public class HomePageScreenToggleClickListener implements OnClickListener {
private ScreenToggle toggle;
public HomePageScreenToggleClickListener(ScreenToggle toggle) {
this.toggle = toggle;
}
@Override
public void onClick(View v) {
if (toggle == null) {
return;
}
toggle.toggle();
}
public static class ScreenToggle {
private PopupWindow toggleWindow;
private View parent;
private View headerView;
private View footerView;
private boolean isTurnOn;
public ScreenToggle(PopupWindow toggleWindow, View parent, View headerView, View footerView) {
this.toggleWindow = toggleWindow;
this.parent = parent;
this.headerView = headerView;
this.footerView = footerView;
this.isTurnOn = false;
int bottom = 0;
if (footerView != null) {
bottom = footerView.getHeight();
}
try {
toggleWindow.setAnimationStyle(0);
toggleWindow.showAtLocation(parent, Gravity.LEFT | Gravity.BOTTOM, 0, bottom);
} catch (Exception e) {};
}
public void toggle() {
if (isTurnOn) {
turnOff();
} else {
turnOn();
}
}
public void turnOn() {
if (isTurnOn) {
return;
}
if (headerView != null) {
headerView.setVisibility(View.GONE);
}
if (footerView != null) {
footerView.setVisibility(View.GONE);
}
if (toggleWindow != null) {
try {
if (toggleWindow.isShowing()) {
toggleWindow.dismiss();
}
toggleWindow.showAtLocation(parent, Gravity.LEFT | Gravity.BOTTOM, 0, 0);
} catch (Exception e) {}
}
isTurnOn = true;
}
public void turnOff() {
if (!isTurnOn) {
return;
}
int bottom = 0;
if (headerView != null) {
headerView.setVisibility(View.VISIBLE);
}
if (footerView != null) {
footerView.setVisibility(View.VISIBLE);
bottom = footerView.getHeight();
}
if (toggleWindow != null) {
try {
if (toggleWindow.isShowing()) {
toggleWindow.dismiss();
}
toggleWindow.showAtLocation(parent, Gravity.LEFT | Gravity.BOTTOM, 0, bottom);
//toggleWindow.update(0, bottom, -1, -1);
} catch (Exception e) {}
}
isTurnOn = false;
}
public void dismiss() {
turnOff();
if (toggleWindow != null) {
try {
if (toggleWindow.isShowing()) {
toggleWindow.dismiss();
}
} catch (Exception e) {}
}
}
}
}