ServiceLocationFragment.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542
  1. package com.usai.apex;
  2. //
  3. //import com.google.android.gms.maps.GoogleMap;
  4. //import com.google.android.gms.maps.MapFragment;
  5. //import com.google.android.gms.maps.SupportMapFragment;
  6. //import com.google.android.gms.maps.model.LatLng;
  7. //import com.google.android.gms.maps.model.MarkerOptions;
  8. import java.util.HashMap;
  9. import java.util.Map;
  10. import org.json.JSONException;
  11. import org.json.JSONObject;
  12. import com.google.android.gms.maps.GoogleMap;
  13. import com.google.android.gms.maps.GoogleMap.InfoWindowAdapter;
  14. import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
  15. import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener;
  16. import com.google.android.gms.maps.CameraUpdateFactory;
  17. import com.google.android.gms.maps.SupportMapFragment;
  18. import com.google.android.gms.maps.model.BitmapDescriptorFactory;
  19. import com.google.android.gms.maps.model.CameraPosition;
  20. import com.google.android.gms.maps.model.LatLng;
  21. import com.google.android.gms.maps.model.Marker;
  22. import com.google.android.gms.maps.model.MarkerOptions;
  23. import com.usai.apex.AnnouncementActivity.SearchTask;
  24. import com.usai.util.Network;
  25. import android.content.Context;
  26. import android.content.Intent;
  27. import android.os.AsyncTask;
  28. //import android.app.Fragment;
  29. //import android.app.FragmentManager;
  30. //import android.app.FragmentManager;
  31. //import android.app.Fragment;
  32. //import android.app.FragmentManager;
  33. //import android.app.FragmentManager;
  34. import android.os.Bundle;
  35. import android.support.v4.app.Fragment;
  36. import android.support.v4.app.FragmentManager;
  37. import android.util.Log;
  38. import android.view.Gravity;
  39. //import android.support.v4.app.FragmentManager;
  40. import android.view.LayoutInflater;
  41. import android.view.View;
  42. import android.view.ViewGroup;
  43. import android.widget.TextView;
  44. import android.widget.Toast;
  45. public class ServiceLocationFragment extends Fragment implements
  46. OnMarkerClickListener, OnInfoWindowClickListener
  47. {
  48. private SearchTask m_task = null;
  49. String fragment_content = null;
  50. HashMap<String, LocationDetail> marker_detail = new HashMap<String, LocationDetail>();
  51. static final CameraPosition US = new CameraPosition.Builder()
  52. .target(new LatLng(
  53. 37.646374,
  54. -122.398847))
  55. .zoom(2.5f)
  56. .bearing(0)
  57. .tilt(0)
  58. .build();
  59. private SupportMapFragment fragment;
  60. private GoogleMap map;
  61. // String locations = "Apex Maritime Co. (ORD) Inc.';'Chicago, IL\nUnited States';'42.051169,-88.0317029';'1900 E. Golf Road, Suite# 1105 Schaumburg, IL 60173';'Tel:+1 630 227-9818';'Fax:+1 630 227-9808';'Contact:\nSteve Yeh\nAileen Hsieh';'Email:\nsteve.yeh@apexshipping.com\naileen.hsieh@apexshipping.com';'Apex Maritime Co. (Hou) Inc.';'Houston, TX\nUnited States';'29.797022,-95.528827';'9610 Long Point Rd., Suite# 320 Houston, TX 77055';'Tel:+1 832 649-8198';'Fax:+1 832 649-8194';'Contact:\nAndy Pan\nTong Tong';'Email:\nandy.pan@apexshipping.com\ntong.tong@apexshipping.com';'Apex Maritime Co. (LAX) Inc.';'Los Angeles, CA\nUnited States';'34.0092709,-117.8463627';'565 Brea Canyon Road, Suite D Walnut, CA 91789';'Tel:+1 909 594-8828';'Fax:+1 909 594-9199';'Contact:\nVincent Luo\nSteven Chow';'Email:\nvincent.luo@apexshipping.com\nsteven.chow@apexshipping.com';'Apex Shipping Co., (NYC) Inc.';'New York, NY\nUnited States';'40.668404,-73.708329';'20 North Central Ave., 2nd FL, Suite# D Valley Stream, NY 11580';'Tel:516-200-9500';'Fax:516-200-9510';'Contact:\nWei Sun\nIrene Tseng';'Email:\nwei.sun@apexshipping.com\nirene.tseng@apexshipping.com';'Apex Maritime Co., Inc.';'San Francisco, CA\nUnited States';'37.646374,-122.398847';'206 Utah Ave. So. San Francisco, CA 94080';'Tel:650-589-2575';'Fax:650-589-8861';'Contact:\nJames Chu\nEsther Hui';'Email:\njames.chu@apexshipping.com\nesther.hui@apexshipping.com';'Apex Maritime Co., (PNW) Inc.';'Seattle, WA\nUnited States';'47.467763,-122.2321';'1107 S. W. Grady Way, Building B, Suite #110 Renton, WA 98055';'Tel:206-241-0771';'Fax:206-241-0823';'Contact:\nMike Langley\nRobert Bleck';'Email:\nmike.langley@apexshipping.com\nrobert.bleck@apexshipping.com';'Apex Maritime (Thailand) Co., Ltd.';'Bangkok, Thailand\nSoutheast Asia';'13.7308333,100.5241667';'138 Boonmitr Bldg., 12th Fl. Room B3, Silom Rd., Suriyawongse, Bangrak, Bangkok 10500';'Tel:+66 2 2634-3899 (Auto)';'Fax:+66 2 2634-3055\n66 2 2634-3056';'Contact:\nThikarn\nJaruwan\nSantana';'Email:\nthikarn@apexmaritime.co.th\njaruwan@apexmaritime.co.th\nsantana@apexmaritime.co.th';'PT. Apex Maritim Indonesia';'Cirebon, Indonesia\nSoutheast Asia';'-6.7166667,108.5666667';'HOTEL BUMI ASIH 2 ND FLOOR # 209 JL. WAHIDIN NO. 52 CIREBON';'Tel:+62 231 207278';'Fax:+62 231 207287';'Contact:\nSOEGIHARTO';'Email:\napex_cirebon@apex-indonesia.com';'Apex Vietnam';'Da Nang, Vietnam\nSoutheast Asia';'16.0641802,108.1873407';'3 FL, 39-41 Quang Trung Street Hai Chau Dist., Danang City, Vietnam';'Tel:+84 511 3896403';'Fax:+84 511 3823563';'Contact:\nMs. LAI';'Email:\ndanang@apexshipping.com.vn';'Apex Vietnam';'Haiphong, Vietnam\nSoutheast Asia';'20.861361,106.679802';'6th FL, 452 Le Thanh Tong Street Ngo Quyen District, Haiphong City, Vietnam';'Tel:+84 31 3750152';'Fax:+84 31 3836796';'Contact:\nMr. Nguyen Nhat Tan\nMr. Nguyen Nhat Huy';'Email:\nhaiphong@apexshipping.com.vn';'Apex Vietnam';'Hanoi, Vietnam\nSoutheast Asia';'21.0333333,105.85';'2nd FL. 108 Lo Duc Street. Hai Ba Trung District. Hanoi City, Vietnam';'Tel:+84 4 3971-9128';'Fax:+84 4 3971-9129';'Contact:\nMs. Le Thu Phuong';'Email:\nhanoi@apexshipping.com.vn';'Maritime Bank Tower ';'Ho Chi Minh City, Vietnam\nSoutheast Asia';'10.7685558,106.7012357';'Maritime Bank Tower 22th floor, room 02 180-192 Nguyen Cong Tru St., District 1 Hochiminh City, Vietnam';'Tel:+84 8 3914 2224';'Fax:+84 8 3914 3228\n3229';'Contact:\nThomas Phong';'Email:\nthomas@apexshipping.com.vn';'PT. Apex Shipping Indonesia';'Jakarta, Indonesia\nSoutheast Asia';'-6.225246,106.597423';'JIn. Bulevar Gajah Mada No. 2087 Lippo Cyberpark, Lippo Karawaci Tangerang 15811, Indonesia';'Tel:+62 21 558-2427';'Fax:+62 21 5577-1362';'Contact:\nNigolas Sjahputra\nUmi';'Email:\nnigolas@apex-indonesia.com\numi@apex-indonesia.com';'Apex Container Line (M) SDN BHD';'Malaysia\nSoutheast Asia';'1.3814563,103.4800838';'Suite 23A-05, level 23A, City Square, Jln Wong Ah Fook, 80000 Johor Bahru, Hohor, West Malaysia.';'Tel:(60) 7 222-2248 ( 6 lines)';'Fax:(60) 7 222-2278 (2 lines)';'Contact:\nFong Yee Chong';'Email:\nchloe.chong@apexshipping.com.my';'PT. Apex Maritim Indonesia';'Semarang, Indonesia\nSoutheast Asia';'-7.0016889,110.4331614';'RUKO METRO PLAZA JL. MT. HARYONO 970 BLOK C-7';'Tel:+62 24 844-7555';'Fax:+62 24 844-7666';'Contact:\nM. AYUB';'Email:\nm_ayub@apex-indonesia.com';'PT. Apex Maritim Indonesia';'Surabaya, Indonesia\nSoutheast Asia';'-7.289166,112.734398';'RUKO PERMATA BINTORO JL. TAMAN KETAMPON NO. 87 SURABAYA �C INDONESIA';'Tel:+62 31 566-1144';'Fax:+62 31 566-8289\n+62 31 566-9933';'Contact:\nIKA';'Email:\nika_setiawan@apex-indonesia.com';'Apex Maritime (Dalian) Co., Ltd.';'Dalian, China\nNorthern China';'38.9218515,121.6561693';'Room 201 No.1-3 No.112 Zhigong Street, Zhongshan Dis. Dalian, China';'Tel:+86 411 88866116 (Main)';'Fax:+86 411 82717900 (OP Dep.)';'Contact:\nWillis Yan �C +86 411 88866118\nJulia Guan �C +86 411 88866136';'Email:\nwillis.yan@apexshipping.com.cn\njulia.guan@apexshipping.com.cn';'Apex Maritime (Lianyungang) Co., Ltd.';'Lianyungang, China\nNorthern China';'34.596544,119.221282';'Room 715, No. 1 Street Building. Wangtian Haicheng Square. Xugou Lianyungang, Jiangsu, China';'Tel:+86 518 8223-3218\n+86 518 8223-3219';'Fax:+86 518 8223-3220';'Contact:\nZena Zheng';'Email:\nzena.zheng@apexshipping.com.cn';'Qingdao Apex Shipping Co., Ltd.';'Qingdao, China\nNorthern China';'36.0565576,120.3709705';'Suite 1903, No. 5 Donghai West Road Qingdao City, 266071, Shandong Province, China';'Tel:+86 532 85708982, 85708595, 85708109, 81979902';'Fax:+86 532 85708110';'Contact:\nFrank Song\nJennifer Liu';'Email:\nfrank.song@apexshipping.com.cn\njennifer.liu@apexshipping.com.cn';'Apex Maritime (Tianjin) Co., Ltd.';'Tianjin, China\nNorthern China';'39.1186127,117.1973693';'Room 3506, The Exchange North Tower, 189 Nanjin Rd. Tianjin, China';'Tel:+86 22 5886 3000';'Fax:+86 22 5886 3006\n5886 3008';'Contact:\nLucy Diao\nMandy Miao';'Email:\nlucy.diao@apexshipping.com.cn\nmandy.miao@apexshipping.com.cn';'Apex Maritime (Xian) Co., Ltd.';'Xian, China\nNorthern China';'34.2368419,108.8988572';'Room 912, Building C, Fortune Center II Gao Xin Third Rd., Hi-Tech Development Zone Xian City, Shaanxi Province,China 710075';'Tel:+86 29 65676809\n65676810\n65676811\n65676812';'Fax:+86 29 65676805';'Contact:\nKaren Huang';'Email:\nkaren.huang@apexshipping.com.cn';'Apex Maritime (Yantai) Co., Ltd.';'Yantai, China\nNorthern China';'37.5422926,121.3947602';'Room 2301, Huaxia Media Mansion, No. 53 North Ave. Yantai City,Shandong Province,China 264001';'Tel:+86 535 623-1345';'Fax:+86 535 623-4630';'Contact:\nJoey Yan';'Email:\njoey.yan@apexshipping.com.cn';'Apex Maritime (Chongqing) Co., Ltd.';'Chongqing, China\nEastern China';'29.5716184,106.531413';'Room 6, Floor 23, South Tower, Shijiyinghuang Building No. 38, North Jianxin Rd, Jiangbei District Chongqing 400020, China';'Tel:+86 23 8819 2009';'Fax:+86 23 8819 2036';'Contact:\nCindy Zeng\nLisa Xie';'Email:\ncindy.zeng@apexshipping.com.cn\nlisa.xie@apexshipping.com.cn';'Apex Maritime (Nanjing) Co., Ltd.';'Nanjing, China\nEastern China';'32.043114,118.789098';'Room D2, 18th Floor No.89 Hanzhong Road, Nanjing 210029, Jiangsu, China';'Tel:+86 25 84845871';'Fax:+86 25 84845879';'Contact:\nWinter Zhu';'Email:\nwinter.zhu@apexshipping.com.cn';'Apex Maritime (Ningbo) Co., Ltd.';'Ningbo, China\nEastern China';'29.8651695,121.5573647';'Rm 902, China Life Building No. 777 Lingqiao Road Ningbo 315010, China';'Tel:+86 574 8768 6310';'Fax:+86 574 8768 6314';'Contact:\nMr. Jason Sun';'Email:\njason.sun@apexshipping.com.cn';'Apex Maritime (Shanghai) Co., Ltd.';'Shanghai, China\nEastern China';'31.1668495,121.5430195';'RM 1211, WangJiao Plaza, 175, East Yianan Road, Shanghai 200002, China';'Tel:+86 21 6336 2020';'Fax:+86 21 53930630, 63563585, 63269809';'Contact:\nHali Huang';'Email:\nhali.huang@apexshipping.com.cn\njennifer.yu@apexshipping.com.cn';'Apex Maritime (Wuhan) Co., Ltd.';'Wuhan, China\nEastern China';'30.5952142,114.2977709';'Rm 1201, Truroll Plaza Wusheng Road Wuhan 430030, China.';'Tel:+86 27 8551 8817';'Fax:+86 27 8551 8882';'Contact:\nKatherine Lee';'Email:\nkatherine.lee@apexshipping.com.cn';'Apex Maritime (Fuzhou) Co., Ltd.';'Fuzhou, China\nSouthern China';'26.085417,119.294304';'Room A, 10\nF, Block No. 2, Hongyangxincheng Building No. 118 East Yangqiao Road Fuzhou 350001, China';'Tel:+86 591 87275810';'Fax:+86 591 87275890';'Contact:\nHelen Zhang';'Email:\nhelen.zhang@apexshipping.com.cn';'Apex Maritime (Guangzhou)';'Guangzhou, China\nSouthern China';'23.1345288,113.3079438';'Room 13B, Tower A Guangdong International Building No. 339 Huanshi Dong Road, Yuexiu District Guangzhou City, China';'Tel:+86-20-2237-8671';'Fax:+86-20-2237-8677';'Contact:\nBondy Zhang';'Email:\nbondy.zhang@apexshipping.com.cn';'Apex Maritime (HK) Co., Ltd.';'Hong Kong\nSouthern China';'22.281076,114.175695';'Room 1407-08, Harbour Centre 25 Harbour Rd. Wanchai, Hong Kong';'Tel:852-3188-9666';'Fax:852-3188-9555';'Contact:\nMartin Siu\nAndy Wong';'Email:\nmartin.siu@apexshipping.com.hk\nandy.wong@apexshipping.com.hk';'Apex Maritime (Shenzhen) Co., Ltd.';'Shenzhen, China\nSouthern China';'22.5427078,114.0710992';'Room 802, 8\nF., New China Insurance Edifice Mintian Rd., Futian District Shenzhen City, China 518026';'Tel:+86-755-8826-4001';'Fax:+86-755-8826-4014';'Contact:\nJames Zhuo\nShirley Xia';'Email:\njames.zhuo@apexshipping.com.cn\nshirley.xia@apexshipping.com.cn';'Apex Maritime (XMN) Co., Inc.';'Xiamen, China\nSouthern China';'24.462809,118.075456';'24H, International Plaza No. 8 Lujiang Rd. Xiamen 361001, China';'Tel:+86-592-261-8066';'Fax:+86-592-261-8070';'Contact:\nHelen Zhang';'Email:\nhelen.zhang@apexshipping.com.cn';'Apex Maritime (HK) Co., Ltd. (Zhongshan Branch)';'Zhongshan, China\nSouthern China';'22.501821,113.397235';'Room 07-08, 10\nF., Da Dong Yu Commerce Center Boai 5 Road, Zhongshan City, PRC';'Tel:+86 760 2 3889966\n+86 760 2 3889961';'Fax:+86 760 2 3889969';'Contact:\nAndy Shan';'Email:\nandy.shan@apexshipping.com.cn';'Apex Maritime India Pvt. Ltd.';'New Delhi\nIndia';'28.6244285,77.1349161';'CB 385 B First Floor, Ring Road Naraina, New Delhi 110028';'Tel:+91 98 11 123333';'Fax:';'Contact:\n';'Email:\ngt@apexshipping.in';'Apex Shipping B.V.';'Rotterdam, Netherlands\nEurope';'51.8637994,4.4348681';'Achterdijk 51-55 3161 EB Rhoon The Netherlands';'Tel:+31 10 8208801';'Fax:+31 10 8208802';'Contact:\nRon Reuver\nJohn Born';'Email:\nron.reuver@apexshipping.nl\njohn.born@apexshipping.nl";
  62. void AddMarker()
  63. {
  64. if (map == null)
  65. {
  66. Log.d("onResume", "get map from fragment");
  67. map = fragment.getMap();
  68. if (map == null)
  69. return;
  70. }
  71. try
  72. {
  73. JSONObject jsobj = new JSONObject(fragment_content);
  74. int count = jsobj.getInt("total");
  75. JSONObject objrecords = jsobj.getJSONObject("records");
  76. for (int i = 0; i < count; i++)
  77. {
  78. // offset++;
  79. JSONObject objrec = objrecords.getJSONObject("record" + i);
  80. String area = objrec.getString("area");
  81. String company = objrec.getString("company");
  82. String city = objrec.getString("city");
  83. String longitude = objrec.getString("longitude");
  84. String latitude = objrec.getString("latitude");
  85. String address = objrec.getString("address");
  86. String telephone = objrec.getString("telephone");
  87. String fax = objrec.getString("fax");
  88. String contact = objrec.getString("contact");
  89. String email = objrec.getString("email");
  90. // String markertext = company;
  91. // String city = parts[i + 1];
  92. // String postext = parts[i + 2];
  93. // String[] point = postext.split(",");
  94. // String address = parts[i + 3];
  95. // String tel = parts[i + 4];
  96. // String fax = parts[i + 5];
  97. // String contact = parts[i + 6];
  98. // String email = parts[i + 7];
  99. LocationDetail detail = new LocationDetail(company, address,
  100. telephone, fax, contact, email);
  101. // detail.Name=markertext;
  102. // detail.Addr=address;
  103. // detail.Tel=tel;
  104. // detail.Fax=fax;
  105. // detail.Contact=contact;
  106. // detail.Email=email;
  107. marker_detail.put(company, detail);
  108. // BitmapDescriptor
  109. // bd=BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher);
  110. // Drawable da=getResources().getDrawable(R.drawable.ic_launcher);
  111. // Bitmap bmp=BitmapFactory.decodeResource(getResources(),
  112. // R.drawable.ic_map);
  113. // Log.d("markersize",bmp.getWidth()+","+bmp.getHeight());
  114. map.addMarker(new MarkerOptions()
  115. .icon(BitmapDescriptorFactory
  116. .fromResource(R.drawable.ic_marker))
  117. .position(
  118. new LatLng(Double.parseDouble(latitude), Double
  119. .parseDouble(longitude))).title(company)
  120. .snippet(city+"\n"+area));
  121. }
  122. }
  123. catch (JSONException e)
  124. {
  125. // TODO Auto-generated catch block
  126. e.printStackTrace();
  127. }
  128. }
  129. public void requestloactions()
  130. {
  131. if (m_task != null)
  132. {
  133. return;
  134. }
  135. if (fragment_content != null)
  136. {
  137. // LayoutInflater inflater = (LayoutInflater)
  138. // ApexTrackingApplication
  139. // .get_instance().getSystemService(
  140. // Context.LAYOUT_INFLATER_SERVICE);
  141. // init(fragment_content,inflater);
  142. return;
  143. }
  144. // mStatusMessageView.setText(R.string.str_Loading);
  145. // showProgress(true);
  146. m_task = new SearchTask();
  147. // TextView text_page = (TextView) view_page_footer
  148. // .findViewById(R.id.text_page);
  149. // text_page.setText("Loading...");
  150. // text_page.setEnabled(false);
  151. m_task.execute();
  152. }
  153. class SearchTask extends AsyncTask<Void, Void, Boolean>
  154. {
  155. int errorcode;
  156. // boolean bfinish = false;
  157. @Override
  158. protected Boolean doInBackground(Void... params)
  159. {
  160. Log.d("SearchTask", "doInBackground");
  161. if (!Network.NetworkIsAvailable())
  162. {
  163. errorcode = Network.RESULT_NET_NOTAVAILABLE;
  164. return false;
  165. }
  166. String jstr = Network.get_servicelocation();
  167. if (jstr == null || jstr.length() <= 0)
  168. {
  169. // Log.d(TAG, "json is wrong");
  170. errorcode = Network.RESULT_NET_ERROR;
  171. return false;
  172. }
  173. JSONObject jsobj;
  174. //
  175. // array = new JSONArray(json);
  176. try
  177. {
  178. jsobj = new JSONObject(jstr);
  179. // if (searchresult.get_fieldscount() == 0)
  180. // {
  181. // JSONObject objfields = jsobj.getJSONObject("fields");
  182. // if (objfields != null)
  183. // searchresult.init_fields(objfields.toString());
  184. // }
  185. int count = jsobj.getInt("total");
  186. // if (count < limit)
  187. // bfinish = true;
  188. JSONObject objrecords = jsobj.getJSONObject("records");
  189. if (objrecords != null)
  190. {
  191. fragment_content = jstr;
  192. errorcode = Network.RESULT_TRUE;
  193. return true;
  194. }
  195. }
  196. catch (JSONException e)
  197. {
  198. // TODO Auto-generated catch block
  199. e.printStackTrace();
  200. }
  201. errorcode = Network.RESULT_NET_ERROR;
  202. return false;
  203. }
  204. @Override
  205. protected void onPostExecute(Boolean success)
  206. {
  207. Log.i("onPostExecute", "entry");
  208. m_task = null;
  209. // showProgress(false);
  210. switch (errorcode)
  211. {
  212. case Network.RESULT_NET_NOTAVAILABLE:
  213. {
  214. Toast toast = Toast.makeText(
  215. ApexTrackingApplication.get_instance(),
  216. getText(R.string.msg_connection_none),
  217. Toast.LENGTH_LONG);
  218. toast.setGravity(Gravity.CENTER, 0, 0);
  219. toast.show();
  220. break;
  221. }
  222. case Network.RESULT_NET_ERROR:
  223. {
  224. Toast toast = Toast.makeText(
  225. ApexTrackingApplication.get_instance(),
  226. getText(R.string.msg_net_error), Toast.LENGTH_LONG);
  227. toast.setGravity(Gravity.CENTER, 0, 0);
  228. toast.show();
  229. break;
  230. }
  231. case Network.RESULT_ERROR:
  232. // case Network.RESULT_RESPONSE_NULL:
  233. {
  234. Toast toast = Toast.makeText(
  235. ApexTrackingApplication.get_instance(),
  236. getText(R.string.msg_net_resulterror),
  237. Toast.LENGTH_LONG);
  238. toast.setGravity(Gravity.CENTER, 0, 0);
  239. toast.show();
  240. break;
  241. }
  242. default:
  243. break;
  244. }
  245. if (success)
  246. {
  247. AddMarker();
  248. }
  249. super.onPostExecute(success);
  250. }
  251. @Override
  252. protected void onCancelled()
  253. {
  254. m_task = null;
  255. // showProgress(false);
  256. }
  257. }
  258. class CustomWindowAdapter implements InfoWindowAdapter
  259. {
  260. View mContents;
  261. CustomWindowAdapter()
  262. {
  263. mContents = getActivity().getLayoutInflater().inflate(
  264. R.layout.marker_info, null);
  265. }
  266. @Override
  267. public View getInfoContents(Marker marker)
  268. {
  269. String title = marker.getTitle();
  270. TextView titleUi = ((TextView) mContents
  271. .findViewById(R.id.tv_title));
  272. if (title != null)
  273. {
  274. // Spannable string allows us to edit the formatting of the
  275. // text.
  276. // SpannableString titleText = new SpannableString(title);
  277. // titleText.setSpan(new ForegroundColorSpan(Color.RED), 0,
  278. // titleText.length(), 0);
  279. titleUi.setText(title);
  280. }
  281. else
  282. {
  283. titleUi.setText("");
  284. }
  285. String snippet = marker.getSnippet();
  286. TextView snippetUi = ((TextView) mContents
  287. .findViewById(R.id.tv_snippet));
  288. if (snippet != null && snippet.length() > 12)
  289. {
  290. // SpannableString snippetText = new SpannableString(snippet);
  291. // snippetText.setSpan(new ForegroundColorSpan(Color.MAGENTA),
  292. // 0, 10, 0);
  293. // snippetText.setSpan(new ForegroundColorSpan(Color.BLUE), 12,
  294. // snippet.length(), 0);
  295. snippetUi.setText(snippet);
  296. }
  297. else
  298. {
  299. snippetUi.setText("");
  300. }
  301. return mContents;
  302. }
  303. @Override
  304. public View getInfoWindow(Marker marker)
  305. {
  306. return null;
  307. }
  308. }
  309. // InfoWindowAdapter adpter = new ();
  310. //
  311. @Override
  312. public void onDestroy()
  313. {
  314. if (m_task != null)
  315. m_task.cancel(false);
  316. super.onDestroy();
  317. }
  318. @Override
  319. public void onDetach()
  320. {
  321. if (m_task != null)
  322. m_task.cancel(false);
  323. super.onDetach();
  324. }
  325. @Override
  326. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  327. Bundle savedInstanceState)
  328. {
  329. requestloactions();
  330. return inflater.inflate(R.layout.fragment_service_location, container,
  331. false);
  332. }
  333. @Override
  334. public void onActivityCreated(Bundle savedInstanceState)
  335. {
  336. super.onActivityCreated(savedInstanceState);
  337. FragmentManager fm = getChildFragmentManager();
  338. fragment = (SupportMapFragment) fm.findFragmentById(R.id.map);
  339. if (fragment == null)
  340. {
  341. Log.d("onActivityCreated", "create support map fragment");
  342. fragment = new SupportMapFragment();// .newInstance();
  343. fm.beginTransaction().replace(R.id.map, fragment).commit();
  344. }
  345. }
  346. @Override
  347. public void onResume()
  348. {
  349. super.onResume();
  350. if (map == null)
  351. {
  352. Log.d("onResume", "get map from fragment");
  353. map = fragment.getMap();
  354. if (map != null)
  355. setUpMap();
  356. }
  357. }
  358. private void setUpMap()
  359. {
  360. Log.d("setup map", "setup map");
  361. // // Hide the zoom controls as the button panel will cover it.
  362. // map.getUiSettings().setZoomControlsEnabled(false);
  363. //
  364. // // Add lots of markers to the map.
  365. // addMarkersToMap();
  366. //
  367. // // Setting an info window adapter allows us to change the both the
  368. // contents and look of the
  369. // // info window.
  370. // map.setInfoWindowAdapter(new CustomInfoWindowAdapter());
  371. // Set listeners for marker events. See the bottom of this class for
  372. // their behavior.
  373. // AddMarker(fragment_content);
  374. // String[] parts = locations.split("';'");
  375. //
  376. // for (int i = 0; i < parts.length; i += 8)
  377. // {
  378. // String markertext = parts[i];
  379. // String city = parts[i + 1];
  380. // String postext = parts[i + 2];
  381. // String[] point = postext.split(",");
  382. // String address = parts[i + 3];
  383. // String tel = parts[i + 4];
  384. // String fax = parts[i + 5];
  385. // String contact = parts[i + 6];
  386. // String email = parts[i + 7];
  387. // LocationDetail detail = new LocationDetail(markertext, address,
  388. // tel, fax, contact, email);
  389. // // detail.Name=markertext;
  390. // // detail.Addr=address;
  391. // // detail.Tel=tel;
  392. // // detail.Fax=fax;
  393. // // detail.Contact=contact;
  394. // // detail.Email=email;
  395. // marker_detail.put(markertext, detail);
  396. // // BitmapDescriptor
  397. // // bd=BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher);
  398. // // Drawable da=getResources().getDrawable(R.drawable.ic_launcher);
  399. // // Bitmap bmp=BitmapFactory.decodeResource(getResources(),
  400. // // R.drawable.ic_map);
  401. // // Log.d("markersize",bmp.getWidth()+","+bmp.getHeight());
  402. // map.addMarker(new MarkerOptions()
  403. // .icon(BitmapDescriptorFactory
  404. // .fromResource(R.drawable.ic_marker))
  405. // .position(
  406. // new LatLng(Double.parseDouble(point[0]), Double
  407. // .parseDouble(point[1]))).title(markertext)
  408. // .snippet(city));
  409. // }
  410. map.setInfoWindowAdapter(new CustomWindowAdapter());
  411. map.moveCamera(CameraUpdateFactory.newCameraPosition(US));
  412. map.setOnMarkerClickListener(this);
  413. map.setOnInfoWindowClickListener(this);
  414. // map.setOnMarkerDragListener(this);
  415. // Pan to see all markers in view.
  416. // Cannot zoom to bounds until the map has a size.
  417. // final View mapView = getChildFragmentManager().findFragmentById(
  418. // R.id.map).getView();
  419. // if (mapView.getViewTreeObserver().isAlive())
  420. // {
  421. // mapView.getViewTreeObserver().addOnGlobalLayoutListener(
  422. // new OnGlobalLayoutListener()
  423. // {
  424. // @SuppressWarnings("deprecation")
  425. // // We use the new method when supported
  426. // @SuppressLint("NewApi")
  427. // // We check which build version we are using.
  428. // @Override
  429. // public void onGlobalLayout()
  430. // {
  431. // LatLngBounds bounds = new LatLngBounds.Builder()
  432. // .include(PERTH).include(SYDNEY)
  433. // .include(ADELAIDE).include(BRISBANE)
  434. // .include(MELBOURNE).build();
  435. // if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
  436. // {
  437. // mapView.getViewTreeObserver()
  438. // .removeGlobalOnLayoutListener(this);
  439. // }
  440. // else
  441. // {
  442. // mapView.getViewTreeObserver()
  443. // .removeOnGlobalLayoutListener(this);
  444. // }
  445. // map.moveCamera(CameraUpdateFactory.newLatLngBounds(
  446. // bounds, 50));
  447. // }
  448. // });
  449. // }
  450. }
  451. @Override
  452. public void onInfoWindowClick(Marker marker)
  453. {
  454. // Toast.makeText(getActivity(), "Click Info Window",
  455. // Toast.LENGTH_SHORT).show();
  456. Intent intent = new Intent();
  457. intent.setClass(getActivity(), LocationDetailActivity.class);
  458. String markertext = marker.getTitle();
  459. intent.putExtra("detail", marker_detail.get(markertext));
  460. // // intent.putExtra("password", password);
  461. // intent.putExtra("function_name", function_name);
  462. // intent.putExtra("behavior", Network.BEHAVIOR_SEARCH);
  463. startActivity(intent);
  464. }
  465. @Override
  466. public boolean onMarkerClick(Marker arg0)
  467. {
  468. // TODO Auto-generated method stub
  469. return false;
  470. }
  471. }