package com.appassit.widget.pieView; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import com.appassit.R; import com.appassit.activitys.BaseActivity; import com.appassit.widget.material.MaterialDialog; /** * Controller for Quick Controls pie menu */ public class PieControl implements PieMenu.PieController, OnClickListener { protected BaseActivity mActivity; protected PieMenu mPie; protected int mItemSize; private PieItem mOptions; private PieItem mClose; private PieItem mInfo; private PieItem mShare; private MaterialDialog materialDialog; public PieControl(BaseActivity activity, PieViewControllee controller) { mActivity = activity; mItemSize = (int) activity.getResources().getDimension(R.dimen.qc_item_size); } public void attachToContainer(FrameLayout container) { if (mPie == null) { mPie = new PieMenu(mActivity); LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); mPie.setLayoutParams(lp); populateMenu(); mPie.setController(this); } container.addView(mPie); } public void removeFromContainer(FrameLayout container) { container.removeView(mPie); } protected void forceToTop(FrameLayout container) { if (mPie.getParent() != null) { container.removeView(mPie); container.addView(mPie); } } protected void setClickListener(OnClickListener listener, PieItem... items) { for (PieItem item : items) { item.getView().setOnClickListener(listener); } } protected void populateMenu() { mClose = makeItem(R.drawable.ic_close_window_holo_dark, 1); mInfo = makeItem(android.R.drawable.ic_menu_info_details, 1); mShare = makeItem(R.drawable.ic_share_holo_dark, 1); mOptions = makeItem(R.drawable.ic_settings_holo_dark, 1); // PieStackView stack = new PieStackView(mActivity); // stack.setLayoutListener(new OnLayoutListener() { // @Override // public void onLayout(int ax, int ay, boolean left) { // } // }); // // stack.setOnCurrentListener(mTabAdapter); // stack.setAdapter(mTabAdapter); setClickListener(this, mClose, mOptions, mShare, mInfo); // level 1 mPie.addItem(mClose); mPie.addItem(mOptions); // mOptions.addItem(makeFiller()); // /mOptions.addItem(makeFiller()); // mOptions.addItem(makeFiller()); mPie.addItem(mShare); mPie.addItem(mInfo); } @Override public void onClick(View v) { if (mShare.getView() == v) { } else if (mClose.getView() == v) { exitApp(); } else if (mInfo.getView() == v) { aboutUs(); } else if (mOptions.getView() == v) { } } protected PieItem makeItem(int image, int l) { ImageView view = new ImageView(mActivity); view.setImageResource(image); view.setMinimumWidth(mItemSize); view.setMinimumHeight(mItemSize); view.setScaleType(ScaleType.CENTER); LayoutParams lp = new LayoutParams(mItemSize, mItemSize); view.setLayoutParams(lp); return new PieItem(view, l); } protected PieItem makeFiller() { return new PieItem(null, 1); } // // static class TabAdapter extends BaseAdapter implements OnCurrentListener { // // LayoutInflater mInflater; // private List<Tab> mTabs; // private int mCurrent; // // public TabAdapter(Context ctx) { // mInflater = LayoutInflater.from(ctx); // mCurrent = -1; // } // // @Override // public int getCount() { // return mTabs.size(); // } // // @Override // public Tab getItem(int position) { // return mTabs.get(position); // } // // @Override // public long getItemId(int position) { // return position; // } // // @Override // public View getView(int position, View convertView, ViewGroup parent) { // final Tab tab = mTabs.get(position); // View view = mInflater.inflate(R.layout.qc_tab, // null); // ImageView thumb = (ImageView) view.findViewById(R.id.thumb); // TextView title1 = (TextView) view.findViewById(R.id.title1); // TextView title2 = (TextView) view.findViewById(R.id.title2); // Bitmap b = tab.getScreenshot(); // if (b != null) { // thumb.setImageBitmap(b); // } // if (position > mCurrent) { // title1.setVisibility(View.GONE); // title2.setText(tab.getTitle()); // } else { // title2.setVisibility(View.GONE); // title1.setText(tab.getTitle()); // } // view.setOnClickListener(new OnClickListener() { // @Override // public void onClick(View v) { // mUiController.switchToTab(tab); // } // }); // return view; // } // // @Override // public void onSetCurrent(int index) { // mCurrent = index; // } // // } @Override public boolean onOpen() { // TODO Auto-generated method stub return false; } @Override public void stopEditingUrl() { // TODO Auto-generated method stub } private void exitApp() { materialDialog = new MaterialDialog(mActivity); materialDialog.setMessage(R.string.quit_context).setNegativeButton(android.R.string.no, new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub materialDialog.dismiss(); } }).setPositiveButton(android.R.string.yes, new View.OnClickListener() { @Override public void onClick(View v) { materialDialog.dismiss(); mActivity.onExitApp(); } }); materialDialog.show(); } private void aboutUs() { materialDialog = new MaterialDialog(mActivity); materialDialog.setTitle(R.string.about).setMessage(R.string.about_context).setNegativeButton(android.R.string.no, new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub materialDialog.dismiss(); } }); materialDialog.show(); } }