Advertisement
Guest User

Untitled

a guest
Apr 16th, 2014
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.52 KB | None | 0 0
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:background="@android:color/white" >
  6.  
  7. <RelativeLayout
  8. android:id="@+id/registrationLayout"
  9. android:layout_width="match_parent"
  10. android:layout_height="50dp"
  11. android:background="#333333" >
  12.  
  13. <ImageView
  14. android:id="@+id/activity_logo"
  15. android:layout_width="wrap_content"
  16. android:layout_height="wrap_content"
  17. android:layout_centerVertical="true"
  18. android:layout_marginLeft="10dp"
  19. android:contentDescription="@string/content_description"
  20. android:src="@drawable/logo" />
  21. </RelativeLayout>
  22.  
  23. <RelativeLayout
  24. android:id="@+id/registrationLayout2"
  25. android:layout_width="match_parent"
  26. android:layout_height="match_parent"
  27. android:layout_below="@id/registrationLayout" >
  28.  
  29. <fragment
  30. android:id="@+id/map"
  31. android:name="com.google.android.gms.maps.MapFragment"
  32. android:layout_width="match_parent"
  33. android:layout_height="match_parent" />
  34. </RelativeLayout>
  35.  
  36. public class NearMe extends FragmentActivity {
  37.  
  38. GpsProvider gpsProvider;
  39. private GoogleMap googleMap;
  40. double lat;
  41. double lng;
  42. JsonParser jparser;
  43. String latString, longString, titleString, dis, distanceString,
  44. stationIdString, colorNameString;
  45. ArrayList<HashMap<String, String>> dockitstationsArrayList,
  46. stationidArrayList;
  47. BitmapDescriptor bitmapMarker;
  48. NetworkHelper nh;
  49. AlertDialogManager alertDialogManager = new AlertDialogManager();
  50. // flag for Internet connection status
  51. Boolean isInternetPresent = false;
  52. HashMap<String, String> markershashmap = null;
  53.  
  54. @Override
  55. protected void onCreate(Bundle savedInstanceState) {
  56. // TODO Auto-generated method stub
  57. super.onCreate(savedInstanceState);
  58. // Setting View for Screen
  59. setContentView(R.layout.near_me);
  60.  
  61. dockitstationsArrayList = new ArrayList<HashMap<String, String>>();
  62. markershashmap = new HashMap<String, String>();
  63. try {
  64. // Loading map
  65. initilizeMap();
  66.  
  67. } catch (Exception e) {
  68. e.printStackTrace();
  69. }
  70. googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
  71.  
  72. @Override
  73. public void onInfoWindowClick(Marker marker) {
  74. try {
  75. String distance[] = marker.getSnippet().split(" - ");
  76. String distanceString = distance[0];
  77. String idString = marker.getId();
  78. String stationid = markershashmap.get(idString);
  79. Message mesg = new Message();
  80. Bundle b = new Bundle();
  81. b.putString("stationId", stationid);
  82. b.putString("distance", distanceString);
  83. mesg.setData(b);
  84. handler.sendMessage(mesg);
  85.  
  86. } catch (Exception e) {
  87. e.printStackTrace();
  88. }
  89. }
  90. });
  91.  
  92. }
  93.  
  94. @SuppressLint("HandlerLeak")
  95. private Handler handler = new Handler() {
  96. @Override
  97. public void handleMessage(Message msg) {
  98. Bundle b = msg.getData();
  99.  
  100. Bundle b1 = new Bundle();
  101. b1.putString("stationId", b.getString("stationId"));
  102. b1.putString("distance", b.getString("distance"));
  103.  
  104. Intent dockitdetailsIntent = new Intent(getParent(),
  105. DockItStationDetails.class);
  106. dockitdetailsIntent.putExtras(b1);
  107.  
  108. TabGroupActivity parentActivity = (TabGroupActivity) getParent();
  109.  
  110. parentActivity.startChildActivity("Dock It Details",
  111. dockitdetailsIntent);
  112.  
  113. }
  114. };
  115.  
  116. @Override
  117. protected void onResume() {
  118. super.onResume();
  119. initilizeMap();
  120. nh = new NetworkHelper(getApplicationContext());
  121. isInternetPresent = nh.isConnectingToInternet();
  122. if (!isInternetPresent) {
  123. // Internet Connection is not present
  124. alertDialogManager.showInfoAlertDialog(NearMe.this.getParent(),
  125. "Please connect to working internet connection");
  126. // stop executing code by return
  127. return;
  128. }
  129. gpsProvider = new GpsProvider(this.getParent());
  130.  
  131. // check if GPS enabled
  132. if (gpsProvider.canGetLocation()) {
  133.  
  134. double latitude = gpsProvider.getLatitude();
  135. double longitude = gpsProvider.getLongitude();
  136.  
  137. // n is for new line
  138.  
  139. /*
  140. * Toast.makeText( getApplicationContext(),
  141. * "Your Location is - nLat: " + latitude + "nLong: " + longitude,
  142. * Toast.LENGTH_LONG).show();
  143. */
  144.  
  145. new LoadNearByDockITStations().execute(String.valueOf(latitude),
  146. String.valueOf(longitude));
  147. } else {
  148. // can't get location
  149. // GPS is not enabled
  150. // Ask user to enable GPS in settings
  151. AlertDialog.Builder alertDialog = new AlertDialog.Builder(
  152. this.getParent());
  153.  
  154. // Setting Dialog Message
  155. alertDialog
  156. .setMessage("Your GPS seems to be disabled, do you want to enable it?");
  157.  
  158. // On pressing Settings button
  159. alertDialog.setPositiveButton("Settings",
  160. new DialogInterface.OnClickListener() {
  161. public void onClick(DialogInterface dialog, int which) {
  162. dialog.cancel();
  163. Intent intent = new Intent(
  164. Settings.ACTION_LOCATION_SOURCE_SETTINGS);
  165. startActivity(intent);
  166. }
  167. });
  168.  
  169. // on pressing cancel button
  170. alertDialog.setNegativeButton("Cancel",
  171. new DialogInterface.OnClickListener() {
  172. public void onClick(DialogInterface dialog, int which) {
  173. dialog.cancel();
  174. finish();
  175. }
  176. });
  177. // Setting Gravity to Center
  178. AlertDialog dialog = alertDialog.show();
  179. dialog.setCanceledOnTouchOutside(false);
  180. TextView messageText = (TextView) dialog
  181. .findViewById(android.R.id.message);
  182. messageText.setGravity(Gravity.CENTER);
  183. // Showing Alert Message
  184. dialog.show();
  185.  
  186. }
  187. }
  188.  
  189. private class LoadNearByDockITStations extends
  190. AsyncTask<String, String, String> {
  191. String res, status;
  192. JSONArray resultJsonArray;
  193. HashMap<String, String> map;
  194.  
  195. @Override
  196. protected void onPreExecute() {
  197. // TODO Auto-generated method stub
  198. super.onPreExecute();
  199. }
  200.  
  201. @Override
  202. protected String doInBackground(String... arg0) {
  203. String lat = arg0[0];
  204. String lng = arg0[1];
  205. jparser = new JsonParser();
  206. JSONObject jsonObject = jparser
  207. .makeHttpRequest(Utility.GETDOCKITLIST + "?latitude=" + lat
  208. + "&longitude=" + lng + "&klm=20");
  209. try {
  210.  
  211. // /Getting array of Events.......
  212. if (jsonObject.getJSONArray(Utility.STATIONS) != null) {
  213.  
  214. res = jsonObject.getString(Utility.SUCCESS);
  215.  
  216. if (Integer.parseInt(res) == 1) {
  217.  
  218. resultJsonArray = jsonObject
  219. .getJSONArray(Utility.STATIONS);
  220.  
  221. // looping through All Contacts
  222. for (int i = 0; i < resultJsonArray.length(); i++) {
  223. JSONObject c = resultJsonArray.getJSONObject(i);
  224.  
  225. // Storing each json item in variable
  226. latString = c.getString(Utility.LAT);
  227. longString = c.getString(Utility.LONG);
  228. titleString = c.getString(Utility.TITLE);
  229.  
  230. distanceString = c.getString(Utility.DISTANCE);
  231.  
  232. stationIdString = c.getString(Utility.STATION_ID);
  233. colorNameString = c.getString(Utility.COLOR_NAME);
  234.  
  235. // creating new HashMap
  236. map = new HashMap<String, String>();
  237. // adding each child node to HashMap key =>
  238. // value
  239. map.put(Utility.LAT, latString);
  240. map.put(Utility.LONG, longString);
  241. map.put(Utility.TITLE, titleString);
  242. map.put(Utility.DISTANCE, distanceString);
  243. // map.put(Utility.DISTANCE, distanceString);
  244.  
  245. map.put(Utility.STATION_ID, stationIdString);
  246. map.put(Utility.COLOR_NAME, colorNameString);
  247.  
  248. dockitstationsArrayList.add(map);
  249.  
  250. }
  251.  
  252. }
  253.  
  254. }
  255. } catch (JSONException e) {
  256. e.printStackTrace();
  257. }
  258. return status;
  259. }
  260.  
  261. @Override
  262. protected void onPostExecute(String result) {
  263. super.onPostExecute(result);
  264. if (dockitstationsArrayList.size() == 0) {
  265. Toast.makeText(getApplicationContext(),
  266. "No Dock It Stations Found", Toast.LENGTH_LONG).show();
  267. } else {
  268.  
  269. /*
  270. * Toast.makeText(getApplicationContext(),
  271. * "Dock It Stations Found", Toast.LENGTH_LONG).show();
  272. */
  273.  
  274. googleMap.clear();
  275. addMarkersToMap();
  276. }
  277. }
  278.  
  279. }
  280.  
  281. private void addMarkersToMap() {
  282. ArrayList<Marker> mMarkers = new ArrayList<Marker>();
  283. LatLng ll = null;
  284. String distance;
  285.  
  286. for (int i = 0; i < dockitstationsArrayList.size(); i++) {
  287.  
  288. ll = new LatLng(Double.parseDouble(dockitstationsArrayList.get(i)
  289. .get(Utility.LAT)),
  290. Double.parseDouble(dockitstationsArrayList.get(i).get(
  291. Utility.LONG)));
  292. distance = dockitstationsArrayList.get(i).get(Utility.DISTANCE);
  293.  
  294. stationIdString = dockitstationsArrayList.get(i).get(
  295. Utility.STATION_ID);
  296. colorNameString = dockitstationsArrayList.get(i).get(
  297. Utility.COLOR_NAME);
  298.  
  299. if (colorNameString.equals("Cyan"))
  300. bitmapMarker = BitmapDescriptorFactory
  301. .fromResource(R.drawable.cyan_marker);
  302. else if (colorNameString.equals("Red"))
  303. bitmapMarker = BitmapDescriptorFactory
  304. .fromResource(R.drawable.red_marker);
  305. else if (colorNameString.equals("Yellow"))
  306. bitmapMarker = BitmapDescriptorFactory
  307. .fromResource(R.drawable.yellow_marker);
  308. else if (colorNameString.equals("Blue"))
  309. bitmapMarker = BitmapDescriptorFactory
  310. .fromResource(R.drawable.blue_marker);
  311. else if (colorNameString.equals("Green"))
  312. bitmapMarker = BitmapDescriptorFactory
  313. .fromResource(R.drawable.green_marker);
  314. else if (colorNameString.equals("Purple"))
  315. bitmapMarker = BitmapDescriptorFactory
  316. .fromResource(R.drawable.purple_marker);
  317.  
  318. MarkerOptions mOption = new MarkerOptions();
  319. mOption.position(ll);
  320. mOption.title(dockitstationsArrayList.get(i).get(Utility.TITLE));
  321. mOption.anchor(0.0f, 1.0f);
  322. mOption.snippet(Utility.convertDistance(distance) + "m - Here");
  323. mOption.icon(bitmapMarker);
  324. Marker marker = googleMap.addMarker(mOption);
  325. mMarkers.add(marker);
  326. String markerkey = marker.getId();
  327. markershashmap.put(markerkey,
  328. dockitstationsArrayList.get(i).get(Utility.STATION_ID));
  329.  
  330. }
  331. // stationidArrayList.add(markers);
  332. final LatLngBounds.Builder bld = new LatLngBounds.Builder();
  333. for (int i = 0; i < dockitstationsArrayList.size(); i++) {
  334. LatLng ll2 = new LatLng(Double.parseDouble(dockitstationsArrayList
  335. .get(i).get(Utility.LAT)),
  336. Double.parseDouble(dockitstationsArrayList.get(i).get(
  337. Utility.LONG)));
  338. bld.include(ll2);
  339. }
  340. googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(
  341. bld.build(), 30));
  342. // googleMap.animateCamera(CameraUpdateFactory.zoomIn());
  343. googleMap.setOnCameraChangeListener(new OnCameraChangeListener() {
  344.  
  345. @Override
  346. public void onCameraChange(CameraPosition arg0) {
  347. // Move camera.
  348. googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(
  349. bld.build(), 50));
  350. // Remove listener to prevent position reset on camera move.
  351. googleMap.setOnCameraChangeListener(null);
  352. }
  353. });
  354. }
  355.  
  356. @TargetApi(Build.VERSION_CODES.HONEYCOMB)
  357. @SuppressLint("NewApi")
  358. private void initilizeMap() {
  359. if (googleMap == null) {
  360. googleMap = ((MapFragment) getFragmentManager().findFragmentById(
  361. R.id.map)).getMap();
  362.  
  363. googleMap.getUiSettings().setZoomGesturesEnabled(true);
  364. googleMap.getUiSettings().setCompassEnabled(true);
  365. googleMap.getUiSettings().setRotateGesturesEnabled(true);
  366. googleMap.getUiSettings().setMyLocationButtonEnabled(true);
  367. // check if map is created successfully or not
  368. if (googleMap == null) {
  369. Toast.makeText(getApplicationContext(),
  370. "Sorry! unable to create maps", Toast.LENGTH_SHORT)
  371. .show();
  372. }
  373. }
  374. }
  375. }
  376.  
  377. <?xml version="1.0" encoding="utf-8"?>
  378. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  379. package="com.dockit"
  380. android:versionCode="2"
  381. android:versionName="1.0" >
  382.  
  383. <uses-permission android:name="android.permission.INTERNET" >
  384. </uses-permission>
  385.  
  386. <permission
  387. android:name="com.dockit.permission.MAPS_RECEIVE"
  388. android:protectionLevel="signature" />
  389.  
  390. <uses-permission android:name="com.dockit.permission.MAPS_RECEIVE" />
  391. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  392. <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
  393. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  394.  
  395. <!-- Required to show current location -->
  396. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  397. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  398. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  399. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  400. <!-- Network State Permissions -->
  401. <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
  402. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  403. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  404. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  405. <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
  406. <!-- Access Location -->
  407. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  408. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  409. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  410.  
  411. <uses-feature
  412. android:glEsVersion="0x00020000"
  413. android:required="true" />
  414.  
  415. <uses-sdk
  416. android:minSdkVersion="14"
  417. android:targetSdkVersion="18" />
  418.  
  419. <application
  420. android:allowBackup="true"
  421. android:icon="@drawable/app_icon"
  422. android:label="@string/app_name"
  423. android:theme="@style/AppTheme"
  424. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  425. <activity
  426. android:name="com.dockit.SplashScreen"
  427. android:configChanges="orientation|keyboardHidden"
  428. android:label="@string/app_name"
  429. android:screenOrientation="portrait"
  430. android:theme="@android:style/Theme.NoTitleBar"
  431. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  432. <intent-filter>
  433. <action android:name="android.intent.action.MAIN" />
  434.  
  435. <category android:name="android.intent.category.LAUNCHER" />
  436. </intent-filter>
  437. </activity>
  438. <activity
  439. android:name="com.dockit.AboutUs"
  440. android:configChanges="orientation|keyboardHidden"
  441. android:screenOrientation="portrait"
  442. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  443. </activity>
  444. <activity
  445. android:name="com.dockit.ListViewDockItStations"
  446. android:configChanges="orientation|keyboardHidden"
  447. android:screenOrientation="portrait"
  448. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  449. </activity>
  450. <activity
  451. android:name="com.dockit.More"
  452. android:configChanges="orientation|keyboardHidden"
  453. android:screenOrientation="portrait"
  454. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden|stateHidden" >
  455. <intent-filter>
  456. <action android:name="android.intent.action.VIEW" />
  457.  
  458. <category android:name="android.intent.category.DEFAULT" />
  459. <category android:name="android.intent.category.BROWSABLE" />
  460.  
  461. <data
  462. android:host="twitter"
  463. android:scheme="app" />
  464. </intent-filter>
  465. </activity>
  466. <activity
  467. android:name="com.dockit.NearByDockItTabs"
  468. android:configChanges="orientation|keyboardHidden"
  469. android:screenOrientation="portrait"
  470. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  471. </activity>
  472. <activity
  473. android:name="com.dockit.NearMeold"
  474. android:configChanges="orientation|keyboardHidden"
  475. android:screenOrientation="portrait"
  476. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  477. </activity>
  478. <activity
  479. android:name="com.dockit.Registration"
  480. android:configChanges="orientation|keyboardHidden"
  481. android:screenOrientation="portrait"
  482. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  483. </activity>
  484. <activity
  485. android:name="com.dockit.tabcontroller.TabGroupActivity"
  486. android:configChanges="orientation|keyboardHidden"
  487. android:screenOrientation="portrait"
  488. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  489. </activity>
  490. <activity
  491. android:name="com.dockit.tabcontroller.TabGroup1"
  492. android:configChanges="orientation|keyboardHidden"
  493. android:screenOrientation="portrait"
  494. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  495. </activity>
  496. <activity
  497. android:name="com.dockit.NearMe"
  498. android:configChanges="orientation|keyboardHidden"
  499. android:screenOrientation="portrait"
  500. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  501. </activity>
  502. <activity
  503. android:name="com.dockit.tabcontroller.TabGroup2"
  504. android:configChanges="orientation|keyboardHidden"
  505. android:screenOrientation="portrait"
  506. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  507. </activity>
  508. <activity
  509. android:name="com.dockit.tabcontroller.TabGroup3"
  510. android:configChanges="orientation|keyboardHidden"
  511. android:screenOrientation="portrait"
  512. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  513. </activity>
  514. <activity
  515. android:name="com.dockit.DockItStationDetails"
  516. android:configChanges="orientation|keyboardHidden"
  517. android:screenOrientation="portrait"
  518. android:windowSoftInputMode="adjustPan|adjustResize|stateHidden" >
  519. </activity>
  520.  
  521. <meta-data
  522. android:name="com.google.android.maps.v2.API_KEY"
  523. android:value="AIzaSyAlvDShdumWacdKdHldu3TCAUPyUXId30k" />
  524. <meta-data
  525. android:name="com.facebook.sdk.ApplicationId"
  526. android:value="@string/app_id" />
  527.  
  528. <activity
  529. android:name="com.facebook.LoginActivity"
  530. android:label="@string/app_name" >
  531. </activity>
  532. <activity
  533. android:name="com.dockit.RateApplication"
  534. android:label="@string/title_activity_rate_application" >
  535. </activity>
  536. </application>
  537.  
  538. </manifest>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement