package com.didi.biz.editor.container; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.util.Log; import android.widget.Toast; import com.example.test4uibuilder.R; //TODO 发单页卡关,控制接机送机和其他业务类型, key buildTemplate public class OrderCreatorMainActivity extends Activity implements ICreatorItemInputCallback { private static final String CREATOR_TYPE = "creator_type"; private static final String TAG = "OrderCreatorMainActivity"; /** * 启动发单页 * * @param acContext * @param type */ public static void startMe(Activity acContext, CreatorType type) { if (null != acContext) { Intent intent = new Intent(); intent.putExtra(CREATOR_TYPE, type); acContext.startActivity(intent); } } private OrderCreatorItemBase mItemPassanger; private OrderCreatorItemBase mItemFlight; private OrderCreatorItemBase mItemStartTime; private OrderCreatorItemBase mItemStartPos; private OrderCreatorItemBase mItemToPos; private OrderCreatorItemBase mItemRentTime; private OrderCreatorItemBase mItemCarType; /** 元素顺序很重要,涉及到发单页输入有效性校验 */ private List<OrderCreatorItemBase> mOrderedTemplate = new ArrayList<OrderCreatorItemBase>(); private Handler mHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { if (msg.what == 1) { Toast.makeText(getApplicationContext(), "PickAtAirport", Toast.LENGTH_LONG).show(); buildTemplate(CreatorType.PickAtAirport); mHandler.sendEmptyMessageDelayed(2, 10000); } if (msg.what == 2) { Toast.makeText(getApplicationContext(), "SendToAirport", Toast.LENGTH_LONG).show(); buildTemplate(CreatorType.SendToAirport); mHandler.sendEmptyMessageDelayed(3, 10000); } if (msg.what == 3) { Toast.makeText(getApplicationContext(), "RentCar", Toast.LENGTH_LONG).show(); buildTemplate(CreatorType.RentCar); mHandler.sendEmptyMessageDelayed(4, 10000); } if (msg.what == 4) { Toast.makeText(getApplicationContext(), "BookingCar", Toast.LENGTH_LONG).show(); buildTemplate(CreatorType.BookingCar); mHandler.sendEmptyMessageDelayed(1, 10000);// 消息继续循环 } return false; } }); @Override protected void onDestroy() { super.onDestroy(); mHandler.removeCallbacksAndMessages(null); }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.order_creator_main); initItems(); // CreatorType type = CreatorType.BookingCar; // if (null != getIntent()) { // type = (CreatorType) getIntent().getSerializableExtra(CREATOR_TYPE); // if (null == type) { // type = CreatorType.BookingCar; // } // } // buildTemplate(type); mHandler.sendEmptyMessageDelayed(1, 0); } /** * */ private void initItems() { mItemCarType = (OrderCreatorItemBase) findViewById(R.id.car_type); OrderCreatorUIHelper.initCarType(mItemCarType, this); mItemFlight = (OrderCreatorItemBase) findViewById(R.id.flight_no); OrderCreatorUIHelper.initFlight(mItemFlight, this); mItemPassanger = (OrderCreatorItemBase) findViewById(R.id.for_who); OrderCreatorUIHelper.initPassanger(mItemPassanger, this); mItemRentTime = (OrderCreatorItemBase) findViewById(R.id.rent_time); OrderCreatorUIHelper.initRentTime(mItemRentTime, this); mItemStartPos = (OrderCreatorItemBase) findViewById(R.id.from_pos); OrderCreatorUIHelper.initStartPos(mItemStartPos, this); mItemStartTime = (OrderCreatorItemBase) findViewById(R.id.start_time); OrderCreatorUIHelper.initStartTime(mItemStartTime, this); mItemToPos = (OrderCreatorItemBase) findViewById(R.id.to_pos); OrderCreatorUIHelper.initToPos(mItemToPos, this); // add all by ui orders mOrderedTemplate.add(mItemPassanger); mOrderedTemplate.add(mItemFlight); mOrderedTemplate.add(mItemStartTime); mOrderedTemplate.add(mItemStartPos); mOrderedTemplate.add(mItemToPos); mOrderedTemplate.add(mItemRentTime); mOrderedTemplate.add(mItemCarType); } /** * @param type * */ private void buildTemplate(CreatorType type) { // enable all for (int i = 0; i < mOrderedTemplate.size(); i++) { mOrderedTemplate.get(i).setItemEnabled(true); } // disable the unnecessary items switch (type) { case PickAtAirport: mItemRentTime.setItemEnabled(false); break; case SendToAirport:// fall through case BookingCar: mItemFlight.setItemEnabled(false); mItemRentTime.setItemEnabled(false); break; case RentCar: mItemFlight.setItemEnabled(false); mItemToPos.setItemEnabled(false); break; default: break; } } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#requestPassenger() */ @Override public void requestPassenger() { Log.i(TAG, "requestPassenger"); Intent i = new Intent(Intent.ACTION_PICK); i.setType(Phone.CONTENT_TYPE); startActivityForResult(i, RequestCode.REQUEST_CODE_PICK_PASSANGER); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#onPassengerSelected() */ @Override public void onPassengerSelected() { Log.i(TAG, "onPassengerSelected"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#requestFlight() */ @Override public void requestFlight() { Log.i(TAG, "requestFlight"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#onFlightSelected() */ @Override public void onFlightSelected() { Log.i(TAG, "onFlightSelected"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#requestStartTime() */ @Override public void requestStartTime() { Log.i(TAG, "requestStartTime"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#onStartTimeSelected() */ @Override public void onStartTimeSelected() { Log.i(TAG, "onStartTimeSelected"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#requestFromPos() */ @Override public void requestFromPos() { Log.i(TAG, "requestFromPos"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#onFromPosSelected() */ @Override public void onFromPosSelected() { Log.i(TAG, "onFromPosSelected"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#requestToPos() */ @Override public void requestToPos() { Log.i(TAG, "requestToPos"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#onToPosSelected() */ @Override public void onToPosSelected() { Log.i(TAG, "onToPosSelected"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#requestRentTime() */ @Override public void requestRentTime() { Log.i(TAG, "requestRentTime"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#onRentTimeSelected() */ @Override public void onRentTimeSelected() { Log.i(TAG, "onRentTimeSelected"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#requestCarType() */ @Override public void requestCarType() { Log.i(TAG, "requestCarType"); } /* * (non-Javadoc) * * @see com.didi.biz.editor.container.ICreatorItemInputCallback#onCarTypeSelected() */ @Override public void onCarTypeSelected() { Log.i(TAG, "onCarTypeSelected"); } /* (non-Javadoc) * @see android.app.Activity#onActivityResult(int, int, android.content.Intent) */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (RESULT_OK == resultCode) { if (RequestCode.REQUEST_CODE_PICK_PASSANGER == requestCode) { onPassengerSelected(); } } } }