package com.mozu.mozuandroidinstoreassistant.app.order; import android.app.DialogFragment; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import android.text.format.DateFormat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.mozu.api.contracts.commerceruntime.fulfillment.Package; import com.mozu.api.contracts.commerceruntime.fulfillment.PackageItem; import com.mozu.api.contracts.core.Address; import com.mozu.api.contracts.core.Contact; import com.mozu.mozuandroidinstoreassistant.app.ProductDetailActivity; import com.mozu.mozuandroidinstoreassistant.app.R; import com.mozu.mozuandroidinstoreassistant.app.order.adapters.OrderDetailPackageItemAdapter; import com.mozu.mozuandroidinstoreassistant.app.models.FulfillmentItem; import com.mozu.mozuandroidinstoreassistant.app.models.authentication.UserAuthenticationStateMachine; import com.mozu.mozuandroidinstoreassistant.app.models.authentication.UserAuthenticationStateMachineProducer; import com.mozu.mozuandroidinstoreassistant.app.utils.ProductUtils; import com.mozu.mozuandroidinstoreassistant.app.utils.ShipperUtils; import java.util.Date; import butterknife.ButterKnife; import butterknife.InjectView; public class PackageInfoDialogFragment extends DialogFragment { private FulfillmentItem mFulfillmentItem; @InjectView(R.id.package_name) TextView mPackageName; @InjectView(R.id.address) TextView mAddress; @InjectView(R.id.shipping) TextView mShipping; @InjectView(R.id.packaging_type) TextView mPackagingType; @InjectView(R.id.tracking_number) TextView mTrackingNumber; @InjectView(R.id.status) TextView mStatus; @InjectView(R.id.ship_date) TextView mShipDate; @InjectView(R.id.package_items_list) ListView mList; @InjectView(R.id.package_info_close) ImageView mPackageInfoClose; private Integer mTenantId; private Integer mSiteId; public PackageInfoDialogFragment() { // Required empty public constructor setStyle(STYLE_NO_TITLE, 0); setRetainInstance(true); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.package_dialog_fragment, null); ButterKnife.inject(this, view); mList.setDivider(null); if (mFulfillmentItem != null) { setFulfillmentItemViews(); } mList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { PackageItem item = (PackageItem) adapterView.getItemAtPosition(position); String productCode = ProductUtils.getPackageorPickupProductCode(item.getProductCode()); Intent intent = new Intent(getActivity(), ProductDetailActivity.class); UserAuthenticationStateMachine userAuthenticationStateMachine = UserAuthenticationStateMachineProducer.getInstance(getActivity()); intent.putExtra(ProductDetailActivity.PRODUCT_CODE_EXTRA_KEY, productCode); intent.putExtra(ProductDetailActivity.CURRENT_TENANT_ID, userAuthenticationStateMachine.getTenantId()); intent.putExtra(ProductDetailActivity.CURRENT_SITE_ID, userAuthenticationStateMachine.getSiteId()); startActivity(intent); } }); return view; } private void setFulfillmentItemViews() { setPackageItems(); mPackageName.setText(mFulfillmentItem.getPackageNumber()); mPackageInfoClose.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { getDialog().dismiss(); } }); if (mFulfillmentItem.getOrderPackage() != null) { final Package orderPackage = mFulfillmentItem.getOrderPackage(); if (orderPackage.getShippingMethodName() != null) { mShipping.setText(orderPackage.getShippingMethodName()); } if (orderPackage.getPackagingType() != null) { mPackagingType.setText(orderPackage.getPackagingType()); } if (orderPackage.getTrackingNumber() != null) { mTrackingNumber.setText(orderPackage.getTrackingNumber()); mTrackingNumber.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String shippingCode = orderPackage.getShippingMethodCode(); String Url; if (shippingCode.toLowerCase().startsWith(ShipperUtils.Shipper.DHL.toString().toLowerCase())) { Url = ShipperUtils.Shipper.DHL.getTrackingUrl(orderPackage.getTrackingNumber()); } else if (shippingCode.toLowerCase().startsWith(ShipperUtils.Shipper.FEDEX.toString().toLowerCase())) { Url = ShipperUtils.Shipper.FEDEX.getTrackingUrl(orderPackage.getTrackingNumber()); } else if (shippingCode.toLowerCase().startsWith(ShipperUtils.Shipper.UPS.toString().toLowerCase())) { Url = ShipperUtils.Shipper.UPS.getTrackingUrl(orderPackage.getTrackingNumber()); } else if (shippingCode.toLowerCase().startsWith(ShipperUtils.Shipper.USPS.toString().toLowerCase())) { Url = ShipperUtils.Shipper.USPS.getTrackingUrl(orderPackage.getTrackingNumber()); } else { Toast.makeText(getActivity(), "Unsupported Shipper", Toast.LENGTH_LONG).show(); return; } Intent browse = new Intent(Intent.ACTION_VIEW, Uri.parse(Url)); startActivity(browse); } }); }else{ mTrackingNumber.setText("N/A"); } if (orderPackage.getStatus() != null) { mStatus.setText(orderPackage.getStatus()); } if (orderPackage.getAuditInfo().getCreateDate() != null) { String date = DateFormat.format("MM/dd/yy hh:mm a", new Date(orderPackage.getAuditInfo().getCreateDate().getMillis())).toString(); mShipDate.setText(date); } } if (mFulfillmentItem.getmFulfillmentContact() != null) { Contact contact = mFulfillmentItem.getmFulfillmentContact(); if (contact != null) { mAddress.setText(contact.getFirstName() + " " + contact.getLastNameOrSurname() + "\n" + constructAddress(contact.getAddress())); } } } private void setPackageItems() { if (mFulfillmentItem.getOrderPackage() == null || mFulfillmentItem.getOrderPackage().getItems() == null || mFulfillmentItem.getOrderPackage().getItems().size() < 1) { return; } OrderDetailPackageItemAdapter adapter = new OrderDetailPackageItemAdapter(getActivity(), mFulfillmentItem.getOrderPackage().getItems(), mTenantId, mSiteId); mList.setAdapter(adapter); } private String constructAddress(Address address) { if (address == null) { return ""; } String addressString = ""; if (!TextUtils.isEmpty(address.getAddress1())) { addressString += address.getAddress1(); } if (!TextUtils.isEmpty(address.getAddress2())) { addressString += "\n" + address.getAddress2(); } if (!TextUtils.isEmpty(address.getAddress3())) { addressString += "\n" + address.getAddress3(); } if (!TextUtils.isEmpty(address.getAddress4())) { addressString += "\n" + address.getAddress4(); } if (!TextUtils.isEmpty(address.getCityOrTown())) { addressString += "\n" + address.getCityOrTown(); } if (!TextUtils.isEmpty(address.getStateOrProvince())) { addressString += ", " + address.getStateOrProvince(); } if (!TextUtils.isEmpty(address.getPostalOrZipCode())) { addressString += " " + address.getPostalOrZipCode(); } return addressString; } public void setFulfillmentItem(FulfillmentItem fulfillmentItem) { mFulfillmentItem = fulfillmentItem; } public void setTenantAndSiteId(Integer tenantId, Integer siteId) { mTenantId = tenantId; mSiteId = siteId; } }