From 26812b63e5b50190d5a72144e6b74bef4ff2bef9 Mon Sep 17 00:00:00 2001 From: franck buratto Date: Fri, 30 Jun 2017 10:47:07 +0200 Subject: [PATCH] Android part --- Android/.gitignore | 9 +++++++++ Android/.idea/compiler.xml | 22 ++++++++++++++++++++++ Android/.idea/copyright/profiles_settings.xml | 3 +++ Android/.idea/encodings.xml | 6 ++++++ Android/.idea/gradle.xml | 18 ++++++++++++++++++ Android/.idea/inspectionProfiles/Project_Default.xml | 12 ++++++++++++ Android/.idea/inspectionProfiles/profiles_settings.xml | 7 +++++++ Android/.idea/misc.xml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ Android/.idea/modules.xml | 9 +++++++++ Android/.idea/runConfigurations.xml | 12 ++++++++++++ Android/.idea/vcs.xml | 7 +++++++ Android/app/.gitignore | 1 + Android/app/build.gradle | 30 ++++++++++++++++++++++++++++++ Android/app/proguard-rules.pro | 25 +++++++++++++++++++++++++ Android/app/src/main/AndroidManifest.xml | 27 +++++++++++++++++++++++++++ Android/app/src/main/ic_launcher-web.png | Bin 0 -> 28855 bytes Android/app/src/main/java/com/utbm/lo53/whereami/Calibration.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Android/app/src/main/java/com/utbm/lo53/whereami/Connection.java | 37 +++++++++++++++++++++++++++++++++++++ Android/app/src/main/java/com/utbm/lo53/whereami/Menu.java | 31 +++++++++++++++++++++++++++++++ Android/app/src/main/java/com/utbm/lo53/whereami/Positioning.java | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Android/app/src/main/java/com/utbm/lo53/whereami/Preference.java | 45 +++++++++++++++++++++++++++++++++++++++++++++ Android/app/src/main/res/drawable/dot.png | Bin 0 -> 176384 bytes Android/app/src/main/res/drawable/map.png | Bin 0 -> 24924 bytes Android/app/src/main/res/drawable/pin.png | Bin 0 -> 9593 bytes Android/app/src/main/res/drawable/utbm.png | Bin 0 -> 68300 bytes Android/app/src/main/res/layout/activity_calibration.xml | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Android/app/src/main/res/layout/activity_menu.xml | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Android/app/src/main/res/layout/activity_positioning.xml | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Android/app/src/main/res/layout/activity_preference.xml | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Android/app/src/main/res/mipmap-hdpi/where_am_i.png | Bin 0 -> 2044 bytes Android/app/src/main/res/mipmap-mdpi/where_am_i.png | Bin 0 -> 1332 bytes Android/app/src/main/res/mipmap-xhdpi/where_am_i.png | Bin 0 -> 2835 bytes Android/app/src/main/res/mipmap-xxhdpi/where_am_i.png | Bin 0 -> 4604 bytes Android/app/src/main/res/mipmap-xxxhdpi/where_am_i.png | Bin 0 -> 6816 bytes Android/app/src/main/res/values/colors.xml | 6 ++++++ Android/app/src/main/res/values/strings.xml | 3 +++ Android/app/src/main/res/values/styles.xml | 11 +++++++++++ Android/app/src/main/where_am-i-web.png | Bin 0 -> 28855 bytes Android/app/src/main/where_am_i-web.png | Bin 0 -> 28855 bytes Android/build.gradle | 24 ++++++++++++++++++++++++ Android/gradle.properties | 17 +++++++++++++++++ Android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes Android/gradle/wrapper/gradle-wrapper.properties | 6 ++++++ Android/gradlew | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Android/gradlew.bat | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Android/settings.gradle | 1 + 46 files changed, 1120 insertions(+), 0 deletions(-) create mode 100644 Android/.gitignore create mode 100644 Android/.idea/compiler.xml create mode 100644 Android/.idea/copyright/profiles_settings.xml create mode 100644 Android/.idea/encodings.xml create mode 100644 Android/.idea/gradle.xml create mode 100644 Android/.idea/inspectionProfiles/Project_Default.xml create mode 100644 Android/.idea/inspectionProfiles/profiles_settings.xml create mode 100644 Android/.idea/misc.xml create mode 100644 Android/.idea/modules.xml create mode 100644 Android/.idea/runConfigurations.xml create mode 100644 Android/.idea/vcs.xml create mode 100644 Android/app/.gitignore create mode 100644 Android/app/build.gradle create mode 100644 Android/app/proguard-rules.pro create mode 100644 Android/app/src/main/AndroidManifest.xml create mode 100644 Android/app/src/main/ic_launcher-web.png create mode 100644 Android/app/src/main/java/com/utbm/lo53/whereami/Calibration.java create mode 100644 Android/app/src/main/java/com/utbm/lo53/whereami/Connection.java create mode 100644 Android/app/src/main/java/com/utbm/lo53/whereami/Menu.java create mode 100644 Android/app/src/main/java/com/utbm/lo53/whereami/Positioning.java create mode 100644 Android/app/src/main/java/com/utbm/lo53/whereami/Preference.java create mode 100644 Android/app/src/main/res/drawable/dot.png create mode 100644 Android/app/src/main/res/drawable/map.png create mode 100644 Android/app/src/main/res/drawable/pin.png create mode 100644 Android/app/src/main/res/drawable/utbm.png create mode 100644 Android/app/src/main/res/layout/activity_calibration.xml create mode 100644 Android/app/src/main/res/layout/activity_menu.xml create mode 100644 Android/app/src/main/res/layout/activity_positioning.xml create mode 100644 Android/app/src/main/res/layout/activity_preference.xml create mode 100644 Android/app/src/main/res/mipmap-hdpi/where_am_i.png create mode 100644 Android/app/src/main/res/mipmap-mdpi/where_am_i.png create mode 100644 Android/app/src/main/res/mipmap-xhdpi/where_am_i.png create mode 100644 Android/app/src/main/res/mipmap-xxhdpi/where_am_i.png create mode 100644 Android/app/src/main/res/mipmap-xxxhdpi/where_am_i.png create mode 100644 Android/app/src/main/res/values/colors.xml create mode 100644 Android/app/src/main/res/values/strings.xml create mode 100644 Android/app/src/main/res/values/styles.xml create mode 100644 Android/app/src/main/where_am-i-web.png create mode 100644 Android/app/src/main/where_am_i-web.png create mode 100644 Android/build.gradle create mode 100644 Android/gradle.properties create mode 100644 Android/gradle/wrapper/gradle-wrapper.jar create mode 100644 Android/gradle/wrapper/gradle-wrapper.properties create mode 100644 Android/gradlew create mode 100755 Android/gradlew.bat create mode 100644 Android/settings.gradle diff --git a/Android/.gitignore b/Android/.gitignore new file mode 100644 index 0000000..a4c7838 --- /dev/null +++ b/Android/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.externalNativeBuild diff --git a/Android/.idea/compiler.xml b/Android/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/Android/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android/.idea/copyright/profiles_settings.xml b/Android/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..c7d1c5a --- /dev/null +++ b/Android/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Android/.idea/encodings.xml b/Android/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/Android/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Android/.idea/gradle.xml b/Android/.idea/gradle.xml new file mode 100644 index 0000000..7ac24c7 --- /dev/null +++ b/Android/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/Android/.idea/inspectionProfiles/Project_Default.xml b/Android/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..c81d679 --- /dev/null +++ b/Android/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/Android/.idea/inspectionProfiles/profiles_settings.xml b/Android/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..6933c1e --- /dev/null +++ b/Android/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/Android/.idea/misc.xml b/Android/.idea/misc.xml new file mode 100644 index 0000000..5d19981 --- /dev/null +++ b/Android/.idea/misc.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android/.idea/modules.xml b/Android/.idea/modules.xml new file mode 100644 index 0000000..e641292 --- /dev/null +++ b/Android/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Android/.idea/runConfigurations.xml b/Android/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/Android/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/Android/.idea/vcs.xml b/Android/.idea/vcs.xml new file mode 100644 index 0000000..f15163d --- /dev/null +++ b/Android/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Android/app/.gitignore b/Android/app/.gitignore new file mode 100644 index 0000000..3543521 --- /dev/null +++ b/Android/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/Android/app/build.gradle b/Android/app/build.gradle new file mode 100644 index 0000000..2824e31 --- /dev/null +++ b/Android/app/build.gradle @@ -0,0 +1,30 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 25 + buildToolsVersion "25.0.3" + defaultConfig { + applicationId "com.utbm.lo53.whereami" + minSdkVersion 14 + targetSdkVersion 25 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + compile 'com.android.support:appcompat-v7:25.3.1' + compile 'com.android.support.constraint:constraint-layout:1.0.2' + testCompile 'junit:junit:4.12' +} diff --git a/Android/app/proguard-rules.pro b/Android/app/proguard-rules.pro new file mode 100644 index 0000000..e01b6b6 --- /dev/null +++ b/Android/app/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\Android\sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/Android/app/src/main/AndroidManifest.xml b/Android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..23311e0 --- /dev/null +++ b/Android/app/src/main/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Android/app/src/main/ic_launcher-web.png b/Android/app/src/main/ic_launcher-web.png new file mode 100644 index 0000000..74df714 Binary files /dev/null and b/Android/app/src/main/ic_launcher-web.png differ diff --git a/Android/app/src/main/java/com/utbm/lo53/whereami/Calibration.java b/Android/app/src/main/java/com/utbm/lo53/whereami/Calibration.java new file mode 100644 index 0000000..67d58b0 --- /dev/null +++ b/Android/app/src/main/java/com/utbm/lo53/whereami/Calibration.java @@ -0,0 +1,111 @@ +package com.utbm.lo53.whereami; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.wifi.WifiInfo; +import android.net.wifi.WifiManager; +import android.os.StrictMode; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.MotionEvent; +import android.view.View; +import android.view.animation.Animation; +import android.view.animation.TranslateAnimation; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.util.Log; +import android.widget.Toast; + +public class Calibration extends AppCompatActivity +{ + ImageView dot; + float x,y; + String address; + + @Override + protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_calibration); + StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); + StrictMode.setThreadPolicy(policy); + + dot = (ImageView)findViewById(R.id.dot); + RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.r_lay_cal); + relativeLayout.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + + int action = event.getAction(); + x = (int)event.getX(); + y = (int)event.getY(); + if (action == MotionEvent.ACTION_DOWN) + { + TranslateAnimation animation = new TranslateAnimation(0, x - dot.getX(), 0, y - dot.getY() ); + animation.setDuration(1000); + animation.setFillAfter(false); + animation.setAnimationListener(new MyAnimationListener()); + dot.startAnimation(animation); + } + return false; + } + }); + x = dot.getX(); + y = dot.getY(); + } + private class MyAnimationListener implements Animation.AnimationListener + { + @Override + public void onAnimationEnd(Animation animation) + { + dot.clearAnimation(); + dot.setX(x); + dot.setY(y); + } + @Override + public void onAnimationRepeat(Animation animation) { + } + @Override + public void onAnimationStart(Animation animation) { + } + } + + public void onClickSend (View view) + { + WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); + if(wifiManager.isWifiEnabled()) + { + // WIFI ALREADY ENABLED. GRAB THE MAC ADDRESS HERE + WifiInfo info = wifiManager.getConnectionInfo(); + address = info.getMacAddress(); + } + else + { + // ENABLE THE WIFI FIRST + wifiManager.setWifiEnabled(true); + // WIFI IS NOW ENABLED. GRAB THE MAC ADDRESS HERE + WifiInfo info = wifiManager.getConnectionInfo(); + address = info.getMacAddress(); + } + //check the preferences to get ip/port + SharedPreferences sharedPref = getSharedPreferences("preferences", MODE_PRIVATE); + String ip_address = sharedPref.getString("ip_address", ""); + String port_number = sharedPref.getString("port_number", ""); + if (ip_address == "" || port_number == "") + { + Toast.makeText(getApplicationContext(),"You need to set Server IP/Port", Toast.LENGTH_LONG).show(); + //open Preference activity + Intent intent = new Intent(this, Preference.class); + startActivity(intent); + } + else + { + // send request to server + Connection.command(ip_address, port_number,"/calibration/setPosition?mac_addr="+ address + "&posx=" + x + "&posy=" + y); + Toast.makeText(getApplicationContext(),"Sent successfully", Toast.LENGTH_LONG).show(); + Log.d("debugPos","x= "+x+" y= "+y); + } + } + +} + diff --git a/Android/app/src/main/java/com/utbm/lo53/whereami/Connection.java b/Android/app/src/main/java/com/utbm/lo53/whereami/Connection.java new file mode 100644 index 0000000..4b9c9ad --- /dev/null +++ b/Android/app/src/main/java/com/utbm/lo53/whereami/Connection.java @@ -0,0 +1,37 @@ +package com.utbm.lo53.whereami; + +import android.util.Log; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +public final class Connection +{ + public static String command(String ip,String port,String cmd) + { + String data=""; + try + { + + URL url=new URL("http://"+ip+":"+port+"/Where-I-Am/index.php"+cmd); + HttpURLConnection httpconn=(HttpURLConnection)url.openConnection(); + httpconn.setRequestMethod("GET"); + httpconn.connect(); + int response=httpconn.getResponseCode(); + if( response == HttpURLConnection.HTTP_OK ) { + InputStream in = httpconn.getInputStream(); + InputStreamReader isr = new InputStreamReader(in); + BufferedReader br = new BufferedReader(isr); + data = br.readLine(); + } + Log.d("address","http://"+ip+":"+port+"/Where-I-Am/index.php"+cmd); + } catch (Exception em){ + Log.d("Error","Error"); + } + return data; + } + +} diff --git a/Android/app/src/main/java/com/utbm/lo53/whereami/Menu.java b/Android/app/src/main/java/com/utbm/lo53/whereami/Menu.java new file mode 100644 index 0000000..50d0bdd --- /dev/null +++ b/Android/app/src/main/java/com/utbm/lo53/whereami/Menu.java @@ -0,0 +1,31 @@ +package com.utbm.lo53.whereami; + +import android.content.Intent; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; + +public class Menu extends AppCompatActivity +{ + @Override + protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_menu); + } + public void onClickPositioning (View view) + { + Intent intent = new Intent(this, Positioning.class); + startActivity(intent); + } + public void onClickCalibration (View view) + { + Intent intent = new Intent(this, Calibration.class); + startActivity(intent); + } + public void onClickSetting (View view) + { + Intent intent = new Intent(this, Preference.class); + startActivity(intent); + } +} diff --git a/Android/app/src/main/java/com/utbm/lo53/whereami/Positioning.java b/Android/app/src/main/java/com/utbm/lo53/whereami/Positioning.java new file mode 100644 index 0000000..857ebdc --- /dev/null +++ b/Android/app/src/main/java/com/utbm/lo53/whereami/Positioning.java @@ -0,0 +1,76 @@ +package com.utbm.lo53.whereami; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.wifi.WifiInfo; +import android.net.wifi.WifiManager; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; +import android.widget.ImageView; +import android.widget.Toast; + + +public class Positioning extends AppCompatActivity +{ + ImageView pin; + String address; + + @Override + protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_positioning); + pin = (ImageView) findViewById(R.id.dot); + pin.setVisibility(View.INVISIBLE); + } + public void onClickLocate (View view) + { + WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); + if(wifiManager.isWifiEnabled()) + { + // WIFI ALREADY ENABLED. GRAB THE MAC ADDRESS HERE + WifiInfo info = wifiManager.getConnectionInfo(); + address = info.getMacAddress(); + } + else + { + // ENABLE THE WIFI FIRST + wifiManager.setWifiEnabled(true); + // WIFI IS NOW ENABLED. GRAB THE MAC ADDRESS HERE + WifiInfo info = wifiManager.getConnectionInfo(); + address = info.getMacAddress(); + } + //check the preferences to get ip/port + SharedPreferences sharedPref = getSharedPreferences("preferences", MODE_PRIVATE); + String ip_address = sharedPref.getString("ip_address", ""); + String port_number = sharedPref.getString("port_number", ""); + if (ip_address == "" || port_number == "") + { + Toast.makeText(getApplicationContext(),"You need to set Server IP/Port", Toast.LENGTH_LONG).show(); + //open Preference activity + Intent intent = new Intent(this, Preference.class); + startActivity(intent); + } + else + { + // send request to server + String position = Connection.command(ip_address, port_number, "getPosition&mac="+ address); + String s[] = position.split(";"); + if (s.length == 2) + { + //set Pin x,y + pin.setX(Integer.parseInt(s[0])); + pin.setY(Integer.parseInt(s[1])); + pin.setVisibility(View.VISIBLE); + pin.bringToFront(); + } + else + { + Toast.makeText(getApplicationContext(),"Failed to get position\nPlease check your connection settings", Toast.LENGTH_LONG).show(); + + } + } + } +} diff --git a/Android/app/src/main/java/com/utbm/lo53/whereami/Preference.java b/Android/app/src/main/java/com/utbm/lo53/whereami/Preference.java new file mode 100644 index 0000000..371dfa7 --- /dev/null +++ b/Android/app/src/main/java/com/utbm/lo53/whereami/Preference.java @@ -0,0 +1,45 @@ +package com.utbm.lo53.whereami; + +import android.content.SharedPreferences; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; +import android.widget.EditText; +import android.widget.Toast; + +public class Preference extends AppCompatActivity +{ + EditText ip_address; + EditText port_number; + + @Override + protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_preference); + + //get EditTexts + ip_address = (EditText) findViewById(R.id.ip_address); + port_number = (EditText) findViewById(R.id.port_number); + + //check if there is a saved data in preferences + SharedPreferences sharedPref = getSharedPreferences("preferences", MODE_PRIVATE); + if (sharedPref.getString("ip_address", "") != "") + { + ip_address.setText(sharedPref.getString("ip_address", "")); + } + if (sharedPref.getString("port_number", "") != "") + { + port_number.setText(sharedPref.getString("port_number", "")); + } + } + public void onClickSavePreferences(View view) + { + SharedPreferences sharedPref = getSharedPreferences("preferences", MODE_PRIVATE); + SharedPreferences.Editor editor = sharedPref.edit(); + editor.putString("ip_address",ip_address.getText().toString() ); + editor.putString("port_number",port_number.getText().toString() ); + editor.commit(); + Toast.makeText(getApplicationContext(),"Saved successfully", Toast.LENGTH_LONG).show(); + } +} diff --git a/Android/app/src/main/res/drawable/dot.png b/Android/app/src/main/res/drawable/dot.png new file mode 100644 index 0000000..2c2c402 Binary files /dev/null and b/Android/app/src/main/res/drawable/dot.png differ diff --git a/Android/app/src/main/res/drawable/map.png b/Android/app/src/main/res/drawable/map.png new file mode 100644 index 0000000..8a4c95b Binary files /dev/null and b/Android/app/src/main/res/drawable/map.png differ diff --git a/Android/app/src/main/res/drawable/pin.png b/Android/app/src/main/res/drawable/pin.png new file mode 100644 index 0000000..4e5de77 Binary files /dev/null and b/Android/app/src/main/res/drawable/pin.png differ diff --git a/Android/app/src/main/res/drawable/utbm.png b/Android/app/src/main/res/drawable/utbm.png new file mode 100644 index 0000000..5234f42 Binary files /dev/null and b/Android/app/src/main/res/drawable/utbm.png differ diff --git a/Android/app/src/main/res/layout/activity_calibration.xml b/Android/app/src/main/res/layout/activity_calibration.xml new file mode 100644 index 0000000..572d53b --- /dev/null +++ b/Android/app/src/main/res/layout/activity_calibration.xml @@ -0,0 +1,57 @@ + + + + + +