package tv.emby.embyatv.ui; import android.app.Activity; import android.content.Context; import android.graphics.drawable.BitmapDrawable; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.PopupWindow; import android.widget.Spinner; import mediabrowser.apiinteraction.Response; import mediabrowser.model.entities.DisplayPreferences; import tv.emby.embyatv.R; import tv.emby.embyatv.TvApp; import tv.emby.embyatv.util.Utils; /** * Created by Eric on 8/23/2015. */ public class AudioDelayPopup { final int WIDTH = Utils.convertDpToPixel(TvApp.getApplication(), 240); final int HEIGHT = Utils.convertDpToPixel(TvApp.getApplication(), 130); PopupWindow mPopup; Activity mActivity; View mAnchor; NumberSpinner mDelaySpinner; public AudioDelayPopup(Activity activity, View anchor, ValueChangedListener<Long> listener) { mActivity = activity; LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.audio_delay_popup, null); mPopup = new PopupWindow(layout, WIDTH, HEIGHT); mPopup.setFocusable(true); mPopup.setOutsideTouchable(true); mPopup.setBackgroundDrawable(new BitmapDrawable()); // necessary for popup to dismiss mAnchor = anchor; mDelaySpinner = (NumberSpinner) layout.findViewById(R.id.numberSpinner); mDelaySpinner.setOnChangeListener(listener); } public boolean isShowing() { return (mPopup != null && mPopup.isShowing()); } public void show(long value) { mDelaySpinner.setValue(value); mPopup.showAtLocation(mAnchor, Gravity.CENTER_VERTICAL, mAnchor.getRight()-60, mAnchor.getTop()); } public void dismiss() { if (mPopup != null && mPopup.isShowing()) { mPopup.dismiss(); } } }