package com.example.ndh.floatingball.sdk; import android.content.Context; import android.graphics.Color; import android.view.Gravity; import android.view.View; import android.util.Log; import android.widget.TextView; import com.example.ndh.floatingball.R; import java.lang.ref.WeakReference; import java.util.concurrent.CopyOnWriteArrayList; /** * Created by ndh on 16/12/16. */ public class MenuItemManager implements View.OnClickListener { private static final int ID_FLASH = 1; private static final int ID_CALANDER = 2; private static final int ID_ALARM = 3; private static final int ID_PHOTO = 4; private static final int ID_CONTACT = 5; CopyOnWriteArrayList<View> list = new CopyOnWriteArrayList<>(); static WeakReference<Context> mContext; private MenuItemManager() { } @NotProguard public static MenuItemManager create(Context context) { mContext = new WeakReference<Context>(context); return SingleInstance.INSTANCE; } @Override public void onClick(View view) { ActionManager.create().doAction(view.getContext(), (String) view.getTag()); if (FloatingWindowManager.create(view.getContext()).isOpen()) { FloatingWindowManager.create(view.getContext()).toggle(new int[]{}); } } private static class SingleInstance { public static final MenuItemManager INSTANCE = new MenuItemManager(); } int height = 0; private void addView(View view) { if (view.getMeasuredHeight() == 0) { view.measure(0, 0); } height = view.getMeasuredHeight() > height ? view.getMeasuredHeight() : height; list.add(view); Log.d("ndh--", "menuItem add to list"); } @NotProguard public int getItemHeight() { Log.d("ndh--", "itemHeight=" + height); return height; } @NotProguard public CopyOnWriteArrayList<View> getListOfViews() { return list; } @NotProguard public boolean clear() { list.clear(); return true; } int textSize = 10; @NotProguard public void createMenuItem() { TextView textView = new TextView(mContext.get()); textView.setTextSize(textSize); textView.setTextColor(Color.WHITE); textView.setText(ActionManager.create().getAction(Config.MenuPosition.MENU_1)); textView.setTag(Config.MenuPosition.MENU_1); textView.setGravity(Gravity.CENTER); textView.setBackgroundResource(R.drawable.bg_menu); TextView textView1 = new TextView(mContext.get()); textView1.setTextColor(Color.WHITE); textView1.setTextSize(textSize); textView1.setTag(Config.MenuPosition.MENU_2); textView1.setText(ActionManager.create().getAction(Config.MenuPosition.MENU_2)); textView1.setGravity(Gravity.CENTER); textView1.setBackgroundResource(R.drawable.bg_menu); TextView textView2 = new TextView(mContext.get()); textView2.setTextSize(textSize); textView2.setTextColor(Color.WHITE); textView2.setText(ActionManager.create().getAction(Config.MenuPosition.MENU_3)); textView2.setTag(Config.MenuPosition.MENU_3); textView2.setGravity(Gravity.CENTER); textView2.setBackgroundResource(R.drawable.bg_menu); TextView textView3 = new TextView(mContext.get()); textView3.setTextSize(textSize); textView3.setTextColor(Color.WHITE); textView3.setText(ActionManager.create().getAction(Config.MenuPosition.MENU_4)); textView3.setTag(Config.MenuPosition.MENU_4); textView3.setGravity(Gravity.CENTER); textView3.setBackgroundResource(R.drawable.bg_menu); TextView textView4 = new TextView(mContext.get()); textView4.setTextSize(textSize); textView4.setTextColor(Color.WHITE); textView4.setText(ActionManager.create().getAction(Config.MenuPosition.MENU_5)); textView4.setTag(Config.MenuPosition.MENU_5); textView4.setGravity(Gravity.CENTER); textView4.setBackgroundResource(R.drawable.bg_menu); addView(textView); addView(textView1); addView(textView2); addView(textView3); addView(textView4); textView.setOnClickListener(this); textView1.setOnClickListener(this); textView2.setOnClickListener(this); textView3.setOnClickListener(this); textView4.setOnClickListener(this); } }