Browse Source

Merge branch 'master' of https://git.tk.informatik.tu-darmstadt.de/scm-ssi-student-hostagev2

Julien Clauter 10 years ago
parent
commit
9856f13b1e

+ 93 - 48
AndroidManifest.xml

@@ -1,47 +1,53 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="de.tudarmstadt.informatik.hostage"
-    android:versionCode="1"
-    android:versionName="1.0" >
+		  package="de.tudarmstadt.informatik.hostage"
+		  android:versionCode="1"
+		  android:versionName="1.0">
 
-    <uses-sdk
-        android:minSdkVersion="14"
-        android:targetSdkVersion="19" />
+	<uses-sdk
+			android:minSdkVersion="14"
+			android:targetSdkVersion="19"/>
 
-    <uses-permission android:name="android.permission.VIBRATE" />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
-    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-    
-    <!-- Tell the system this app requires OpenGL ES 2.0. -->
-	<uses-feature android:glEsVersion="0x00020000" android:required="true" />
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
-    <uses-permission android:name="android.permission.BLUETOOTH" />
-    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
-    <uses-permission android:name="android.permission.NFC" />
+	<uses-permission android:name="android.permission.VIBRATE"/>
+	<uses-permission android:name="android.permission.INTERNET"/>
+	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+	<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
+	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
+	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+	<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
 
-    <uses-feature
-        android:name="android.hardware.nfc"
-        android:required="false" />
+	<!-- Tell the system this app requires OpenGL ES 2.0. -->
+	<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
+	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+	<uses-permission android:name="android.permission.BLUETOOTH"/>
+	<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
+	<uses-permission android:name="android.permission.NFC"/>
 
-    <application
-        android:allowBackup="true"
-        android:icon="@drawable/ic_launcher"
-        android:label="@string/app_name"
-        android:theme="@style/AppTheme"
-        android:debuggable="true"
-        android:installLocation="preferExternal">
-        <activity
-            android:name="de.tudarmstadt.informatik.hostage.ui2.activity.MainActivity"
-            android:configChanges="keyboardHidden|orientation|screenSize"
-            android:label="@string/app_name"
-            android:screenOrientation="portrait" >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
+	<uses-feature
+			android:name="android.hardware.nfc"
+			android:required="false"/>
 
+	<application
+			android:allowBackup="true"
+			android:icon="@drawable/ic_launcher"
+			android:label="@string/app_name"
+			android:theme="@style/AppTheme"
+			android:debuggable="true"
+			android:installLocation="preferExternal">
+		<meta-data
+				android:name="com.google.android.gms.version"
+				android:value="14"/>
+		<meta-data
+				android:name="com.google.android.maps.v2.API_KEY"
+				android:value="AIzaSyB7kAfeQSEirb0mZ9xeA4IewRzf8xKqjic"/>
+		<activity
+				android:name="de.tudarmstadt.informatik.hostage.ui2.activity.MainActivity"
+				android:configChanges="keyboardHidden|orientation|screenSize"
+				android:label="@string/app_name"
+				android:screenOrientation="portrait">
+			<intent-filter>
+				<action android:name="android.intent.action.MAIN"/>
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
@@ -79,19 +85,58 @@
             android:label="@string/gui_playground" >
             <intent-filter>
                 <action android:name="android.nfc.action.NDEF_DISCOVERED" />
+				<category android:name="android.intent.category.LAUNCHER"/>
+			</intent-filter>
+		</activity>
+		<!--
+		<activity
+			android:name="de.tudarmstadt.informatik.hostage.ui.MainActivity"
+			android:configChanges="keyboardHidden|orientation|screenSize"
+			android:label="@string/app_name" >
+		</activity>
+		<activity
+			android:name="de.tudarmstadt.informatik.hostage.ui.ViewLog"
+			android:label="@string/statistics" >
+		</activity>
+		<activity
+			android:name="de.tudarmstadt.informatik.hostage.ui.ViewLogTable"
+			android:label="@string/database" >
+		</activity>
+		-->
+		<activity
+				android:name="de.tudarmstadt.informatik.hostage.ui2.preference.ProfileEditActivity"
+				android:label="Edit Profile">
+		</activity>
+		<activity
+				android:name="de.tudarmstadt.informatik.hostage.ui.SettingsActivity"
+				android:label="@string/settings">
+		</activity>
+		<activity
+				android:name="de.tudarmstadt.informatik.hostage.ui.AboutActivity"
+				android:label="@string/gui_action_about">
+		</activity>
+		<activity
+				android:name="de.tudarmstadt.informatik.hostage.ui.PlayGroundActivity"
+				android:label="@string/gui_playground">
+		</activity>
+		<activity
+				android:name="de.tudarmstadt.informatik.hostage.sync.NFCSync"
+				android:label="@string/gui_playground">
+			<intent-filter>
+				<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
 
-                <category android:name="android.intent.category.DEFAULT" />
+				<category android:name="android.intent.category.DEFAULT"/>
 
-                <data android:mimeType="application/de.tudarmstadt.informatik.hostage" />
-            </intent-filter>
-        </activity>
+				<data android:mimeType="application/de.tudarmstadt.informatik.hostage"/>
+			</intent-filter>
+		</activity>
 
-        <service android:name="de.tudarmstadt.informatik.hostage.HoneyService" >
-        </service>
-        <service
-            android:name="de.tudarmstadt.informatik.hostage.logging.Logger"
-            android:exported="false" >
-        </service>
-    </application>
+		<service android:name="de.tudarmstadt.informatik.hostage.HoneyService">
+		</service>
+		<service
+				android:name="de.tudarmstadt.informatik.hostage.logging.Logger"
+				android:exported="false">
+		</service>
+	</application>
 
 </manifest>

+ 15 - 0
res/layout/fragment_threatmap.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                xmlns:tools="http://schemas.android.com/tools"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                tools:context="de.tudarmstadt.informatik.hostage.ui2.fragment.MainActivity" >
+
+    <fragment
+            android:id="@+id/threatmapfragment"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            class="com.google.android.gms.maps.MapFragment" />
+
+</RelativeLayout>

+ 4 - 0
src/de/tudarmstadt/informatik/hostage/ui2/activity/MainActivity.java

@@ -27,6 +27,7 @@ import de.tudarmstadt.informatik.hostage.ui2.fragment.HomeFragment;
 import de.tudarmstadt.informatik.hostage.ui2.fragment.ProfileManagerFragment;
 import de.tudarmstadt.informatik.hostage.ui2.fragment.RecordOverviewFragment;
 import de.tudarmstadt.informatik.hostage.ui2.fragment.ServicesFragment;
+import de.tudarmstadt.informatik.hostage.ui2.fragment.ThreatMapFragment;
 import de.tudarmstadt.informatik.hostage.ui2.fragment.opengl.ThreatIndicatorGLRenderer;
 import de.tudarmstadt.informatik.hostage.ui2.model.DrawerListItem;
 
@@ -156,6 +157,9 @@ public class MainActivity extends Activity {
 			case 0:
 				fragment = new HomeFragment();
 				break;
+			case 1:
+				fragment = new ThreatMapFragment();
+				break;
 			case 2:
 				Intent intent = this.getIntent();
 				intent.removeExtra(LogFilter.LOG_FILTER_INTENT_KEY);

+ 69 - 0
src/de/tudarmstadt/informatik/hostage/ui2/fragment/ThreatMapFragment.java

@@ -0,0 +1,69 @@
+package de.tudarmstadt.informatik.hostage.ui2.fragment;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.Fragment;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.maps.CameraUpdateFactory;
+import com.google.android.gms.maps.GoogleMap;
+import com.google.android.gms.maps.MapFragment;
+import com.google.android.gms.maps.model.CircleOptions;
+import com.google.android.gms.maps.model.LatLng;
+import com.google.android.gms.maps.model.MarkerOptions;
+
+import de.tudarmstadt.informatik.hostage.R;
+
+import static com.google.android.gms.common.GooglePlayServicesUtil.*;
+
+/**
+ * Created by fabio on 10.02.14.
+ */
+public class ThreatMapFragment extends Fragment {
+	private GoogleMap map = null;
+
+	/**
+	 * if google play services aren't available an error notification will be displayed
+	 *
+	 * @return true if the google play services are available
+	 */
+	private boolean isGooglePlay() {
+		int status = isGooglePlayServicesAvailable(getActivity());
+		boolean result = status == ConnectionResult.SUCCESS;
+		if (result == false) {
+			getErrorDialog(status, getActivity(), 10).show();
+		}
+		return result;
+	}
+
+	private void loadMapFragment() {
+		// Get a handle to the Map Fragment
+		MapFragment mapFragment = (MapFragment) getFragmentManager()
+				.findFragmentById(R.id.threatmapfragment);
+		map = mapFragment.getMap();
+	}
+
+	@Override
+	public View onCreateView(LayoutInflater inflater, ViewGroup container,
+	                         Bundle savedInstanceState) {
+		//super.onCreateView(inflater, container, savedInstanceState);
+		View rootView = inflater.inflate(R.layout.fragment_threatmap, container, false);
+		if (isGooglePlay()) {
+			loadMapFragment();
+		}
+		if (map != null) {
+			LatLng mapCenter = new LatLng(41.889, -87.622);
+			map.moveCamera(CameraUpdateFactory.newLatLngZoom(mapCenter, 13));
+			map.addCircle(new CircleOptions().center(mapCenter).radius(200.0).fillColor(Color.RED).strokeColor(
+					Color.MAGENTA));
+		}
+		return rootView;
+	}
+}