diff --git a/app/src/main/java/org/ntlab/amaryllis/client/entities/Voicememo.java b/app/src/main/java/org/ntlab/amaryllis/client/entities/Voicememo.java index 84c46a3..edaa808 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/entities/Voicememo.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/entities/Voicememo.java @@ -25,6 +25,9 @@ private Integer favos; private ArrayList categories; private HashMap commentMap = new HashMap<>(); + + public Voicememo() {} + public Voicememo(String vid, String uid, Integer time, String url, double latitude, double longitude, String title, String summary) { Calendar upload = Calendar.getInstance(); setVid(vid); @@ -127,6 +130,11 @@ private void setFavos(){ favos = favolist.size(); } + + public void setCategory(ArrayList categories) { + this.categories = categories; + } + public ArrayList getCategory(){ return categories; } public void addCategory(String categoryId){ for (String a : categories) { diff --git a/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java b/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java index 339c9be..35cacef 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java @@ -9,6 +9,7 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.graphics.Color; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; @@ -35,16 +36,19 @@ import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.Projection; import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.CameraPosition; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; import com.google.android.gms.maps.model.VisibleRegion; import org.ntlab.amaryllis.client.Amaryllis; +import org.ntlab.amaryllis.client.LoginActivity; import org.ntlab.amaryllis.client.MainActivity; import org.ntlab.amaryllis.client.MyDialogFragment; import org.ntlab.amaryllis.client.R; import org.ntlab.amaryllis.client.VoiceActivity; +import org.ntlab.amaryllis.client.entities.LoginJson; import org.ntlab.amaryllis.client.entities.SignUpJson; import org.ntlab.amaryllis.client.entities.Voicememo; import org.ntlab.amaryllis.client.resources.AccountsRest; @@ -52,7 +56,9 @@ import java.io.File; import java.io.FileInputStream; +import java.lang.reflect.Array; import java.util.ArrayList; +import java.util.List; import retrofit2.Call; import retrofit2.Callback; @@ -76,6 +82,7 @@ private int StartChange = 1; private int SeekChange = 1; private int StopChange = 0; + private int count = 0; File file; static final String filePath = Environment.getExternalStorageDirectory() + "/sample.3gp"; Button RecordButton; @@ -88,12 +95,16 @@ private int bufSize; LocationManager locationManager; + public MapsFragment() { + } + public final Application getApplication() { throw new RuntimeException("Stub!"); } private GoogleMap googlemap; + private Location location; private OnMapReadyCallback callback = new OnMapReadyCallback() { /** @@ -137,6 +148,7 @@ @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); + ((MainActivity) getActivity()).subscribe(this); Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/amaryllis/") @@ -144,7 +156,7 @@ .build(); voicememosService = retrofit.create(VoicememosRest.class); // amaryllis = (Amaryllis) getActivity().getApplication(); - //file = new File(getFilesDir(),"Sample.3gp"); +// file = new File(getFilesDir(),"Sample.3gp"); mp = new MediaPlayer(); RecordButton = (Button)view.findViewById(R.id.button); @@ -180,32 +192,34 @@ @Override public void onLocationChanged(Location location) { - if(googlemap != null) { - Log.d("DEBUG", "lat : " + location.getLatitude()); - Log.d("DEBUG", "lon : " + location.getLongitude()); - LatLng sydney = new LatLng(location.getLatitude(), location.getLongitude()); - MapsFragment.this.googlemap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); - MapsFragment.this.googlemap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); + LatLng current = new LatLng(location.getLatitude(), location.getLongitude()); + if(googlemap != null && count == 0) { + MapsFragment.this.googlemap.moveCamera(CameraUpdateFactory.newLatLngZoom(current, 120)); + count++; + }else{ + MapsFragment.this.googlemap.addMarker(new MarkerOptions().position(current).title("Marker in Sydney")); + MapsFragment.this.googlemap.moveCamera(CameraUpdateFactory.newLatLng(current)); Projection p = googlemap.getProjection(); VisibleRegion vr = p.getVisibleRegion(); latmax = vr.latLngBounds.northeast.latitude; latmin = vr.latLngBounds.southwest.latitude; longmax = vr.latLngBounds.northeast.longitude; longmin = vr.latLngBounds.southwest.longitude; -// System.out.println(latmax + "!!!!!!!!!!!!!"); -// System.out.println(latmin + "!!!!!!!!!!!!!"); -// System.out.println(longmax + "!!!!!!!!!!!!!"); -// System.out.println(longmin + "!!!!!!!!!!!!!"); - Call> call = voicememosService.getVoicememos(latmax, latmin, longmax, longmin); - call.enqueue(new Callback>() { + Call> call = voicememosService.getVoicememos(latmax, latmin, longmax, longmin); + call.enqueue(new Callback>() { @Override - public void onResponse(Call> call, Response> response) { - + public void onResponse(Call> call, Response> response) { + List voiceJson = response.body(); + for(Voicememo v : voiceJson) { + //System.out.println(v.getCategory() + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); + LatLng voicememo = new LatLng(v.getLatitude(), v.getLongitude()); + //int color = Color.RGBToHSV();// + MapsFragment.this.googlemap.addMarker(new MarkerOptions().position(voicememo).title("Marker in Sydney").icon(BitmapDescriptorFactory.defaultMarker(30))); + } } @Override - public void onFailure(Call> call, Throwable t) { - + public void onFailure(Call> call, Throwable t) { } }); } diff --git a/app/src/main/java/org/ntlab/amaryllis/client/resources/VoicememosRest.java b/app/src/main/java/org/ntlab/amaryllis/client/resources/VoicememosRest.java index 7b7ed11..9306f4f 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/resources/VoicememosRest.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/resources/VoicememosRest.java @@ -8,6 +8,7 @@ import org.ntlab.amaryllis.client.entities.VoicememostimesResponse; import java.util.ArrayList; +import java.util.List; import retrofit2.Call; import retrofit2.http.DELETE; @@ -22,7 +23,7 @@ public interface VoicememosRest { //全てのvidを取得 @GET("voicememos") - Call> getVoicememos( + Call> getVoicememos( @Query("latmax") Double latmax, @Query("latmin") Double latmin, @Query("longmax") Double longmax,