diff --git a/app/src/main/java/com/example/homin/test1/CustomInfoWindowAdapter.java b/app/src/main/java/com/example/homin/test1/CustomInfoWindowAdapter.java index cdd08f0..f5a2ca6 100644 --- a/app/src/main/java/com/example/homin/test1/CustomInfoWindowAdapter.java +++ b/app/src/main/java/com/example/homin/test1/CustomInfoWindowAdapter.java @@ -1,6 +1,7 @@ package com.example.homin.test1; import android.content.Context; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; @@ -21,26 +22,40 @@ public CustomInfoWindowAdapter(Context context){ private void rendowWindowText(Marker marker, View view){ String title = marker.getTitle(); TextView tvTitle = (TextView) view.findViewById(R.id.title); - + if(title == null){ + return; + } if(!title.equals("")){ tvTitle.setText(title); } String snippet = marker.getSnippet(); TextView tvSnippet = (TextView)view.findViewById(R.id.snippet); - + if(snippet == null){ + return; + } if(!snippet.equals("")){ tvSnippet.setText(snippet); } } @Override public View getInfoWindow(Marker marker) { + if((DaoImple.getInstance().getContact().getUserId()).equals(marker.getTitle())){ + return null; + } + rendowWindowText(marker, mWindow); + return mWindow; } @Override public View getInfoContents(Marker marker) { + + if((DaoImple.getInstance().getContact().getUserId()).equals(marker.getTitle())){ + + return null; + } rendowWindowText(marker,mWindow); return mWindow; } diff --git a/app/src/main/java/com/example/homin/test1/ItemPerson.java b/app/src/main/java/com/example/homin/test1/ItemPerson.java index 4ea3961..5c781f9 100644 --- a/app/src/main/java/com/example/homin/test1/ItemPerson.java +++ b/app/src/main/java/com/example/homin/test1/ItemPerson.java @@ -24,6 +24,19 @@ public ItemPerson(double lat, double lng, String id,String name,String image) { } + public void setUserId(String userId) { + this.userId = userId; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public void setImage(String image) { + this.image = image; + } + + public String getTitle() { return userId; } diff --git a/app/src/main/java/com/example/homin/test1/MapsActivity.java b/app/src/main/java/com/example/homin/test1/MapsActivity.java index db006f0..652d8a9 100644 --- a/app/src/main/java/com/example/homin/test1/MapsActivity.java +++ b/app/src/main/java/com/example/homin/test1/MapsActivity.java @@ -130,7 +130,7 @@ public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { private BottomSheetBehavior bottomSheetBehavior; private View bottomview; private Menu mMenu; - private FloatingActionButton actionButton; + private Button actionButton; private DatabaseReference reference; private List myFriendList; private List memoFriendList; @@ -190,7 +190,7 @@ public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { private ItemPerson targetIdMarker; private View shapeView; private FloatingActionButton writeMemoButton; - private GroundOverlay arrow; + private Marker arrow; private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @@ -229,7 +229,6 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - Log.i("dd4434", "MapsActivity onCreate"); setContentView(R.layout.activity_maps); blutoothBtn = findViewById(R.id.button_blueTooth); @@ -265,8 +264,8 @@ public void onClick(View v) { public void onClick(View view) { writeMyLocation(); - Intent intent = new Intent(MapsActivity.this,WriteActivity.class); - startActivityForResult(intent,RESULT_CODE); + Intent intent = new Intent(MapsActivity.this, WriteActivity.class); + startActivityForResult(intent, RESULT_CODE); } }); @@ -276,7 +275,7 @@ public void onClick(View view) { mapFragment.getMapAsync(this); BottomNavigationView navigationView = findViewById(R.id.navigation); navigationView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); - actionButton = findViewById(R.id.floatingActionButton); + actionButton = findViewById(R.id.AddIndicator); FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); @@ -344,10 +343,12 @@ private void moveCamera(LatLng latLng, float zoom, PlaceInfo placeInfo) { MarkerOptions options = new MarkerOptions().position(latLng).title(placeInfo.getName()).snippet(snippet); if (mMarker != null) { mMarker.remove(); + mMarker = null; } if (targetMarker != null) { clusterManager.removeItem(targetMarker); + targetMarker = null; } targetMarker = new ItemDestination(latLng, placeInfo.getName(), snippet); clusterManager.addItem(targetMarker); @@ -492,7 +493,6 @@ private void geoLocate() { @Override public void onMapReady(final GoogleMap googleMap) { init(); - Log.i("dd4434", "MapsActivity onMapReady"); email = DaoImple.getInstance().getLoginEmail(); mMap = googleMap; mMap.setInfoWindowAdapter(new CustomInfoWindowAdapter(com.example.homin.test1.MapsActivity.this)); @@ -501,13 +501,11 @@ public void onMapReady(final GoogleMap googleMap) { if (clusterManager == null) { - Log.i("dd4432", "MapsActivity:" + MapsActivity.this); - clusterManager = new ClusterManager<>(com.example.homin.test1.MapsActivity.this, mMap); clusterManager.setRenderer(new PersonItemRenderer(com.example.homin.test1.MapsActivity.this, mMap, clusterManager)); clusterManager.setAlgorithm(new CustomAlgorithm()); mMap.setOnCameraIdleListener(clusterManager); - mMap.setOnMarkerClickListener(clusterManager); +// mMap.setOnMarkerClickListener(clusterManager); mMap.setOnInfoWindowClickListener(clusterManager); } @@ -563,33 +561,7 @@ public void onClick(View v) { Snackbar.make(rootView, "목적지로 설정하시겠습니까?", 5000).setAction("네", new View.OnClickListener() { @Override public void onClick(View v) { -// final String key = DaoImple.getInstance().getFirebaseKey(id); -// reference.child("contact").child(key).addChildEventListener(new ChildEventListener() { -// @Override -// public void onChildAdded(DataSnapshot dataSnapshot, String s) { -// dataSnapshot.child("contact").child(key).getValue() -// } -// -// @Override -// public void onChildChanged(DataSnapshot dataSnapshot, String s) { -// -// } -// -// @Override -// public void onChildRemoved(DataSnapshot dataSnapshot) { -// -// } -// -// @Override -// public void onChildMoved(DataSnapshot dataSnapshot, String s) { -// -// } -// -// @Override -// public void onCancelled(DatabaseError databaseError) { -// -// } -// }) + distanceIndicator.setText("위치 확인중"); if (mMarker != null) { mMarker.remove(); @@ -606,6 +578,7 @@ public void onClick(View v) { } if (mMarker != null) { mMarker.remove(); + mMarker = null; } destinationClicked = false; @@ -689,11 +662,13 @@ public void onClick(View v) { MarkerOptions options = new MarkerOptions().position(latLng).title("목적지").snippet("위도:" + latLng.latitude + "/n" + "경도: " + latLng.longitude); if (mMarker != null) { mMarker.remove(); + mMarker = null; } if (targetMarker != null) { clusterManager.removeItem(targetMarker); clusterManager.cluster(); + targetMarker = null; } mMarker = mMap.addMarker(options); setDestination(); @@ -875,6 +850,7 @@ public void onChildAdded(DataSnapshot dataSnapshot, String s) { Log.i("asdqwe", "3 " + contact.getUserId()); Log.i("asdqwe", "체인지 : 위치 바뀜"); // 서로 다른 Location이 저장되 있다면, clusterManager에 저장된 마커 삭제 + clusterManager.removeItem(ip); personList.remove(contact.getUserId()); // 다시 마커 생성 후, clusterManager과 personList에 저장 @@ -1046,7 +1022,7 @@ public void onChildAdded(DataSnapshot dataSnapshot, String s) { DaoImple.getInstance().setContact(contact); List lastLocation = contact.getUserLocation(); LatLng latLng = new LatLng(lastLocation.get(0), lastLocation.get(1)); - if(myLatLng == null) { + if (myLatLng == null) { myLatLng = latLng; } } @@ -1093,8 +1069,8 @@ public void onChildChanged(DataSnapshot dataSnapshot, String s) { realFriendList.add(DaoImple.getInstance().getLoginEmail()); clusterManager.clearItems(); - if(!memoAddCheck) { - Log.i("dd4432","메모 반복문 들어감"); + if (!memoAddCheck) { + Log.i("dd4432", "메모 반복문 들어감"); for (int a = 0; a < realFriendList.size(); a++) { // 친구 목록으로 메모 가져오기 String key = DaoImple.getInstance().getFirebaseKey(realFriendList.get(a)); friendMemeList(key); // 친구들 메모 가져오는 메소드 @@ -1438,22 +1414,22 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { case 400: boolean check = data.getBooleanExtra("check", false); - if (check) { - actionButton.setImageResource(R.drawable.ddww); - } else { - actionButton.setImageResource(R.drawable.ic_notifications_black_24dp); - } +// if (check) { +// actionButton.setImageResource(R.drawable.ddww); +// +// } else { +// actionButton.setImageResource(R.drawable.ic_notifications_black_24dp); +// } break; case REQUEST_ENABLE_BT: - if(resultCode == RESULT_OK){ + if (resultCode == RESULT_OK) { // 블루투스가 활성 상태로 변경됨 selectDevice(); - } - else if(resultCode == RESULT_CANCELED){ + } else if (resultCode == RESULT_CANCELED) { // 블루투스가 비활성 상태임 - Toast.makeText(context, "블루투스가 비활성화 상태 입니다.", Toast.LENGTH_SHORT).show(); // 어플리케이션 종료 + Toast.makeText(context, "블루투스가 비활성화 상태 입니다.", Toast.LENGTH_SHORT).show(); // 어플리케이션 종료 } break; @@ -1461,25 +1437,26 @@ else if(resultCode == RESULT_CANCELED){ } // end if - if(requestCode == 5004 && resultCode==1){ - final LatLng latLng = (LatLng)data.getParcelableExtra("LatLng"); + if (requestCode == 5004 && resultCode == 1) { + final LatLng latLng = (LatLng) data.getParcelableExtra("LatLng"); - distanceIndicator.setText(""); - destinationClicked = true; - MarkerOptions options = new MarkerOptions().position(latLng).title("목적지").snippet("위도:" + latLng.latitude + "/n" + "경도: " + latLng.longitude); - if (mMarker != null) { - mMarker.remove(); - } + distanceIndicator.setText(""); + destinationClicked = true; + MarkerOptions options = new MarkerOptions().position(latLng).title("목적지").snippet("위도:" + latLng.latitude + "/n" + "경도: " + latLng.longitude); + if (mMarker != null) { + mMarker.remove(); + } - if (targetMarker != null) { - clusterManager.removeItem(targetMarker); - clusterManager.cluster(); - } - mMarker = mMap.addMarker(options); - setDestination(); + if (targetMarker != null) { + clusterManager.removeItem(targetMarker); + clusterManager.cluster(); + targetMarker = null; + } + mMarker = mMap.addMarker(options); + setDestination(); - bottomSheetBehavior.setState(bottomSheetBehavior.STATE_COLLAPSED); - mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 16)); + bottomSheetBehavior.setState(bottomSheetBehavior.STATE_COLLAPSED); + mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 16)); } } // onActivityResult() @@ -1488,7 +1465,7 @@ else if(resultCode == RESULT_CANCELED){ @Override public void onessaySetlected(int position) { Intent intent = EssayDetailActivity.newIntent(this, position); - startActivityForResult(intent,5004); + startActivityForResult(intent, 5004); } @@ -1498,48 +1475,51 @@ public void onBackPressed() { if (bottomSheetBehavior.getState() == 3) { bottomSheetBehavior.setState(bottomSheetBehavior.STATE_COLLAPSED); pressedTime = 0; - } else if((myMarker != null && mMarker != null)|| (myMarker != null && targetMarker != null)||(myMarker != null && targetId != null && targetIdMarker != null)){ + } else if ((myMarker != null && mMarker != null) || (myMarker != null && targetMarker != null) || (myMarker != null && targetId != null)) { AlertDialog.Builder dialog = new AlertDialog.Builder(MapsActivity.this); - dialog.setTitle( "목적지 취소여부" ) + dialog.setTitle("목적지 취소여부") .setMessage("선택된 목적지를 취소하시겠습니까?") .setPositiveButton("예", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialoginterface, int i) { - if(myMarker != null && mMarker != null){ - shapeView.setBackground(null); - distanceIndicator.setVisibility(View.GONE); - Toast.makeText(context, "목적지를 취소합니다", Toast.LENGTH_SHORT).show(); - destinationClicked = false; - - mMarker.remove(); - }else if(myMarker != null && targetMarker != null){ - shapeView.setBackground(null); - distanceIndicator.setVisibility(View.GONE); - distanceIndicator.setText(""); - Toast.makeText(context, "목적지를 취소합니다", Toast.LENGTH_SHORT).show(); - destinationClicked = false; - clusterManager.removeItem(targetMarker); - clusterManager.cluster(); - - }else if(myMarker != null && targetId != null && targetIdMarker != null){ - shapeView.setBackground(null); - distanceIndicator.setVisibility(View.GONE); - distanceIndicator.setText(""); - Toast.makeText(context, "목적지를 취소합니다", Toast.LENGTH_SHORT).show(); - destinationClicked = false; - targetId = null; - targetIdMarker = null; - - } + arrow.remove(); + arrow = null; + if (myMarker != null && mMarker != null) { + shapeView.setBackground(null); + distanceIndicator.setVisibility(View.GONE); + Toast.makeText(context, "목적지를 취소합니다", Toast.LENGTH_SHORT).show(); + destinationClicked = false; + + mMarker.remove(); + mMarker = null; + } else if (myMarker != null && targetMarker != null) { + shapeView.setBackground(null); + distanceIndicator.setVisibility(View.GONE); + distanceIndicator.setText(""); + Toast.makeText(context, "목적지를 취소합니다", Toast.LENGTH_SHORT).show(); + destinationClicked = false; + clusterManager.removeItem(targetMarker); + clusterManager.cluster(); + targetMarker = null; + + } else if (myMarker != null && targetId != null) { + shapeView.setBackground(null); + distanceIndicator.setVisibility(View.GONE); + distanceIndicator.setText(""); + Toast.makeText(context, "목적지를 취소합니다", Toast.LENGTH_SHORT).show(); + destinationClicked = false; + targetId = null; + targetIdMarker = null; + + } } }).setNegativeButton("아니요", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialoginterface, int i) { dialoginterface.cancel(); } }); - AlertDialog b = dialog.create(); - b.show(); + dialog.create().show(); } else { // 백키를 두번 눌렀을때, 그 간격이 2초 이하면 어플 종료 @@ -1563,18 +1543,16 @@ public void onClick(DialogInterface dialoginterface, int i) { } - - @Override protected void onDestroy() { reference.child("Contact").child(DaoImple.getInstance().getKey()).child("loginCheck").setValue(false); - try{ + try { // mWorkerThread.interrupt(); // 데이터 수신 쓰레드 종료 // mInputStream.close(); mOutputStream.close(); mSocket.close(); - }catch(Exception e){ + } catch (Exception e) { e.printStackTrace(); } super.onDestroy(); @@ -1675,26 +1653,34 @@ private void cropImage() { //클릭을 했으면 작동 백키를 눌렀으면 취소 // 검색한 주소, 내가 임의로 설정한 위치, 내글에 대한 목적지 설정 private void setDestination() { - Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.arrow2); - Bitmap bitmap1 = PersonItemRenderer.getCircleBitmap(bitmap); + Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.arrow_final); +// Bitmap bitmap1 = PersonItemRenderer.getCircleBitmap(bitmap); double degree = 0; - if(mMarker!= null){ - degree = SphericalUtil.computeHeading(myMarker.getPosition(),mMarker.getPosition()); - }else if(targetMarker!= null){ - degree = SphericalUtil.computeHeading(myMarker.getPosition(),targetMarker.getPosition()); - }else if(targetIdMarker != null){ - degree = SphericalUtil.computeHeading(myMarker.getPosition(),targetIdMarker.getPosition()); + if (mMarker != null) { + degree = SphericalUtil.computeHeading(myMarker.getPosition(), mMarker.getPosition()); + } else if (targetMarker != null) { + degree = SphericalUtil.computeHeading(myMarker.getPosition(), targetMarker.getPosition()); + } else if (targetIdMarker != null) { + degree = SphericalUtil.computeHeading(myMarker.getPosition(), targetIdMarker.getPosition()); } - if(arrow!= null){ + if (arrow != null) { arrow.remove(); } - GroundOverlayOptions groundOverlayOptions = new GroundOverlayOptions().image(BitmapDescriptorFactory.fromResource(R.drawable.arrow2)) - .position(myMarker.getPosition(),300,300).bearing((float)degree -90); - arrow = mMap.addGroundOverlay(groundOverlayOptions); + MarkerOptions markerOptions = new MarkerOptions(); + markerOptions.rotation((float) degree - 90.0f); + markerOptions.icon(BitmapDescriptorFactory.fromBitmap(bitmap)); + + markerOptions.position(myMarker.getPosition()); + markerOptions.anchor(0.0f, 0.5f); + arrow = mMap.addMarker(markerOptions); + if(targetMarker!= null){ + clusterManager.addItem(targetMarker); + clusterManager.cluster(); + } shapeView.setBackground(getDrawable(R.drawable.shape)); distanceIndicator.setVisibility(View.VISIBLE); // Log.i("KSJ", myMarker.getPosition() + "||"+ mMarker.getPosition() + ""); @@ -1703,31 +1689,39 @@ private void setDestination() { String stringDistance = Double.toString(distance); int index = stringDistance.indexOf("."); String m = stringDistance.substring(0, index); - String cm = stringDistance.substring(index+1,index+3); - Log.i("KSJ", "distance: " + distance); - distanceIndicator.setText("목적지까지의 거리: " +m + "M " + cm + "CM"); + String cm = stringDistance.substring(index + 1, index + 3); + + distanceIndicator.setText("목적지까지의 거리: " + m + "M " + cm + "CM"); if (distance < 100) { + if(arrow!= null){ + arrow.remove(); + arrow = null; + } shapeView.setBackground(null); distanceIndicator.setVisibility(View.GONE); Toast.makeText(context, "도착하였습니다", Toast.LENGTH_SHORT).show(); destinationClicked = false; mMarker.remove(); + mMarker = null; } } else if (myMarker != null && targetMarker != null) { Log.i("KSJ", myMarker.getPosition() + "||" + targetMarker.getPosition() + "target?"); double distance = SphericalUtil.computeDistanceBetween(myMarker.getPosition(), targetMarker.getPosition()); - Log.i("11qq","marKer"+targetIdMarker+""); String stringDistance = Double.toString(distance); int index = stringDistance.indexOf("."); String m = stringDistance.substring(0, index); - String cm = stringDistance.substring(index+1,index+3); + String cm = stringDistance.substring(index + 1, index + 3); Log.i("KSJ", "distance: " + distance); - distanceIndicator.setText("목적지까지의 거리: " +m + "M " + cm + "CM"); + distanceIndicator.setText("목적지까지의 거리: " + m + "M " + cm + "CM"); if (distance < 100) { + if(arrow!= null){ + arrow.remove(); + arrow = null; + } shapeView.setBackground(null); distanceIndicator.setVisibility(View.GONE); distanceIndicator.setText(""); @@ -1736,19 +1730,25 @@ private void setDestination() { clusterManager.removeItem(targetMarker); clusterManager.cluster(); + targetMarker = null; } } else if (myMarker != null && targetId != null && targetIdMarker != null) { + double distance = SphericalUtil.computeDistanceBetween(myMarker.getPosition(), targetIdMarker.getPosition()); String stringDistance = Double.toString(distance); int index = stringDistance.indexOf("."); String m = stringDistance.substring(0, index); - Toast.makeText(context, index + "", Toast.LENGTH_SHORT).show(); - String cm = stringDistance.substring(index+1,index+3); + String cm = stringDistance.substring(index + 1, index + 3); Log.i("KSJ", "distance: " + distance); - distanceIndicator.setText("목적지까지의 거리: " +m + "M " + cm + "CM"); + distanceIndicator.setText("목적지까지의 거리: " + m + "M " + cm + "CM"); + if (distance < 100) { + if(arrow!= null){ + arrow.remove(); + arrow = null; + } shapeView.setBackground(null); distanceIndicator.setVisibility(View.GONE); distanceIndicator.setText(""); @@ -1761,8 +1761,6 @@ private void setDestination() { } - - // 블루투스 용 메소드와 멤버 변수 private static final String TAG = "bluetooth.led"; @@ -1778,14 +1776,12 @@ private void setDestination() { private OutputStream mOutputStream = null; - - void checkBluetooth(){ + void checkBluetooth() { mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); - if(mBluetoothAdapter == null){ + if (mBluetoothAdapter == null) { // 장치가 블루투스를 지원하지 않는 경우 - Toast.makeText(context, "블루투스를 지원하지 않습니다.", Toast.LENGTH_SHORT).show(); // 어플리케이션 종료 - } - else { + Toast.makeText(context, "블루투스를 지원하지 않습니다.", Toast.LENGTH_SHORT).show(); // 어플리케이션 종료 + } else { // 장치가 블루투스를 지원하는 경우 if (!mBluetoothAdapter.isEnabled()) { // 블루투스를 지원하지만 비활성 상태인 경우 @@ -1793,8 +1789,7 @@ void checkBluetooth(){ Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); - } - else { + } else { // 블루투스를 지원하며 활성 상태인 경우 // 페어링 된 기기 목록을 보여주고 연결할 장치를 선택 selectDevice(); @@ -1802,13 +1797,13 @@ void checkBluetooth(){ } } - void selectDevice(){ + void selectDevice() { mDevices = mBluetoothAdapter.getBondedDevices(); mPairedDeviceCount = mDevices.size(); - if(mPairedDeviceCount == 0){ + if (mPairedDeviceCount == 0) { // 페어링 된 장치가 없는 경우 - Toast.makeText(context, "페어링 된 장치가 없습니다.", Toast.LENGTH_SHORT).show(); // 어플리케이션 종료 + Toast.makeText(context, "페어링 된 장치가 없습니다.", Toast.LENGTH_SHORT).show(); // 어플리케이션 종료 } AlertDialog.Builder builder = new AlertDialog.Builder(this); @@ -1819,18 +1814,17 @@ void selectDevice(){ for (BluetoothDevice device : mDevices) { listItems.add(device.getName()); } - listItems.add("취소"); // 취소 항목 추가 + listItems.add("취소"); // 취소 항목 추가 final CharSequence[] items = listItems.toArray(new CharSequence[listItems.size()]); - builder.setItems(items, new DialogInterface.OnClickListener(){ - public void onClick(DialogInterface dialog, int item){ - if(item == mPairedDeviceCount){ + builder.setItems(items, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int item) { + if (item == mPairedDeviceCount) { // 연결할 장치를 선택하지 않고 ‘취소’를 누른 경우 finish(); - } - else{ + } else { // 연결할 장치를 선택한 경우 // 선택한 장치와 연결을 시도함 connectToSelectedDevice(items[item].toString()); @@ -1838,27 +1832,27 @@ public void onClick(DialogInterface dialog, int item){ } }); - builder.setCancelable(false); // 뒤로 가기 버튼 사용 금지 + builder.setCancelable(false); // 뒤로 가기 버튼 사용 금지 AlertDialog alert = builder.create(); alert.show(); } - void sendData(String msg){ - msg += STRING_DELIMITER; // 문자열 종료 표시 - try{ - mOutputStream.write(msg.getBytes()); // 문자열 전송 - }catch(Exception e){ + void sendData(String msg) { + msg += STRING_DELIMITER; // 문자열 종료 표시 + try { + mOutputStream.write(msg.getBytes()); // 문자열 전송 + } catch (Exception e) { e.printStackTrace(); // 문자열 전송 도중 오류가 발생한 경우 - Toast.makeText(context, "블루투스 데이터 전송 오류 발생", Toast.LENGTH_SHORT).show(); // 어플리케이션 종료 + Toast.makeText(context, "블루투스 데이터 전송 오류 발생", Toast.LENGTH_SHORT).show(); // 어플리케이션 종료 } } - BluetoothDevice getDeviceFromBondedList(String name){ + BluetoothDevice getDeviceFromBondedList(String name) { BluetoothDevice selectedDevice = null; for (BluetoothDevice device : mDevices) { - if(name.equals(device.getName())){ + if (name.equals(device.getName())) { selectedDevice = device; break; } @@ -1867,11 +1861,11 @@ BluetoothDevice getDeviceFromBondedList(String name){ return selectedDevice; } - void connectToSelectedDevice(String selectedDeviceName){ + void connectToSelectedDevice(String selectedDeviceName) { mRemoteDevice = getDeviceFromBondedList(selectedDeviceName); UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); - try{ + try { // 소켓 생성 mSocket = mRemoteDevice.createRfcommSocketToServiceRecord(uuid); // RFCOMM 채널을 통한 연결 @@ -1883,10 +1877,10 @@ void connectToSelectedDevice(String selectedDeviceName){ // 데이터 수신 준비 // beginListenForData(); - }catch(Exception e){ + } catch (Exception e) { e.printStackTrace(); // 블루투스 연결 중 오류 발생 - Toast.makeText(context, "블루투스 연결 중 오류 발생", Toast.LENGTH_SHORT).show(); // 어플리케이션 종료 + Toast.makeText(context, "블루투스 연결 중 오류 발생", Toast.LENGTH_SHORT).show(); // 어플리케이션 종료 } } @@ -1911,4 +1905,7 @@ public boolean onOptionsItemSelected(MenuItem item) { public void blueToothOnclick(View view) { checkBluetooth(); } + + } + diff --git a/app/src/main/java/com/example/homin/test1/PersonItemRenderer.java b/app/src/main/java/com/example/homin/test1/PersonItemRenderer.java index dc86805..23f9bc5 100644 --- a/app/src/main/java/com/example/homin/test1/PersonItemRenderer.java +++ b/app/src/main/java/com/example/homin/test1/PersonItemRenderer.java @@ -59,14 +59,21 @@ private static Activity getActivity(Context context) { } @Override - protected void onClusterItemRendered(final ClusterItem clusterItem, final Marker marker) { + protected void onClusterRendered(Cluster cluster, Marker marker) { + super.onClusterRendered(cluster, marker); + marker.setAnchor(0.5f,0.5f); - Log.i("dd4432", "context: " + context); + } + @Override + protected void onClusterItemRendered(final ClusterItem clusterItem, final Marker marker) { + + marker.setAnchor(0.5f,0.5f); Context get = getActivity(context); if (clusterItem instanceof ItemPerson) { if (get != null) { Glide.with(get).load(((ItemPerson) clusterItem).getImage()).asBitmap().fitCenter().into(new SimpleTarget() { + @Override public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { Bitmap roundBitmap = getCircleBitmap(resource); @@ -107,6 +114,7 @@ public PersonItemRenderer(Context context, GoogleMap map, ClusterManager - + \ No newline at end of file diff --git a/app/src/main/res/drawable/white_border.xml b/app/src/main/res/drawable/white_border.xml index 3091fd7..2577461 100644 --- a/app/src/main/res/drawable/white_border.xml +++ b/app/src/main/res/drawable/white_border.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_maps.xml b/app/src/main/res/layout/activity_maps.xml index a53c08d..5dd0169 100644 --- a/app/src/main/res/layout/activity_maps.xml +++ b/app/src/main/res/layout/activity_maps.xml @@ -29,11 +29,11 @@ +