diff --git a/Busiri_Map/.gitignore b/Busiri_Map/.gitignore new file mode 100644 index 0000000..c6cbe56 --- /dev/null +++ b/Busiri_Map/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures diff --git a/Busiri_Map/.idea/.name b/Busiri_Map/.idea/.name new file mode 100644 index 0000000..be2114a --- /dev/null +++ b/Busiri_Map/.idea/.name @@ -0,0 +1 @@ +Busiri_Map \ No newline at end of file diff --git a/Busiri_Map/.idea/compiler.xml b/Busiri_Map/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/Busiri_Map/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Busiri_Map/.idea/copyright/profiles_settings.xml b/Busiri_Map/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/Busiri_Map/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Busiri_Map/.idea/encodings.xml b/Busiri_Map/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/Busiri_Map/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Busiri_Map/.idea/gradle.xml b/Busiri_Map/.idea/gradle.xml new file mode 100644 index 0000000..f2c69fd --- /dev/null +++ b/Busiri_Map/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/Busiri_Map/.idea/misc.xml b/Busiri_Map/.idea/misc.xml new file mode 100644 index 0000000..5d19981 --- /dev/null +++ b/Busiri_Map/.idea/misc.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Busiri_Map/.idea/modules.xml b/Busiri_Map/.idea/modules.xml new file mode 100644 index 0000000..0a8aecf --- /dev/null +++ b/Busiri_Map/.idea/modules.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Busiri_Map/.idea/runConfigurations.xml b/Busiri_Map/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/Busiri_Map/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/Busiri_Map/.idea/vcs.xml b/Busiri_Map/.idea/vcs.xml new file mode 100644 index 0000000..6564d52 --- /dev/null +++ b/Busiri_Map/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Busiri_Map/app/.gitignore b/Busiri_Map/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/Busiri_Map/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/Busiri_Map/app/build.gradle b/Busiri_Map/app/build.gradle new file mode 100644 index 0000000..59ac37c --- /dev/null +++ b/Busiri_Map/app/build.gradle @@ -0,0 +1,27 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 23 + buildToolsVersion "23.0.2" + + defaultConfig { + applicationId "com.example.mochginanjarbusiri.busiri_map" + minSdkVersion 17 + targetSdkVersion 23 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(include: ['*.jar'], dir: 'libs') + testCompile 'junit:junit:4.12' + compile 'com.android.support:appcompat-v7:23.2.0' + compile 'com.google.android.gms:play-services:8.4.0' +} diff --git a/Busiri_Map/app/proguard-rules.pro b/Busiri_Map/app/proguard-rules.pro new file mode 100644 index 0000000..8a2f402 --- /dev/null +++ b/Busiri_Map/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# 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 *; +#} diff --git a/Busiri_Map/app/src/androidTest/java/com/example/mochginanjarbusiri/busiri_map/ApplicationTest.java b/Busiri_Map/app/src/androidTest/java/com/example/mochginanjarbusiri/busiri_map/ApplicationTest.java new file mode 100644 index 0000000..157ca3f --- /dev/null +++ b/Busiri_Map/app/src/androidTest/java/com/example/mochginanjarbusiri/busiri_map/ApplicationTest.java @@ -0,0 +1,13 @@ +package com.example.mochginanjarbusiri.busiri_map; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/Busiri_Map/app/src/debug/res/values/google_maps_api.xml b/Busiri_Map/app/src/debug/res/values/google_maps_api.xml new file mode 100644 index 0000000..eeca3a7 --- /dev/null +++ b/Busiri_Map/app/src/debug/res/values/google_maps_api.xml @@ -0,0 +1,19 @@ + + + AIzaSyCvpJjSrMvl2AO4z2DnwwGWxwAAehPnnrg + diff --git a/Busiri_Map/app/src/main/AndroidManifest.xml b/Busiri_Map/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..945d41e --- /dev/null +++ b/Busiri_Map/app/src/main/AndroidManifest.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Busiri_Map/app/src/main/java/com/example/mochginanjarbusiri/busiri_map/MapsActivity.java b/Busiri_Map/app/src/main/java/com/example/mochginanjarbusiri/busiri_map/MapsActivity.java new file mode 100644 index 0000000..8c94380 --- /dev/null +++ b/Busiri_Map/app/src/main/java/com/example/mochginanjarbusiri/busiri_map/MapsActivity.java @@ -0,0 +1,269 @@ +package com.example.mochginanjarbusiri.busiri_map; + +import android.content.Intent; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.provider.MediaStore; +import android.support.v4.app.FragmentActivity; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.util.Log; +import android.view.View; +import android.view.animation.Animation; +import android.view.animation.RotateAnimation; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.Toast; + +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.OnMapReadyCallback; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.util.Calendar; +import java.util.concurrent.ExecutionException; + +public class MapsActivity extends AppCompatActivity implements SensorEventListener, OnMapReadyCallback { + + private GoogleMap mMap; + private static final int CAMERA_CAPTURE_IMAGE_REQUEST_CODE = 100; + private static final int SUBMIT_REQUEST_CODE = 200; + private double longitude; + private double latitude; + private String token; + private String status; + private String response = ""; + private String nim = "13513041"; + private ImageView icon_compass; + private SensorManager mSensorManager; + private Sensor mAccelerometer; + private Sensor mMagnetometer; + private float[] mLastAccelerometer = new float[3]; + private float[] mLastMagnetometer = new float[3]; + private boolean mLastAccelerometerSet = false; + private boolean mLastMagnetometerSet = false; + private float[] mR = new float[9]; + private float[] mOrientation = new float[3]; + private float mCurrentDegree = 0f; + private Bundle data = new Bundle(); + private boolean harusSend; + String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime()); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_maps); + // Obtain the SupportMapFragment and get notified when the map is ready to be used. + SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); + mapFragment.getMapAsync(this); + + if (savedInstanceState != null) + { + token = savedInstanceState.getString("token"); + latitude = savedInstanceState.getDouble("latitude"); + longitude = savedInstanceState.getDouble("longitude"); + status = savedInstanceState.getString("status"); + harusSend = false; + data = savedInstanceState; + } + else + { + harusSend = true; + } + + + + + ImageButton button_camera = (ImageButton)findViewById(R.id.button_camera); + button_camera.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + + // start the image capture Intent + startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE); + } + }); + + ImageButton button_submit = (ImageButton)findViewById(R.id.button_submit); + button_submit.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getApplicationContext(), SubmitActivity.class); + Bundle bundle = new Bundle(); + bundle.putDouble("longitude", longitude); + bundle.putDouble("latitude", latitude); + bundle.putString("token", token); + intent.putExtras(bundle); + startActivityForResult(intent, SUBMIT_REQUEST_CODE); + } + }); + + icon_compass = (ImageView)findViewById(R.id.icon_compass); + mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); + mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); + mMagnetometer = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); + } + + @Override + public void onSaveInstanceState(Bundle savedInstanceState) { + // Always call the superclass so it can save the view hierarchy state + super.onSaveInstanceState(savedInstanceState); + + // Save data + savedInstanceState.putString("nim", nim); + savedInstanceState.putDouble("longitude", longitude); + savedInstanceState.putDouble("latitude", latitude); + savedInstanceState.putString("token", token); + savedInstanceState.putString("status", status); + } + @Override + protected void onResume() { + super.onResume(); + mSensorManager.registerListener((SensorEventListener) this, mAccelerometer, SensorManager.SENSOR_DELAY_GAME); + mSensorManager.registerListener((SensorEventListener) this, mMagnetometer, SensorManager.SENSOR_DELAY_GAME); + } + + @Override + protected void onPause() { + super.onPause(); + mSensorManager.unregisterListener((SensorEventListener) this, mAccelerometer); + mSensorManager.unregisterListener((SensorEventListener) this, mMagnetometer); + } + + @Override + public void onSensorChanged(SensorEvent event) + { + if (event.sensor == mAccelerometer) { + System.arraycopy(event.values, 0, mLastAccelerometer, 0, event.values.length); + mLastAccelerometerSet = true; + } else if (event.sensor == mMagnetometer) { + System.arraycopy(event.values, 0, mLastMagnetometer, 0, event.values.length); + mLastMagnetometerSet = true; + } + if (mLastAccelerometerSet && mLastMagnetometerSet) { + SensorManager.getRotationMatrix(mR, null, mLastAccelerometer, mLastMagnetometer); + SensorManager.getOrientation(mR, mOrientation); + float azimuthInRadians = mOrientation[0]; + float azimuthInDegress = (float)(Math.toDegrees(azimuthInRadians)+360)%360; + RotateAnimation ra = new RotateAnimation(mCurrentDegree, -azimuthInDegress, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); + ra.setDuration(250); + ra.setFillAfter(true); + icon_compass.startAnimation(ra); + mCurrentDegree = -azimuthInDegress; + } + } + + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy) { + // TODO Auto-generated method stub + + } + /** + * Manipulates the map once available. + * This callback is triggered when the map is ready to be used. + * This is where we can add markers or lines, add listeners or move the camera. In this case, + * we just add a marker near Sydney, Australia. + * If Google Play services is not installed on the device, the user will be prompted to install + * it inside the SupportMapFragment. This method will only be triggered once the user has + * installed Google Play services and returned to the app. + */ + @Override + public void onMapReady(GoogleMap googleMap) { + mMap = googleMap; + if (harusSend) + sendRequest(); + + Marker(data); + } + + + + /** + * Receiving activity result method will be called after closing the camera + * */ + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + // if the result is capturing Image + if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) { + if (resultCode == RESULT_OK) { + //DO Nothing + } else if (resultCode == RESULT_CANCELED) { + // user cancelled Image capture + Toast.makeText(getApplicationContext(), "User cancelled image capture", Toast.LENGTH_SHORT).show(); + } else { + // failed to capture image + Toast.makeText(getApplicationContext(), "Sorry! Failed to capture image", Toast.LENGTH_SHORT).show(); + } + } + else if (requestCode == SUBMIT_REQUEST_CODE) + { + if (resultCode == RESULT_OK) + { + Intent intent = data; + Bundle bundle = intent.getExtras(); + if (bundle != null) + { + token = bundle.getString("token"); + latitude = bundle.getDouble("latitude"); + longitude = bundle.getDouble("longitude"); + } + } + } + } + + public void sendRequest() + { + JSONObject json = new JSONObject(); + + try { + json.put("com", "req_loc"); + json.put("nim", this.nim); + Log.d("Mengirim ke Server", json.toString() + " " + mydate); + this.response = new SocketClient(json.toString(), mMap).execute().get(); + Toast.makeText(getApplicationContext(), "RESPONSE: " + response, Toast.LENGTH_LONG).show(); + JSONObject responseResult = new JSONObject(this.response); + if (responseResult.has("latitude")) + this.latitude = responseResult.getDouble("latitude"); + + if (responseResult.has("longitude")) + this.longitude = responseResult.getDouble("longitude"); + + this.token = responseResult.getString("token"); + this.status = responseResult.getString("status"); + + + data.putString("token", token); + data.putDouble("latitude", latitude); + data.putDouble("longitude", longitude); + + } catch (JSONException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } + } + + public void Marker(Bundle result) + { + double lat = result.getDouble("latitude"); + double longit = result.getDouble("longitude"); + LatLng itb = new LatLng(lat, longit); + mMap.addMarker(new MarkerOptions().position(itb).title("Institut Teknologi Bandung")); + mMap.moveCamera(CameraUpdateFactory.newLatLng(itb)); + mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(itb, 20.0f)); + } + + +} diff --git a/Busiri_Map/app/src/main/java/com/example/mochginanjarbusiri/busiri_map/SocketClient.java b/Busiri_Map/app/src/main/java/com/example/mochginanjarbusiri/busiri_map/SocketClient.java new file mode 100644 index 0000000..085ba07 --- /dev/null +++ b/Busiri_Map/app/src/main/java/com/example/mochginanjarbusiri/busiri_map/SocketClient.java @@ -0,0 +1,123 @@ +package com.example.mochginanjarbusiri.busiri_map; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.net.Socket; +import java.net.UnknownHostException; +import java.util.Calendar; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.AsyncTask; +import android.util.Log; +import android.widget.TextView; + +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; + +import org.json.JSONException; +import org.json.JSONObject; + +/** + * Created by Moch Ginanjar Busiri on 3/24/2016. + */ +public class SocketClient extends AsyncTask { + String address = "167.205.34.132"; + int port = 3111; + String response = ""; + String message; + private boolean success; + GoogleMap mMap; + String token, nim, status; + double latitude, longitude; + String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime()); + + SocketClient(String message, GoogleMap mMap) + { + this.message = message; + this.mMap = mMap; + } + + + protected String doInBackground(String... params) { + Socket socket = null; + BufferedReader in = null; + DataOutputStream dataOutputStream = null; + + try { + // Create a new Socket instance and connect to host + socket = new Socket(address, port); + + //dataOutputStream = new DataOutputStream(socket.getOutputStream()); + in = new BufferedReader(new InputStreamReader(socket.getInputStream())); + + // transfer JSONObject as String to the server + PrintWriter out = new PrintWriter(socket.getOutputStream(), true); + /*dataOutputStream.writeUTF(message);*/ + out.println(message); + + // Thread will wait till server replies + int c; + while((c = in.read()) != -1) + { + response += (char) c; + } + Log.d("Response dari server", response + " " + mydate); + + if (response != null){ + publishProgress(response); + success = true; + } else { + success = false; + } + + } catch (IOException e) { + e.printStackTrace(); + success = false; + } finally { + + // close socket + if (socket != null) { + try { + socket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + // close input stream + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + // close output stream + if (dataOutputStream != null) { + try { + dataOutputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return response; + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + } +} \ No newline at end of file diff --git a/Busiri_Map/app/src/main/java/com/example/mochginanjarbusiri/busiri_map/SubmitActivity.java b/Busiri_Map/app/src/main/java/com/example/mochginanjarbusiri/busiri_map/SubmitActivity.java new file mode 100644 index 0000000..d8742d1 --- /dev/null +++ b/Busiri_Map/app/src/main/java/com/example/mochginanjarbusiri/busiri_map/SubmitActivity.java @@ -0,0 +1,138 @@ +package com.example.mochginanjarbusiri.busiri_map; + +import android.app.Activity; +import android.content.Intent; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.Toast; + +import com.google.android.gms.maps.GoogleMap; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.concurrent.ExecutionException; + +public class SubmitActivity extends AppCompatActivity { + private String[] states; + private Spinner spinner; + private GoogleMap mMap; + private double latitude, longitude; + private String token; + private String response = ""; + private final String nim = "13513041"; + private String location; + String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime()); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_submit); + + spinner = (Spinner) findViewById(R.id.location_spinner); + + List locations = new ArrayList(); + locations.add("gku_barat"); + locations.add("gku_timur"); + locations.add("intel"); + locations.add("cc_barat"); + locations.add("cc_timur"); + locations.add("dpr"); + locations.add("oktagon"); + locations.add("perpustakaan"); + locations.add("pau"); + locations.add("kubus"); + + ArrayAdapter dataAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, locations); + dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + spinner.setAdapter(dataAdapter); + spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + String selected = spinner.getSelectedItem().toString(); + Toast.makeText(SubmitActivity.this, selected, Toast.LENGTH_SHORT).show(); + location = selected; + } + + @Override + public void onNothingSelected(AdapterView parent) { + + } + }); + + TextView tv = (TextView)findViewById(R.id.textview); + + Button button_submit = (Button)findViewById(R.id.button_submit); + button_submit.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + sendAnswer(); + //finish(); + } + }); + Intent intent = getIntent(); + Bundle bundle = intent.getExtras(); + if (bundle != null) + { + this.latitude = bundle.getDouble("latitude"); + this.longitude = bundle.getDouble("longitude"); + this.token = bundle.getString("token"); + } + } + + public void sendAnswer() + { + JSONObject answer = new JSONObject(); + try { + answer.put("com", "answer"); + answer.put("nim", this.nim); + answer.put("answer", this.location); + answer.put("longitude", this.longitude); + answer.put("latitude", this.latitude); + answer.put("token", this.token); + Log.d("Mengirim ke Server", answer.toString() + " " + mydate); + + this.response = new SocketClient(answer.toString(), mMap).execute().get(); + Toast.makeText(getApplicationContext(), "RESPONSE: " + response, Toast.LENGTH_LONG).show(); + JSONObject json = new JSONObject(response); + + Intent intent = new Intent(); + Bundle bundle = new Bundle(); + bundle.putString("token", json.getString("token")); + + if (json.getString("status").equals("ok")) + { + bundle.putDouble("latitude", json.getDouble("latitude")); + bundle.putDouble("longitude", json.getDouble("longitude")); + Toast.makeText(getApplicationContext(), "Correct", Toast.LENGTH_LONG).show(); + } + else if (json.getString("status").equals("wrong_answer")) + { + Toast.makeText(getApplicationContext(), "Wrong Answer", Toast.LENGTH_LONG).show(); + } + else if (json.getString("status").equals("finish")) { + Toast.makeText(getApplicationContext(), "Finish", Toast.LENGTH_LONG).show(); + } + intent.putExtras(bundle); + setResult(Activity.RESULT_OK, intent); + finish(); + } catch (JSONException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } + } +} diff --git a/Busiri_Map/app/src/main/res/drawable-hdpi/ic_action_name.png b/Busiri_Map/app/src/main/res/drawable-hdpi/ic_action_name.png new file mode 100644 index 0000000..569e307 Binary files /dev/null and b/Busiri_Map/app/src/main/res/drawable-hdpi/ic_action_name.png differ diff --git a/Busiri_Map/app/src/main/res/drawable-hdpi/icon_camera.png b/Busiri_Map/app/src/main/res/drawable-hdpi/icon_camera.png new file mode 100644 index 0000000..76195bd Binary files /dev/null and b/Busiri_Map/app/src/main/res/drawable-hdpi/icon_camera.png differ diff --git a/Busiri_Map/app/src/main/res/drawable-hdpi/icon_compass.png b/Busiri_Map/app/src/main/res/drawable-hdpi/icon_compass.png new file mode 100644 index 0000000..bab5b77 Binary files /dev/null and b/Busiri_Map/app/src/main/res/drawable-hdpi/icon_compass.png differ diff --git a/Busiri_Map/app/src/main/res/drawable-hdpi/icon_submit.png b/Busiri_Map/app/src/main/res/drawable-hdpi/icon_submit.png new file mode 100644 index 0000000..78a4a62 Binary files /dev/null and b/Busiri_Map/app/src/main/res/drawable-hdpi/icon_submit.png differ diff --git a/Busiri_Map/app/src/main/res/drawable-mdpi/ic_action_name.png b/Busiri_Map/app/src/main/res/drawable-mdpi/ic_action_name.png new file mode 100644 index 0000000..69076da Binary files /dev/null and b/Busiri_Map/app/src/main/res/drawable-mdpi/ic_action_name.png differ diff --git a/Busiri_Map/app/src/main/res/drawable-xhdpi/ic_action_name.png b/Busiri_Map/app/src/main/res/drawable-xhdpi/ic_action_name.png new file mode 100644 index 0000000..2cc0cf1 Binary files /dev/null and b/Busiri_Map/app/src/main/res/drawable-xhdpi/ic_action_name.png differ diff --git a/Busiri_Map/app/src/main/res/drawable-xxhdpi/ic_action_name.png b/Busiri_Map/app/src/main/res/drawable-xxhdpi/ic_action_name.png new file mode 100644 index 0000000..ccfa5b8 Binary files /dev/null and b/Busiri_Map/app/src/main/res/drawable-xxhdpi/ic_action_name.png differ diff --git a/Busiri_Map/app/src/main/res/layout-land/activity_maps.xml b/Busiri_Map/app/src/main/res/layout-land/activity_maps.xml new file mode 100644 index 0000000..1e61b9b --- /dev/null +++ b/Busiri_Map/app/src/main/res/layout-land/activity_maps.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Busiri_Map/app/src/main/res/layout/activity_maps.xml b/Busiri_Map/app/src/main/res/layout/activity_maps.xml new file mode 100644 index 0000000..2e9cdfc --- /dev/null +++ b/Busiri_Map/app/src/main/res/layout/activity_maps.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + diff --git a/Busiri_Map/app/src/main/res/layout/activity_submit.xml b/Busiri_Map/app/src/main/res/layout/activity_submit.xml new file mode 100644 index 0000000..bf1dc4f --- /dev/null +++ b/Busiri_Map/app/src/main/res/layout/activity_submit.xml @@ -0,0 +1,37 @@ + + + + + + + +