Преглед на файлове

yujie : 图表代码迁移

jieyu преди 4 години
родител
ревизия
9a6a131aaf
променени са 16 файла, в които са добавени 4517 реда и са изтрити 231 реда
  1. 3 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/ChartDataAdapter.kt
  2. 3165 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/OTCChartActivity.java
  3. 494 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/AttornDataControl.java
  4. 1 1
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/MTPChartControl.java
  5. 33 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/OTCChartControl.java
  6. 1 21
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/timeCharts/KChartFragment.java
  7. 1 30
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/timeCharts/TimeChartFragment.java
  8. 390 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/CustomPopWindow.java
  9. 30 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/ScrollListView.java
  10. 289 0
      RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/TenMarketQuotationView.java
  11. 74 0
      RMA/app/src/main/res/layout/manage_ten_market_view.xml
  12. 16 0
      RMA/chart/src/main/java/com/desfate/chart/ui/old/OTC/listener/OnChartListener.java
  13. 0 179
      RMA/chart/src/main/java/com/desfate/chart/ui/old/adapter/HistoryQuoteResponse.java
  14. 1 0
      RMA/chart/src/main/java/com/desfate/chart/ui/old/adapter/HistoryTik.java
  15. 12 0
      RMA/chart/src/main/res/drawable/choice_bg_white.xml
  16. 7 0
      RMA/chart/src/main/res/values/colors.xml

+ 3 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/ChartDataAdapter.kt

@@ -2,6 +2,9 @@ package cn.muchinfo.rma.view.base.chart;
 
 import cn.muchinfo.rma.global.GlobalDataCollection
 
+/**
+ * 数据在这里适配
+ */
 class ChartDataAdapter {
 
     fun getGoodsData() : GlobalDataCollection? {

+ 3165 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/OTCChartActivity.java

@@ -0,0 +1,3165 @@
+package cn.muchinfo.rma.view.base.chart.old;
+
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.HorizontalScrollView;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
+import com.desfate.chart.event.ITouchEventResponse;
+import com.desfate.chart.ui.old.OTC.datas.SettlementPlan;
+import com.desfate.chart.ui.old.OnQuoteAddListener;
+import com.zhy.http.okhttp.OkHttpUtils;
+import com.zhy.http.okhttp.callback.StringCallback;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+import cn.muchinfo.rma.R;
+import cn.muchinfo.rma.global.data.GoodsInfoAndQuotes;
+import cn.muchinfo.rma.view.base.chart.old.controls.MTPChartControl;
+import cn.muchinfo.rma.view.base.chart.old.controls.OTCChartControl;
+import okhttp3.Call;
+//
+///**
+// * 做市的图表界面
+// *
+// * @author Administrator
+// */
+//public class OTCChartActivity extends MyAppCompatActivity implements OnClickListener, ITouchEventResponse, OnQuoteAddListener, OnChartListener {
+//
+//
+//    public static boolean drwaTimeChart = true;
+//
+//    public static boolean sendState = true;
+//
+//
+//
+//    public final static int TIK = 999;
+//
+//    // 表示请求动作
+//    /**
+//     * 请求1分钟线的分时图
+//     */
+//    private static final int R_TIME_1 = 0;
+//
+//
+//
+//    // 请求缺失的1分钟数据
+//    private static final int R_R_TIME = 9;
+//    // ------------ 基础数据 -000000000000
+//    // 控制器
+//    private MTPChartControl mtpChartControl;
+//
+//    // 商品id
+//    private int goodsId;
+//
+//    // 商品组id
+//    private int groupId;
+//    // 交易所id
+//    private String exchangeId = "";
+//
+//    // 商品在商品组或列表中的序号
+//    private int index = 0;
+//
+//    // 商品id列表
+//    private ArrayList<Integer> goodsIdList = new ArrayList<Integer>();
+//
+//    // 商品名字列表
+//    private String[] goodsNames;
+//
+//    // 商品信息
+//    private GoodsInfoAndQuotes goodsInfoAndQuotes;
+//
+//    // 碎片管理器
+//    private FragmentManager fragmentManager;
+//
+//    // k线碎片
+//    private KChartFragment kChartFragment = null;
+//
+//    // 分时图碎片
+//    private TimeChartFragment timeChartFragment = null;
+//
+//    /**
+//     * 分时数据tag,用于fragmentmanager中
+//     */
+//    private final String TAG_TIME = "time";
+//    /**
+//     * 分时数据tag,用于fragmentmanager中
+//     */
+//    private final String TAG_OTHER = "other";
+//
+//    /**
+//     * k线数据tag,用于fragmentmanager中
+//     */
+//    private final String TAG_K = "k_line";
+//
+//    // 图表数据类型key,用于从数据map中取数据
+//    private int dataType = -1;// 0 分时图, 1: 1分钟, 5: 5分钟, 30: 30分钟 240: 240分钟,-1表示其他
+//
+//    // 横竖屏 标志
+//    private int orientation;
+//
+//    // 结算计划
+//    private SettlementPlan settlementPlan = null;
+//
+//    // 是否需从intent获取商品信息,当reload的时候,不需要从intent中再次获取商品信息,因为已经设置好商品信息
+//    private boolean needGetGoodsInfo = true;
+//
+//    // 碎片操作事务
+//    private FragmentTransaction fragmentTransaction;
+//
+//    // --------------------控件区--------------------
+//    private TextView chart_title;// 图表上方title
+//    private ImageButton mtp_chart_back;// 返回键
+//    private TextView mtp_chart_title;// title
+//    private TextView mtp_chart_title_code;
+//    private View mtp_back;
+//    private View mtp_chart_buy;// 买入
+//    private View mtp_chart_sale;//
+//    private View mtp_chart_buy_close;// 买平
+//    private View mtp_chart_sell_close;// 卖平
+//    private View mtp_chart_attorn_buy;// 挂牌转让入口
+//    private View mtp_chart_attorn_sell;// 挂牌出售入口
+//    private View mtp_want_sell;//我要出售
+//    private View mtp_want_purchase;//我要购买
+//    //    private SearchHoldOrderData searchHoldOrderData;// 默认显示的对应goodsid商品的第一条单据
+//    private TextView mtp_chart_alarm;// 预警
+//    private TextView mtp_choice_add;// 添加删除自选
+//    private HorizontalScrollView mtp_chart_head;//
+//
+//    private RelativeLayout buy_or_sell_layout;
+//
+//
+//    private ImageView mtp_left;// 向左选择商品
+//    private ImageView mtp_right;// 向右选择商品
+//    private View mtp_goods;// 商品名区域
+//    private TextView goodsCodeTxt;// goodsCode显示区域
+//
+//
+//    // ----------------- tab区域 -----------------
+//
+//
+//    // 当前选择的tab
+//    private TextView currentTab = null;
+//
+//    private TextView mtp_time_chart;
+//    private TextView mtp_time_chart_b;
+//
+//    private TextView mtp_one_chart;
+//    private TextView mtp_one_chart_b;
+//
+//    private TextView mtp_five_chart;
+//    private TextView mtp_five_chart_b;
+//
+//    private TextView mtp_thirty_chart;
+//    private TextView mtp_thirty_chart_b;
+//
+//    private TextView mtp_one_hour_chart;
+//    private TextView mtp_one_hour_chart_b;
+//
+//    private TextView mtp_two_hour_chart;
+//    private TextView mtp_two_hour_chart_b;
+//
+//    private TextView mtp_four_hour_chart;
+//    private TextView mtp_four_hour_chart_b;
+//
+//    private TextView mtp_one_day_chart;
+//    private TextView mtp_one_day_chart_b;
+//
+//    // 买
+//    private TextView mtp_buy_value;
+//
+//    // 高
+//    private TextView mtp_high_value;
+//
+//    // 低
+//    private TextView mtp_low_value;
+//
+//    // 卖
+//    private TextView mtp_sale_value;
+//
+//    // 买入卖出等点击view
+//    private View buy_sale;
+//
+//    // 是否将图表重置
+//    private boolean reset = true;
+//
+//    // 现价
+//    private TextView mtp_now_price;
+//
+//    private TextView mtp_chart_opend_title; //今开标题
+//    // 今开
+//    private TextView mtp_chart_opend;
+//
+//    // 昨收
+//    private TextView mtp_chart_pre_close;
+//    private TextView mtp_pre_close;// 坐收
+//
+//    private TextView mtp_zhenfu_title; //振幅标题
+//    // 振幅
+//    private TextView mtp_zhenfu;
+//
+//    // 涨跌
+//    private TextView mtp_zhangdie;
+//
+//    // 涨幅
+//    private TextView mtp_zhangfu;
+//
+//    // 昨结算
+//    private TextView mtp_pre_settle;
+//
+//    private boolean isOncreate = true;
+//    private boolean isActivityResult = false; // 日线从另一界面返回
+//
+//    public TextView getMtpNowPrice() {
+//        return mtp_now_price;
+//    }
+//
+//    /**
+//     * 成功
+//     */
+//    private static final int Success = 0;
+//
+//    /**
+//     * 回应错误
+//     */
+//    private static final int ResponseError = 1;
+//
+//    /**
+//     * 回应数据文空
+//     */
+//    private static final int ResponseNull = 2;
+//
+//    /**
+//     * 超时
+//     */
+//    private static final int TimeOut = 3;
+//
+//    /**
+//     * 网络错误
+//     */
+//    private static final int NetError = 4;
+//
+//    private long lastRqMillisecond = 0;
+//
+//    private TenMarketQuotationView view;
+//
+//    @Override
+//    protected void onCreate(Bundle arg0) {
+//        drwaTimeChart = true;
+//        super.onCreate(arg0);
+//        setContentView(R.layout.chart_otc_chart);
+//        fragmentManager = getSupportFragmentManager();
+//        mtpChartControl = OTCChartControl.getInstance(this);
+//
+//        initViews();
+//        initListeners();
+//        initDatas();
+//        OTCChartControl.getInstance(this).setActivity(this);
+//
+//        mtp_chart_head.setVisibility(View.VISIBLE);
+//        chart_title.setVisibility(View.VISIBLE);
+//        loadTimeChartFragment();
+//        timeChartFragment.hideLineChart();
+//        dataType = ChartConstant.TIME;
+//        mtpChartControl.setCurrentTab(dataType);
+//
+//    }
+//
+//    @Override
+//    protected void onStart() {
+//        super.onStart();
+//    }
+//
+//
+//    private void initViews() {
+//        mtp_pre_close = findViewById(R.id.mtp_pre_close);
+//        mtp_now_price = findViewById(R.id.mtp_now_price);
+//        mtp_chart_opend_title = findViewById(R.id.mtp_chart_opend_title);
+//        mtp_chart_opend = findViewById(R.id.mtp_chart_opend);
+//        mtp_chart_pre_close = findViewById(R.id.mtp_chart_pre_close);
+//        mtp_zhenfu_title = findViewById(R.id.mtp_zhenfu_title);
+//        mtp_zhenfu = findViewById(R.id.mtp_zhenfu);
+//        mtp_zhangdie = findViewById(R.id.mtp_zhangdie);
+//        mtp_zhangfu = findViewById(R.id.mtp_zhangfu);
+//        mtp_pre_settle = findViewById(R.id.mtp_pre_settle);
+//
+//        mtp_chart_title_code = findViewById(R.id.mtp_chart_title_code);
+//
+//        mtp_chart_back = findViewById(R.id.mtp_chart_back);
+//        mtp_chart_title = findViewById(R.id.mtp_chart_title);
+//        mtp_back = findViewById(R.id.chart_back);
+//        mtp_chart_buy = findViewById(R.id.mtp_chart_buy);
+//        mtp_chart_sale = findViewById(R.id.mtp_chart_sell);
+//        mtp_chart_buy_close = findViewById(R.id.mtp_chart_buy_close);
+//        mtp_chart_sell_close = findViewById(R.id.mtp_chart_sell_close);
+//        mtp_chart_attorn_buy = findViewById(R.id.mtp_chart_attorn_buy);
+//        mtp_chart_attorn_sell = findViewById(R.id.mtp_chart_attorn_sell);
+//
+//        mtp_want_sell = findViewById(R.id.mtp_want_sell);
+//        mtp_want_purchase = findViewById(R.id.mtp_want_purchase);
+//        mtp_time_chart = findViewById(R.id.mtp_time_chart);
+//        mtp_choice_add = findViewById(R.id.mtp_choice_add);
+//        if(Config.ZJREDESIGNSTATE && GlobalDataCollention.getInstance().isTouristor()){
+//            mtp_choice_add.setVisibility(View.GONE);
+//        }else{
+//            mtp_choice_add.setVisibility(View.VISIBLE);
+//        }
+//        currentTab = mtp_time_chart;
+//        mtp_time_chart_b = findViewById(R.id.mtp_time_chart_b);
+//        chart_title = findViewById(R.id.chart_title);
+//        mtp_chart_head = findViewById(R.id.mtp_chart_head);
+//        mtp_one_chart = findViewById(R.id.mtp_one_chart);
+//        mtp_one_chart_b = findViewById(R.id.mtp_one_chart_b);
+//
+//        mtp_five_chart = findViewById(R.id.mtp_five_chart);
+//        mtp_five_chart_b = findViewById(R.id.mtp_five_chart_b);
+//
+//        mtp_thirty_chart = findViewById(R.id.mtp_thirty_chart);
+//        mtp_thirty_chart_b = findViewById(R.id.mtp_thirty_chart_b);
+//
+//        mtp_one_hour_chart = findViewById(R.id.mtp_one_hour_chart);
+//        mtp_one_hour_chart_b = findViewById(R.id.mtp_one_hour_chart_b);
+//
+//        mtp_two_hour_chart = findViewById(R.id.mtp_two_hour_chart);
+//        mtp_two_hour_chart_b = findViewById(R.id.mtp_two_hour_chart_b);
+//
+//        mtp_four_hour_chart = findViewById(R.id.mtp_four_hour_chart);
+//        mtp_four_hour_chart_b = findViewById(R.id.mtp_four_hour_chart_b);
+//
+//        mtp_one_day_chart = findViewById(R.id.mtp_one_day_chart);
+//        mtp_one_day_chart_b = findViewById(R.id.mtp_one_day_chart_b);
+//
+//        buy_or_sell_layout = findViewById(R.id.buy_or_sell_layout);
+//
+//        buy_sale = findViewById(R.id.mtp_chart_bottom);
+//        mtp_buy_value = findViewById(R.id.mtp_buy_value);
+//        mtp_high_value = findViewById(R.id.mtp_high_value);
+//        mtp_low_value = findViewById(R.id.mtp_low_value);
+//        mtp_sale_value = findViewById(R.id.mtp_sale_value);
+//        mtp_goods = findViewById(R.id.mtp_goods);
+//        mtp_left = findViewById(R.id.mtp_left);
+//        mtp_right = findViewById(R.id.mtp_right);
+//        setTabSelect(R.id.mtp_time_chart);
+//    }
+//
+//    private void initListeners() {
+//        mtp_goods.setOnClickListener(this);
+//        mtp_chart_back.setOnClickListener(this);
+//        mtp_chart_buy.setOnClickListener(this);
+//        mtp_chart_sale.setOnClickListener(this);
+//        mtp_chart_buy_close.setOnClickListener(this);
+//        mtp_chart_sell_close.setOnClickListener(this);
+//        mtp_choice_add.setOnClickListener(this);
+//        mtp_time_chart.setOnClickListener(l);
+//        mtp_one_chart.setOnClickListener(l);
+//        mtp_five_chart.setOnClickListener(l);
+//        mtp_thirty_chart.setOnClickListener(l);
+//        mtp_one_hour_chart.setOnClickListener(l);
+//        mtp_two_hour_chart.setOnClickListener(l);
+//        mtp_four_hour_chart.setOnClickListener(l);
+//        mtp_one_day_chart.setOnClickListener(l);
+//        mtp_left.setOnClickListener(this);
+//        mtp_right.setOnClickListener(this);
+//        mtp_chart_attorn_buy.setOnClickListener(this);
+//        mtp_chart_attorn_sell.setOnClickListener(this);
+//        mtp_want_sell.setOnClickListener(this);
+//        mtp_want_purchase.setOnClickListener(this);
+//    }
+//
+//    /**
+//     * 挂摘牌模式时只显示我要购买和我要出售,其他全部隐藏
+//     */
+//    private void delistingModeShow() {
+//        //期权模式  今开  昨收  振幅  都改成其他
+//        if (getTradeMode() != -1) {
+//            if (getTradeMode() == MTPEnums.TRADEMODE_OPTION) {  //期权模式
+//                mtp_chart_opend_title.setText(getString(R.string.BUSINESS_MOUNT));
+//                if(Config.ZYSTATE){
+//                    mtp_chart_opend_title.setVisibility(View.INVISIBLE);
+//                }else{
+//                    mtp_chart_opend_title.setVisibility(View.VISIBLE);
+//                }
+//                mtp_pre_close.setText(getString(R.string.BUSINESS_KEEPUNIT));
+//                mtp_zhenfu_title.setText(getString(R.string.BUSINESS_AMOUNT));
+//            } else {
+//                mtp_chart_opend_title.setText(getString(R.string.chart_kaipan));
+//                mtp_pre_close.setText(getString(R.string.chart_pre_settle));
+//                mtp_zhenfu_title.setText(getString(R.string.chart_zhengfu));
+//            }
+//        }
+//
+//        if (ParamConfigData.DisplayMode == 2) {
+//            //挂摘牌模式显示我要购买我要出售
+//            mtp_want_sell.setVisibility(View.VISIBLE);
+//            mtp_want_purchase.setVisibility(View.VISIBLE);
+//            mtp_chart_buy_close.setVisibility(View.GONE);
+//            mtp_chart_sell_close.setVisibility(View.GONE);
+//            mtp_chart_sale.setVisibility(View.GONE);
+//            mtp_chart_buy.setVisibility(View.GONE);
+//            mtp_chart_attorn_sell.setVisibility(View.GONE);
+//            mtp_chart_attorn_buy.setVisibility(View.GONE);
+//
+//        }
+//    }
+//
+//    /**
+//     * 加载分时图 <li>分时图和K线图同时存在,有可能引起刷新卡的问题,后期真机调试再看具体情况
+//     */
+//    private void loadTimeChartFragment() {
+//        if (currentTab == mtp_time_chart) {
+//            fragmentTransaction = fragmentManager.beginTransaction();
+//            if (fragmentManager.findFragmentByTag(TAG_TIME) != null) {
+//                timeChartFragment = (TimeChartFragment) fragmentManager.findFragmentByTag(TAG_TIME);
+//            } else {
+//                timeChartFragment = new TimeChartFragment();
+//                timeChartFragment.setGoods(goodsInfoAndQuotes);
+//            }
+//            if (timeChartFragment.isAdded()) {
+//                fragmentTransaction.show(timeChartFragment);
+//                if (kChartFragment != null) {
+//                    fragmentTransaction.hide(kChartFragment);
+//                }
+//                fragmentTransaction.commit();
+//                return;
+//            }
+//            fragmentTransaction.add(R.id.mtp_chart_container, timeChartFragment, TAG_TIME);
+//            fragmentTransaction.commit();
+//        }
+//    }
+//
+//    @Override
+//    public void onWindowFocusChanged(boolean hasFocus) {
+//        super.onWindowFocusChanged(hasFocus);
+//        if (hasFocus && timeChartFragment != null) {
+//            timeChartFragment.show(getResources().getString(R.string.chart_loading_data), true, new LocalHandleListener() {
+//
+//                @Override
+//                public void onTimeOut() {
+//                    if (currentTab.getId() == R.id.mtp_time_chart) {
+//                        timeChartFragment.setNoneState(View.VISIBLE);
+//                        timeChartFragment.hideLineChart();
+//                    }
+//                }
+//            });
+//            requestSettlementPlan();
+//        }
+//    }
+//
+//    /**
+//     * 加载K图表 <li>分时图和K线图同时存在,有可能引起刷新卡的问题,后期真机调试再看具体情况
+//     */
+//    private void loadKChartFragment(String line) {
+//        if (currentTab != mtp_time_chart) {
+//            fragmentTransaction = fragmentManager.beginTransaction();
+//            if (fragmentManager.findFragmentByTag(TAG_K) != null) {
+//                kChartFragment = (KChartFragment) fragmentManager.findFragmentByTag(TAG_K);
+//            } else {
+//                kChartFragment = new KChartFragment();
+//            }
+//
+//            kChartFragment.setCurrentLine(line);// K线的变化 ,通知K线碎片;
+//
+//            if (kChartFragment.isAdded()) {// 如果已经添加,就直接显示出来。
+//                fragmentTransaction.show(kChartFragment);
+//                if (timeChartFragment != null) {
+//                    fragmentTransaction.hide(timeChartFragment);
+//                }
+//                fragmentTransaction.commit();
+//                return;
+//            }
+//            fragmentTransaction.add(R.id.mtp_chart_container, kChartFragment, TAG_K);
+//            fragmentTransaction.commitAllowingStateLoss();
+//        }
+//    }
+//
+//    /**
+//     * 得到goodsInfo
+//     */
+//    private void makeGoodsInfo() {
+//        if (getIntent() != null) {
+//            if (needGetGoodsInfo) {  //是否需要获取商品信息
+//                goodsId = getIntent().getIntExtra("key_goodsId", 0);  //按商品自己的id
+//                groupId = getIntent().getIntExtra("key_groupId", 0);  //按市场分类
+//                needGetGoodsInfo = false;
+//            }
+//            if (goodsId != 0) {
+//                mtpChartControl.setGoodsId(goodsId);
+//                goodsInfoAndQuotes = GlobalDataCollention.getInstance().getmGoodsInfoClass().get(goodsId);   //获取商品信息
+//                try {
+//                    //当前没有游客登录
+////                if (GlobalDataCollention.getInstance().getLoginData() == null) {// 应该是游客登录
+//                    exchangeId = goodsInfoAndQuotes.getExchangeHqCode();
+////                } else {
+////                    exchangeId = String.valueOf(GlobalDataCollention.getInstance().getLoginData().getExchId());// 向唐公子确认过
+////                }
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//            }
+//
+//
+//            // 如果传了商品组id,计算商品序号,设置数据等  没有之前的商品组了 现在按市场分类  重新组装数据
+//            if (groupId != 0) {
+//
+//                List<GoodsInfoData> goodsInfoData = new ArrayList<>();   //商品数据
+//                goodsInfoData = GlobalDataCollention.getInstance().getMarketAndGoods().get(groupId);
+//
+//                if (goodsInfoData == null || goodsInfoData.isEmpty()) {
+//                    return;
+//                }
+//
+//                if (goodsInfoData.size() == 0) {
+//                    setLeftRightState();
+//                    return;
+//                }
+//                setGoodsInfo(goodsInfoData);
+//
+//                return;
+//
+//            } else {
+//                List<GoodsInfoData> goodsInfoData = new ArrayList<>();   //商品数据
+//                // 如果没传商品id,则为自选,获取自选商品信息
+//                goodsInfoData = GlobalDataCollention.getInstance().getGoodsWithIds(SqliteOperateInstance.getInstance().searchDBMarketChoice());
+//                setGoodsInfo(goodsInfoData);
+//            }
+//        }
+//    }
+//
+//    /**
+//     * 设置商品信息
+//     *
+//     * @param goodsInfoData
+//     */
+//    private void setGoodsInfo(List<GoodsInfoData> goodsInfoData) {
+//    	if(goodsInfoData == null){
+//    		return ;
+//    	}
+//        goodsNames = new String[goodsInfoData.size()];
+//        goodsIdList.clear();  //清空商品id列表
+//        int key = 0;
+//        for (GoodsInfoData goodsInfoItem : goodsInfoData) {
+//            if (goodsInfoItem.getMarketID() == groupId) {
+//                goodsIdList.add(goodsInfoItem.getGoodsId());       //设置商品id列表
+//                goodsNames[key] = goodsInfoItem.getGoodsName();  //设置商品名称列表
+//                key++;
+//            }
+//        }
+//        if (goodsIdList != null && goodsIdList.size() > 0) {
+//            goodsInfoAndQuotes = GlobalDataCollention.getInstance().getmGoodsInfoClass().get(goodsIdList.get(index));   //获取商品信息
+//        }
+//        setLeftRightState();
+//    }
+//
+//    /**
+//     * 初始化数据
+//     */
+//    private void initDatas() {
+//        lastRqMillisecond = 0;
+//        makeGoodsInfo();  //获取商品信息
+//
+//        if (goodsInfoAndQuotes == null) {
+//            showToast(R.string.chart_data_error);
+//            mtp_now_price.setText("--");
+//            mtp_pre_settle.setText("--");
+//            finish();
+//            return;
+//        }
+//        // 设置title
+//        try {
+//            mtp_chart_title.setText(goodsInfoAndQuotes.getGoodsInfo().getGoodsName());
+//            mtp_chart_title_code.setText(goodsInfoAndQuotes.getGoodsInfo().getGoodsCode());
+//            if (GlobalDataCollention.getInstance().getAccountInfoData() != null) {// 正常登陆
+//                // 添加我的自选的状态  判断是都添加了自选
+//                if (SqliteOperateInstance.getInstance().checkDBMarketChoice(goodsId + ""))
+//                    delChoice(true);
+//                Drawable top = getResources().getDrawable(R.mipmap.search_add);
+//                mtp_choice_add.setCompoundDrawablesRelativeWithIntrinsicBounds(null, top, null, null);
+//            } else {
+//                delChoice(false);
+//                Drawable top = getResources().getDrawable(R.mipmap.search_sub);
+//                mtp_choice_add.setCompoundDrawablesRelativeWithIntrinsicBounds(null, top, null, null);
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//
+//        // 设置高低买卖
+//        refreshBSHL();
+//        makePankou();// 盘口相关
+//        int decimalPlace = 0;
+//        try {
+//            decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        if (goodsInfoAndQuotes.getQuoteDay() != null) {
+//            if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPrice())) {
+//                mtp_now_price.setText("--");
+//                mtp_now_price.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//            } else {
+//                mtp_now_price.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getPrice(), decimalPlace));
+////                if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                    // 红涨
+////                    mtp_now_price.setTextColor(getResources().getColor(R.color.p_up_color));
+////                } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                    // 绿跌
+////                    mtp_now_price.setTextColor(getResources().getColor(R.color.p_down_color));
+////                }
+//                TextViewColorUtils.setMyTextColor(mtp_now_price, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+//            }
+//
+//            if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+//                mtp_pre_settle.setText("--");
+//            } else {
+//                mtp_pre_settle.setText(MathUtil.roundNum(goodsInfoAndQuotes.getQuoteDay().getPreSettle(), decimalPlace));
+//            }
+//        }
+//
+//        showBottom();
+//
+//        delistingModeShow();
+//    }
+//
+//
+//    /**
+//     * 是否支持挂牌转让
+//     *
+//     * @return
+//     */
+//    private boolean supportAttorn() {
+//        return Config.QUOTED_TRANSFER;
+//    }
+//
+//    /**
+//     * 底部显示的按钮
+//     */
+//    private void showBottom() {
+//
+//        if (SqliteOperateInstance.getInstance().checkDBMarketChoice(String.valueOf(goodsId))) {
+//            Drawable drawable = getResources().getDrawable(R.mipmap.search_sub);
+//            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+//            mtp_choice_add.setCompoundDrawables(null, drawable, null, null);
+//            mtp_choice_add.setText(getString(R.string.p_add_success));
+//
+//        } else {
+//            Drawable drawable = getResources().getDrawable(R.mipmap.search_add);
+//            drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+//            mtp_choice_add.setCompoundDrawables(null, drawable, null, null);
+//            mtp_choice_add.setText(getString(R.string.chart_add_choice));
+//
+//        }
+//            // 挂牌转让跳入
+//        mtp_chart_buy_close.setVisibility(View.GONE);
+//        mtp_chart_sell_close.setVisibility(View.GONE);
+//        mtp_chart_sale.setVisibility(View.GONE);
+//        mtp_chart_attorn_buy.setVisibility(View.VISIBLE);
+//        mtp_chart_buy.setVisibility(View.GONE);
+//        mtp_chart_attorn_sell.setVisibility(View.GONE);
+//        mtp_choice_add.setVisibility(View.VISIBLE);
+//
+//    }
+//
+//    /**
+//     * 交易模式
+//     *
+//     * @return
+//     */
+//    public int getTradeMode() {
+//        if (goodsInfoAndQuotes != null) {
+//            return goodsInfoAndQuotes.getTradeMode();
+//        } else {
+//            return -1;
+//        }
+//    }
+//
+//    /**
+//     * 设置盘口数据
+//     */
+//    private void makePankou() {
+//        if (goodsInfoAndQuotes == null || goodsInfoAndQuotes.getQuoteDay() == null) {
+//            return;
+//        }
+//
+//        try {
+//            int decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//
+//            if (getTradeMode() == MTPEnums.TRADEMODE_OPTION) {  //期权模式
+//                BidQuoteDay bidDay = (BidQuoteDay) goodsInfoAndQuotes.getQuoteDay();
+//                //    <!-- 期权交易 -->
+//                //成交量 持仓量  周期/行权日
+//                if (bidDay != null) {
+//                    //设置成交量
+//                    mtp_chart_opend.setText(bidDay.getTotalVolume());
+//                    if(Config.ZYSTATE){
+//                        mtp_chart_opend.setVisibility(View.INVISIBLE);
+//                    }else{
+//                        mtp_chart_opend.setVisibility(View.VISIBLE);
+//                    }
+//                    //设置持仓量
+//                    mtp_chart_pre_close.setText(bidDay.getHoldVolume());
+//                    //周期/行权日
+//                    mtp_zhenfu.setText("T +" + GlobalDataCollention.getInstance().getOptionParamByGoodsId(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getGoodsId())).getExpirecycle());
+//                }
+//
+//                buy_or_sell_layout.setVisibility(View.INVISIBLE);
+//            } else {
+//                if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getOpened())) {
+//                    mtp_chart_opend.setText("--");
+//                    mtp_chart_opend.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//                } else {
+//                    mtp_chart_opend.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getOpened(), decimalPlace));
+//                    TextViewColorUtils.setMyTextColor(mtp_chart_opend, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+////                    if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()) > Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                        // 红涨
+////                        mtp_chart_opend.setTextColor(getResources().getColor(R.color.p_up_color));
+////                    } else if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()) < Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                        // 绿跌
+////                        mtp_chart_opend.setTextColor(getResources().getColor(R.color.p_down_color));
+////                    } else if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()) == Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                        // 黑色
+////                        mtp_chart_opend.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+////                    }
+//                }
+//                mtp_chart_pre_close.setText(MathUtil.roundNoNum(goodsInfoAndQuotes.getQuoteDay().getPreSettle(), decimalPlace));
+//                if (goodsInfoAndQuotes.getQuoteDay().getAmplitude() == null || goodsInfoAndQuotes.getQuoteDay().getAmplitude().isEmpty()
+//                        || goodsInfoAndQuotes.getQuoteDay().getAmplitude().equals("0")) {
+//                    mtp_zhenfu.setText("--");
+//                } else {
+//                    if(goodsInfoAndQuotes.getQuoteDay().getAmplitude().equals("--")){
+//                        mtp_zhenfu.setText("--");
+//                    }else {
+//                        mtp_zhenfu.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getAmplitude(), 2) + "%");
+//                        double zf = Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getAmplitude());
+//                        if (zf == 0) {
+//                            mtp_zhenfu.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//                        } else if (zf > 0) {
+//                            mtp_zhenfu.setTextColor(getResources().getColor(R.color.p_up_color));
+//                        } else if (zf < 0) {
+//                            mtp_zhenfu.setTextColor(getResources().getColor(R.color.p_down_color));
+//                        }
+//                    }
+//
+//                }
+//
+//                buy_or_sell_layout.setVisibility(View.VISIBLE);
+//            }
+//
+//
+//
+//
+//            if (goodsInfoAndQuotes.getQuoteDay().getUpDownValue() == null || goodsInfoAndQuotes.getQuoteDay().getUpDownValue().isEmpty()
+//                    || goodsInfoAndQuotes.getQuoteDay().getUpDownValue().equals("--")) {
+//                mtp_zhangdie.setText("--");
+//                mtp_zhangdie.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//            } else {
+//                mtp_zhangdie.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getUpDownValue(), goodsInfoAndQuotes.getGoodsInfo()
+//                        .getDecimalPlace()));
+//                TextViewColorUtils.setMyTextColorPersent(mtp_zhangdie, Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getUpDownValue(), goodsInfoAndQuotes.getGoodsInfo()
+//                        .getDecimalPlace()), "0");
+//            }
+//
+//            if (goodsInfoAndQuotes.getQuoteDay().getUpDownRange() == null || goodsInfoAndQuotes.getQuoteDay().getUpDownRange().isEmpty()
+//                    || goodsInfoAndQuotes.getQuoteDay().getUpDownRange().equals("--")) {
+//                mtp_zhangfu.setText("--");
+//                mtp_zhangfu.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//            } else {
+//                StringBuilder sb = new StringBuilder().append(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getUpDownRange(), 2)).append("%");
+//                mtp_zhangfu.setText(sb.toString());
+//                TextViewColorUtils.setMyTextColorPersent(mtp_zhangfu, Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getUpDownRange(), 2), "0");
+//            }
+//
+//
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//
+//    }
+//
+//    /**
+//     * 刷新高低买卖
+//     */
+//    private void refreshBSHL() {
+//        if (goodsInfoAndQuotes == null || goodsInfoAndQuotes.getQuoteDay() == null) {
+//            mtp_sale_value.setText("--");
+//            mtp_buy_value.setText("--");
+//            mtp_high_value.setText("--");
+//            mtp_low_value.setText("--");
+//            return;
+//        }
+//
+//        // 设置高低买卖
+//        int decial = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//        if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getAsk())) {
+//            mtp_sale_value.setText("--");
+//            mtp_sale_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        } else {
+//            mtp_sale_value.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getAsk(), decial));
+////            if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                // 红涨
+////                mtp_sale_value.setTextColor(getResources().getColor(R.color.p_up_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                // 绿跌
+////                mtp_sale_value.setTextColor(getResources().getColor(R.color.p_down_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 0) {
+////                // 黑色
+////                mtp_sale_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+////            }
+//            TextViewColorUtils.setMyTextColor(mtp_sale_value, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+//        }
+//
+//        if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getBid())) {
+//            mtp_buy_value.setText("--");
+//        } else {
+//            mtp_buy_value.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getBid(), decial));
+////            if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                // 红涨
+////                mtp_buy_value.setTextColor(getResources().getColor(R.color.p_up_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                // 绿跌
+////                mtp_buy_value.setTextColor(getResources().getColor(R.color.p_down_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 0) {
+////                // 黑色
+////                mtp_buy_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+////            }
+//            TextViewColorUtils.setMyTextColor(mtp_buy_value, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+//        }
+//
+//        if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getHighest())) {
+//            mtp_high_value.setText("--");
+//            mtp_high_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        } else {
+//            mtp_high_value.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getHighest(), decial));
+//            TextViewColorUtils.setMyTextColor(mtp_high_value, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+////            if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                // 红涨
+////                mtp_high_value.setTextColor(getResources().getColor(R.color.p_up_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                // 绿跌
+////                mtp_high_value.setTextColor(getResources().getColor(R.color.p_down_color));
+////            } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 0) {
+////                // 黑色
+////                mtp_high_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+////            }
+//        }
+//        if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getLowest())) {
+//            mtp_low_value.setText("--");
+//            mtp_low_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        } else {
+//            mtp_low_value.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getLowest(), decial));
+//            TextViewColorUtils.setMyTextColor(mtp_low_value, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+////            if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getLowest()) > Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                // 红涨
+////                mtp_low_value.setTextColor(getResources().getColor(R.color.p_up_color));
+////            } else if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getLowest()) < Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                // 绿跌
+////                mtp_low_value.setTextColor(getResources().getColor(R.color.p_down_color));
+////            } else if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getLowest()) == Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+////                // 黑色
+////                mtp_low_value.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+////            }
+//        }
+//    }
+//
+//    /**
+//     * <li>只提供给tab使用的事件
+//     */
+//    OnClickListener l = new OnClickListener() {
+//        @Override
+//        public void onClick(View v) {
+//
+//            if (currentTab == v) {
+//                return;
+//            }
+//            chart_title.setText("");
+//            currentTab = (TextView) v;// 全局保存当前的tab
+//            setTabSelect(v.getId());// 改变状态
+//            switch (v.getId()) {
+//                case R.id.mtp_time_chart:// 分时图
+//                    dataType = ChartConstant.TIME;
+//                    timeChartFragment.hideLineChart();
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadTimeChartFragment();
+//                    timeChartFragment.show(getResources().getString(R.string.chart_loading_data), true, new LocalHandleListener() {
+//
+//                        @Override
+//                        public void onTimeOut() {
+//                            timeChartFragment.setNoneState(View.VISIBLE);
+//                        }
+//                    });
+//                    requestSettlementPlan();
+//                    // 考虑到数据将要缓存,不能够每次点击都直接请求了
+//                    // 如果是横屏,使用1分钟数据画分时图
+//                    break;
+//                case R.id.mtp_one_chart:// 1分钟线
+//                    dataType = ChartConstant.K_1;
+//                    reset = true;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M1);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Minute, MTPEnums.R_K_1);
+//                    break;
+//                case R.id.mtp_five_chart:// 5分钟线
+//                    reset = true;
+//                    dataType = ChartConstant.K_5;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M5);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Minute5, MTPEnums.R_K_5);
+//                    break;
+//                case R.id.mtp_thirty_chart:// 30分钟线
+//                    reset = true;
+//                    dataType = ChartConstant.K_30;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M30);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                    break;
+//                case R.id.mtp_one_hour_chart:// 1小时线
+//                    reset = true;
+//                    dataType = ChartConstant.K_60;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M60);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+////				FIXME requestKChartData(MTPEnums.HistoryData_Minute60, R_K_60);
+//                    requestKChartData(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                    break;
+//                case R.id.mtp_two_hour_chart:
+//                    reset = true;
+//                    dataType = ChartConstant.K_120;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M120);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//
+//                    break;
+//                case R.id.mtp_four_hour_chart:
+//                    reset = true;
+//                    dataType = ChartConstant.K_240;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_M240);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                    break;
+//                case R.id.mtp_one_day_chart:
+//                    reset = true;
+//                    dataType = ChartConstant.K_DAY;
+//                    mtpChartControl.setStartIndex(-1);
+//                    mtpChartControl.setPreSize(0);
+//                    mtpChartControl.setCurrentTab(dataType);
+//                    loadKChartFragment(MTPChartControl.K_DAY);
+//                    kChartFragment.hideKChart();
+//                    kChartFragment.resetMaxStickNumber();
+//                    kChartFragment.loadLocalData(chart_title, reset, true);
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    requestKChartData(MtpConstant.HistoryData_Day, MTPEnums.R_K_DAY);
+//                    break;
+//                default:
+//                    break;
+//            }
+//        }
+//    };
+//
+//
+//    /**
+//     * 请求分时图数据
+//     */
+//    public void requestTimeChartData() {
+//        dataType = ChartConstant.TIME;
+//        timeChartFragment.hideLineChart();
+//        mtpChartControl.setCurrentTab(dataType);
+//        loadTimeChartFragment();
+//        timeChartFragment.show(getResources().getString(R.string.chart_loading_data), true, new LocalHandleListener() {
+//
+//            @Override
+//            public void onTimeOut() {
+//                timeChartFragment.setNoneState(View.VISIBLE);
+//            }
+//        });
+//        // 先请求结算计划
+//        requestSettlementPlan();
+//    }
+//
+//    public SettlementPlan getSettlementPlan() {
+//        return settlementPlan;
+//    }
+//
+//
+//
+//    /**
+//     * 请求结算计划
+//     */
+//    private void requestSettlementPlan() {
+//        if(goodsInfoAndQuotes.getTradeMode() == 99){  //99行情的情况  结算计划就不是从proto请求来的  是从通用查询请求来的
+//            NinetyNineMarketUtils.QueryQuoteSource();
+//            NinetyNineMarketUtils.QuerySummerTime();  //请求夏令时
+//        }else{
+//            if(Config.ZJREDESIGNSTATE && GlobalDataCollention.getInstance().isTouristor()){
+//                Calendar calendar = Calendar.getInstance();
+//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                int week = TimeUtils.getWeek(sdf.format(calendar.getTime()), "yyyy-MM-dd HH:mm:ss");
+//
+//                OkHttpUtils.get()
+//                        .url(AddressConfig.AUTH_LOGIN_ADDRESS +"/common/query2?statementid=marketRunSectiionQueryReq")
+//                        .addParams("data", "{\"tradeWeekDay\":\"" + week + "\"}")
+//                        .build()
+//                        .execute(new StringCallback() {
+//                            @Override
+//                            public void onError(Call call, Exception e, int id) {
+//                            }
+//
+//                            @Override
+//                            public void onResponse(String response, int id) {
+//                                VisitorTools.resolveSettleInfo(response);
+//                                SettlementData();
+//                            }
+//                        });
+//            }else {
+//                SettlementModel model = new SettlementModel();  //请求结算计划
+//                model.RequestSettlement();
+//            }
+//        }
+//    }
+//
+//    private void requestKLastchartData() {
+//        switch (dataType) {
+//            case ChartConstant.K_1:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute, MTPEnums.R_K_1);
+//                break;
+//            case ChartConstant.K_5:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute5, MTPEnums.R_K_5);
+//                break;
+//            case ChartConstant.K_30:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                break;
+//            case ChartConstant.K_60:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                break;
+//            case ChartConstant.K_120:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                break;
+//            case ChartConstant.K_240:
+//                kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                requestKChartDataLast(MtpConstant.HistoryData_Minute30, MTPEnums.R_K_30);
+//                break;
+//            case ChartConstant.K_DAY:
+//                if (!isActivityResult) {
+//                    kChartFragment.show(getResources().getString(R.string.chart_loading_data), true);
+//                    isActivityResult = false;
+//                }
+//                requestKChartDataLast(MtpConstant.HistoryData_Day, MTPEnums.R_K_DAY);
+//                break;
+//
+//            default:
+//                break;
+//        }
+//    }
+//
+//
+//    /**
+//     * 重新设置数据
+//     */
+//    private void reload() {
+//        // super.onCreate(bundle);
+//        setContentView(R.layout.chart_otc_chart);
+//        initViews();
+//        initListeners();
+//        initDatas();
+//
+//        loadTimeChartFragment();
+//
+//        mtp_chart_head.setVisibility(View.VISIBLE);
+//        chart_title.setVisibility(View.VISIBLE);
+//        fragmentTransaction = fragmentManager.beginTransaction();
+//        timeChartFragment = new TimeChartFragment();
+//        // 需要先移除旧的
+//        if (kChartFragment != null) {
+//            fragmentTransaction.remove(kChartFragment);
+//        }
+//        timeChartFragment.setGoods(goodsInfoAndQuotes);
+//        fragmentTransaction.show(timeChartFragment);
+//        // fragmentTransaction.commit();
+//        fragmentTransaction.add(R.id.mtp_chart_container, timeChartFragment, TAG_TIME);
+//        fragmentTransaction.commit();
+//        // loadTimeChartFragment();
+//        dataType = ChartConstant.TIME;
+//        mtpChartControl.setCurrentTab(dataType);
+//        // 缓冲加载
+//        new Handler().postDelayed(new Runnable() {
+//            @Override
+//            public void run() {
+//                requestSettlementPlan();
+//                requestHistoryTikData();
+//            }
+//        }, 1000);
+//
+//    }
+//
+//    /**
+//     * 商品左右切换状态处理
+//     */
+//    private void setLeftRightState() {
+////        if (goodsIdList == null || goodsIdList.isEmpty()) {
+////            mtp_left.setVisibility(View.INVISIBLE);
+////            mtp_right.setVisibility(View.INVISIBLE);
+////            return;
+////        }
+////
+////        if (goodsIdList.size() == 1) {
+////            mtp_left.setVisibility(View.INVISIBLE);
+////            mtp_right.setVisibility(View.INVISIBLE);
+////            return;
+////        }
+//
+//        mtp_left.setVisibility(View.GONE);
+//        mtp_right.setVisibility(View.GONE);
+//
+//        int index = 0;
+//        for (Integer goodsId : goodsIdList) {
+//            if (goodsId == this.goodsId) {
+//                this.index = index;
+//                break;
+//            }
+//            index++;
+//        }
+//    }
+//
+//    // 点击左边
+//    private void leftClick() {
+//        if (goodsIdList == null || goodsIdList.size() == 0) {
+//            return;
+//        }
+//
+//        if (index <= 0) {
+//            index = goodsIdList.size() - 1;
+//        } else {
+//            index--;
+//        }
+//        goodsId = goodsIdList.get(index);
+//        setLeftRightState();
+//        reload();
+//    }
+//
+//    // 点击右边
+//    private void rightClick() {
+//        if (goodsIdList == null || goodsIdList.size() == 0) {
+//            return;
+//        }
+//        if (index == goodsIdList.size() - 1) {
+//            index = 0;
+//        } else {
+//            index++;
+//        }
+//        goodsId = goodsIdList.get(index);
+//        setLeftRightState();
+//        reload();
+//    }
+//
+//    @Override
+//    public void onClick(View v) {
+//        switch (v.getId()) {
+//            case R.id.mtp_goods:
+//                if (goodsIdList == null || goodsIdList.isEmpty() || goodsIdList.size() == 1) {
+//                    // 如果只有一个商品 不弹出商品选择
+//                    return;
+//                }
+//
+//                CustomDialog customDialog = new CustomDialog(this, new OnCustomClickItemListener() {
+//                    @Override
+//                    public void onItemClick(int position, Object object, AdapterView<?> arg0) {
+//                        goodsId = goodsIdList.get(position);
+//                        reload();
+//                    }
+//                }).setCustomTitle(R.string.chart_choice_goods).setCustomMessage(goodsNames);
+//                if (this != null && !this.isFinishing()) {
+//                    customDialog.show();
+//                }
+//                break;
+//
+//            case R.id.mtp_left:
+//                leftClick();
+//                break;
+//
+//            case R.id.mtp_right:
+//                rightClick();
+//                break;
+//
+//            case R.id.mtp_chart_back:// 退出本页
+//                finish();
+//                break;
+//            case R.id.mtp_chart_buy:// 买入
+//                // 卖出
+//
+//                break;
+//            case R.id.mtp_chart_sell:
+//
+//                break;
+//            case R.id.mtp_chart_buy_close:
+//
+//                break;
+//            case R.id.mtp_chart_sell_close:
+//
+//                break;
+//            case R.id.mtp_choice_add:// 删除、添加自选
+//                Drawable drawable = getResources().getDrawable(R.mipmap.search_add);
+//                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
+//
+//                Drawable drawable2 = getResources().getDrawable(R.mipmap.search_sub);
+//                drawable2.setBounds(0, 0, drawable2.getIntrinsicWidth(), drawable2.getIntrinsicHeight());
+//                if (SqliteOperateInstance.getInstance().checkDBMarketChoice(String.valueOf(goodsId))) {
+//                    int ret = SqliteOperateInstance.getInstance().delDBMarketChoice(String.valueOf(goodsId));
+//                    if (ret == 0) {
+//                        Snackbar.make(buy_sale, R.string.p_rm_choice_un_success, Snackbar.LENGTH_SHORT).show();
+//                        mtp_choice_add.setText(getString(R.string.p_add_success));
+//                    } else {
+//                        Snackbar.make(buy_sale, R.string.p_rm_choice_success, Snackbar.LENGTH_SHORT).show();
+//                        mtp_choice_add.setCompoundDrawables(null, drawable, null, null);
+//                        mtp_choice_add.setText(getString(R.string.chart_add_choice));
+//                    }
+//                } else {
+//                    String ret = SqliteOperateInstance.getInstance().insertDBMarketChoice(String.valueOf(goodsId));
+//                    if (ret.equals("")) {// 失败,
+//                        Snackbar.make(buy_sale, R.string.p_add_choice_un_success, Snackbar.LENGTH_SHORT).show();
+//                        mtp_choice_add.setText(getString(R.string.chart_add_choice));
+//                    } else {// 成功
+//                        mtp_choice_add.setCompoundDrawables(null, drawable2, null, null);
+//                        Snackbar.make(buy_sale, R.string.p_add_choice_success, Snackbar.LENGTH_SHORT).show();
+//                        mtp_choice_add.setText(getString(R.string.p_add_success));
+//                    }
+//                }
+//
+//                break;
+//            case R.id.mtp_chart_attorn_buy:// 买
+//            {
+//                if (goodsInfoAndQuotes.getTradeMode() == 99) {
+//                    // 99行情不能下单
+//                    PolApplication.getInstance().showToast(getString(R.string.market_stop_trade));
+//                } else if (goodsInfoAndQuotes.getTradeMode() == MTPEnums.TRADEMODE_OPTION) {
+//
+//                    Intent intent = new Intent();
+//                    if (Config.ZYSTATE) {
+//                        intent.setClass(mtp.polymer.com.main.chart.OTC.OTCChartActivity.this, OptionTrading.class);
+//                    } else {
+//                        intent.setClass(mtp.polymer.com.main.chart.OTC.OTCChartActivity.this, OptionTradeActivity.class);
+//                    }
+//
+//                    intent.putExtra("goodsId", goodsInfoAndQuotes.getGoodsInfo().getGoodsId());
+//                    startActivityForResult(intent, 1024);
+//                } else if (goodsInfoAndQuotes.getTradeMode() == MTPEnums.TRADEMODE_TRADEMODESALE) {
+//                    // 定金交易
+//                    Intent intent = new Intent();
+//                    intent.setClass(mtp.polymer.com.main.chart.OTC.OTCChartActivity.this, DepositTradeActivity.class);
+//                    intent.putExtra("goodsId", goodsInfoAndQuotes.getGoodsInfo().getGoodsId());
+//                    startActivityForResult(intent, 1026);
+//                } else {
+//                    Intent intent = new Intent();
+//                    intent.setClass(mtp.polymer.com.main.chart.OTC.OTCChartActivity.this, Trade.class);
+////                    long s = 1230871123123123L;
+//                    if (Config.MANAGEMENT) {
+//                        intent.setClass(mtp.polymer.com.main.chart.OTC.OTCChartActivity.this, ManagementTradeActivity.class);
+//                        intent.putExtra("goodsId", goodsInfoAndQuotes.getGoodsInfo().getGoodsId());
+//                    } else{
+//                        intent.putExtra("goodsId", goodsInfoAndQuotes.getGoodsInfo().getGoodsId());
+//                    }
+////                    intent.putExtra("matchOrderId", s);
+//                    startActivityForResult(intent, 1025);
+//                }
+//            }
+//                break;
+//            case R.id.mtp_chart_attorn_sell:
+//
+//                break;
+//            case R.id.mtp_want_purchase:
+//
+//                break;
+//            case R.id.mtp_want_sell:
+//
+//                break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    @Override
+//    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+//        super.onActivityResult(requestCode, resultCode, data);
+//        if (requestCode == 1024 && resultCode == 2048) {// 2048 表示期权
+//
+//            try {
+//
+//                if (timeChartFragment != null) {
+//                    timeChartFragment.activityResult();
+//                }
+//
+//
+//                // fixme 1 请求委托单
+//                queryEntrust();
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//        } else if (requestCode == 1025 && resultCode == 2049) {// 下单成功的返回
+//            initReq(QueryStatements.SEARCHTRADEPOSITIONDETAIL);// 汇总
+//            initReq(QueryStatements.SEARCHTRADEHOLDERDETAIL);// 明细
+//            kLineRefresh();
+//            isActivityResult = true;
+//        } else {
+//            if (timeChartFragment != null) {
+//                timeChartFragment.activityResult();
+//            }
+//            kLineRefresh();
+//            isActivityResult = true;
+//        }
+//    }
+//
+//    /**
+//     * 请求单据
+//     *
+//     * @param statement
+//     */
+//    public void initReq(String statement) {
+//        MessageHeadBase base = new MessageHeadBase();
+//        TaAccountInfoData taAccountInfo = GlobalDataCollention.getInstance().getCurr_accountInfoData();
+//        base.setAccountID(taAccountInfo.getAccountId());
+//        HashMap<String, String> map = new HashMap<>();
+//        map.put("accountId", String.valueOf(taAccountInfo.getAccountId()));
+//        SendMessageController.getQueryCommonMode().query(base, statement, map);
+//
+//    }
+//
+//    private void queryEntrust() {
+//        MessageHeadBase base = new MessageHeadBase();
+//        TaAccountInfoData taAccountInfo = GlobalDataCollention.getInstance().getCurr_accountInfoData();
+//        base.setAccountID(taAccountInfo.getAccountId());
+//        HashMap<String, String> map = new HashMap<>();
+//        map.put("accountId", String.valueOf(taAccountInfo.getAccountId()));
+//        SendMessageController.getQueryCommonMode().query(base, QueryStatements.SEARCHTRADEORDERDETAIL, map);
+//    }
+//
+//    /**
+//     * @param del
+//     */
+//    private void delChoice(boolean del) {
+//        if (del) {
+//            mtp_choice_add.setText(getString(R.string.chart_del_choice));
+//        } else {
+//            mtp_choice_add.setText(getString(R.string.chart_add_choice));
+//        }
+//    }
+//
+//    /**
+//     * 选择
+//     *
+//     * @param id
+//     */
+//    private void setTabSelect(int id) {
+//        mtp_time_chart.setSelected(id == R.id.mtp_time_chart);
+//        mtp_one_chart.setSelected(id == R.id.mtp_one_chart);
+//        mtp_five_chart.setSelected(id == R.id.mtp_five_chart);
+//        mtp_thirty_chart.setSelected(id == R.id.mtp_thirty_chart);
+//        mtp_one_hour_chart.setSelected(id == R.id.mtp_one_hour_chart);
+//        mtp_two_hour_chart.setSelected(id == R.id.mtp_two_hour_chart);
+//        mtp_four_hour_chart.setSelected(id == R.id.mtp_four_hour_chart);
+//        mtp_one_day_chart.setSelected(id == R.id.mtp_one_day_chart);
+//
+//        mtp_time_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_one_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_five_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_thirty_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_one_hour_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_two_hour_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_four_hour_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//        mtp_one_day_chart.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//
+//        hideShow(mtp_time_chart);
+//        hideShow(mtp_one_chart);
+//        hideShow(mtp_five_chart);
+//        hideShow(mtp_thirty_chart);
+//        hideShow(mtp_one_hour_chart);
+//        hideShow(mtp_two_hour_chart);
+//        hideShow(mtp_four_hour_chart);
+//        hideShow(mtp_one_day_chart);
+//    }
+//
+//    /**
+//     * 显示或隐藏下方的蓝色长条
+//     *
+//     * @param textView
+//     */
+//    private void hideShow(TextView textView) {
+//        mtp_time_chart_b.setVisibility(mtp_time_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_one_chart_b.setVisibility(mtp_one_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_five_chart_b.setVisibility(mtp_five_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_thirty_chart_b.setVisibility(mtp_thirty_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_one_hour_chart_b.setVisibility(mtp_one_hour_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_two_hour_chart_b.setVisibility(mtp_two_hour_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_four_hour_chart_b.setVisibility(mtp_four_hour_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//        mtp_one_day_chart_b.setVisibility(mtp_one_day_chart == getCuurentTab() ? View.VISIBLE : View.GONE);
+//    }
+//
+//    /**
+//     * 当前显示的tab。 <li>点击事件触犯时,优先变化次值。
+//     *
+//     * @return
+//     */
+//    private TextView getCuurentTab() {
+//        return currentTab;
+//    }
+//
+//    /**
+//     * 横竖屏状态变化触发事件
+//     */
+//    @Override
+//    public void onConfigurationChanged(Configuration newConfig) {
+//        super.onConfigurationChanged(newConfig);
+//        orientation = getResources().getConfiguration().orientation;
+//        if (orientation == Configuration.ORIENTATION_PORTRAIT) {// 竖屏
+//            // MTPApplication.getInstance().showToast("竖屏");
+//            buy_sale.setVisibility(View.VISIBLE);
+//            mtp_back.setVisibility(View.VISIBLE);
+//            mtpChartControl.setOrientation(orientation);
+//            if (timeChartFragment != null) {
+//                timeChartFragment.setOrientation(orientation);
+//                timeChartFragment.setDetailVisible(View.VISIBLE);
+//            }
+//            // requestTimeChartData(MTPEnums.HistoryData_Minute5, MTPEnums.R_TIME_5);
+//            requestTimeChartData(MTPEnums.HistoryData_Minute, R_TIME_1);
+//        } else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {// 横屏
+//            // MTPApplication.getInstance().showToast("横屏");
+//            buy_sale.setVisibility(View.GONE);
+//            mtp_back.setVisibility(View.GONE);
+//            mtpChartControl.setOrientation(orientation);
+//            if (timeChartFragment != null) {
+//                timeChartFragment.setOrientation(orientation);
+//                timeChartFragment.setDetailVisible(View.GONE);
+//            }
+//            requestTimeChartData(MTPEnums.HistoryData_Minute, R_TIME_1);
+//        }
+//    }
+//
+//    /**
+//     * 行情刷新
+//     */
+//    public void onRefresh() {
+//        refreshBSHL();
+//        makePankou();
+//        int decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//        if (goodsInfoAndQuotes.getQuoteDay() != null) {
+//            if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPrice())) {
+//                mtp_now_price.setText("--");
+//                mtp_now_price.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//            } else {
+//                mtp_now_price.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getPrice(), decimalPlace));
+////                if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                    // 红涨
+////                    mtp_now_price.setTextColor(getResources().getColor(R.color.p_up_color));
+////                } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                    // 绿跌
+////                    mtp_now_price.setTextColor(getResources().getColor(R.color.p_down_color));
+////                }
+//                TextViewColorUtils.setMyTextColor(mtp_now_price, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+//            }
+//
+//            if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+//                mtp_pre_settle.setText("--");
+//            } else {
+//                mtp_pre_settle.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getPreSettle(), decimalPlace));
+//            }
+//        }
+//    }
+//
+//    public MTPChartControl getMtpChartControl() {
+//        return mtpChartControl;
+//    }
+//
+//    public void setMtpChartControl(MTPChartControl mtpChartControl) {
+//        this.mtpChartControl = mtpChartControl;
+//    }
+//
+//    public GoodsInfoAndQuotes getGoodsInfoAndQuotes() {
+//        return goodsInfoAndQuotes;
+//    }
+//
+//    public void setGoodsInfoAndQuotes(GoodsInfoAndQuotes goodsInfoAndQuotes) {
+//        this.goodsInfoAndQuotes = goodsInfoAndQuotes;
+//    }
+//
+//    @Override
+//    protected void onRestart() {
+//        super.onRestart();
+//        if (timeChartFragment != null && supportAttorn()) {
+//            timeChartFragment.fetchAttorn();
+//        }
+//    }
+//
+//    @Override
+//    protected void onResume() {
+//        super.onResume();
+//        if (!isOncreate) {
+//            switch (dataType) {
+//                case ChartConstant.TIME: {
+//                    requestTimeChartData();
+//                    requestHistoryTikData();
+//                }
+//                break;
+//                default:
+//                    requestKLastchartData();
+//                    break;
+//            }
+//        }
+//        isOncreate = false;
+//        refreshBSHL();
+//        makePankou();
+//        if (goodsInfoAndQuotes != null && goodsInfoAndQuotes.getQuoteDay() != null) {
+//            int decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//            if (goodsInfoAndQuotes.getQuoteDay() != null) {
+//                if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPrice())) {
+//                    mtp_now_price.setText("--");
+//                    mtp_now_price.setTextColor(getResources().getColor(R.color.p_normal_txt_color));
+//                } else {
+//                    mtp_now_price.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getPrice(), decimalPlace));
+////                    if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 1) {
+////                        // 红涨
+////                        mtp_now_price.setTextColor(getResources().getColor(R.color.p_up_color));
+////                    } else if (goodsInfoAndQuotes.getQuoteDay().getUpDown() == 2) {
+////                        // 绿跌
+////                        mtp_now_price.setTextColor(getResources().getColor(R.color.p_down_color));
+////                    }
+//                    TextViewColorUtils.setMyTextColor(mtp_now_price, goodsInfoAndQuotes.getQuoteDay().getPreSettle());
+//                }
+//
+//                if (MathUtil.isZeroOrNull(goodsInfoAndQuotes.getQuoteDay().getPreSettle())) {
+//                    mtp_pre_settle.setText("--");
+//                } else {
+//                    mtp_pre_settle.setText(Utils.roundNum(goodsInfoAndQuotes.getQuoteDay().getPreSettle(), decimalPlace));
+//                }
+//            }
+//        }
+//
+//        showBottom();
+//        delistingModeShow();
+//    }
+//
+//
+//    @Override
+//    public void onMessageEventThread(MessageEvent messageEvent) {
+//        super.onMessageEventThread(messageEvent);
+//        if (FunCode.QUOTE == messageEvent.getFunCode() || messageEvent.getFunCode() == FunCode.FID_OrderDealedNtf) {
+//            List<String> symbols = (List<String>) messageEvent.getMessageInfo();
+//            if (messageEvent.getFunCode() == FunCode.FID_OrderDealedNtf) {
+//                // 重新请求历史数据
+//                requestHistoryTikData();
+//            }
+//            // 行情累加
+//            if (symbols.contains(goodsInfoAndQuotes.getExchangeHqCode() + "_" + goodsInfoAndQuotes.getGoodsInfo().getGoodsCode())) {
+//                // FIXME : 刷新当前的UI
+//                onRefresh();
+//                // 如果是混合或者竞价, 一定要是成交量不为0才更新图表
+//                if (getTradeMode() == MTPEnums.TRADEMODE_BIDDING) {
+//                    // 混合或者竞价,有量才尝试更新图表
+//                    try { // 现在不需要判断 有成交量才更新图表 !!!! 2017/04/26 yuji
+//                        mtpChartControl.appendNewQupte(this);
+//                        LogUtils.e("tt", "tt 更新啊");
+//                    } catch (Exception e) {
+//                        LogUtils.e("tt", "tt 更新报错啊");
+//                        e.printStackTrace();
+//                    }
+//                } else if (getTradeMode() == MTPEnums.TRADEMODE_MARKETMAKE ||
+//                        getTradeMode() == MTPEnums.TRADEMODE_OPTION) {
+//                    mtpChartControl.appendNewQupte(this);
+//                }
+//                if (kChartFragment != null) {
+//                    kLineRefresh();
+//                }
+//                if (timeChartFragment != null) {// 刷新分时图的非历史行情数据
+//                    timeChartFragment.onRefresh(true);
+//                }
+//
+//            }
+//        } else if (FunCode.QUOTEDAYRESPONSE == messageEvent.getFunCode()) {
+//            // 盘面返回处理
+//            onRefresh();
+//            if (kChartFragment != null) {// 刷新K线图的非历史行情数据
+//                kChartFragment.onRefresh();
+//            }
+//            if (timeChartFragment != null) {// 刷新分时图的非历史行情数据
+//                timeChartFragment.onRefresh(false);
+//            }
+//
+//        } else if (FunCode.HISTORYQUOTERESPONSE == messageEvent.getFunCode()) {
+//
+//        } else if (FunCode.HISTORYQUOTERESPONSEDAY == messageEvent.getFunCode()) {
+//
+//        } else if (QueryStatements.QueryQuoteSourceGroupRunStep.equals(messageEvent.getQueryCommonId())) {
+//            // 99行情的结算计划
+//            settlementState = false;
+//            SettlementDataBack();
+//        } else if (QueryStatements.QuerySummerTimeGroupConfig.equals(messageEvent.getQueryCommonId())){
+//            summerState = false;
+//            SettlementDataBack();
+//        } else if (FunCode.MARKETRUNQUERYRSP == messageEvent.getFunCode()) {
+//            SettlementData();
+//        } else if (messageEvent.getFunCode() == FunCode.MARKETSTATUSDNTF) {
+//            // FIXME : 开休市通知, 重新请求结算
+//            // 缓冲加载
+//            new Handler().postDelayed(new Runnable() {
+//                @Override
+//                public void run() {
+//                    requestSettlementPlan();
+//                }
+//            }, 1000);
+//        } else if (FunCode.QueryAskStoreOrder.equals(messageEvent.getQueryCommonId())) {  //卖挂牌
+////            ArrayList<ListingAskStoreOrderData> arrayList = GlobalDataCollention.getInstance().getAskStoreOrderDatas();
+////            if (arrayList.size() > 0) {
+////                mtp_chart_attorn_buy.setVisibility(View.VISIBLE);
+////            } else {
+////                if (!Global.AttornBuy) {
+////                    mtp_chart_attorn_buy.setVisibility(View.GONE);
+////                }
+////            }
+//
+//        } else if (QueryStatements.QueryOptionGoodRemainQty.equals(messageEvent.getQueryCommonId())) {// 可售数量
+//            timeChartFragment.activityResult();   //会引发死循环
+//        }
+//
+//    }
+//
+//    private boolean settlementState = true;  //结算计划
+//    private boolean summerState = true;  //夏令时
+//
+//    /**
+//     * 补日线的时间
+//     * @return
+//     */
+//    private Date dayOfTime(boolean isFresh) {
+//        try {
+//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//            if (isFresh) { // 刷新数据的根据当前时间判断
+//                String todayDate = sdf.format(new Date());
+//                return sdf.parse(todayDate);
+//            } else {
+//                if (goodsInfoAndQuotes.getTradeMode() == MTPEnums.TRADEMODE_MARKETMAKE) {
+//                    MMQuoteDay quoteDay = (MMQuoteDay) goodsInfoAndQuotes.getQuoteDay();
+//                    if (quoteDay != null) {
+//                        StringBuilder sb = new StringBuilder(quoteDay.getExchangeTime());//构造一个StringBuilder对象
+//                        if (!quoteDay.getExchangeTime().contains("-")) {
+//                            sb.insert(4, "-");
+//                            sb.insert(7, "-");
+//                            sb.append(" 00:00");
+//                        }
+//                        return sdf.parse(sb.toString());
+//                    }
+//                } else {
+//                    BidQuoteDay quoteDay = (BidQuoteDay) goodsInfoAndQuotes.getQuoteDay();
+//                    if (quoteDay != null) {
+//                        StringBuilder sb = new StringBuilder(quoteDay.getExchangeTime());//构造一个StringBuilder对象
+//                        if (!quoteDay.getExchangeTime().contains("-")) {
+//                            sb.insert(4, "-");
+//                            sb.insert(7, "-");
+//                            sb.append(" 00:00");
+//                        }
+//                        return sdf.parse(sb.toString());
+//                    }
+//                }
+//            }
+//
+//        } catch (ParseException e) {
+//            e.printStackTrace();
+//        }
+//        return null;
+//    }
+//
+//    /**
+//     * K线刷新问题
+//     */
+//    private void kLineRefresh() {
+//        if (kChartFragment != null) {
+//            if (dataType == 1440) {
+//                // 刷新最后一根日线
+//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//                Date startTime = dayOfTime(true);
+//                if (mtpChartControl.get().mOHLCList != null && mtpChartControl.get().mOHLCList.size() > 0) {
+//                    OHLCEntity ohlcEntity = mtpChartControl.get().mOHLCList.get(mtpChartControl.get().mOHLCList.size() - 1);
+//                    try {
+//                        Date quoteDate = dayOfTime(false);// 行情时间
+//                        if (sdf.parse(ohlcEntity.getTime()).equals(startTime) && (sdf.parse(ohlcEntity.getTime()).before(quoteDate) || sdf.parse(ohlcEntity.getTime()).equals(quoteDate))) {
+//                            if (goodsInfoAndQuotes.getQuoteDay() != null) {
+//                                // 如果今天没有开盘就用昨收补
+//                                if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()) == 0) {
+//                                    ohlcEntity.setOpen(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                    ohlcEntity.setHigh(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                    ohlcEntity.setLow(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                    ohlcEntity.setClose(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//
+//                                } else {
+//                                    ohlcEntity.setOpen(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()));
+//                                    ohlcEntity.setHigh(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getHighest()));
+//                                    ohlcEntity.setLow(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getLowest()));
+//                                    ohlcEntity.setClose(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPrice()));
+//                                }
+//                            }
+//                        }
+//                    } catch (ParseException e) {
+//                        e.printStackTrace();
+//                    }
+//                }
+//
+//            }
+//            kChartFragment.onRefresh();
+//        }
+//    }
+//
+//    /**
+//     * 判断是否需要New一个hiscycle
+//     *
+//     * @param startTime
+//     * @return
+//     */
+//    private boolean isNeedNewFill(Date startTime) {
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//        // 是否需要重新new数据
+//        boolean isNeedFill = false;
+//        if (mtpChartControl.get().mOHLCList != null && mtpChartControl.get().mOHLCList.size() > 0) {
+//            OHLCEntity ohlcEntity = mtpChartControl.get().mOHLCList.get(mtpChartControl.get().mOHLCList.size() - 1);
+//            try {
+//                isNeedFill = sdf.parse(ohlcEntity.getTime()).equals(startTime);
+//            } catch (ParseException e) {
+//                e.printStackTrace();
+//            }
+//        }
+//        return isNeedFill;
+//    }
+//
+//    /**
+//     * 结算计划返回 同时更新 夏令时
+//     */
+//    public void SettlementDataBack(){
+//        if(!settlementState && !summerState) {
+//            NintyNineData();
+//            summerState = true;
+//            settlementState = true;
+//        }
+//
+//    }
+//
+//    /**
+//     * 处理99行情
+//     */
+//    public void NintyNineData(){
+//        String tradeData = "";
+//        if( GlobalDataCollention.getInstance().getMarketRun().size() > 0){
+//            for(MarketRunStatusData data : GlobalDataCollention.getInstance().getMarketRun()){
+//                if(data.getMarketid().equals("0")){
+//                    //取系统当前交易日
+//                    tradeData = data.getTradedate();
+//                }
+//            }
+//            //过滤
+//            //1:判断今天是星期几
+//            int weekDay = TimeUtils.getWeek(tradeData, "yyyyMMdd");
+//            if(weekDay == -1)
+//                return;
+//            ArrayList<SourceGroupData> usedList = new ArrayList<>();
+//            //开始过滤
+//            ArrayList<SourceGroupData> sourceGroupDataList = GlobalDataCollention.getInstance().getSourceGroupDataList();
+//            // 99行情取得的结算计划
+//            for(SourceGroupData sourceGroupData : sourceGroupDataList){
+//                if(sourceGroupData.getMarketid().equals(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getMarketID()))
+//                        && !sourceGroupData.getSectionid().equals("0")
+//                        && sourceGroupData.getTradeweekday().equals(String.valueOf(weekDay))
+//                        && sourceGroupData.getGoodsgroupid().equals(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getGroupId()))){
+////                        && settlementDatas.getS){
+//                    usedList.add(sourceGroupData);
+//                }
+//            }
+//
+//            boolean summerState = true;
+//            //有满足条件的数据
+//            if(usedList.size() > 0){
+//                //判断是否是夏令时
+//                ArrayList<SummerData> summerDataList = GlobalDataCollention.getInstance().getSummerDataList();
+//                for(SummerData summerData: summerDataList){
+//                    if(summerData.getMarketid().equals(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getMarketID()))
+//                            && summerData.getGoodsgroupid().equals(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getGroupId()))){
+//                        //判断tradeDay是否在  StratDate 到 EndDate 之间
+//                        // 1 结束时间小于开始时间 2 开始时间与结束时间相同 3 结束时间大于开始时间
+//                        if(TimeUtils.getTimeCompareSize(summerData.getStartdate() , tradeData , "yyyyMMdd") == 3
+//                                || TimeUtils.getTimeCompareSize(tradeData , summerData.getEnddate() , "yyyyMMdd") == 1){
+//                            summerState = false; //如果有一个数满足夏令时  就认为当前状态是夏令时  统一时间-1
+//                        }
+//                    }
+//                }
+//            }
+//
+//            //满足夏令时 starttime和endtime记得-1
+//            if(!summerState){
+//                //在夏令时内 则开休市时间减少一个小时
+//                for(SourceGroupData data :usedList){
+//                    try {
+//                        //减少一个小时 有可能减到上一天
+//                        // FIXME: 2018/11/6 1:00 以内减一个小时  weekday也要减一天
+//                        data.setStarttime(TimeUtils.longToString(TimeUtils.stringToDate(data.getStarttime(),"HH:mm").getTime() - 60 * 60 * 1000, "HH:mm"));
+//                        data.setEndtime(TimeUtils.longToString(TimeUtils.stringToDate(data.getEndtime(),"HH:mm").getTime() - 60 * 60 * 1000, "HH:mm"));
+//                        if(TimeUtils.checkTimeIs23(data.getStarttime())) {
+//                            if (data.getStartweekday().equals("0")) {
+//                                data.setStartweekday("6");
+//                            } else {
+//                                data.setStartweekday(String.valueOf(Integer.valueOf(data.getStartweekday()) - 1));
+//                            }
+//                        }
+//
+//                        if(TimeUtils.checkTimeIs23(data.getEndtime())) {
+//                            if (data.getEndweekday().equals("0")) {
+//                                data.setEndweekday("6");
+//                            } else {
+//                                data.setEndweekday(String.valueOf(Integer.valueOf(data.getEndweekday()) - 1));
+//                            }
+//                        }
+//
+//                    } catch (ParseException e) {
+//                        e.printStackTrace();
+//                    }
+//                }
+//            }
+//
+//            ArrayList<SettlementData> mList = GlobalDataCollention.getInstance().getSettlementDataList();
+//            mList.clear();
+//            //把99行情的数据 怼到之前结算计划里面去
+//            for(SourceGroupData data :usedList){
+//                SettlementData sData = new SettlementData();
+//                sData.setEndTime(data.getEndtime());
+//                sData.setStartTime(data.getStarttime());
+//                sData.setTradeDate(tradeData);
+//                if(data.getEndweekday().length() > 0
+//                        && MathUtil.isNumeric(data.getEndweekday())) {
+//                    sData.setEndWeekDay(Integer.valueOf(data.getEndweekday()));
+//                }
+//                if(data.getMarketid().length() > 0
+//                        && MathUtil.isNumeric(data.getMarketid())) {
+//                    sData.setMarketId(Integer.valueOf(data.getMarketid()));
+//                }
+//                if(data.getRunstep().length() > 0
+//                        && MathUtil.isNumeric(data.getRunstep())) {
+//                    sData.setRunStep(Integer.valueOf(data.getRunstep()));
+//                }
+//                if(data.getStartweekday().length() > 0
+//                        && MathUtil.isNumeric(data.getStartweekday())) {
+//                    sData.setStartWeekDay(Integer.valueOf(data.getStartweekday()));
+//                }
+//                if(data.getTradeweekday().length() > 0
+//                        && MathUtil.isNumeric(data.getTradeweekday()))
+//                sData.setTradeWeekDay(Integer.valueOf(data.getTradeweekday()));
+//                mList.add(sData); //压入数据集
+//            }
+//            //处理完 99 行情才开始处理结算计划
+//            // FIXME: 2018/10/26   现在有个问题 之前结算计划的groupId是marketId 现在要改 等服务改完我这里才能改
+//            SettlementData();
+//        }
+//    }
+//
+//    public void SettlementData(){
+//        // 结算计划返回
+//        SettlementPlan plan = null;
+//        // 获取到的结算计划
+//        ArrayList<SettlementData> mList = GlobalDataCollention.getInstance().getSettlementDataList();
+//        if (mList != null && mList.size() > 0) {
+//            //(有结算计划的情况下) 开始和结束时间列表
+//            List<StartEnd> startAndEndList = new ArrayList<StartEnd>();
+//            plan = new SettlementPlan();
+//
+////                    List<SettlementData> marketData = new ArrayList<>();  //用于储存同意市场的结算计划
+//            if(Config.MANAGEMENT){
+//                if( GlobalDataCollention.getInstance().getSaveMarketInfo().get(0) != null) {
+//                    groupId = GlobalDataCollention.getInstance().getSaveMarketInfo().get(0).getMarketID();
+//                }
+//            }else {
+//                if (groupId == 0) {
+//                    groupId = GlobalDataCollention.getInstance().getmGoodsInfoClass().get(goodsId).getGoodsInfo().getMarketID();
+//                }
+//            }
+//
+//            StartEnd startEnd = new StartEnd();
+//
+//            String tradeData = GlobalDataCollention.getInstance().getParamValues().get(String.valueOf(MTPEnums.TRADEDATE));
+//
+//            //把结算计划里  需要的marketId信息拿出来
+//            ArrayList<StartEnd> tem = new ArrayList<>();
+//            Date timeStart = null;
+//            Date timeEnd = null;
+//            String tradeDate = "";
+//            for (SettlementData settlementData : mList) {
+//                if (settlementData.getMarketId() == groupId && settlementData.getRunStep() != 4/*行权时间阶段*/) {
+//                    try {
+//                        startEnd = new StartEnd();
+//                        Date currentStartTime = DateUtils.converToDate(tradeData + settlementData.getStartTime(), settlementData.getStartWeekDay() - settlementData.getTradeWeekDay());
+//                        Date currentEndTime = DateUtils.converToDate(tradeData + settlementData.getEndTime(), settlementData.getEndWeekDay() - settlementData.getTradeWeekDay());
+//
+//                        // FIXME: 2018/11/5 这里有个问题  !!!! 星期天weekday返回的是 0 下面的逻辑会出问题  所以先把0转换成7
+//                        if(settlementData.getStartWeekDay() == 0){ //代表星期天
+//                            settlementData.setStartWeekDay(7);
+//                        }
+//
+//                        if(settlementData.getTradeWeekDay() == 0){
+//                            settlementData.setTradeWeekDay(7);
+//                        }
+//
+//                        if(settlementData.getEndWeekDay() == 0){
+//                            settlementData.setTradeWeekDay(7);
+//                        }
+//
+//                        if(settlementData.getStartWeekDay() > settlementData.getTradeWeekDay()){  //代表是上周
+//                            currentStartTime = DateUtils.converToDate(tradeData + settlementData.getStartTime(), settlementData.getStartWeekDay() - 7 + settlementData.getTradeWeekDay() - 2);
+//                            currentEndTime = DateUtils.converToDate(tradeData + settlementData.getEndTime(), settlementData.getEndWeekDay() - 7 + settlementData.getTradeWeekDay() - 2);
+//                        }else{  //其他情况是本周
+//                            currentStartTime = DateUtils.converToDate(tradeData + settlementData.getStartTime(), settlementData.getStartWeekDay() - settlementData.getTradeWeekDay());
+//                            currentEndTime = DateUtils.converToDate(tradeData + settlementData.getEndTime(), settlementData.getEndWeekDay() - settlementData.getTradeWeekDay());
+//                        }
+//
+//                        // FIXME: 2018/11/5 改完了记得改回来
+//
+//                        if(settlementData.getStartWeekDay() == 7){ //代表星期天
+//                            settlementData.setStartWeekDay(0);
+//                        }
+//
+//                        if(settlementData.getTradeWeekDay() == 7){
+//                            settlementData.setTradeWeekDay(0);
+//                        }
+//
+//                        if(settlementData.getEndWeekDay() == 7){
+//                            settlementData.setTradeWeekDay(0);
+//                        }
+//
+//                        startEnd.setStartTime(currentStartTime);
+//                        startEnd.setEndTime(currentEndTime);
+//                        tem.add(startEnd);
+//
+//                        timeStart = (timeStart == null) ? currentStartTime :
+//                                (timeStart.compareTo(currentStartTime) < 0 ? timeStart : currentStartTime);
+//
+//                        timeEnd = (timeEnd == null) ? currentEndTime :
+//                                (timeEnd.compareTo(currentEndTime) > 0 ? timeEnd : currentEndTime);
+//                    } catch (Exception e) {
+//                        e.printStackTrace();
+//                    }
+//                    tradeDate = settlementData.getTradeDate();
+//                }
+//            }
+//
+//            Collections.sort(tem, new Comparator<StartEnd>() {
+//                @Override
+//                public int compare(StartEnd o1, StartEnd o2) {
+//                    if (o1.getStartTime().compareTo(o2.getStartTime()) > 0) {
+//                        return 1;
+//                    } else if (o1.getStartTime().compareTo(o2.getStartTime()) < 0) {
+//                        return -1;
+//                    }
+//                    return 0;
+//                }
+//            });
+//
+//            plan.setList(tem);
+//            plan.setOpenTime(timeStart);
+//            plan.setReckonTime(timeEnd);
+//            try {
+//                plan.setTradeDate(DateUtils.converToDateType2(tradeDate));
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//        } else {
+//            String tradeData = GlobalDataCollention.getInstance().getParamValues().get(String.valueOf(MTPEnums.TRADEDATE));
+//            /**
+//             * 没有改市场数据
+//             */
+//            StartEnd startEnd = new StartEnd();
+//            plan = new SettlementPlan();
+//                try {
+//                    if (startEnd.getEndTime() == null || startEnd.getStartTime() == null) {
+//                        startEnd.setStartTime(DateUtils.converToDateType2(tradeData, "yyyyMMdd"));
+//
+//                        Calendar cal = Calendar.getInstance();
+//                        cal.setTime(DateUtils.converToDateType2(tradeData,"yyyyMMdd"));
+//                        cal.add(Calendar.DATE, 1); //加一天
+//
+//                        startEnd.setEndTime(cal.getTime());
+//                    }
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//                try {
+//                    plan.setList(new ArrayList<>());
+//                    plan.getList().add(startEnd);
+//                    plan.setTradeDate(DateUtils.converToDateType2(tradeData));
+//                    plan.setOpenTime(startEnd.getStartTime());
+//                    plan.setReckonTime(startEnd.getEndTime());
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+////            showToast(R.string.chart_time_no_settlementplan);
+////            return;
+//        }
+//
+////            }
+//        this.settlementPlan = plan;
+//        OTCChartControl.getInstance(this).setSettlementPlan(plan);
+//        requestHistoryTikData();
+//
+//        if (Configuration.ORIENTATION_LANDSCAPE == orientation) {
+//            requestTimeChartData(MTPEnums.HistoryData_Minute, R_TIME_1);
+//        } else {
+//            // 如果是竖屏,使用5分钟周期数据画分时图
+//            // requestTimeChartData(MTPEnums.HistoryData_Minute5, R_TIME_5);
+//            requestTimeChartData(MTPEnums.HistoryData_Minute, R_TIME_1);
+//            LogUtils.e("time", "发出请求" + System.currentTimeMillis());
+//        }
+//
+//    }
+//
+//
+//    /**
+//     * 图标触摸事件处理
+//     */
+//    @Override
+//    public void notifyEvent(int eventId, GridChart chart) {
+//        switch (eventId) {
+//            case ITouchEventNotify.EVENT_CROSSONTOUCH: {
+//                if (dataType == ChartConstant.TIME) {
+//                    try {
+//                        // 触摸图表处理
+//                        ChartDataContainer container = mtpChartControl.get();
+//                        // 表示当前触摸点x坐标
+//                        float postX = chart.getClickPostX();// +
+//                        // chart.getAxisMarginLeft();
+//                        // 得到在list中的下标
+//                        int index = chart.getAxisXPos(postX);
+//                        // if (index >= ((LineChart) chart).getDatasNum()) {
+//                        // index = ((LineChart) chart).getDatasNum() - 1;
+//                        // }
+//                        if (container == null || container.mOHLCList == null) {
+//                            return;
+//                        }
+//                        int currentLength = container.mSize;
+//                        LogUtils.e("chart", index + "  ");
+//                        if (index <= currentLength) {
+//                            LogUtils.e("chart", "触发了");
+//                            mtpChartControl.setOHLC(chart_title, container.mOHLCList.get(index).getOpen(), container.mOHLCList.get(index)
+//                                    .getHigh(), container.mOHLCList.get(index).getLow(), container.mOHLCList.get(index).getClose());
+//                        }
+//                    } catch (Exception e) {
+//                        e.printStackTrace();
+//                    }
+//                } else {
+//                    try {
+//                        // 触摸图表处理
+//                        ChartDataContainer container = mtpChartControl.get();
+//                        // 表示当前触摸点x坐标
+//                        float postX = chart.getClickPostX();// +
+//                        // chart.getAxisMarginLeft();
+//                        // 得到在list中的下标
+//                        chart.setMaxDatasLength(chart.getWidth() - chart.getAxisMarginLeft() - chart.getAxisMarginRight());
+//                        int index = chart.getAxisXPos(postX);
+//                        if (container == null || container.mOHLCList == null) {
+//                            return;
+//                        }
+//                        int currentLength = container.mSize;
+//                        LogUtils.e("chart", index + "  ");
+//                        if (index <= currentLength) {
+//                            mtpChartControl.setOHLC(chart_title, container.mOHLCList.get(index).getOpen(), container.mOHLCList.get(index)
+//                                    .getHigh(), container.mOHLCList.get(index).getLow(), container.mOHLCList.get(index).getClose());
+//                            kChartFragment.showTargetTitle(index);
+//                        }
+//                    } catch (Exception e) {
+//                        // TODO Auto-generated catch block
+//                        e.printStackTrace();
+//                    }
+//                }
+//            }
+//            break;
+//            case ITouchEventNotify.EVENT_UP: {
+//                // 手离开图表
+//                if (dataType == ChartConstant.TIME) {
+//                    // 触摸离开,显示均价和现价
+//                    if (timeChartFragment != null) {
+//                        try {
+//                            timeChartFragment.setTimeText(chart_title);
+//                        } catch (Exception e) {
+//                            // TODO Auto-generated catch block
+//                            e.printStackTrace();
+//                        }
+//                    }
+//                } else {
+//                    try {
+//                        kChartFragment.showKTitle(chart_title);
+//                        kChartFragment.showTargetTitle(0);
+//                    } catch (Exception e) {
+//                        // TODO Auto-generated catch block
+//                        e.printStackTrace();
+//                    }
+//                }
+//            }
+//            break;
+//            case ITouchEventNotify.EVENT_LEFTEND: {
+//                // 当拉到图表的最左边的处理
+//                if (dataType != ChartConstant.TIME) {
+//                    try {
+//                        if (kChartFragment.isShowing()) {
+//                            // 防止正在请求数据的时候再次请求
+//                            return;
+//                        }
+//                        reset = false;
+//                        switch (currentTab.getId()) {
+//                            case R.id.mtp_one_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute, MTPEnums.R_K_1);
+//                                break;
+//                            case R.id.mtp_five_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute5, MTPEnums.R_K_5);
+//                                break;
+//                            case R.id.mtp_thirty_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                                break;
+//                            case R.id.mtp_one_hour_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                                break;
+//                            case R.id.mtp_two_hour_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                                break;
+//                            case R.id.mtp_four_hour_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                                break;
+//                            case R.id.mtp_one_day_chart:
+//                                kChartFragment.show(getResources().getString(R.string.p_loading_data), true);
+//                                requestKChartDataMore(MTPEnums.HistoryData_Day, MTPEnums.R_K_DAY);
+//                                break;
+//                            default:
+//                                break;
+//                        }
+//                    } catch (Exception e) {
+//                        e.printStackTrace();
+//                    }
+//                }
+//            }
+//            break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    /**
+//     * 请求历史数据
+//     */
+//    @Override
+//    public void reRequestHistoryDatas() {
+//        if (System.currentTimeMillis() - lastRqMillisecond < 60000) {
+//            return;
+//        }
+//        switch (dataType) {
+//            case ChartConstant.TIME: {
+//                requestSettlementPlan();
+//                LogUtils.e("req", "重新请求分时");
+//            }
+//            break;
+//            case ChartConstant.K_1: {
+//                requestKChartData(MTPEnums.HistoryData_Minute, MTPEnums.R_K_1);
+//                LogUtils.e("req", "重新请求1");
+//            }
+//            break;
+//            case ChartConstant.K_5: {
+//                requestKChartData(MTPEnums.HistoryData_Minute5, MTPEnums.R_K_5);
+//                LogUtils.e("req", "重新请求5");
+//            }
+//            break;
+//            case ChartConstant.K_30: {
+//                requestKChartData(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                LogUtils.e("req", "重新请求30");
+//            }
+//            break;
+//            case ChartConstant.K_60: {
+//                requestKChartData(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                LogUtils.e("req", "重新请求60");
+//            }
+//            break;
+//            case ChartConstant.K_120: {
+//                requestKChartData(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                LogUtils.e("req", "重新请求60");
+//            }
+//            break;
+//            case ChartConstant.K_240: {
+//                requestKChartData(MTPEnums.HistoryData_Minute30, MTPEnums.R_K_30);
+//                LogUtils.e("req", "重新请求60");
+//            }
+//            break;
+//            case ChartConstant.K_DAY: {
+//                requestKChartData(MTPEnums.HistoryData_Day, MTPEnums.R_K_DAY);
+//                LogUtils.e("req", "重新请求1day");
+//            }
+//            break;
+//
+//            default:
+//                break;
+//        }
+//        LogUtils.e("req", "重新请求");
+//        lastRqMillisecond = System.currentTimeMillis();
+//    }
+//
+//    @Override
+//    // 行情累加以后,在这里通知fragment刷新
+//    public void reFreshChartAfterAdd(boolean useHandle, boolean isNew) {
+//        if (!useHandle) {
+//            if (ChartConstant.TIME == dataType) {
+//                // timeChartFragment.refresh(chart_title);
+//                timeChartFragment.draw(true, chart_title);
+//            }
+//
+//            if (ChartConstant.TIME != dataType) {
+//                if (isNew) {
+//                    kChartFragment.mtp_chart_k.setStartIndex(kChartFragment.mtp_chart_k.getStartIndex() + 1);
+//                    kChartFragment.mtp_chart_target.setStartIndex(kChartFragment.mtp_chart_target.getStartIndex() + 1);
+//                }
+//                kChartFragment.onHistoryDataCallBack(chart_title, false, false);
+//            }
+//        } else {
+//            if (ChartConstant.TIME == dataType) {
+//                Message message = Message.obtain();
+//                message.what = 0;
+//                handler.sendMessage(message);
+//            }
+//        }
+//    }
+//
+//    private Handler handler = new Handler(Looper.myLooper()) {
+//        @Override
+//        public void handleMessage(Message msg) {
+//            switch (msg.what) {
+//                case 0:
+//                    reFreshChartAfterAdd(false, false);
+//                    break;
+//
+//                default:
+//                    break;
+//            }
+//            super.handleMessage(msg);
+//        }
+//    };
+//
+//    /**
+//     * 数据成功获取后的处理,可考虑 改用runOnUiThread(action);
+//     *
+//     * @param obj
+//     */
+//    private void successHandle(Object obj) {
+//        if (obj == null) {
+//            return;
+//        }
+//        Object data = AsyncCallBackManager.getInstance().getData((Long) obj);
+//        if (data == null) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        AsyncResultData resultData = (AsyncResultData) data;
+//        if (resultData.getGoodsId() != goodsId) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        int type = resultData.getHandleType();
+//        if (dataType == ChartConstant.K_120) {
+//            type = MTPEnums.R_K_120;
+//        } else if (dataType == ChartConstant.K_60) {
+//            type = MTPEnums.R_K_60;
+//        } else if (dataType == ChartConstant.K_240) {
+//            type = MTPEnums.R_K_240;
+//        }
+//        switch (type) {
+//            case R_R_TIME: {
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    // 处理重新请求的分时数据
+//                    ReRequestTimeDataResult result = (ReRequestTimeDataResult) resultData;
+//                    // 将复杂的数据操作,在control中做
+//                    mtpChartControl.loseTimeDataBack(result.getStartTime(), result.getEndTime(), result.getGoodsId());
+//                    timeChartFragment.draw(true, chart_title);
+//                    timeChartFragment.showLineChart();
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_TIK: {
+//                if (currentTab.getId() == R.id.mtp_time_chart && timeChartFragment != null) {
+//                    timeChartFragment.inputTik();
+//                }
+//            }
+//            break;
+//            case R_TIME_1:
+//            case MTPEnums.R_TIME_5: {
+//                // 分时图数据处理
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    HisDataResultData hisDataResultData = (HisDataResultData) resultData;
+//                    LogUtils.e("chart", "收到分时图数据,将要处理");
+//                    timeChartFragment.dimiss();
+//                    mtpChartControl.inputTimeData();
+//                    timeChartFragment.draw(true, chart_title);
+//                    timeChartFragment.showLineChart();
+//                    timeChartFragment.setNoneState(View.GONE);
+//                    // if (getTradeMode() == MTPEnums.BIDDING) {
+//                    mtpChartControl.startExecutorService(this);
+//                    // }
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_1: {
+//                if (currentTab.getId() == R.id.mtp_one_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, reset, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_5:
+//                // 5分钟
+//                if (currentTab.getId() == R.id.mtp_five_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute5);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, reset, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            case MTPEnums.R_K_30:
+//                // 30分钟
+//                if (currentTab.getId() == R.id.mtp_thirty_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute30);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, reset, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            case MTPEnums.R_K_60:
+//                // 60分钟
+//                if (currentTab.getId() == R.id.mtp_one_hour_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute60);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, reset, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            case MTPEnums.R_K_120:
+//                if (currentTab.getId() == R.id.mtp_two_hour_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute120);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, reset, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            case MTPEnums.R_K_240:
+//                // 240分钟
+//                if (currentTab.getId() == R.id.mtp_four_hour_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Minute240);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, true, true);
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            case MTPEnums.R_K_DAY:
+//                // 240分钟
+//                if (currentTab.getId() == R.id.mtp_one_day_chart) {
+//                    mtpChartControl.inputAllCycleData(MTPEnums.HistoryData_Day);
+//                    // if (mtpChartControl.getStartIndex() == 0) {
+//                    // kChartFragment.dimiss();
+//                    // MTPApplication.getInstance().showToast(R.string.loading_end);
+//                    // return;
+//                    // }
+//                    kChartFragment.onHistoryDataCallBack(chart_title, true, true);
+//                    kChartFragment.showKChart();
+//                    kChartFragment.dimiss();
+//                }
+//                break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    /**
+//     * ui线程超时处理
+//     *
+//     * @param obj
+//     */
+//    private void timeOutHandle(Object obj) {
+//        if (obj == null) {
+//            return;
+//        }
+//        Object data = AsyncCallBackManager.getInstance().getData((Long) obj);
+//        if (data == null) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        AsyncResultData asyncResultData = (AsyncResultData) data;
+//        if (asyncResultData.getGoodsId() != goodsId) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        switch (asyncResultData.getHandleType()) {
+//            case R_R_TIME:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    // 超时不需要做别的,下一次会再请求
+//                }
+//                break;
+//            case MTPEnums.R_TIK:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    showToast(R.string.load_tik_timeout);
+//                }
+//                break;
+//            case MTPEnums.R_TIME_5:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    showToast(R.string.p_time_out);
+//                    timeChartFragment.dimiss();
+//                    timeChartFragment.hideLineChart();
+//                    timeChartFragment.setNoneState(View.VISIBLE);
+//                    drwaTimeChart = false;
+//                }
+//                break;
+//            case MTPEnums.R_K_1: {
+//                if (currentTab.getId() == R.id.mtp_one_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_k_timeout);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_5: {
+//                if (currentTab.getId() == R.id.mtp_five_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_k_timeout);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_30: {
+//                if (currentTab.getId() == R.id.mtp_thirty_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_k_timeout);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_120:
+//            case MTPEnums.R_K_240:
+//            case MTPEnums.R_K_60: {
+//                if (currentTab.getId() == R.id.mtp_one_hour_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_k_timeout);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_DAY: {
+//                if (currentTab.getId() == R.id.mtp_one_day_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_k_timeout);
+//                }
+//            }
+//            break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    private void nullHandle(Object obj) {
+//        if (obj == null) {
+//            return;
+//        }
+//
+//        Object data = AsyncCallBackManager.getInstance().getData((Long) obj);
+//        if (data == null) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        AsyncResultData asyncResultData = (AsyncResultData) data;
+//        if (asyncResultData.getGoodsId() != goodsId) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        switch (asyncResultData.getHandleType()) {
+//            case R_TIME_1:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {// FIXME : 要处理
+//                    HisDataResultData resultData = (HisDataResultData) asyncResultData;
+//                    timeChartFragment.dimiss();
+//                    timeChartFragment.showLineChart();
+//                    timeChartFragment.setNoneState(View.GONE);
+//                    drwaTimeChart = true;
+//                    // mtpChartControl.timeDataNullHandle(resultData.getStartTime(),
+//                    // resultData.getEndTime());
+//                    mtpChartControl.charttimeDataInit();
+//                    mtpChartControl.startExecutorService(this);
+//                    timeChartFragment.draw(true, chart_title);
+//
+//                }
+//                break;
+//            case R_R_TIME:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    // 处理重新请求的分时数据
+//                    ReRequestTimeDataResult result = (ReRequestTimeDataResult) asyncResultData;
+//                    // 将复杂的数据操作,在control中做
+//                    mtpChartControl.loseTimeDataNull(result.getStartTime(), result.getEndTime(), goodsId);
+//                    timeChartFragment.draw(true, chart_title);
+//                }
+//                break;
+//            case MTPEnums.R_TIK:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    // MTPApplication.getInstance().showToast(R.string.load_tik_null);
+//                }
+//                break;
+//            case MTPEnums.R_TIME_5:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    // MTPApplication.getInstance().showToast(R.string.load_null);
+//                    HisDataResultData resultData = (HisDataResultData) asyncResultData;
+//                    timeChartFragment.dimiss();
+//                    timeChartFragment.showLineChart();
+//                    timeChartFragment.setNoneState(View.GONE);
+//                    drwaTimeChart = true;
+//                    mtpChartControl.timeDataNullHandle(resultData.getStartTime(), resultData.getEndTime());
+//                    mtpChartControl.startExecutorService(this);
+//                    timeChartFragment.draw(true, chart_title);
+//                    // timeChartFragment.setNoneState(View.GONE);
+//                    // if (getTradeMode() == MTPEnums.BIDDING) {
+//
+//                    // }
+//                }
+//                break;
+//            case MTPEnums.R_K_1: {
+//                if (currentTab.getId() == R.id.mtp_one_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_null);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_5: {
+//                if (currentTab.getId() == R.id.mtp_five_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_null);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_30: {
+//                if (currentTab.getId() == R.id.mtp_thirty_chart ||
+//                        currentTab.getId() == R.id.mtp_one_hour_chart ||
+//                        currentTab.getId() == R.id.mtp_two_hour_chart ||
+//                        currentTab.getId() == R.id.mtp_four_hour_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_null);
+//                }
+//            }
+//            break;
+//        /*R_K_120、R_K_240、R_K_60实际上用的是30分钟的标识,所以不会提示这里,FIXME  见case R_K_30:*/
+//            case MTPEnums.R_K_120:
+//            case MTPEnums.R_K_240:
+//            case MTPEnums.R_K_60: {
+//                if (currentTab.getId() == R.id.mtp_one_hour_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_null);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_DAY: {
+//                if (currentTab.getId() == R.id.mtp_one_day_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_null);
+//                }
+//            }
+//            break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    /**
+//     * 数据异常的处理
+//     *
+//     * @param obj
+//     */
+//    private void errorHandle(Object obj) {
+//        if (obj == null) {
+//            return;
+//        }
+//        Object data = AsyncCallBackManager.getInstance().getData((Long) obj);
+//        if (data == null) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        HisDataResultData hisDataResultData = (HisDataResultData) data;
+//        if (hisDataResultData.getGoodsId() != goodsId) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        if (hisDataResultData.getGoodsId() != goodsId) {
+//            return;
+//        }
+//        switch (hisDataResultData.getHandleType()) {
+//            case R_R_TIME:
+//                // 数据错误不要作别的,下次会做处理
+//                break;
+//            case MTPEnums.R_TIK:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    showToast(R.string.load_error);
+//                    timeChartFragment.dimiss();
+//                    timeChartFragment.hideLineChart();
+//                    timeChartFragment.setNoneState(View.VISIBLE);
+//                }
+//                break;
+//            case MTPEnums.R_TIME_5:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+//                    showToast(R.string.load_error);
+//                    timeChartFragment.dimiss();
+//                    // 如果是数据有问题,停止绘制,直到重新请求数据
+//                    drwaTimeChart = false;
+//                }
+//                break;
+//            case MTPEnums.R_K_1: {
+//                if (currentTab.getId() == R.id.mtp_one_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_5: {
+//                if (currentTab.getId() == R.id.mtp_five_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_30: {
+//                if (currentTab.getId() == R.id.mtp_thirty_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_120:
+//            case MTPEnums.R_K_240:
+//            case MTPEnums.R_K_60: {
+//                if (currentTab.getId() == R.id.mtp_one_hour_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_DAY: {
+//                if (currentTab.getId() == R.id.mtp_one_day_chart) {
+//                    kChartFragment.dimiss();
+//                    showToast(R.string.load_error);
+//                }
+//            }
+//            break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    /**
+//     * 网络错误处理
+//     *
+//     * @param obj
+//     */
+//    private void netErrorHandle(Object obj) {
+//        if (obj == null) {
+//            return;
+//        }
+//
+//        Object data = AsyncCallBackManager.getInstance().getData((Long) obj);
+//        if (data == null) {
+//            AsyncCallBackManager.getInstance().remove((Long) obj);
+//            return;
+//        }
+//        int type = 0;
+//        try {
+//            if (data instanceof HisDataResultData) {
+//                HisDataResultData hisDataResultData = (HisDataResultData) data;
+//                if (hisDataResultData.getGoodsId() != goodsId) {
+//                    AsyncCallBackManager.getInstance().remove((Long) obj);
+//                    return;
+//                }
+//                if (hisDataResultData.getGoodsId() != goodsId) {
+//                    return;
+//                }
+//                type = hisDataResultData.getHandleType();
+//            } else if (data instanceof ReRequestTimeDataResult) {
+//                ReRequestTimeDataResult hisDataResultData = (ReRequestTimeDataResult) data;
+//                if (hisDataResultData.getGoodsId() != goodsId) {
+//                    AsyncCallBackManager.getInstance().remove((Long) obj);
+//                    return;
+//                }
+//                if (hisDataResultData.getGoodsId() != goodsId) {
+//                    return;
+//                }
+//                type = hisDataResultData.getHandleType();
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//
+//        switch (type) {
+//            case MTPEnums.R_TIK:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+////                    showToast(R.string.load_net_error);
+//                    timeChartFragment.dimiss();
+//                    timeChartFragment.hideLineChart();
+//                    timeChartFragment.setNoneState(View.VISIBLE);
+//                }
+//                break;
+//            case R_TIME_1:
+//            case MTPEnums.R_TIME_5:
+//                if (currentTab.getId() == R.id.mtp_time_chart) {
+////                    showToast(R.string.load_net_error);
+//                    timeChartFragment.dimiss();
+//                    drwaTimeChart = false;
+//                }
+//                break;
+//            case MTPEnums.R_K_1: {
+//                if (currentTab.getId() == R.id.mtp_one_chart) {
+//                    kChartFragment.dimiss();
+////                    showToast(R.string.load_net_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_5: {
+//                if (currentTab.getId() == R.id.mtp_five_chart) {
+//                    kChartFragment.dimiss();
+////                    showToast(R.string.load_net_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_30: {
+//                if (currentTab.getId() == R.id.mtp_thirty_chart) {
+//                    kChartFragment.dimiss();
+////                    showToast(R.string.load_net_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_120:
+//            case MTPEnums.R_K_240:
+//            case MTPEnums.R_K_60: {
+//                if (currentTab.getId() == R.id.mtp_one_hour_chart) {
+//                    kChartFragment.dimiss();
+////                    showToast(R.string.load_net_error);
+//                }
+//            }
+//            break;
+//            case MTPEnums.R_K_DAY: {
+//                if (currentTab.getId() == R.id.mtp_one_day_chart) {
+//                    kChartFragment.dimiss();
+////                    showToast(R.string.load_net_error);
+//                }
+//            }
+//            break;
+//            default:
+//                break;
+//        }
+//    }
+//
+//    Handler myHandler = new Handler(Looper.myLooper()) {
+//        public void handleMessage(Message msg) {
+//            switch (msg.what) {
+//                case Success: {
+//                    successHandle(msg.obj);
+//                }
+//                break;
+//                case ResponseError: {
+//                    errorHandle(msg.obj);
+//                }
+//                break;
+//
+//                case ResponseNull: {
+//                    nullHandle(msg.obj);
+//                }
+//                break;
+//                case TimeOut: {
+//                    timeOutHandle(msg.obj);
+//                }
+//                break;
+//
+//                case NetError: {
+//                    netErrorHandle(msg.obj);
+//                }
+//                break;
+//                default:
+//                    break;
+//            }
+//            AsyncCallBackManager.getInstance().remove((Long) msg.obj);
+//        }
+//    };
+//
+//    private void handleTimeOut(long serialNumber) {
+//        Message message = myHandler.obtainMessage(TimeOut);
+//        message.obj = serialNumber;
+//        message.sendToTarget();
+//    }
+//
+//    private void handleNetError(long serialNumber) {
+//        Message message = myHandler.obtainMessage(NetError);
+//        message.obj = serialNumber;
+//        message.sendToTarget();
+//    }
+//
+//    private void handleResponse(HistoryQuoteResponse gramObj, long serialNumber) {
+//        HistoryQuoteResponse response = gramObj;
+//        if (response == null) {
+//            // 解析失败,通知页面
+//            Message message = myHandler.obtainMessage(ResponseError);
+//            message.obj = serialNumber;
+//            message.sendToTarget();
+//            return;
+//        }
+//
+//        String symbol = response.getExchangeCode() + "_" + response.getGoodsCode().trim();
+//
+//
+//        if (goodsIdList != null && goodsIdList.size() > 0 && goodsIdList.size() >= (index + 1)) {
+//            goodsId = goodsIdList.get(index);
+//        }
+//
+//        if (!GlobalDataCollention.getInstance().getSymbolGoodsIdMap().get(symbol).contains(goodsId + "")) {
+//            // 如果不是返回当前的商品,直接返回
+//            return;
+//        }
+//
+//        if (response.getContent() == null) {
+//            // 数据为空,通知页面
+//            Message message = myHandler.obtainMessage(ResponseNull);
+//            message.obj = serialNumber;
+//            message.sendToTarget();
+//            return;
+//        }
+//        switch (response.getType()) {
+//            // 周期数据处理
+//            case MTPEnums.HistoryData_Second:
+//            case MTPEnums.HistoryData_Minute:
+//            case MTPEnums.HistoryData_Minute5: {
+//                ArrayList<HistoryCycle> cycleList = HistoryCycle.toObject(response);
+//                LogUtils.e("dayquote",
+//                        "得到" + response.getExchangeCode() + response.getGoodsCode() + "历史数据" + response.getType() + cycleList.size() + "条");
+//                MarketDataTools.inputHistoryCycle(response.getExchangeCode(), response.getGoodsCode().trim(), response.getType(),
+//                        cycleList);
+//            }
+//            break;
+//            case MTPEnums.HistoryData_Minute30:
+//            case MTPEnums.HistoryData_Minute60:
+//            case MTPEnums.HistoryData_Minute120:
+//            case MTPEnums.HistoryData_Minute240:
+//            case MTPEnums.HistoryData_Day: {
+//
+//                ArrayList<HistoryCycle> cycleList = new ArrayList<>();
+//
+//                // 转换为对象
+//                if (response.getType() == MTPEnums.HistoryData_Day) {
+//                    cycleList = HistoryCycle.toDayObject(response);
+//                } else {
+//                    cycleList = HistoryCycle.toObject(response);
+//                }
+//                // 日线是没有今天的数据的需要补
+//                if (response.getType() == MTPEnums.HistoryData_Day) {
+//                    Date startTime = dayOfTime(false);
+//                    if (cycleList.get(0).getStartTime().before(startTime)) {
+//                        HistoryCycle todayCycle = null;
+//                        if (isNeedNewFill(startTime)) {
+//                            todayCycle = cycleList.get(0);
+//                        } else {
+//                            todayCycle = new HistoryCycle();
+//                        }
+//                        if (goodsInfoAndQuotes.getQuoteDay() != null) {
+//                            // 如果今天没有开盘就用昨收补
+//                            if (Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()) == 0) {
+//                                todayCycle.setOpened(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                todayCycle.setHighest(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                todayCycle.setLowest(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                                todayCycle.setClosed(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPreSettle()));
+//                            } else {
+//                                todayCycle.setOpened(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getOpened()));
+//                                todayCycle.setHighest(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getHighest()));
+//                                todayCycle.setLowest(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getLowest()));
+//                                todayCycle.setClosed(Double.parseDouble(goodsInfoAndQuotes.getQuoteDay().getPrice()));
+//                            }
+//                            todayCycle.setStartTime(startTime);
+//                        }
+//                        cycleList.add(todayCycle);
+//                    }
+//                }
+//
+//                //获取盘面数据
+//                QuoteDayBase base = GlobalDataCollention.getInstance().getmGoodsInfoClass().get(goodsId).getQuoteDay();
+//
+//                if (cycleList != null && cycleList.size() > 1) {
+//                    if (base.getLastTime() != null && changeDatas(base.getLastTime()).getTime() == changeDatas(cycleList.get(0).getStartTime()).getTime()) {
+//                        //覆盖高低收
+//                        if (response.getType() == MTPEnums.HistoryData_Minute30) {
+////                            cycleList.get(cycleList.size() - 1).setHighest(Double.valueOf(base.getHighest()));
+////                            cycleList.get(cycleList.size() - 1).setLowest(Double.valueOf(base.getLowest()));
+////                            cycleList.get(cycleList.size() - 1).setClosed(Double.valueOf(base.getPreClose()));
+//                            cycleList.get(0).setClosed(Double.valueOf(base.getPrice()));
+//                        } else {
+//                            cycleList.get(0).setHighest(Double.valueOf(base.getHighest()));
+//                            cycleList.get(0).setLowest(Double.valueOf(base.getLowest()));
+//                            cycleList.get(0).setClosed(Double.valueOf(base.getPrice()));
+//                        }
+//                    } else {
+//                        //获取盘面数据
+//                        HistoryCycle lastCycle = new HistoryCycle();
+//
+//                        if (Double.valueOf(base.getOpened()) == 0) {
+//                            lastCycle.setOpened(Double.valueOf(base.getPreClose()));
+//                        } else {
+//                            lastCycle.setOpened(Double.valueOf(base.getOpened()));
+//                        }
+//
+//                        lastCycle.setClosed(Double.valueOf(base.getPreClose()));
+//
+//                        if (Double.valueOf(base.getLowest()) == 0) {
+//                            lastCycle.setLowest(Double.valueOf(base.getPreClose()));
+//                        } else {
+//                            lastCycle.setLowest(Double.valueOf(base.getLowest()));
+//                        }
+//
+//                        if (Double.valueOf(base.getHighest()) == 0) {
+//                            lastCycle.setHighest(Double.valueOf(base.getPreClose()));
+//                        } else {
+//                            lastCycle.setHighest(Double.valueOf(base.getHighest()));
+//                        }
+//
+//                        lastCycle.setSettlePrice(Double.valueOf(base.getSettle()));
+//                        if (GlobalDataCollention.getInstance().getmGoodsInfoClass().get(goodsId).getTradeMode() == MTPEnums.TRADEMODE_BIDDING) {
+//                            lastCycle.setTotleTurnover(Double.valueOf(((BidQuoteDay) base).getTotalTurnover()));
+//                            lastCycle.setTotleVolume(Double.valueOf(((BidQuoteDay) base).getTotalVolume()));
+//                        }
+//                        lastCycle.setStartTime(changeDatas(cycleList.get(0).getStartTime()));
+//                    }
+//                }
+//                LogUtils.e("dayquote",
+//                        "得到" + response.getExchangeCode() + response.getGoodsCode() + "历史数据" + response.getType() + cycleList.size() + "条");
+//                // 将得到的数据存起来
+//                if (dataType == ChartConstant.K_60) {
+//                    KLineControl kLineControl = new KLineControl();
+//                    cycleList = kLineControl.thirdToHourLine(cycleList, 2, Config.IS_FRONT);
+//                    MarketDataTools.inputHistoryCycle(response.getExchangeCode(), response.getGoodsCode().trim(), MTPEnums.HistoryData_Minute60,
+//                            cycleList);
+//                } else if (dataType == ChartConstant.K_120) {
+//                    KLineControl kLineControl = new KLineControl();
+//                    cycleList = kLineControl.thirdToHourLine(cycleList, 4, Config.IS_FRONT);
+//                    MarketDataTools.inputHistoryCycle(response.getExchangeCode(), response.getGoodsCode().trim(), MTPEnums.HistoryData_Minute120,
+//                            cycleList);
+//                } else if (dataType == ChartConstant.K_240) {
+//                    KLineControl kLineControl = new KLineControl();
+//                    cycleList = kLineControl.thirdToHourLine(cycleList, 8, Config.IS_FRONT);
+//                    MarketDataTools.inputHistoryCycle(response.getExchangeCode(), response.getGoodsCode().trim(), MTPEnums.HistoryData_Minute240,
+//                            cycleList);
+//                } else {
+//                    MarketDataTools.inputHistoryCycle(response.getExchangeCode(), response.getGoodsCode().trim(), response.getType(),
+//                            cycleList);
+//                }
+//                // 成功处理完数据,可通知页面
+//                break;
+//            }
+//            // tik数据处理
+//            case MTPEnums.HistoryData_Tik: {
+//                ArrayList<HistoryTik> tikList = HistoryTik.toObject(response);
+//                LogUtils.e("dayquote", "得到" + response.getExchangeCode() + response.getGoodsCode() + "tik数据" + response.getType() + "-"
+//                        + tikList.size() + "条");
+//                MarketDataTools.inputHistoryTik(response.getExchangeCode(), response.getGoodsCode().trim(), tikList);
+//                // 成功处理完数据,可通知页面
+//                break;
+//            }
+//            default:
+//                break;
+//        }
+//
+//        Message message = myHandler.obtainMessage(Success);
+//        message.obj = serialNumber;
+//        message.sendToTarget();
+//    }
+//
+//    @Override
+//    protected void onDestroy() {
+//        super.onDestroy();
+//        mtpChartControl.disposed();
+//    }
+//
+//
+//    /******************************* 网络请求 ******************************/
+//
+//    /**
+//     * 重新请求分时图
+//     *
+//     * @param startTime
+//     */
+//    @Override
+//    public void requestTimeData(Date startTime, Date endTime, long goodsId) {
+//        if (lastRqMillisecond > 0 && System.currentTimeMillis() - lastRqMillisecond <= 60000) {
+//            return;
+//        }
+//        lastRqMillisecond = System.currentTimeMillis();
+//        ChartReqsManager.requestTimeData(startTime, endTime, goodsId, goodsInfoAndQuotes, this);
+//    }
+//
+//
+//    /**
+//     * 增量请求
+//     *
+//     * @param type
+//     */
+//    private void requestKChartDataMore(int type, final int handleType) {
+//        ChartReqsManager.requestKChartDataMore(type, handleType, goodsInfoAndQuotes, this);
+//    }
+//
+//    /**
+//     * 增量请求当前最新后面的数据
+//     *
+//     * @param type
+//     */
+//    private void requestKChartDataLast(int type, final int handleType) {
+//        ChartReqsManager.requestKChartDataLast(dataType, type, handleType, getGoodsInfoAndQuotes(), this);
+//    }
+//
+//    /**
+//     * 请求最新20笔tik
+//     */
+//    public void requestHistoryTikData() {
+//        ChartReqsManager.requestHistoryTikData(goodsInfoAndQuotes, this);
+//    }
+//
+//    /**
+//     * 请求历史行情
+//     *
+//     * @param type
+//     * @param handleType 操作类型,用来回调的时候准确地找到之前是做的什么请求
+//     */
+//    public void requestKChartData(int type, final int handleType) {
+//        /***********
+//         *  !!!!!!!!!!!!!!!!!! 注意  注意  注意  这里有个坑  别跳
+//         *  如果是请求日线历史的情况  : 大小类号有改变
+//         *  回收的消息包  解析的时候  要增加一个价格  导致包长度增加四位
+//         */
+//        ChartReqsManager.requestKChartData(type
+//                , handleType
+//                , goodsInfoAndQuotes
+//                , this);
+//    }
+//
+//
+//    /**
+//     * 请求分时图的历史行情。
+//     */
+//    public void requestTimeChartData(int type, final int handleType) {
+//        ChartReqsManager.requestTimeChartData(settlementPlan, type, handleType, goodsInfoAndQuotes, this);
+//    }
+//
+//
+//    @Override
+//    public void onSuccess(HistoryQuoteResponse response, long serialNumber) {
+//        handleResponse(response, serialNumber);
+//    }
+//
+//    @Override
+//    public void onTimeOut(long serialNumber) {
+//        handleTimeOut(serialNumber);
+//    }
+//
+//    @Override
+//    public void onRequestNetError(long serialNumber) {
+//        handleNetError(serialNumber);
+//    }
+//
+//    public Date changeDatas(Date dateOld) {
+//        String sDateTime = new SimpleDateFormat("yyyy-MM-dd").format(dateOld);// 把date类型的时间转换为string
+//
+//        //服务器时间是UTC时间 所以这里转换一下
+//        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+//        Date date = null;
+//        try {
+//            return formatter.parse(sDateTime);
+//
+//        } catch (ParseException e) {
+//            e.printStackTrace();
+//        }
+//        return null;
+//    }
+//}

+ 494 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/AttornDataControl.java

@@ -0,0 +1,494 @@
+package cn.muchinfo.rma.view.base.chart.old.controls;
+//
+//import android.content.Context;
+//import android.view.LayoutInflater;
+//import android.view.View;
+//import android.widget.TextView;
+//
+//import java.util.ArrayList;
+//
+//import mtp.polymer.com.QuoteCollention;
+//import mtp.polymer.com.R;
+//import mtp.polymer.com.businesslayer.constant.FunCode;
+//import mtp.polymer.com.businesslayer.message.MessageEvent;
+//import mtp.polymer.com.businesslayer.message.MessageingManager;
+//import mtp.polymer.com.businesslayer.message.OnMessageListener;
+//import mtp.polymer.com.businesslayer.resolver.data.market.BidQuoteDay;
+//import mtp.polymer.com.businesslayer.resolver.marketdata.data.GoodsInfoAndQuotes;
+//import mtp.polymer.com.global.Config;
+//import mtp.polymer.com.main.chart.data.ListingAskStoreOrderData;
+//import mtp.polymer.com.main.chart.data.ListingBidStoreOrderData;
+//import mtp.polymer.com.tools.MathUtil;
+//import mtp.polymer.com.tools.MyUtils;
+//
+///**
+// * 挂牌转让
+// * 独自维护生命周期
+// *
+// * @author Administrator
+// */
+//public class AttornDataControl implements OnMessageListener {
+//    private Context mContext;
+//    private View view;
+//    private GoodsInfoAndQuotes goodsInfoAndQuotes;
+//    private TextView nh_sale;
+//    private TextView nh_buy;
+//    // 买卖五档
+//    private TextView mtp_value_sale_five;
+//    private TextView mtp_sum_sale_five;
+//    private TextView mtp_value_sale_four;
+//    private TextView mtp_sum_sale_four;
+//    private TextView mtp_value_sale_three;
+//    private TextView mtp_sum_sale_three;
+//    private TextView mtp_value_sale_two;
+//    private TextView mtp_sum_sale_two;
+//    private TextView mtp_value_sale_one;
+//    private TextView mtp_sum_sale_one;
+//
+//    private TextView mtp_value_buy_one;
+//    private TextView mtp_sum_buy_one;
+//    private TextView mtp_value_buy_two;
+//    private TextView mtp_sum_buy_two;
+//    private TextView mtp_value_buy_three;
+//    private TextView mtp_sum_buy_three;
+//    private TextView mtp_value_buy_four;
+//    private TextView mtp_sum_buy_four;
+//    private TextView mtp_value_buy_five;
+//    private TextView mtp_sum_buy_five;
+//    private TextView loading_view_text;
+//
+//    private AttornDataControl() {
+//    }
+//
+//    private void initViews() {
+//        view = LayoutInflater.from(mContext).inflate(R.layout.chart_attorn, null);
+//
+//        nh_sale = view.findViewById(R.id.nh_sale);
+//        nh_buy = view.findViewById(R.id.nh_buy);
+//
+//        mtp_value_sale_five = view.findViewById(R.id.mtp_value_sale_five);
+//        mtp_sum_sale_five = view.findViewById(R.id.mtp_sum_sale_five);
+//
+//        mtp_value_sale_four = view.findViewById(R.id.mtp_value_sale_four);
+//        mtp_sum_sale_four = view.findViewById(R.id.mtp_sum_sale_four);
+//
+//        mtp_value_sale_three = view.findViewById(R.id.mtp_value_sale_three);
+//        mtp_sum_sale_three = view.findViewById(R.id.mtp_sum_sale_three);
+//
+//        mtp_value_sale_two = view.findViewById(R.id.mtp_value_sale_two);
+//        mtp_sum_sale_two = view.findViewById(R.id.mtp_sum_sale_two);
+//
+//        mtp_value_sale_one = view.findViewById(R.id.mtp_value_sale_one);
+//        mtp_sum_sale_one = view.findViewById(R.id.mtp_sum_sale_one);
+//
+//        mtp_value_buy_one = view.findViewById(R.id.mtp_value_buy_one);
+//        mtp_sum_buy_one = view.findViewById(R.id.mtp_sum_buy_one);
+//
+//        mtp_value_buy_two = view.findViewById(R.id.mtp_value_buy_two);
+//        mtp_sum_buy_two = view.findViewById(R.id.mtp_sum_buy_two);
+//
+//        mtp_value_buy_three = view.findViewById(R.id.mtp_value_buy_three);
+//        mtp_sum_buy_three = view.findViewById(R.id.mtp_sum_buy_three);
+//
+//        mtp_value_buy_four = view.findViewById(R.id.mtp_value_buy_four);
+//        mtp_sum_buy_four = view.findViewById(R.id.mtp_sum_buy_four);
+//
+//        mtp_value_buy_five = view.findViewById(R.id.mtp_value_buy_five);
+//        mtp_sum_buy_five = view.findViewById(R.id.mtp_sum_buy_five);
+//    }
+//
+//    public View getView() {
+//        return view;
+//    }
+//
+//    /**
+//     * 实例化
+//     *
+//     * @param context
+//     * @param goodsid
+//     */
+//    public AttornDataControl(Context context, String goodsid) {
+//        MessageingManager.getInstance().regiter(this);
+//        this.mContext = context;
+//        initViews();
+//        fetchForRefresh(goodsid);
+//    }
+//
+//    /**
+//     * 实例化
+//     *
+//     * @param context
+//     * @param goodsInfoAndQuotes
+//     */
+//    public AttornDataControl(Context context, GoodsInfoAndQuotes goodsInfoAndQuotes) {
+//        MessageingManager.getInstance().regiter(this);
+//        this.mContext = context;
+//        initViews();
+//        this.goodsInfoAndQuotes = goodsInfoAndQuotes;
+//        if (supportAttorn()) {
+//            fetchForRefresh(goodsInfoAndQuotes.getGoodsInfo().getGoodsId() + "");
+//        }
+//    }
+//
+//
+//    /**
+//     * 是否支持挂牌转让
+//     *
+//     * @return
+//     */
+//    public boolean supportAttorn() {
+//        return Config.QUOTED_TRANSFER;
+////		if (goodsInfoAndQuotes == null) {
+////			return false;
+////		}
+////		return goodsInfoAndQuotes.getTradeMode() == MTPEnums.BIDDING &&
+////				goodsInfoAndQuotes.getGoodsInfo().getMoneyMode() == MTPEnums.MONEYMODE_PAY &&
+////				MTPApplication.getInstance().isBidAttornMode(goodsInfoAndQuotes.getGoodsInfo().getGoodsId());
+//    }
+//
+//    public void destory() {
+//        MessageingManager.getInstance().unRegiter(this);
+//    }
+//
+//    public void clearAndGone() {
+//        mtp_value_sale_five.setText("");
+//        mtp_sum_sale_five.setText("");
+//        mtp_value_sale_four.setText("");
+//        mtp_sum_sale_four.setText("");
+//        mtp_value_sale_three.setText("");
+//        mtp_sum_sale_three.setText("");
+//        mtp_value_sale_two.setText("");
+//        mtp_sum_sale_two.setText("");
+//        mtp_value_sale_one.setText("");
+//        mtp_sum_sale_one.setText("");
+//
+//        mtp_value_buy_one.setText("");
+//        mtp_sum_buy_one.setText("");
+//        mtp_value_buy_two.setText("");
+//        mtp_sum_buy_two.setText("");
+//        mtp_value_buy_three.setText("");
+//        mtp_sum_buy_three.setText("");
+//        mtp_value_buy_four.setText("");
+//        mtp_sum_buy_four.setText("");
+//        mtp_value_buy_five.setText("");
+//        mtp_sum_buy_five.setText("");
+//
+//        mtp_value_sale_five.setVisibility(View.GONE);
+//        mtp_sum_sale_five.setVisibility(View.GONE);
+//        mtp_value_sale_four.setVisibility(View.GONE);
+//        mtp_sum_sale_four.setVisibility(View.GONE);
+//        mtp_value_sale_three.setVisibility(View.GONE);
+//        mtp_sum_sale_three.setVisibility(View.GONE);
+//        mtp_value_sale_two.setVisibility(View.GONE);
+//        mtp_sum_sale_two.setVisibility(View.GONE);
+//        mtp_value_sale_one.setVisibility(View.GONE);
+//        mtp_sum_sale_one.setVisibility(View.GONE);
+//
+//        mtp_value_buy_one.setVisibility(View.GONE);
+//        mtp_sum_buy_one.setVisibility(View.GONE);
+//        mtp_value_buy_two.setVisibility(View.GONE);
+//        mtp_sum_buy_two.setVisibility(View.GONE);
+//        mtp_value_buy_three.setVisibility(View.GONE);
+//        mtp_sum_buy_three.setVisibility(View.GONE);
+//        mtp_value_buy_four.setVisibility(View.GONE);
+//        mtp_sum_buy_four.setVisibility(View.GONE);
+//        mtp_value_buy_five.setVisibility(View.GONE);
+//        mtp_sum_buy_five.setVisibility(View.GONE);
+//    }
+//
+//    /**
+//     * 重新获取数据
+//     */
+//    public void fetchForRefresh(String goodsid) {
+////		try {
+////			SendMessageController.getCommonMode().queryAskStoreOrder(goodsid, MTPApplication.getInstance().getTransferHubCenter());
+////		} catch (Exception e) {
+////			e.printStackTrace();
+////		}
+////		try {
+////			SendMessageController.getCommonMode().queryBidStoreOrder(goodsid, MTPApplication.getInstance().getTransferHubCenter());
+////		} catch (Exception e) {
+////			e.printStackTrace();
+////		}
+//        clearAndGone();
+//        dealBidQueue();
+//        dealAskQueue();
+//
+//    }
+//
+//    private synchronized void dealBidQueue() {
+//
+//        BidQuoteDay quoteTik = (BidQuoteDay) goodsInfoAndQuotes.getQuoteDay();
+//        if (quoteTik == null) {
+//            return;
+//        }
+//        String bidQueueInfo = quoteTik.getBidQueueInfo();
+//
+////		String bidQueueInfo = "万俊甫,55023,12182038123810238,10,25.22;";
+//        if (bidQueueInfo != null && !bidQueueInfo.equals("")) {// 买委托列队
+//            boolean ret = QuoteCollention.getInstance().addBidStoreOrderDatas(bidQueueInfo);// 添加到本地列队中...
+//            if (ret) {
+//                // 请求
+//                try {
+////					SendMessageController.getCommonMode().queryBidStoreOrder(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getGoodsId()),
+////							MTPApplication.getInstance().getTransferHubCenter());
+////					Toast.makeText(mContext, "AttornDataControl.行情中有该账号的数据,重新请求", Toast.LENGTH_SHORT).show();
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//            } else {
+//                clearDown();
+//                reFreshBidData();
+//            }
+//        } else {
+//            clearDown();
+//            QuoteCollention.getInstance().getBidStoreOrderDatas().clear();
+//            reFreshBidData();
+//        }
+//    }
+//
+//    private synchronized void dealAskQueue() {
+//        BidQuoteDay quoteTik = (BidQuoteDay) goodsInfoAndQuotes.getQuoteDay();
+//        if (quoteTik == null) {
+//            return;
+//        }
+//        String askQueueInfo = quoteTik.getAskQueueInfo();
+////		String askQueueInfo = "万俊甫1,55022,12182038123810233,11,25.11;";
+//        if (askQueueInfo != null && !askQueueInfo.equals("")) {// 卖委托列队
+//            boolean ret = QuoteCollention.getInstance().addAskStoreOrderDatas(askQueueInfo);
+//            if (ret) {
+//                // 请求
+//                try {
+////					SendMessageController.getCommonMode().queryAskStoreOrder(String.valueOf(goodsInfoAndQuotes.getGoodsInfo().getGoodsId()),
+////							MTPApplication.getInstance().getTransferHubCenter());
+////					Toast.makeText(mContext, "Attorn ask.行情中有该账号的数据,重新请求", Toast.LENGTH_SHORT).show();
+//
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//            } else {
+//                clearUp();
+//                reFreshAskData();
+//            }
+//        } else {
+//            QuoteCollention.getInstance().getAskStoreOrderDatas().clear();
+//            clearUp();
+//            reFreshAskData();
+//        }
+//    }
+//
+//    @Override
+//    public void onMessageEventThread(MessageEvent messageEvent) {
+//        if (FunCode.QUOTE == messageEvent.getFunCode()) {
+//            boolean canGo = false;
+//            if (messageEvent.getMessageInfo() instanceof ArrayList) {
+//                ArrayList<String> arrayList = (ArrayList) messageEvent.getMessageInfo();
+//                for (int a = 0; a < arrayList.size(); a++) {
+//                    String goodsCode = "";
+//                    if (arrayList.get(a).contains("_")) {
+//                        goodsCode = arrayList.get(a).split("_")[1];
+//                        if (goodsInfoAndQuotes.getGoodsInfo().getGoodsCode().equals(goodsCode)) {
+//                            canGo = true;
+//                            break;
+//                        }
+//                    }
+//                }
+//            }
+//            if (canGo) {
+//                dealBidQueue();
+//                dealAskQueue();
+//            }
+//
+//        } else if (FunCode.QueryAskStoreOrder.equals(messageEvent.getQueryCommonId())) {// 市场上全部的竞价卖持仓
+//            clearUp();
+//            reFreshAskData();
+//        } else if (FunCode.QueryBidStoreOrder.equals(messageEvent.getQueryCommonId())) {// 市场上全部的竞价买持仓
+//            clearDown();
+//            reFreshBidData();
+//        }
+//    }
+//
+//    private void reFreshBidData() {
+//        ArrayList<ListingBidStoreOrderData> arrayList = QuoteCollention.getInstance().getBidStoreOrderDatas();
+//        ListingBidStoreOrderData askStoreOrderData = null;
+//        String name = "";
+//        String price = "";
+//        String count = "";
+//        int decimalPlace = 0;
+//
+////			if (arrayList.size() == 0) {
+////				nh_buy.setVisibility(View.GONE);
+////			}
+//        for (int i = 0; i < arrayList.size(); i++) {
+//            if (i >= 5) {
+//                return;
+//            }
+//            askStoreOrderData = arrayList.get(i);
+//            decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//            name = askStoreOrderData.getAccountname();
+//            if (name != null && name.length() > 1) {
+//                name = MyUtils.makeNameSecret(name);
+//            }
+//
+//            price = MathUtil.roundNum(askStoreOrderData.getOrderprice(), decimalPlace);
+//
+//            count = askStoreOrderData.getEnableqty();
+//            switch (i + 5) {
+//                case 0:
+//                    showItem(mtp_value_sale_five, mtp_sum_sale_five, name, price, count);
+//                    break;
+//                case 1:
+//                    showItem(mtp_value_sale_four, mtp_sum_sale_four, name, price, count);
+//                    break;
+//                case 2:
+//                    showItem(mtp_value_sale_three, mtp_sum_sale_three, name, price, count);
+//                    break;
+//                case 3:
+//                    showItem(mtp_value_sale_two, mtp_sum_sale_two, name, price, count);
+//                    break;
+//                case 4:
+//                    showItem(mtp_value_sale_one, mtp_sum_sale_one, name, price, count);
+//                    break;
+//                case 5:
+//                    showItem(mtp_value_buy_one, mtp_sum_buy_one, name, price, count);
+//                    break;
+//                case 6:
+//                    showItem(mtp_value_buy_two, mtp_sum_buy_two, name, price, count);
+//                    break;
+//                case 7:
+//                    showItem(mtp_value_buy_three, mtp_sum_buy_three, name, price, count);
+//                    break;
+//                case 8:
+//                    showItem(mtp_value_buy_four, mtp_sum_buy_four, name, price, count);
+//                    break;
+//                case 9:
+//                    showItem(mtp_value_buy_five, mtp_sum_buy_five, name, price, count);
+//                    break;
+//                default:
+//                    break;
+//            }
+//        }
+//    }
+//
+//    /**
+//     * 隐藏名字后面的文字
+//     *
+//     * @return 哇哈哈->哇**
+//     */
+//    public static String makeNameSecret(String name) {
+//        if (name == null || "".equals(name)) {
+//            return "";
+//        }
+//        if (name.length() == 1) {
+//            return name;
+//        }
+//        char tem = '*';
+//        char[] value = name.toCharArray();
+//        for (int a = 0; a < value.length; a++) {
+//            if (a != 0) {
+//                value[a] = tem;
+//            }
+//        }
+//        name = new String(value);
+//        return name;
+//    }
+//
+//
+//    private void clearUp() {
+//        mtp_value_sale_five.setVisibility(View.GONE);
+//        mtp_sum_sale_five.setVisibility(View.GONE);
+//        mtp_value_sale_four.setVisibility(View.GONE);
+//        mtp_sum_sale_four.setVisibility(View.GONE);
+//        mtp_value_sale_three.setVisibility(View.GONE);
+//        mtp_sum_sale_three.setVisibility(View.GONE);
+//        mtp_value_sale_two.setVisibility(View.GONE);
+//        mtp_sum_sale_two.setVisibility(View.GONE);
+//        mtp_value_sale_one.setVisibility(View.GONE);
+//        mtp_sum_sale_one.setVisibility(View.GONE);
+//
+//    }
+//
+//    private void clearDown() {
+//        mtp_value_buy_one.setVisibility(View.GONE);
+//        mtp_sum_buy_one.setVisibility(View.GONE);
+//        mtp_value_buy_two.setVisibility(View.GONE);
+//        mtp_sum_buy_two.setVisibility(View.GONE);
+//        mtp_value_buy_three.setVisibility(View.GONE);
+//        mtp_sum_buy_three.setVisibility(View.GONE);
+//        mtp_value_buy_four.setVisibility(View.GONE);
+//        mtp_sum_buy_four.setVisibility(View.GONE);
+//        mtp_value_buy_five.setVisibility(View.GONE);
+//        mtp_sum_buy_five.setVisibility(View.GONE);
+//    }
+//
+//
+//    private void reFreshAskData() {
+//        ArrayList<ListingAskStoreOrderData> arrayList = QuoteCollention.getInstance().getAskStoreOrderDatas();
+//        ListingAskStoreOrderData askStoreOrderData = null;
+//        String name = "";
+//        String price = "";
+//        String count = "";
+//        int decimalPlace = 0;
+////			if (arrayList.size() == 0) {
+////				nh_sale.setVisibility(View.GONE);
+////			}
+//        for (int i = 0; i < arrayList.size(); i++) {
+//            if (i >= 5) {// 最多就只显示10个持仓
+//                return;
+//            }
+//            askStoreOrderData = arrayList.get(i);
+//            decimalPlace = goodsInfoAndQuotes.getGoodsInfo().getDecimalPlace();
+//            name = askStoreOrderData.getAccountname();
+//            if (name != null && name.length() > 1) {
+//                name = MyUtils.makeNameSecret(name);
+//            }
+//
+//            price = MathUtil.roundNum(askStoreOrderData.getOrderprice(), decimalPlace);
+//
+//            count = askStoreOrderData.getEnableqty();
+//            switch (i) {
+//                case 0:
+//                    showItem(mtp_value_sale_five, mtp_sum_sale_five, name, price, count);
+//                    break;
+//                case 1:
+//                    showItem(mtp_value_sale_four, mtp_sum_sale_four, name, price, count);
+//                    break;
+//                case 2:
+//                    showItem(mtp_value_sale_three, mtp_sum_sale_three, name, price, count);
+//                    break;
+//                case 3:
+//                    showItem(mtp_value_sale_two, mtp_sum_sale_two, name, price, count);
+//                    break;
+//                case 4:
+//                    showItem(mtp_value_sale_one, mtp_sum_sale_one, name, price, count);
+//                    break;
+//                case 5:
+//                    showItem(mtp_value_buy_one, mtp_sum_buy_one, name, price, count);
+//                    break;
+//                case 6:
+//                    showItem(mtp_value_buy_two, mtp_sum_buy_two, name, price, count);
+//                    break;
+//                case 7:
+//                    showItem(mtp_value_buy_three, mtp_sum_buy_three, name, price, count);
+//                    break;
+//                case 8:
+//                    showItem(mtp_value_buy_four, mtp_sum_buy_four, name, price, count);
+//                    break;
+//                case 9:
+//                    showItem(mtp_value_buy_five, mtp_sum_buy_five, name, price, count);
+//                    break;
+//                default:
+//                    break;
+//            }
+//        }
+//    }
+//
+//    private void showItem(TextView namePrice, TextView count, String name, String price, String countValue) {
+//        namePrice.setVisibility(View.VISIBLE);
+//        count.setVisibility(View.VISIBLE);
+//
+//        namePrice.setText(name + "  " + price);
+//        count.setText(MathUtil.roundNoNum(countValue, 0));
+//    }
+//
+//}

+ 1 - 1
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/MTPChartControl.java → RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/MTPChartControl.java

@@ -1,4 +1,4 @@
-package cn.muchinfo.rma.view.base.chart.old;
+package cn.muchinfo.rma.view.base.chart.old.controls;
 
 import android.app.Activity;
 import android.content.res.Configuration;

+ 33 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/controls/OTCChartControl.java

@@ -0,0 +1,33 @@
+package cn.muchinfo.rma.view.base.chart.old.controls;
+
+import android.app.Activity;
+
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+public class OTCChartControl extends MTPChartControl {
+    protected static OTCChartControl _instance;
+    private static Lock _lock = new ReentrantLock();
+
+    public static OTCChartControl getInstance(Activity activity) {
+        if (_instance == null) {
+            _lock.lock();
+            if (_instance == null) {
+                _instance = new OTCChartControl(activity);
+            }
+            _lock.unlock();
+        }
+
+        return _instance;
+    }
+
+
+    private OTCChartControl(Activity activity) {
+        super(activity);
+    }
+
+//	public void clear() {
+//		_instance = null;
+//		disposed();
+//	}
+}

+ 1 - 21
RMA/chart/src/main/java/com/desfate/chart/ui/old/OTC/timeCharts/KChartFragment.java → RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/timeCharts/KChartFragment.java

@@ -1,24 +1,4 @@
-package com.desfate.chart.ui.old.OTC.timeCharts;
-
-import android.content.res.Resources.NotFoundException;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.os.CountDownTimer;
-import android.text.Html;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.view.animation.LinearInterpolator;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.PopupWindow;
-import android.widget.TextView;
-
-import java.text.NumberFormat;
-import java.util.ArrayList;
-import java.util.List;
+package cn.muchinfo.rma.view.base.chart.old.timeCharts;
 
 //
 ///**

+ 1 - 30
RMA/chart/src/main/java/com/desfate/chart/ui/old/OTC/timeCharts/TimeChartFragment.java → RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/timeCharts/TimeChartFragment.java

@@ -1,33 +1,4 @@
-package com.desfate.chart.ui.old.OTC.timeCharts;
-
-import android.content.res.Configuration;
-import android.content.res.Resources.NotFoundException;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.os.CountDownTimer;
-import android.os.Handler;
-import android.util.TypedValue;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.view.animation.LinearInterpolator;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.ListView;
-import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedList;
-import java.util.List;
+package cn.muchinfo.rma.view.base.chart.old.timeCharts;
 
 
 /**

+ 390 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/CustomPopWindow.java

@@ -0,0 +1,390 @@
+package cn.muchinfo.rma.view.base.chart.old.views;
+
+import android.annotation.TargetApi;
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Build;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.PopupWindow;
+
+/**
+ *
+ * 自定义PopWindow类,封装了PopWindow的一些常用属性,用Builder模式支持链式调用
+ * Created by zhouwei on 16/11/28.
+ */
+
+public class CustomPopWindow implements PopupWindow.OnDismissListener{
+    private static final String TAG = "CustomPopWindow";
+    private static final float DEFAULT_ALPHA = 0.7f;
+    private Context mContext;
+    private int mWidth;
+    private int mHeight;
+    private boolean mIsFocusable = true;
+    private boolean mIsOutside = true;
+    private int mResLayoutId = -1;
+    private View mContentView;
+    private PopupWindow mPopupWindow;
+    private int mAnimationStyle = -1;
+
+    private boolean mClippEnable = true;//default is true
+    private boolean mIgnoreCheekPress = false;
+    private int mInputMode = -1;
+    private PopupWindow.OnDismissListener mOnDismissListener;
+    private int mSoftInputMode = -1;
+    private boolean mTouchable = true;//default is ture
+    private View.OnTouchListener mOnTouchListener;
+
+    private Window mWindow;//当前Activity 的窗口
+    /**
+     * 弹出PopWindow 背景是否变暗,默认不会变暗。
+     */
+    private boolean mIsBackgroundDark = false;
+
+    private float mBackgroundDrakValue = 0;// 背景变暗的值,0 - 1
+    /**
+     * 设置是否允许点击 PopupWindow之外的地方,关闭PopupWindow
+     */
+    private boolean enableOutsideTouchDisMiss = true;// 默认点击pop之外的地方可以关闭
+
+    private CustomPopWindow(Context context){
+        mContext = context;
+    }
+
+    public int getWidth() {
+        return mWidth;
+    }
+
+    public int getHeight() {
+        return mHeight;
+    }
+
+    /**
+     *
+     * @param anchor
+     * @param xOff
+     * @param yOff
+     * @return
+     */
+    public CustomPopWindow showAsDropDown(View anchor, int xOff, int yOff){
+        if(mPopupWindow!=null){
+            mPopupWindow.showAsDropDown(anchor,xOff,yOff);
+        }
+        return this;
+    }
+
+    public CustomPopWindow showAsDropDown(View anchor){
+        if(mPopupWindow!=null){
+            mPopupWindow.showAsDropDown(anchor);
+        }
+        return this;
+    }
+
+
+    @TargetApi(Build.VERSION_CODES.KITKAT)
+    public CustomPopWindow showAsDropDown(View anchor, int xOff, int yOff, int gravity){
+        if(mPopupWindow!=null){
+            mPopupWindow.showAsDropDown(anchor,xOff,yOff,gravity);
+        }
+        return this;
+    }
+
+
+    /**
+     * 相对于父控件的位置(通过设置Gravity.CENTER,下方Gravity.BOTTOM等 ),可以设置具体位置坐标
+     * @param parent 父控件
+     * @param gravity
+     * @param x the popup's x location offset
+     * @param y the popup's y location offset
+     * @return
+     */
+    public CustomPopWindow showAtLocation(View parent, int gravity, int x, int y){
+        if(mPopupWindow!=null){
+            mPopupWindow.showAtLocation(parent,gravity,x,y);
+        }
+        return this;
+    }
+
+    /**
+     * 添加一些属性设置
+     * @param popupWindow
+     */
+    private void apply(PopupWindow popupWindow){
+        popupWindow.setClippingEnabled(mClippEnable);
+        if(mIgnoreCheekPress){
+            popupWindow.setIgnoreCheekPress();
+        }
+        if(mInputMode!=-1){
+            popupWindow.setInputMethodMode(mInputMode);
+        }
+        if(mSoftInputMode!=-1){
+            popupWindow.setSoftInputMode(mSoftInputMode);
+        }
+        if(mOnDismissListener!=null){
+            popupWindow.setOnDismissListener(mOnDismissListener);
+        }
+        if(mOnTouchListener!=null){
+            popupWindow.setTouchInterceptor(mOnTouchListener);
+        }
+        popupWindow.setTouchable(mTouchable);
+
+
+
+    }
+
+    private PopupWindow build(){
+
+        if(mContentView == null){
+            mContentView = LayoutInflater.from(mContext).inflate(mResLayoutId,null);
+        }
+
+        // 2017.3.17 add
+        // 获取当前Activity的window
+        Activity activity = (Activity) mContentView.getContext();
+        if(activity!=null && mIsBackgroundDark){
+            //如果设置的值在0 - 1的范围内,则用设置的值,否则用默认值
+            final  float alpha = (mBackgroundDrakValue > 0 && mBackgroundDrakValue < 1) ? mBackgroundDrakValue : DEFAULT_ALPHA;
+            mWindow = activity.getWindow();
+            WindowManager.LayoutParams params = mWindow.getAttributes();
+            params.alpha = alpha;
+            mWindow.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+            mWindow.setAttributes(params);
+        }
+
+
+        if(mWidth != 0 && mHeight!=0 ){
+            mPopupWindow = new PopupWindow(mContentView,mWidth,mHeight);
+        }else{
+            mPopupWindow = new PopupWindow(mContentView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        }
+        if(mAnimationStyle!=-1){
+            mPopupWindow.setAnimationStyle(mAnimationStyle);
+        }
+
+        apply(mPopupWindow);//设置一些属性
+
+        if(mWidth == 0 || mHeight == 0){
+            mPopupWindow.getContentView().measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
+            //如果外面没有设置宽高的情况下,计算宽高并赋值
+            mWidth = mPopupWindow.getContentView().getMeasuredWidth();
+            mHeight = mPopupWindow.getContentView().getMeasuredHeight();
+        }
+
+        // 添加dissmiss 监听
+        mPopupWindow.setOnDismissListener(this);
+
+        //2017.6.27 add:fix 设置  setOutsideTouchable(false)点击外部取消的bug.
+        // 判断是否点击PopupWindow之外的地方关闭 popWindow
+        if(!enableOutsideTouchDisMiss){
+            //注意这三个属性必须同时设置,不然不能disMiss,以下三行代码在Android 4.4 上是可以,然后在Android 6.0以上,下面的三行代码就不起作用了,就得用下面的方法
+            mPopupWindow.setFocusable(true);
+            mPopupWindow.setOutsideTouchable(false);
+            mPopupWindow.setBackgroundDrawable(null);
+            //注意下面这三个是contentView 不是PopupWindow
+            mPopupWindow.getContentView().setFocusable(true);
+            mPopupWindow.getContentView().setFocusableInTouchMode(true);
+            mPopupWindow.getContentView().setOnKeyListener(new View.OnKeyListener() {
+                @Override
+                public boolean onKey(View v, int keyCode, KeyEvent event) {
+                    if (keyCode == KeyEvent.KEYCODE_BACK) {
+                        mPopupWindow.dismiss();
+
+                        return true;
+                    }
+                    return false;
+                }
+            });
+            //在Android 6.0以上 ,只能通过拦截事件来解决
+            mPopupWindow.setTouchInterceptor(new View.OnTouchListener() {
+                @Override
+                public boolean onTouch(View v, MotionEvent event) {
+
+                    final int x = (int) event.getX();
+                    final int y = (int) event.getY();
+
+                    if ((event.getAction() == MotionEvent.ACTION_DOWN)
+                            && ((x < 0) || (x >= mWidth) || (y < 0) || (y >= mHeight))) {
+                        Log.e(TAG,"out side ");
+                        Log.e(TAG,"width:"+mPopupWindow.getWidth()+"height:"+mPopupWindow.getHeight()+" x:"+x+" y  :"+y);
+                        return true;
+                    } else if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
+                        Log.e(TAG,"out side ...");
+                        return true;
+                    }
+                    return false;
+                }
+            });
+        }else{
+            mPopupWindow.setFocusable(mIsFocusable);
+            mPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+            mPopupWindow.setOutsideTouchable(mIsOutside);
+        }
+        // update
+        mPopupWindow.update();
+
+        return mPopupWindow;
+    }
+
+    @Override
+    public void onDismiss() {
+        dissmiss();
+    }
+
+    /**
+     * 关闭popWindow
+     */
+    public void dissmiss(){
+
+        if(mOnDismissListener!=null){
+            mOnDismissListener.onDismiss();
+        }
+
+        //如果设置了背景变暗,那么在dissmiss的时候需要还原
+        if(mWindow!=null){
+            WindowManager.LayoutParams params = mWindow.getAttributes();
+            params.alpha = 1.0f;
+            mWindow.setAttributes(params);
+        }
+        if(mPopupWindow!=null && mPopupWindow.isShowing()){
+            mPopupWindow.dismiss();
+        }
+    }
+
+    public PopupWindow getPopupWindow() {
+        return mPopupWindow;
+    }
+
+    public static class PopupWindowBuilder{
+        private CustomPopWindow mCustomPopWindow;
+
+        public PopupWindowBuilder(Context context){
+            mCustomPopWindow = new CustomPopWindow(context);
+        }
+        public PopupWindowBuilder size(int width,int height){
+            mCustomPopWindow.mWidth = width;
+            mCustomPopWindow.mHeight = height;
+            return this;
+        }
+
+
+        public PopupWindowBuilder setFocusable(boolean focusable){
+            mCustomPopWindow.mIsFocusable = focusable;
+            return this;
+        }
+
+
+
+        public PopupWindowBuilder setView(int resLayoutId){
+            mCustomPopWindow.mResLayoutId = resLayoutId;
+            mCustomPopWindow.mContentView = null;
+            return this;
+        }
+
+        public PopupWindowBuilder setView(View view){
+            mCustomPopWindow.mContentView = view;
+            mCustomPopWindow.mResLayoutId = -1;
+            return this;
+        }
+
+        public PopupWindowBuilder setOutsideTouchable(boolean outsideTouchable){
+            mCustomPopWindow.mIsOutside = outsideTouchable;
+            return this;
+        }
+
+        /**
+         * 设置弹窗动画
+         * @param animationStyle
+         * @return
+         */
+        public PopupWindowBuilder setAnimationStyle(int animationStyle){
+            mCustomPopWindow.mAnimationStyle = animationStyle;
+            return this;
+        }
+
+
+        public PopupWindowBuilder setClippingEnable(boolean enable){
+            mCustomPopWindow.mClippEnable =enable;
+            return this;
+        }
+
+
+        public PopupWindowBuilder setIgnoreCheekPress(boolean ignoreCheekPress){
+            mCustomPopWindow.mIgnoreCheekPress = ignoreCheekPress;
+            return this;
+        }
+
+        public PopupWindowBuilder setInputMethodMode(int mode){
+            mCustomPopWindow.mInputMode = mode;
+            return this;
+        }
+
+        public PopupWindowBuilder setOnDissmissListener(PopupWindow.OnDismissListener onDissmissListener){
+            mCustomPopWindow.mOnDismissListener = onDissmissListener;
+            return this;
+        }
+
+
+        public PopupWindowBuilder setSoftInputMode(int softInputMode){
+            mCustomPopWindow.mSoftInputMode = softInputMode;
+            return this;
+        }
+
+
+        public PopupWindowBuilder setTouchable(boolean touchable){
+            mCustomPopWindow.mTouchable = touchable;
+            return this;
+        }
+
+        public PopupWindowBuilder setTouchIntercepter(View.OnTouchListener touchIntercepter){
+            mCustomPopWindow.mOnTouchListener = touchIntercepter;
+            return this;
+        }
+
+        /**
+         * 设置背景变暗是否可用
+         * @param isDark
+         * @return
+         */
+        public PopupWindowBuilder enableBackgroundDark(boolean isDark){
+            mCustomPopWindow.mIsBackgroundDark = isDark;
+            return this;
+        }
+
+        /**
+         * 设置背景变暗的值
+         * @param darkValue
+         * @return
+         */
+        public PopupWindowBuilder setBgDarkAlpha(float darkValue){
+            mCustomPopWindow.mBackgroundDrakValue = darkValue;
+            return this;
+        }
+
+        /**
+         * 设置是否允许点击 PopupWindow之外的地方,关闭PopupWindow
+         * @param disMiss
+         * @return
+         */
+        public PopupWindowBuilder enableOutsideTouchableDissmiss(boolean disMiss){
+            mCustomPopWindow.enableOutsideTouchDisMiss = disMiss;
+            return this;
+        }
+
+
+        public CustomPopWindow create(){
+            //构建PopWindow
+            mCustomPopWindow.build();
+            return mCustomPopWindow;
+        }
+
+    }
+
+}

+ 30 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/ScrollListView.java

@@ -0,0 +1,30 @@
+package cn.muchinfo.rma.view.base.chart.old.views;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.ListView;
+
+/**
+ * Created by chuck on 2015/11/26.
+ */
+public class ScrollListView extends ListView {
+    private float mDownY;
+
+    public ScrollListView(Context context) {
+        super(context);
+    }
+
+    public ScrollListView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public ScrollListView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(widthMeasureSpec
+                , MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST));
+    }
+}

+ 289 - 0
RMA/app/src/main/java/cn/muchinfo/rma/view/base/chart/old/views/TenMarketQuotationView.java

@@ -0,0 +1,289 @@
+package cn.muchinfo.rma.view.base.chart.old.views;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+//
+//
+///**
+// * 十档行情页面
+// */
+//public class TenMarketQuotationView extends FrameLayout {
+//
+//    private ScrollListView buy_listview;
+//    private ScrollListView sell_listview;
+//    private TextView buy_title;
+//    private TextView sell_title;
+//    private TextView select_quatation;
+//    private CustomPopWindow mCustomPopWindow;
+//
+//    private List<TenMarketData> buyList = new ArrayList<>();
+//    private List<TenMarketData> sellList = new ArrayList<>();
+//
+//    private TenMarketAdapter buyAdapter;
+//    private TenMarketAdapter sellAdapter;
+//    private int QuoteGear;
+//
+//    private int decimalPlace = 1;
+//    private double preSettle = 0;
+//    private int selectNum = 0;
+//
+//    public TenMarketQuotationView(Context context, @Nullable AttributeSet attrs) {
+//        super(context, attrs);
+//        inflate(getContext(), R.layout.manage_ten_market_view, this);
+//        findView();
+//        init();
+//    }
+//
+//    public void findView() {
+//        buy_listview = findViewById(R.id.buy_listview);
+//        sell_listview = findViewById(R.id.sell_listview);
+//        buy_title = findViewById(R.id.buy_title);
+//        sell_title = findViewById(R.id.sell_title);
+//        select_quatation = findViewById(R.id.select_quatation);
+//
+//        select_quatation.setOnClickListener(view ->
+//                showPopwindow()
+//        );
+//    }
+//
+//
+////    public void hideSelect(boolean b) {
+////        select_quatation.setVisibility(b ? GONE : VISIBLE);
+////    }
+//
+//
+//    public void showPopwindow() {
+//        if (QuoteGear != 0 && QuoteGear != 1){
+//            View contentView = LayoutInflater.from(getContext()).inflate(R.layout.quosition_pop_menu,null);
+//            //处理popWindow 显示内容
+//            handleLogic(contentView);
+//            //创建并显示popWindow
+//            mCustomPopWindow= new CustomPopWindow.PopupWindowBuilder(getContext())
+//                    .setView(contentView)
+//                    .create()
+//                    .showAsDropDown(select_quatation,0,20);
+//        }
+//
+//    }
+//
+//    /**
+//     * 处理弹出显示内容、点击事件等逻辑
+//     * 咱也不知道为啥突然不要下拉框 ,极有可能某一天突然又改回来,代码还是暂时留在这里吧
+//     *
+//     * @param contentView
+//     */
+//    private void handleLogic(View contentView) {
+//        OnClickListener listener = v -> {
+//            if (mCustomPopWindow != null) {
+//                mCustomPopWindow.dissmiss();
+//            }
+//            switch (v.getId()) {
+//                case R.id.menu1:
+//                    selectNum = 1;
+//                    showList(1);
+//                    break;
+//                case R.id.menu2:
+//                    selectNum = 5;
+//                    showList(5);
+//                    break;
+//                case R.id.menu3:
+//                    selectNum = 10;
+//                    showList(10);
+//                    break;
+//            }
+//        };
+//        contentView.findViewById(R.id.menu1).setOnClickListener(listener);
+//        contentView.findViewById(R.id.menu2).setOnClickListener(listener);
+//        contentView.findViewById(R.id.menu3).setOnClickListener(listener);
+//    }
+//
+//    public void showList(int selenum) {
+//        if (buyList.size() == 0 || sellList.size() == 0){
+//            return;
+//        }
+//        if (selenum == 1) {
+//            buy_title.setText(R.string.buy_one);
+//            sell_title.setText(R.string.sale_one);
+//            select_quatation.setText("1");
+//        } else if (selenum == 5) {
+//            buy_title.setText(R.string.buy_five);
+//            sell_title.setText(R.string.sale_five);
+//            select_quatation.setText("5");
+//        } else if (selenum == 10) {
+//            buy_title.setText(R.string.buy_ten);
+//            sell_title.setText(R.string.sale_ten);
+//            select_quatation.setText("10");
+//        }
+//        List<TenMarketData> selectBuyList = new ArrayList<>();
+//        List<TenMarketData> selectSellList = new ArrayList<>();
+//        for (int i = 0; i < selenum; i++) {
+//            selectBuyList.add(this.buyList.get(i));
+//            selectSellList.add(this.sellList.get(i));
+//        }
+//        buyAdapter.setdata(selectBuyList);
+//        sellAdapter.setdata(selectSellList);
+//    }
+//
+//    public void init() {
+//        buyAdapter = new TenMarketAdapter(buyList, getContext(), 1);
+//        buy_listview.setAdapter(buyAdapter);
+//
+//        sellAdapter = new TenMarketAdapter(sellList, getContext(), 2);
+//        sell_listview.setAdapter(sellAdapter);
+//    }
+//
+//    public void setDatas(List<TenMarketData> buyList, List<TenMarketData> sellList, int decimalPlace, String preSettle, int QuoteGear) {
+//        this.decimalPlace = decimalPlace;
+//        this.buyList = buyList;
+//        this.sellList = sellList;
+//        this.preSettle = Double.parseDouble(preSettle);
+//        this.QuoteGear = QuoteGear;
+//        selectNum = QuoteGear;
+//        if (selectNum != 0){
+//            showList(selectNum);
+//        }
+//
+//    }
+//
+//    class TenMarketAdapter extends BaseAdapter {
+//        HolderView holderView;
+//        List<TenMarketData> valueList;
+//        int type = 0;
+//        Context context;
+//
+//        TenMarketAdapter(List<TenMarketData> valueList, Context context, int type) {
+//            this.valueList = valueList;
+//            this.context = context;
+//            this.type = type;
+//        }
+//
+//        public void setdata(List<TenMarketData> valueList) {
+//            this.valueList = valueList;
+//            notifyDataSetChanged();
+//        }
+//
+//        @Override
+//        public int getCount() {
+//            return valueList.size();
+//        }
+//
+//        @Override
+//        public TenMarketData getItem(int position) {
+//            return valueList.get(position);
+//        }
+//
+//        @Override
+//        public long getItemId(int position) {
+//            return position;
+//        }
+//
+//        @Override
+//        public View getView(int position, View convertView, ViewGroup parent) {
+//
+//            if (convertView == null) {
+//                holderView = new HolderView();
+//                convertView = LayoutInflater.from(context).inflate(R.layout.item_manage_ten, null);
+//                holderView.id_tv = convertView.findViewById(R.id.id_tv);
+//                holderView.price_tv = convertView.findViewById(R.id.price_tv);
+//                holderView.num_tv = convertView.findViewById(R.id.num_tv);
+//                holderView.order_volume = convertView.findViewById(R.id.order_volume);
+//                convertView.setTag(holderView);
+//            } else {
+//                holderView = (HolderView) convertView.getTag();
+//            }
+//
+//            TenMarketData data = valueList.get(position);
+//            if (type == 1) {
+//                holderView.id_tv.setBackgroundColor(context.getResources().getColor(R.color.manager_blue_bg));
+//            } else {
+//                holderView.id_tv.setBackgroundColor(context.getResources().getColor(R.color.manager_yellow_bg));
+//            }
+//            if (data != null) {
+//                if (data.getPrice() == null || data.getPrice().equals("0.0")) {
+//                    holderView.price_tv.setText("--");
+//                } else {
+//                    holderView.price_tv.setText(Utils.roundNum(data.getPrice(), decimalPlace));
+//                    if (Double.parseDouble(data.getPrice()) > preSettle) {// 红
+//                        holderView.price_tv.setTextColor(getResources().getColor(R.color.manager_up_color));
+//                    } else if (Double.parseDouble(data.getPrice()) < preSettle) {// 绿
+//                        holderView.price_tv.setTextColor(getResources().getColor(R.color.manager_down_color));
+//                    } else {// 百色
+//                        holderView.price_tv.setTextColor(getResources().getColor(R.color.manager_normal_color));
+//                    }
+//                }
+//                if (MathUtil.isValidDouble(data.getPrice())) {
+//                    if (Double.valueOf(data.getPrice()) == 0) {
+//                        holderView.price_tv.setText("--");
+//                    }
+//                }
+//
+//                holderView.id_tv.setText(String.valueOf(position + 1));
+//                holderView.num_tv.setText(PolApplication.shortNum(data.getAllNum()));
+//                holderView.order_volume.setText(PolApplication.getOrderVolume(data.getOrderVolume()));
+//            }
+//            return convertView;
+//        }
+//
+//        class HolderView {
+//            TextView id_tv;
+//            TextView price_tv;
+//            TextView num_tv;
+//            TextView order_volume;
+//        }
+//    }
+//
+////    @Override
+////    public boolean onInterceptTouchEvent(MotionEvent ev) {
+////        return true;
+////    }
+//
+//    public static class TenMarketData {
+//        String price;
+//        String allNum;
+//        String nums;
+//
+//        String orderVolume;
+//
+//        public String getOrderVolume() {
+//            return orderVolume;
+//        }
+//
+//        public void setOrderVolume(String orderVolume) {
+//            this.orderVolume = orderVolume;
+//        }
+//
+//        public String getPrice() {
+//            return price;
+//        }
+//
+//        public void setPrice(String price) {
+//            this.price = price;
+//        }
+//
+//        public String getAllNum() {
+//            return allNum;
+//        }
+//
+//        public void setAllNum(String allNum) {
+//            this.allNum = allNum;
+//        }
+//
+//        public String getNums() {
+//            return nums;
+//        }
+//
+//        public void setNums(String nums) {
+//            this.nums = nums;
+//        }
+//    }
+//
+//}

+ 74 - 0
RMA/app/src/main/res/layout/manage_ten_market_view.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="horizontal">
+
+    <RelativeLayout
+        android:id="@+id/buy_ten_lay"
+        android:layout_width="match_parent"
+        android:background="@color/manager_body_bg"
+        android:layout_weight="1"
+        android:focusableInTouchMode="true"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:id="@+id/buy_title"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="买十"
+            android:textColor="@color/p_global_write_color"
+            android:textSize="@dimen/textsize_16sp"
+            android:layout_margin="10dp"
+            />
+
+        <cn.muchinfo.rma.view.base.chart.old.views.ScrollListView
+            android:divider="@null"
+            android:layout_below="@+id/buy_title"
+            android:id="@+id/buy_listview"
+            android:background="@color/manager_buy_lay_bg"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"/>
+
+
+    </RelativeLayout>
+
+    <RelativeLayout
+        android:id="@+id/sell_ten_lay"
+        android:layout_width="match_parent"
+        android:layout_weight="1"
+        android:focusableInTouchMode="true"
+        android:background="@color/manager_body_bg"
+        android:layout_height="wrap_content">
+
+        <TextView
+            android:id="@+id/sell_title"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:text="卖十"
+            android:textColor="@color/p_global_write_color"
+            android:textSize="@dimen/textsize_16sp"
+            android:layout_margin="10dp"
+            />
+
+        <TextView
+            android:id="@+id/select_quatation"
+            android:paddingStart="5dp"
+            android:paddingEnd="5dp"
+            android:background="@drawable/choice_bg_white"
+            android:layout_margin="10dp"
+            android:layout_alignParentRight="true"
+            android:textColor="@color/p_global_write_color"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <cn.muchinfo.rma.view.base.chart.old.views.ScrollListView
+            android:divider="@null"
+            android:layout_below="@+id/sell_title"
+            android:id="@+id/sell_listview"
+            android:layout_width="wrap_content"
+            android:background="@color/manager_sell_lay_bg"
+            android:layout_height="wrap_content"/>
+    </RelativeLayout>
+
+</LinearLayout>

+ 16 - 0
RMA/chart/src/main/java/com/desfate/chart/ui/old/OTC/listener/OnChartListener.java

@@ -0,0 +1,16 @@
+package com.desfate.chart.ui.old.OTC.listener;
+
+import com.desfate.chart.ui.old.OTC.datas.HistoryQuoteResponse;
+
+/**
+ * Created by cxl on 2018/4/16.
+ */
+
+public interface OnChartListener {
+
+    void onSuccess(HistoryQuoteResponse response, long serialNumber);
+
+    void onTimeOut(long serialNumber);
+
+    void onRequestNetError(long serialNumber);
+}

+ 0 - 179
RMA/chart/src/main/java/com/desfate/chart/ui/old/adapter/HistoryQuoteResponse.java

@@ -1,179 +0,0 @@
-package com.desfate.chart.ui.old.adapter;
-
-import com.desfate.chart.util.ByteUtils;
-
-import java.io.UnsupportedEncodingException;
-import java.nio.ByteOrder;
-
-public class HistoryQuoteResponse {
-	// typedef struct tagQUERY_CYCLE_RSP
-	// {
-	// int16_t iExchCode; // 交易所代码
-	// char szSymbol[64]; // 商品代码
-	// int16_t iType; // 类型
-	// int16_t iRaidx; // 小数位数
-	// int32_t iCount; // 记录数
-	// CYCLE_DATA cycData[0]; // 周期数据
-	// } QUERY_CYCLE_RSP;
-	// 交易所代码
-
-	// 一笔周期数据长度
-	private static int CYCLE_LENGTH = 36;
-	
-	// 一笔tik数据的长度
-	private static int TIK_LENGTH = 40;
-	
-	// 历史数据抬头的长度
-	private static int HEAD_LENGTH = 74;
-
-
-    // 交易所代码  2
-	private short exchangeCode;
-
-	// 商品代码 64
-	private String goodsCode;
-
-	// 数据类型 2
-	private short type;
-
-	// 小数位数 2
-	private short decimalPlace;
-
-	// 记录数 4
-	private int count;
-
-	// 历史数据 
-	private byte[] datas;
-	
-
-	public short getExchangeCode() {
-		return exchangeCode;
-	}
-
-
-
-	public void setExchangeCode(short exchangeCode) {
-		this.exchangeCode = exchangeCode;
-	}
-
-
-
-	public String getGoodsCode() {
-		return goodsCode;
-	}
-
-
-
-	public void setGoodsCode(String goodsCode) {
-		this.goodsCode = goodsCode;
-	}
-
-
-
-	public short getType() {
-		return type;
-	}
-
-
-
-	public void setType(short type) {
-		this.type = type;
-	}
-
-
-
-	public short getDecimalPlace() {
-		return decimalPlace;
-	}
-
-
-
-	public void setDecimalPlace(short decimalPlace) {
-		this.decimalPlace = decimalPlace;
-	}
-
-
-
-	public int getCount() {
-		return count;
-	}
-
-
-
-	public void setCount(int count) {
-		this.count = count;
-	}
-
-
-
-	public byte[] getContent() {
-		return datas;
-	}
-
-
-
-	public void setContent(byte[] datas) {
-		this.datas = datas;
-	}
-
-
-    /**
-	 * 将二进制数据转换为历史请求返回对象
-	 * 这里只取出数据的头和数据体
-	 * @param content
-	 *            二进制数据
-	 * @return
-	 */
-	public static HistoryQuoteResponse toObject(byte[] content) {
-		if (content == null) {
-			return null;
-		}
-
-		// 如果小于最小长度 直接返回
-		if (content.length < HEAD_LENGTH) {
-			return null;
-		}
-
-		HistoryQuoteResponse response = new HistoryQuoteResponse();
-		int index = 0;
-		byte[] block;
-		response.exchangeCode = ByteUtils.bytesToShort(content, index, ByteOrder.BIG_ENDIAN);
-		index += 2;
-		block = new byte[64];
-		System.arraycopy(content, index, block, 0, block.length);
-		int zeroIndex = -1;
-		for (int i = 0;i <block.length; i++) {
-			if(block[i] == 0){
-				zeroIndex = i;
-				break;
-			}
-		}
-		if(zeroIndex > 0){
-			block = new byte[zeroIndex + 1];
-			System.arraycopy(content, index, block, 0, block.length);
-		}
-		try {
-			response.goodsCode = new String(block, "utf-8");
-		} catch (UnsupportedEncodingException e) {
-			e.printStackTrace();
-			return null;
-		}
-
-		index += 64;
-		response.type = ByteUtils.bytesToShort(content, index, ByteOrder.BIG_ENDIAN);
-		index += 2;
-		response.decimalPlace = ByteUtils.bytesToShort(content, index, ByteOrder.BIG_ENDIAN);
-		index += 2;
-		response.count = ByteUtils.bytesToInt(content, index, ByteOrder.BIG_ENDIAN);
-		index += 4;
-
-		if (response.count != 0) {
-			if (content.length > HEAD_LENGTH) {
-				response.datas = new byte[content.length - HEAD_LENGTH];
-				System.arraycopy(content, index, response.datas, 0, response.datas.length);
-			}
-		}
-
-		return response;
-	}
-}

+ 1 - 0
RMA/chart/src/main/java/com/desfate/chart/ui/old/adapter/HistoryTik.java

@@ -1,6 +1,7 @@
 package com.desfate.chart.ui.old.adapter;
 
 
+import com.desfate.chart.ui.old.OTC.datas.HistoryQuoteResponse;
 import com.desfate.chart.util.ByteUtils;
 import com.desfate.chart.util.LogUtils;
 

+ 12 - 0
RMA/chart/src/main/res/drawable/choice_bg_white.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <stroke
+        android:color="@color/p_bottom_g_color"
+        android:width="2dp" />
+    <solid android:color="@color/manager_title_bg" />
+    <corners
+        android:bottomLeftRadius="0dp"
+        android:topLeftRadius="0dp"
+        android:bottomRightRadius="2dp"
+        android:topRightRadius="2dp" />
+</shape>

+ 7 - 0
RMA/chart/src/main/res/values/colors.xml

@@ -71,4 +71,11 @@
 
     <!--点击item时的颜色-->
     <color name="p_item_click">#d7d7d7</color>
+
+    <!-- 图表相关 -->
+    <color name="manager_body_bg">#1e1e1e</color>
+    <color name="p_global_write_color">#FFFFFF</color>
+    <color name="manager_buy_lay_bg">#1b212e</color>
+    <color name="manager_sell_lay_bg">#2f251b</color>
+    <color name="manager_title_bg">#1f2120</color>
 </resources>