package sj.keyboard; import android.app.Activity; import android.content.Context; import android.graphics.drawable.ColorDrawable; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.PopupWindow; import com.keyboard.view.R; import java.util.ArrayList; import sj.keyboard.adpater.PageSetAdapter; import sj.keyboard.data.PageSetEntity; import sj.keyboard.utils.EmoticonsKeyboardUtils; import sj.keyboard.widget.EmoticonsFuncView; import sj.keyboard.widget.EmoticonsIndicatorView; import sj.keyboard.widget.EmoticonsToolBarView; public class EmoticonsKeyBoardPopWindow extends PopupWindow implements EmoticonsFuncView.OnEmoticonsPageViewListener, EmoticonsToolBarView.OnToolBarItemClickListener { private Context mContext; protected EmoticonsFuncView mEmoticonsFuncView; protected EmoticonsIndicatorView mEmoticonsIndicatorView; protected EmoticonsToolBarView mEmoticonsToolBarView; public EmoticonsKeyBoardPopWindow(Context context) { super(context, null); this.mContext = context; LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View mConentView = inflater.inflate(R.layout.view_func_emoticon, null); setContentView(mConentView); setWidth(EmoticonsKeyboardUtils.getDisplayWidthPixels(mContext)); setHeight(EmoticonsKeyboardUtils.getDefKeyboardHeight(mContext)); setAnimationStyle(R.style.PopupAnimation); setOutsideTouchable(true); update(); ColorDrawable dw = new ColorDrawable(0000000000); setBackgroundDrawable(dw); updateView(mConentView); } private void updateView(View view) { mEmoticonsFuncView = ((EmoticonsFuncView) view.findViewById(R.id.view_epv)); mEmoticonsIndicatorView = (EmoticonsIndicatorView) view.findViewById(R.id.view_eiv); mEmoticonsToolBarView = (EmoticonsToolBarView) view.findViewById(R.id.view_etv); mEmoticonsFuncView.setOnIndicatorListener(this); mEmoticonsToolBarView.setOnToolBarItemClickListener(this); } public void setAdapter(PageSetAdapter pageSetAdapter) { if (pageSetAdapter != null) { ArrayList<PageSetEntity> pageSetEntities = pageSetAdapter.getPageSetEntityList(); if (pageSetEntities != null) { for (PageSetEntity pageSetEntity : pageSetEntities) { mEmoticonsToolBarView.addToolItemView(pageSetEntity); } } } mEmoticonsFuncView.setAdapter(pageSetAdapter); } public void showPopupWindow() { View rootView = EmoticonsKeyboardUtils.getRootView((Activity) mContext); if (this.isShowing()) { this.dismiss(); } else { EmoticonsKeyboardUtils.closeSoftKeyboard(mContext); this.showAtLocation(rootView, Gravity.BOTTOM, 0, 0); } } @Override public void emoticonSetChanged(PageSetEntity pageSetEntity) { mEmoticonsToolBarView.setToolBtnSelect(pageSetEntity.getUuid()); } @Override public void playTo(int position, PageSetEntity pageSetEntity) { mEmoticonsIndicatorView.playTo(position, pageSetEntity); } @Override public void playBy(int oldPosition, int newPosition, PageSetEntity pageSetEntity) { mEmoticonsIndicatorView.playBy(oldPosition, newPosition, pageSetEntity); } @Override public void onToolBarItemClick(PageSetEntity pageSetEntity) { mEmoticonsFuncView.setCurrentPageSet(pageSetEntity); } }