Commit 26812b63e5b50190d5a72144e6b74bef4ff2bef9

Authored by franck buratto
1 parent fea58c36

Android part

Showing 46 changed files with 1120 additions and 0 deletions   Show diff stats
Android/.gitignore 0 → 100644
  1 +*.iml
  2 +.gradle
  3 +/local.properties
  4 +/.idea/workspace.xml
  5 +/.idea/libraries
  6 +.DS_Store
  7 +/build
  8 +/captures
  9 +.externalNativeBuild
Android/.idea/compiler.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="CompilerConfiguration">
  4 + <resourceExtensions />
  5 + <wildcardResourcePatterns>
  6 + <entry name="!?*.java" />
  7 + <entry name="!?*.form" />
  8 + <entry name="!?*.class" />
  9 + <entry name="!?*.groovy" />
  10 + <entry name="!?*.scala" />
  11 + <entry name="!?*.flex" />
  12 + <entry name="!?*.kt" />
  13 + <entry name="!?*.clj" />
  14 + <entry name="!?*.aj" />
  15 + </wildcardResourcePatterns>
  16 + <annotationProcessing>
  17 + <profile default="true" name="Default" enabled="false">
  18 + <processorPath useClasspath="true" />
  19 + </profile>
  20 + </annotationProcessing>
  21 + </component>
  22 +</project>
0 \ No newline at end of file 23 \ No newline at end of file
Android/.idea/copyright/profiles_settings.xml 0 → 100644
  1 +<component name="CopyrightManager">
  2 + <settings default="" />
  3 +</component>
0 \ No newline at end of file 4 \ No newline at end of file
Android/.idea/encodings.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="Encoding">
  4 + <file url="PROJECT" charset="UTF-8" />
  5 + </component>
  6 +</project>
0 \ No newline at end of file 7 \ No newline at end of file
Android/.idea/gradle.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="GradleSettings">
  4 + <option name="linkedExternalProjectsSettings">
  5 + <GradleProjectSettings>
  6 + <option name="distributionType" value="DEFAULT_WRAPPED" />
  7 + <option name="externalProjectPath" value="$PROJECT_DIR$" />
  8 + <option name="modules">
  9 + <set>
  10 + <option value="$PROJECT_DIR$" />
  11 + <option value="$PROJECT_DIR$/app" />
  12 + </set>
  13 + </option>
  14 + <option name="resolveModulePerSourceSet" value="false" />
  15 + </GradleProjectSettings>
  16 + </option>
  17 + </component>
  18 +</project>
0 \ No newline at end of file 19 \ No newline at end of file
Android/.idea/inspectionProfiles/Project_Default.xml 0 → 100644
  1 +<component name="InspectionProjectProfileManager">
  2 + <profile version="1.0">
  3 + <option name="myName" value="Project Default" />
  4 + <option name="myLocal" value="true" />
  5 + <inspection_tool class="AndroidLintMissingConstraints" enabled="false" level="ERROR" enabled_by_default="false" />
  6 + <inspection_tool class="AndroidLintWifiManagerLeak" enabled="false" level="ERROR" enabled_by_default="false" />
  7 + <inspection_tool class="LoggerInitializedWithForeignClass" enabled="false" level="WARNING" enabled_by_default="false">
  8 + <option name="loggerClassName" value="org.apache.log4j.Logger,org.slf4j.LoggerFactory,org.apache.commons.logging.LogFactory,java.util.logging.Logger" />
  9 + <option name="loggerFactoryMethodName" value="getLogger,getLogger,getLog,getLogger" />
  10 + </inspection_tool>
  11 + </profile>
  12 +</component>
0 \ No newline at end of file 13 \ No newline at end of file
Android/.idea/inspectionProfiles/profiles_settings.xml 0 → 100644
  1 +<component name="InspectionProjectProfileManager">
  2 + <settings>
  3 + <option name="PROJECT_PROFILE" value="Project Default" />
  4 + <option name="USE_PROJECT_PROFILE" value="true" />
  5 + <version value="1.0" />
  6 + </settings>
  7 +</component>
0 \ No newline at end of file 8 \ No newline at end of file
Android/.idea/misc.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="EntryPointsManager">
  4 + <entry_points version="2.0" />
  5 + </component>
  6 + <component name="NullableNotNullManager">
  7 + <option name="myDefaultNullable" value="android.support.annotation.Nullable" />
  8 + <option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
  9 + <option name="myNullables">
  10 + <value>
  11 + <list size="4">
  12 + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
  13 + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
  14 + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
  15 + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
  16 + </list>
  17 + </value>
  18 + </option>
  19 + <option name="myNotNulls">
  20 + <value>
  21 + <list size="4">
  22 + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
  23 + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
  24 + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
  25 + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
  26 + </list>
  27 + </value>
  28 + </option>
  29 + </component>
  30 + <component name="ProjectLevelVcsManager" settingsEditedManually="false">
  31 + <OptionsSetting value="true" id="Add" />
  32 + <OptionsSetting value="true" id="Remove" />
  33 + <OptionsSetting value="true" id="Checkout" />
  34 + <OptionsSetting value="true" id="Update" />
  35 + <OptionsSetting value="true" id="Status" />
  36 + <OptionsSetting value="true" id="Edit" />
  37 + <ConfirmationsSetting value="0" id="Add" />
  38 + <ConfirmationsSetting value="0" id="Remove" />
  39 + </component>
  40 + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
  41 + <output url="file://$PROJECT_DIR$/build/classes" />
  42 + </component>
  43 + <component name="ProjectType">
  44 + <option name="id" value="Android" />
  45 + </component>
  46 +</project>
0 \ No newline at end of file 47 \ No newline at end of file
Android/.idea/modules.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="ProjectModuleManager">
  4 + <modules>
  5 + <module fileurl="file://$PROJECT_DIR$/Project.iml" filepath="$PROJECT_DIR$/Project.iml" />
  6 + <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
  7 + </modules>
  8 + </component>
  9 +</project>
0 \ No newline at end of file 10 \ No newline at end of file
Android/.idea/runConfigurations.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="RunConfigurationProducerService">
  4 + <option name="ignoredProducers">
  5 + <set>
  6 + <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
  7 + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
  8 + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
  9 + </set>
  10 + </option>
  11 + </component>
  12 +</project>
0 \ No newline at end of file 13 \ No newline at end of file
Android/.idea/vcs.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="VcsDirectoryMappings">
  4 + <mapping directory="$PROJECT_DIR$/Where-am-I" vcs="Git" />
  5 + <mapping directory="$PROJECT_DIR$/Where-am-I" vcs="Git" />
  6 + </component>
  7 +</project>
0 \ No newline at end of file 8 \ No newline at end of file
Android/app/.gitignore 0 → 100644
  1 +/build
Android/app/build.gradle 0 → 100644
  1 +apply plugin: 'com.android.application'
  2 +
  3 +android {
  4 + compileSdkVersion 25
  5 + buildToolsVersion "25.0.3"
  6 + defaultConfig {
  7 + applicationId "com.utbm.lo53.whereami"
  8 + minSdkVersion 14
  9 + targetSdkVersion 25
  10 + versionCode 1
  11 + versionName "1.0"
  12 + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  13 + }
  14 + buildTypes {
  15 + release {
  16 + minifyEnabled false
  17 + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  18 + }
  19 + }
  20 +}
  21 +
  22 +dependencies {
  23 + compile fileTree(dir: 'libs', include: ['*.jar'])
  24 + androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
  25 + exclude group: 'com.android.support', module: 'support-annotations'
  26 + })
  27 + compile 'com.android.support:appcompat-v7:25.3.1'
  28 + compile 'com.android.support.constraint:constraint-layout:1.0.2'
  29 + testCompile 'junit:junit:4.12'
  30 +}
Android/app/proguard-rules.pro 0 → 100644
  1 +# Add project specific ProGuard rules here.
  2 +# By default, the flags in this file are appended to flags specified
  3 +# in C:\Android\sdk/tools/proguard/proguard-android.txt
  4 +# You can edit the include path and order by changing the proguardFiles
  5 +# directive in build.gradle.
  6 +#
  7 +# For more details, see
  8 +# http://developer.android.com/guide/developing/tools/proguard.html
  9 +
  10 +# Add any project specific keep options here:
  11 +
  12 +# If your project uses WebView with JS, uncomment the following
  13 +# and specify the fully qualified class name to the JavaScript interface
  14 +# class:
  15 +#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
  16 +# public *;
  17 +#}
  18 +
  19 +# Uncomment this to preserve the line number information for
  20 +# debugging stack traces.
  21 +#-keepattributes SourceFile,LineNumberTable
  22 +
  23 +# If you keep the line number information, uncomment this to
  24 +# hide the original source file name.
  25 +#-renamesourcefileattribute SourceFile
Android/app/src/main/AndroidManifest.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3 + package="com.utbm.lo53.whereami">
  4 +
  5 + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  6 + <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  7 + <uses-permission android:name="android.permission.INTERNET" />
  8 +
  9 + <application
  10 + android:allowBackup="true"
  11 + android:icon="@mipmap/where_am_i"
  12 + android:label="@string/app_name"
  13 + android:roundIcon="@mipmap/where_am_i"
  14 + android:supportsRtl="true"
  15 + android:theme="@style/AppTheme">
  16 + <activity android:name=".Menu" android:screenOrientation="portrait">
  17 + <intent-filter>
  18 + <action android:name="android.intent.action.MAIN" />
  19 + <category android:name="android.intent.category.LAUNCHER" />
  20 + </intent-filter>
  21 + </activity>
  22 + <activity android:name=".Positioning" android:screenOrientation="portrait" />
  23 + <activity android:name=".Calibration" android:screenOrientation="portrait" />
  24 + <activity android:name=".Preference" android:screenOrientation="portrait" ></activity>
  25 + </application>
  26 +
  27 +</manifest>
0 \ No newline at end of file 28 \ No newline at end of file
Android/app/src/main/ic_launcher-web.png 0 → 100644

28.2 KB

Android/app/src/main/java/com/utbm/lo53/whereami/Calibration.java 0 → 100644
  1 +package com.utbm.lo53.whereami;
  2 +import android.content.Context;
  3 +import android.content.Intent;
  4 +import android.content.SharedPreferences;
  5 +import android.net.wifi.WifiInfo;
  6 +import android.net.wifi.WifiManager;
  7 +import android.os.StrictMode;
  8 +import android.support.v7.app.AppCompatActivity;
  9 +import android.os.Bundle;
  10 +import android.view.MotionEvent;
  11 +import android.view.View;
  12 +import android.view.animation.Animation;
  13 +import android.view.animation.TranslateAnimation;
  14 +import android.widget.ImageView;
  15 +import android.widget.RelativeLayout;
  16 +import android.util.Log;
  17 +import android.widget.Toast;
  18 +
  19 +public class Calibration extends AppCompatActivity
  20 +{
  21 + ImageView dot;
  22 + float x,y;
  23 + String address;
  24 +
  25 + @Override
  26 + protected void onCreate(Bundle savedInstanceState)
  27 + {
  28 + super.onCreate(savedInstanceState);
  29 + setContentView(R.layout.activity_calibration);
  30 + StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
  31 + StrictMode.setThreadPolicy(policy);
  32 +
  33 + dot = (ImageView)findViewById(R.id.dot);
  34 + RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.r_lay_cal);
  35 + relativeLayout.setOnTouchListener(new View.OnTouchListener() {
  36 + @Override
  37 + public boolean onTouch(View v, MotionEvent event) {
  38 +
  39 + int action = event.getAction();
  40 + x = (int)event.getX();
  41 + y = (int)event.getY();
  42 + if (action == MotionEvent.ACTION_DOWN)
  43 + {
  44 + TranslateAnimation animation = new TranslateAnimation(0, x - dot.getX(), 0, y - dot.getY() );
  45 + animation.setDuration(1000);
  46 + animation.setFillAfter(false);
  47 + animation.setAnimationListener(new MyAnimationListener());
  48 + dot.startAnimation(animation);
  49 + }
  50 + return false;
  51 + }
  52 + });
  53 + x = dot.getX();
  54 + y = dot.getY();
  55 + }
  56 + private class MyAnimationListener implements Animation.AnimationListener
  57 + {
  58 + @Override
  59 + public void onAnimationEnd(Animation animation)
  60 + {
  61 + dot.clearAnimation();
  62 + dot.setX(x);
  63 + dot.setY(y);
  64 + }
  65 + @Override
  66 + public void onAnimationRepeat(Animation animation) {
  67 + }
  68 + @Override
  69 + public void onAnimationStart(Animation animation) {
  70 + }
  71 + }
  72 +
  73 + public void onClickSend (View view)
  74 + {
  75 + WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
  76 + if(wifiManager.isWifiEnabled())
  77 + {
  78 + // WIFI ALREADY ENABLED. GRAB THE MAC ADDRESS HERE
  79 + WifiInfo info = wifiManager.getConnectionInfo();
  80 + address = info.getMacAddress();
  81 + }
  82 + else
  83 + {
  84 + // ENABLE THE WIFI FIRST
  85 + wifiManager.setWifiEnabled(true);
  86 + // WIFI IS NOW ENABLED. GRAB THE MAC ADDRESS HERE
  87 + WifiInfo info = wifiManager.getConnectionInfo();
  88 + address = info.getMacAddress();
  89 + }
  90 + //check the preferences to get ip/port
  91 + SharedPreferences sharedPref = getSharedPreferences("preferences", MODE_PRIVATE);
  92 + String ip_address = sharedPref.getString("ip_address", "");
  93 + String port_number = sharedPref.getString("port_number", "");
  94 + if (ip_address == "" || port_number == "")
  95 + {
  96 + Toast.makeText(getApplicationContext(),"You need to set Server IP/Port", Toast.LENGTH_LONG).show();
  97 + //open Preference activity
  98 + Intent intent = new Intent(this, Preference.class);
  99 + startActivity(intent);
  100 + }
  101 + else
  102 + {
  103 + // send request to server
  104 + Connection.command(ip_address, port_number,"/calibration/setPosition?mac_addr="+ address + "&posx=" + x + "&posy=" + y);
  105 + Toast.makeText(getApplicationContext(),"Sent successfully", Toast.LENGTH_LONG).show();
  106 + Log.d("debugPos","x= "+x+" y= "+y);
  107 + }
  108 + }
  109 +
  110 +}
  111 +
Android/app/src/main/java/com/utbm/lo53/whereami/Connection.java 0 → 100644
  1 +package com.utbm.lo53.whereami;
  2 +
  3 +import android.util.Log;
  4 +
  5 +import java.io.BufferedReader;
  6 +import java.io.InputStream;
  7 +import java.io.InputStreamReader;
  8 +import java.net.HttpURLConnection;
  9 +import java.net.URL;
  10 +
  11 +public final class Connection
  12 +{
  13 + public static String command(String ip,String port,String cmd)
  14 + {
  15 + String data="";
  16 + try
  17 + {
  18 +
  19 + URL url=new URL("http://"+ip+":"+port+"/Where-I-Am/index.php"+cmd);
  20 + HttpURLConnection httpconn=(HttpURLConnection)url.openConnection();
  21 + httpconn.setRequestMethod("GET");
  22 + httpconn.connect();
  23 + int response=httpconn.getResponseCode();
  24 + if( response == HttpURLConnection.HTTP_OK ) {
  25 + InputStream in = httpconn.getInputStream();
  26 + InputStreamReader isr = new InputStreamReader(in);
  27 + BufferedReader br = new BufferedReader(isr);
  28 + data = br.readLine();
  29 + }
  30 + Log.d("address","http://"+ip+":"+port+"/Where-I-Am/index.php"+cmd);
  31 + } catch (Exception em){
  32 + Log.d("Error","Error");
  33 + }
  34 + return data;
  35 + }
  36 +
  37 +}
Android/app/src/main/java/com/utbm/lo53/whereami/Menu.java 0 → 100644
  1 +package com.utbm.lo53.whereami;
  2 +
  3 +import android.content.Intent;
  4 +import android.support.v7.app.AppCompatActivity;
  5 +import android.os.Bundle;
  6 +import android.view.View;
  7 +
  8 +public class Menu extends AppCompatActivity
  9 +{
  10 + @Override
  11 + protected void onCreate(Bundle savedInstanceState)
  12 + {
  13 + super.onCreate(savedInstanceState);
  14 + setContentView(R.layout.activity_menu);
  15 + }
  16 + public void onClickPositioning (View view)
  17 + {
  18 + Intent intent = new Intent(this, Positioning.class);
  19 + startActivity(intent);
  20 + }
  21 + public void onClickCalibration (View view)
  22 + {
  23 + Intent intent = new Intent(this, Calibration.class);
  24 + startActivity(intent);
  25 + }
  26 + public void onClickSetting (View view)
  27 + {
  28 + Intent intent = new Intent(this, Preference.class);
  29 + startActivity(intent);
  30 + }
  31 +}
Android/app/src/main/java/com/utbm/lo53/whereami/Positioning.java 0 → 100644
  1 +package com.utbm.lo53.whereami;
  2 +
  3 +import android.content.Context;
  4 +import android.content.Intent;
  5 +import android.content.SharedPreferences;
  6 +import android.net.wifi.WifiInfo;
  7 +import android.net.wifi.WifiManager;
  8 +import android.support.v7.app.AppCompatActivity;
  9 +import android.os.Bundle;
  10 +import android.view.View;
  11 +import android.widget.ImageView;
  12 +import android.widget.Toast;
  13 +
  14 +
  15 +public class Positioning extends AppCompatActivity
  16 +{
  17 + ImageView pin;
  18 + String address;
  19 +
  20 + @Override
  21 + protected void onCreate(Bundle savedInstanceState)
  22 + {
  23 + super.onCreate(savedInstanceState);
  24 + setContentView(R.layout.activity_positioning);
  25 + pin = (ImageView) findViewById(R.id.dot);
  26 + pin.setVisibility(View.INVISIBLE);
  27 + }
  28 + public void onClickLocate (View view)
  29 + {
  30 + WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
  31 + if(wifiManager.isWifiEnabled())
  32 + {
  33 + // WIFI ALREADY ENABLED. GRAB THE MAC ADDRESS HERE
  34 + WifiInfo info = wifiManager.getConnectionInfo();
  35 + address = info.getMacAddress();
  36 + }
  37 + else
  38 + {
  39 + // ENABLE THE WIFI FIRST
  40 + wifiManager.setWifiEnabled(true);
  41 + // WIFI IS NOW ENABLED. GRAB THE MAC ADDRESS HERE
  42 + WifiInfo info = wifiManager.getConnectionInfo();
  43 + address = info.getMacAddress();
  44 + }
  45 + //check the preferences to get ip/port
  46 + SharedPreferences sharedPref = getSharedPreferences("preferences", MODE_PRIVATE);
  47 + String ip_address = sharedPref.getString("ip_address", "");
  48 + String port_number = sharedPref.getString("port_number", "");
  49 + if (ip_address == "" || port_number == "")
  50 + {
  51 + Toast.makeText(getApplicationContext(),"You need to set Server IP/Port", Toast.LENGTH_LONG).show();
  52 + //open Preference activity
  53 + Intent intent = new Intent(this, Preference.class);
  54 + startActivity(intent);
  55 + }
  56 + else
  57 + {
  58 + // send request to server
  59 + String position = Connection.command(ip_address, port_number, "getPosition&mac="+ address);
  60 + String s[] = position.split(";");
  61 + if (s.length == 2)
  62 + {
  63 + //set Pin x,y
  64 + pin.setX(Integer.parseInt(s[0]));
  65 + pin.setY(Integer.parseInt(s[1]));
  66 + pin.setVisibility(View.VISIBLE);
  67 + pin.bringToFront();
  68 + }
  69 + else
  70 + {
  71 + Toast.makeText(getApplicationContext(),"Failed to get position\nPlease check your connection settings", Toast.LENGTH_LONG).show();
  72 +
  73 + }
  74 + }
  75 + }
  76 +}
Android/app/src/main/java/com/utbm/lo53/whereami/Preference.java 0 → 100644
  1 +package com.utbm.lo53.whereami;
  2 +
  3 +import android.content.SharedPreferences;
  4 +import android.support.v7.app.AppCompatActivity;
  5 +import android.os.Bundle;
  6 +import android.view.View;
  7 +import android.widget.EditText;
  8 +import android.widget.Toast;
  9 +
  10 +public class Preference extends AppCompatActivity
  11 +{
  12 + EditText ip_address;
  13 + EditText port_number;
  14 +
  15 + @Override
  16 + protected void onCreate(Bundle savedInstanceState)
  17 + {
  18 + super.onCreate(savedInstanceState);
  19 + setContentView(R.layout.activity_preference);
  20 +
  21 + //get EditTexts
  22 + ip_address = (EditText) findViewById(R.id.ip_address);
  23 + port_number = (EditText) findViewById(R.id.port_number);
  24 +
  25 + //check if there is a saved data in preferences
  26 + SharedPreferences sharedPref = getSharedPreferences("preferences", MODE_PRIVATE);
  27 + if (sharedPref.getString("ip_address", "") != "")
  28 + {
  29 + ip_address.setText(sharedPref.getString("ip_address", ""));
  30 + }
  31 + if (sharedPref.getString("port_number", "") != "")
  32 + {
  33 + port_number.setText(sharedPref.getString("port_number", ""));
  34 + }
  35 + }
  36 + public void onClickSavePreferences(View view)
  37 + {
  38 + SharedPreferences sharedPref = getSharedPreferences("preferences", MODE_PRIVATE);
  39 + SharedPreferences.Editor editor = sharedPref.edit();
  40 + editor.putString("ip_address",ip_address.getText().toString() );
  41 + editor.putString("port_number",port_number.getText().toString() );
  42 + editor.commit();
  43 + Toast.makeText(getApplicationContext(),"Saved successfully", Toast.LENGTH_LONG).show();
  44 + }
  45 +}
Android/app/src/main/res/drawable/dot.png 0 → 100644

172 KB

Android/app/src/main/res/drawable/map.png 0 → 100644

24.3 KB

Android/app/src/main/res/drawable/pin.png 0 → 100644

9.37 KB

Android/app/src/main/res/drawable/utbm.png 0 → 100644

66.7 KB

Android/app/src/main/res/layout/activity_calibration.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:app="http://schemas.android.com/apk/res-auto"
  4 + xmlns:tools="http://schemas.android.com/tools"
  5 + android:layout_width="match_parent"
  6 + android:layout_height="match_parent"
  7 + android:layout_centerInParent="true"
  8 + android:layout_gravity="center"
  9 + android:foregroundGravity="center"
  10 + tools:context="com.utbm.lo53.whereami.Calibration">
  11 +
  12 + <RelativeLayout
  13 + android:id="@+id/r_lay_cal"
  14 + android:layout_width="wrap_content"
  15 + android:layout_height="wrap_content"
  16 + android:foregroundGravity="center"
  17 + android:gravity="center"
  18 + tools:layout_editor_absoluteX="8dp"
  19 + tools:layout_editor_absoluteY="8dp">
  20 +
  21 + <Button
  22 + android:id="@+id/btn_send"
  23 + android:layout_width="wrap_content"
  24 + android:layout_height="wrap_content"
  25 + android:layout_alignParentTop="true"
  26 + android:layout_centerHorizontal="true"
  27 + android:layout_marginTop="47dp"
  28 + android:foregroundGravity="center"
  29 + android:gravity="center"
  30 + android:onClick="onClickSend"
  31 + android:text="Send"
  32 + tools:layout_editor_absoluteX="148dp"
  33 + tools:layout_editor_absoluteY="16dp" />
  34 +
  35 + <ImageView
  36 + android:id="@+id/map"
  37 + android:layout_width="match_parent"
  38 + android:layout_height="match_parent"
  39 + app:srcCompat="@drawable/map"
  40 + tools:layout_editor_absoluteX="0dp"
  41 + tools:layout_editor_absoluteY="0dp" />
  42 +
  43 + <ImageView
  44 + android:id="@+id/dot"
  45 + android:layout_width="16dp"
  46 + android:layout_height="16dp"
  47 + android:layout_below="@+id/btn_send"
  48 + android:layout_centerHorizontal="true"
  49 + android:layout_marginTop="22dp"
  50 + android:background="@android:drawable/screen_background_light_transparent"
  51 + app:srcCompat="@drawable/dot"
  52 + tools:layout_editor_absoluteX="138dp"
  53 + tools:layout_editor_absoluteY="33dp" />
  54 +
  55 + </RelativeLayout>
  56 +
  57 +</android.support.constraint.ConstraintLayout>
Android/app/src/main/res/layout/activity_menu.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:app="http://schemas.android.com/apk/res-auto"
  4 + xmlns:tools="http://schemas.android.com/tools"
  5 + android:layout_width="wrap_content"
  6 + android:layout_height="wrap_content"
  7 + android:layout_centerInParent="true"
  8 + android:layout_centerVertical="false"
  9 + android:layout_gravity="center"
  10 + android:foregroundGravity="center"
  11 + tools:context="com.utbm.lo53.whereami.Menu">
  12 +
  13 + <LinearLayout
  14 + android:layout_width="wrap_content"
  15 + android:layout_height="wrap_content"
  16 + android:orientation="vertical"
  17 + tools:layout_editor_absoluteX="8dp"
  18 + tools:layout_editor_absoluteY="8dp">
  19 +
  20 + <ImageView
  21 + android:id="@+id/iamge_utbm"
  22 + android:layout_width="match_parent"
  23 + android:layout_height="92dp"
  24 + android:layout_gravity="center"
  25 + app:srcCompat="@drawable/utbm"
  26 + tools:layout_editor_absoluteX="0dp"
  27 + tools:layout_editor_absoluteY="64dp" />
  28 +
  29 + <Button
  30 + android:id="@+id/btn_pos"
  31 + android:layout_width="match_parent"
  32 + android:layout_height="wrap_content"
  33 + android:layout_gravity="center"
  34 + android:layout_marginTop="30dp"
  35 + android:layout_weight="1"
  36 + android:onClick="onClickPositioning"
  37 + android:text="Positioning"
  38 + tools:layout_editor_absoluteX="177dp"
  39 + tools:layout_editor_absoluteY="112dp" />
  40 +
  41 + <Button
  42 + android:id="@+id/btn_cal"
  43 + android:layout_width="match_parent"
  44 + android:layout_height="wrap_content"
  45 + android:layout_gravity="center"
  46 + android:layout_weight="1"
  47 + android:onClick="onClickCalibration"
  48 + android:text="Calibration"
  49 + tools:layout_editor_absoluteX="37dp"
  50 + tools:layout_editor_absoluteY="112dp" />
  51 +
  52 + <ImageView
  53 + android:id="@+id/image_where_am_i"
  54 + android:layout_width="match_parent"
  55 + android:layout_height="86dp"
  56 + android:layout_gravity="center"
  57 + app:srcCompat="@mipmap/where_am_i"
  58 + tools:layout_editor_absoluteX="136dp"
  59 + tools:layout_editor_absoluteY="282dp" />
  60 +
  61 + <Button
  62 + android:id="@+id/btn_set"
  63 + android:layout_width="match_parent"
  64 + android:layout_height="wrap_content"
  65 + android:layout_gravity="center"
  66 + android:layout_weight="1"
  67 + android:onClick="onClickSetting"
  68 + android:text="Settings"
  69 + tools:layout_editor_absoluteX="114dp"
  70 + tools:layout_editor_absoluteY="184dp" />
  71 +
  72 + </LinearLayout>
  73 +
  74 +</android.support.constraint.ConstraintLayout>
Android/app/src/main/res/layout/activity_positioning.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:app="http://schemas.android.com/apk/res-auto"
  4 + xmlns:tools="http://schemas.android.com/tools"
  5 + android:layout_width="match_parent"
  6 + android:layout_height="match_parent"
  7 + android:layout_gravity="center"
  8 + android:foregroundGravity="center"
  9 + android:visibility="visible"
  10 + tools:context="com.utbm.lo53.whereami.Positioning">
  11 +
  12 + <RelativeLayout
  13 + android:layout_width="wrap_content"
  14 + android:layout_height="wrap_content"
  15 + android:foregroundGravity="center"
  16 + android:gravity="center"
  17 + tools:layout_editor_absoluteX="1dp"
  18 + tools:layout_editor_absoluteY="12dp">
  19 +
  20 + <ImageView
  21 + android:id="@+id/map"
  22 + android:layout_width="wrap_content"
  23 + android:layout_height="wrap_content"
  24 + android:layout_alignParentLeft="true"
  25 + android:layout_alignParentStart="true"
  26 + android:layout_alignParentTop="true"
  27 + app:srcCompat="@drawable/map"
  28 + tools:layout_editor_absoluteX="-26dp"
  29 + tools:layout_editor_absoluteY="246dp" />
  30 +
  31 + <Button
  32 + android:id="@+id/btn_locate"
  33 + android:layout_width="wrap_content"
  34 + android:layout_height="wrap_content"
  35 + android:layout_alignLeft="@+id/dot"
  36 + android:layout_alignParentTop="true"
  37 + android:layout_alignStart="@+id/dot"
  38 + android:layout_centerInParent="true"
  39 + android:elevation="0dp"
  40 + android:foregroundGravity="center"
  41 + android:gravity="center"
  42 + android:onClick="onClickLocate"
  43 + android:text="Locate"
  44 + tools:layout_editor_absoluteX="116dp"
  45 + tools:layout_editor_absoluteY="376dp" />
  46 +
  47 + <ImageView
  48 + android:id="@+id/dot"
  49 + android:layout_width="78dp"
  50 + android:layout_height="53dp"
  51 + android:layout_marginTop="138dp"
  52 + app:srcCompat="@drawable/pin"
  53 + tools:layout_editor_absoluteX="121dp"
  54 + tools:layout_editor_absoluteY="134dp"
  55 + android:layout_below="@+id/btn_locate"
  56 + android:layout_alignParentLeft="true"
  57 + android:layout_alignParentStart="true"
  58 + android:layout_marginLeft="33dp"
  59 + android:layout_marginStart="33dp" />
  60 +
  61 + </RelativeLayout>
  62 +
  63 +</android.support.constraint.ConstraintLayout>
Android/app/src/main/res/layout/activity_preference.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:app="http://schemas.android.com/apk/res-auto"
  4 + xmlns:tools="http://schemas.android.com/tools"
  5 + android:layout_width="wrap_content"
  6 + android:layout_height="wrap_content"
  7 + android:layout_centerInParent="true"
  8 + android:layout_gravity="center"
  9 + android:foregroundGravity="center"
  10 + tools:context="com.utbm.lo53.whereami.Preference">
  11 +
  12 + <LinearLayout
  13 + android:layout_width="wrap_content"
  14 + android:layout_height="wrap_content"
  15 + android:foregroundGravity="center"
  16 + android:gravity="center"
  17 + android:orientation="vertical"
  18 + tools:layout_editor_absoluteX="8dp"
  19 + tools:layout_editor_absoluteY="8dp">
  20 +
  21 + <ImageView
  22 + android:id="@+id/imageView"
  23 + android:layout_width="match_parent"
  24 + android:layout_height="92dp"
  25 + android:layout_gravity="center"
  26 + app:srcCompat="@drawable/utbm"
  27 + tools:layout_editor_absoluteX="0dp"
  28 + tools:layout_editor_absoluteY="64dp" />
  29 +
  30 + <EditText
  31 + android:id="@+id/ip_address"
  32 + android:layout_width="match_parent"
  33 + android:layout_height="wrap_content"
  34 + android:layout_gravity="center"
  35 + android:layout_marginTop="10dp"
  36 + android:ems="10"
  37 + android:hint="Server IP address"
  38 + android:inputType="none"
  39 + tools:layout_editor_absoluteX="134dp"
  40 + tools:layout_editor_absoluteY="147dp" />
  41 +
  42 + <EditText
  43 + android:id="@+id/port_number"
  44 + android:layout_width="match_parent"
  45 + android:layout_height="wrap_content"
  46 + android:layout_gravity="center"
  47 + android:ems="10"
  48 + android:hint="Port number"
  49 + android:inputType="number"
  50 + tools:layout_editor_absoluteX="133dp"
  51 + tools:layout_editor_absoluteY="229dp" />
  52 +
  53 + <ImageView
  54 + android:id="@+id/imageView2"
  55 + android:layout_width="match_parent"
  56 + android:layout_height="86dp"
  57 + android:layout_gravity="center"
  58 + app:srcCompat="@mipmap/where_am_i"
  59 + tools:layout_editor_absoluteX="136dp"
  60 + tools:layout_editor_absoluteY="282dp" />
  61 +
  62 + <Button
  63 + android:id="@+id/btn_save_settings"
  64 + android:layout_width="match_parent"
  65 + android:layout_height="wrap_content"
  66 + android:layout_gravity="center"
  67 + android:onClick="onClickSavePreferences"
  68 + android:text="Save settings"
  69 + tools:layout_editor_absoluteX="177dp"
  70 + tools:layout_editor_absoluteY="365dp" />
  71 +
  72 + </LinearLayout>
  73 +
  74 +</android.support.constraint.ConstraintLayout>
Android/app/src/main/res/mipmap-hdpi/where_am_i.png 0 → 100644

2 KB

Android/app/src/main/res/mipmap-mdpi/where_am_i.png 0 → 100644

1.3 KB

Android/app/src/main/res/mipmap-xhdpi/where_am_i.png 0 → 100644

2.77 KB

Android/app/src/main/res/mipmap-xxhdpi/where_am_i.png 0 → 100644

4.5 KB

Android/app/src/main/res/mipmap-xxxhdpi/where_am_i.png 0 → 100644

6.66 KB

Android/app/src/main/res/values/colors.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<resources>
  3 + <color name="colorPrimary">#3F51B5</color>
  4 + <color name="colorPrimaryDark">#303F9F</color>
  5 + <color name="colorAccent">#FF4081</color>
  6 +</resources>
Android/app/src/main/res/values/strings.xml 0 → 100644
  1 +<resources>
  2 + <string name="app_name">WhereAmI</string>
  3 +</resources>
Android/app/src/main/res/values/styles.xml 0 → 100644
  1 +<resources>
  2 +
  3 + <!-- Base application theme. -->
  4 + <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  5 + <!-- Customize your theme here. -->
  6 + <item name="colorPrimary">@color/colorPrimary</item>
  7 + <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
  8 + <item name="colorAccent">@color/colorAccent</item>
  9 + </style>
  10 +
  11 +</resources>
Android/app/src/main/where_am-i-web.png 0 → 100644

28.2 KB

Android/app/src/main/where_am_i-web.png 0 → 100644

28.2 KB

Android/build.gradle 0 → 100644
  1 +// Top-level build file where you can add configuration options common to all sub-projects/modules.
  2 +
  3 +buildscript {
  4 + repositories {
  5 + jcenter()
  6 + }
  7 + dependencies {
  8 + classpath 'com.android.tools.build:gradle:2.3.2'
  9 +
  10 + // NOTE: Do not place your application dependencies here; they belong
  11 + // in the individual module build.gradle files
  12 + }
  13 +}
  14 +
  15 +allprojects {
  16 + repositories {
  17 + jcenter()
  18 + }
  19 +}
  20 +
  21 +task clean(type: Delete) {
  22 + delete rootProject.buildDir
  23 +}
  24 +
Android/gradle.properties 0 → 100644
  1 +# Project-wide Gradle settings.
  2 +
  3 +# IDE (e.g. Android Studio) users:
  4 +# Gradle settings configured through the IDE *will override*
  5 +# any settings specified in this file.
  6 +
  7 +# For more details on how to configure your build environment visit
  8 +# http://www.gradle.org/docs/current/userguide/build_environment.html
  9 +
  10 +# Specifies the JVM arguments used for the daemon process.
  11 +# The setting is particularly useful for tweaking memory settings.
  12 +org.gradle.jvmargs=-Xmx1536m
  13 +
  14 +# When configured, Gradle will run in incubating parallel mode.
  15 +# This option should only be used with decoupled projects. More details, visit
  16 +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
  17 +# org.gradle.parallel=true
Android/gradle/wrapper/gradle-wrapper.jar 0 → 100644
No preview for this file type
Android/gradle/wrapper/gradle-wrapper.properties 0 → 100644
  1 +#Thu May 18 11:50:46 CEST 2017
  2 +distributionBase=GRADLE_USER_HOME
  3 +distributionPath=wrapper/dists
  4 +zipStoreBase=GRADLE_USER_HOME
  5 +zipStorePath=wrapper/dists
  6 +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
Android/gradlew 0 → 100644
  1 +#!/usr/bin/env bash
  2 +
  3 +##############################################################################
  4 +##
  5 +## Gradle start up script for UN*X
  6 +##
  7 +##############################################################################
  8 +
  9 +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
  10 +DEFAULT_JVM_OPTS=""
  11 +
  12 +APP_NAME="Gradle"
  13 +APP_BASE_NAME=`basename "$0"`
  14 +
  15 +# Use the maximum available, or set MAX_FD != -1 to use that value.
  16 +MAX_FD="maximum"
  17 +
  18 +warn ( ) {
  19 + echo "$*"
  20 +}
  21 +
  22 +die ( ) {
  23 + echo
  24 + echo "$*"
  25 + echo
  26 + exit 1
  27 +}
  28 +
  29 +# OS specific support (must be 'true' or 'false').
  30 +cygwin=false
  31 +msys=false
  32 +darwin=false
  33 +case "`uname`" in
  34 + CYGWIN* )
  35 + cygwin=true
  36 + ;;
  37 + Darwin* )
  38 + darwin=true
  39 + ;;
  40 + MINGW* )
  41 + msys=true
  42 + ;;
  43 +esac
  44 +
  45 +# Attempt to set APP_HOME
  46 +# Resolve links: $0 may be a link
  47 +PRG="$0"
  48 +# Need this for relative symlinks.
  49 +while [ -h "$PRG" ] ; do
  50 + ls=`ls -ld "$PRG"`
  51 + link=`expr "$ls" : '.*-> \(.*\)$'`
  52 + if expr "$link" : '/.*' > /dev/null; then
  53 + PRG="$link"
  54 + else
  55 + PRG=`dirname "$PRG"`"/$link"
  56 + fi
  57 +done
  58 +SAVED="`pwd`"
  59 +cd "`dirname \"$PRG\"`/" >/dev/null
  60 +APP_HOME="`pwd -P`"
  61 +cd "$SAVED" >/dev/null
  62 +
  63 +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
  64 +
  65 +# Determine the Java command to use to start the JVM.
  66 +if [ -n "$JAVA_HOME" ] ; then
  67 + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
  68 + # IBM's JDK on AIX uses strange locations for the executables
  69 + JAVACMD="$JAVA_HOME/jre/sh/java"
  70 + else
  71 + JAVACMD="$JAVA_HOME/bin/java"
  72 + fi
  73 + if [ ! -x "$JAVACMD" ] ; then
  74 + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
  75 +
  76 +Please set the JAVA_HOME variable in your environment to match the
  77 +location of your Java installation."
  78 + fi
  79 +else
  80 + JAVACMD="java"
  81 + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
  82 +
  83 +Please set the JAVA_HOME variable in your environment to match the
  84 +location of your Java installation."
  85 +fi
  86 +
  87 +# Increase the maximum file descriptors if we can.
  88 +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
  89 + MAX_FD_LIMIT=`ulimit -H -n`
  90 + if [ $? -eq 0 ] ; then
  91 + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
  92 + MAX_FD="$MAX_FD_LIMIT"
  93 + fi
  94 + ulimit -n $MAX_FD
  95 + if [ $? -ne 0 ] ; then
  96 + warn "Could not set maximum file descriptor limit: $MAX_FD"
  97 + fi
  98 + else
  99 + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
  100 + fi
  101 +fi
  102 +
  103 +# For Darwin, add options to specify how the application appears in the dock
  104 +if $darwin; then
  105 + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
  106 +fi
  107 +
  108 +# For Cygwin, switch paths to Windows format before running java
  109 +if $cygwin ; then
  110 + APP_HOME=`cygpath --path --mixed "$APP_HOME"`
  111 + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
  112 + JAVACMD=`cygpath --unix "$JAVACMD"`
  113 +
  114 + # We build the pattern for arguments to be converted via cygpath
  115 + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
  116 + SEP=""
  117 + for dir in $ROOTDIRSRAW ; do
  118 + ROOTDIRS="$ROOTDIRS$SEP$dir"
  119 + SEP="|"
  120 + done
  121 + OURCYGPATTERN="(^($ROOTDIRS))"
  122 + # Add a user-defined pattern to the cygpath arguments
  123 + if [ "$GRADLE_CYGPATTERN" != "" ] ; then
  124 + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
  125 + fi
  126 + # Now convert the arguments - kludge to limit ourselves to /bin/sh
  127 + i=0
  128 + for arg in "$@" ; do
  129 + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
  130 + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
  131 +
  132 + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
  133 + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
  134 + else
  135 + eval `echo args$i`="\"$arg\""
  136 + fi
  137 + i=$((i+1))
  138 + done
  139 + case $i in
  140 + (0) set -- ;;
  141 + (1) set -- "$args0" ;;
  142 + (2) set -- "$args0" "$args1" ;;
  143 + (3) set -- "$args0" "$args1" "$args2" ;;
  144 + (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
  145 + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
  146 + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
  147 + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
  148 + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
  149 + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
  150 + esac
  151 +fi
  152 +
  153 +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
  154 +function splitJvmOpts() {
  155 + JVM_OPTS=("$@")
  156 +}
  157 +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
  158 +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
  159 +
  160 +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
Android/gradlew.bat 0 → 100755
  1 +@if "%DEBUG%" == "" @echo off
  2 +@rem ##########################################################################
  3 +@rem
  4 +@rem Gradle startup script for Windows
  5 +@rem
  6 +@rem ##########################################################################
  7 +
  8 +@rem Set local scope for the variables with windows NT shell
  9 +if "%OS%"=="Windows_NT" setlocal
  10 +
  11 +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
  12 +set DEFAULT_JVM_OPTS=
  13 +
  14 +set DIRNAME=%~dp0
  15 +if "%DIRNAME%" == "" set DIRNAME=.
  16 +set APP_BASE_NAME=%~n0
  17 +set APP_HOME=%DIRNAME%
  18 +
  19 +@rem Find java.exe
  20 +if defined JAVA_HOME goto findJavaFromJavaHome
  21 +
  22 +set JAVA_EXE=java.exe
  23 +%JAVA_EXE% -version >NUL 2>&1
  24 +if "%ERRORLEVEL%" == "0" goto init
  25 +
  26 +echo.
  27 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
  28 +echo.
  29 +echo Please set the JAVA_HOME variable in your environment to match the
  30 +echo location of your Java installation.
  31 +
  32 +goto fail
  33 +
  34 +:findJavaFromJavaHome
  35 +set JAVA_HOME=%JAVA_HOME:"=%
  36 +set JAVA_EXE=%JAVA_HOME%/bin/java.exe
  37 +
  38 +if exist "%JAVA_EXE%" goto init
  39 +
  40 +echo.
  41 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
  42 +echo.
  43 +echo Please set the JAVA_HOME variable in your environment to match the
  44 +echo location of your Java installation.
  45 +
  46 +goto fail
  47 +
  48 +:init
  49 +@rem Get command-line arguments, handling Windowz variants
  50 +
  51 +if not "%OS%" == "Windows_NT" goto win9xME_args
  52 +if "%@eval[2+2]" == "4" goto 4NT_args
  53 +
  54 +:win9xME_args
  55 +@rem Slurp the command line arguments.
  56 +set CMD_LINE_ARGS=
  57 +set _SKIP=2
  58 +
  59 +:win9xME_args_slurp
  60 +if "x%~1" == "x" goto execute
  61 +
  62 +set CMD_LINE_ARGS=%*
  63 +goto execute
  64 +
  65 +:4NT_args
  66 +@rem Get arguments from the 4NT Shell from JP Software
  67 +set CMD_LINE_ARGS=%$
  68 +
  69 +:execute
  70 +@rem Setup the command line
  71 +
  72 +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
  73 +
  74 +@rem Execute Gradle
  75 +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
  76 +
  77 +:end
  78 +@rem End local scope for the variables with windows NT shell
  79 +if "%ERRORLEVEL%"=="0" goto mainEnd
  80 +
  81 +:fail
  82 +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
  83 +rem the _cmd.exe /c_ return code!
  84 +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
  85 +exit /b 1
  86 +
  87 +:mainEnd
  88 +if "%OS%"=="Windows_NT" endlocal
  89 +
  90 +:omega
Android/settings.gradle 0 → 100644
  1 +include ':app'