diff --git a/app/src/main/java/org/ntlab/amaryllis/client/MainActivity.java b/app/src/main/java/org/ntlab/amaryllis/client/MainActivity.java index 4b964b2..3319aba 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/MainActivity.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/MainActivity.java @@ -34,16 +34,20 @@ import android.view.MenuItem; import android.view.View; import android.widget.ImageButton; +import android.widget.TextView; import android.widget.Toast; import com.google.android.material.bottomnavigation.BottomNavigationView; import org.ntlab.amaryllis.client.entities.AmaryllisBackgroundService; import org.ntlab.amaryllis.client.entities.Category; +import org.ntlab.amaryllis.client.entities.PlayListListener; +import org.ntlab.amaryllis.client.entities.Voicememo; import org.ntlab.amaryllis.client.fragment.MapsFragment; import org.ntlab.amaryllis.client.resources.AccountsRest; import org.ntlab.amaryllis.client.resources.CategoriesRest; import org.ntlab.amaryllis.client.voiceservice.TestVoiceService; +import org.ntlab.amaryllis.client.voiceservice.VoiceMemo; import java.util.ArrayList; import java.util.HashMap; @@ -65,7 +69,7 @@ ImageButton playbutton; ImageButton stopbutton; ImageButton skipbutton; - + TextView titleView; AmaryllisBackgroundService myService; MediaControllerCompat mediaController; @@ -78,6 +82,17 @@ } catch (RemoteException e) { e.printStackTrace(); } + myService.subscribe(new PlayListListener() { + @Override + public void onPlayNext(VoiceMemo voicememo) { + titleView.setText(voicememo.getTitle()); + } + + @Override + public void onPlayEnd() { + + } + }); //myService.setMessage("Hello, IBinder!"); //startService(serviceIntent); } @@ -136,25 +151,13 @@ playbutton.setEnabled(true); playbutton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { - playfrag++; - if((playfrag%2)==0){ - //こっち側がオフ - }else{ - //こっち側がオン - } + mediaController.getTransportControls().play(); } }); stopbutton = (ImageButton)findViewById(R.id.stopbutton); stopbutton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { - stopfrag++; - if((stopfrag%2)==0){ - //こっち側がオフ - }else{ - //こっち側がオン - } - mediaController.getTransportControls().pause(); } }); @@ -164,7 +167,7 @@ mediaController.getTransportControls().skipToNext(); } }); - + titleView=(TextView) findViewById(R.id.textView); LocationManager manager = (LocationManager) getSystemService(LOCATION_SERVICE); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { diff --git a/app/src/main/java/org/ntlab/amaryllis/client/entities/AmaryllisBackgroundService.java b/app/src/main/java/org/ntlab/amaryllis/client/entities/AmaryllisBackgroundService.java index 2bd2ad0..cdd6fab 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/entities/AmaryllisBackgroundService.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/entities/AmaryllisBackgroundService.java @@ -84,7 +84,9 @@ .build(); final VoicememosRest voicememosRest=retrofit.create(VoicememosRest.class); playListManager=new PlayListManager(); - Call> call=voicememosRest.getVoicememos(145.0,0.0,145.0,0.0); + double range=1.0; + // Call> call=voicememosRest.getVoicememos(latitude+range,latitude-range,longitude+range,longitude-range); + Call> call=voicememosRest.getVoicememos(180.0,-180.0,180.0,-180.0); call.enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { @@ -95,7 +97,7 @@ double lat=v.getLatitude(); double lon=v.getLongitude(); Location.distanceBetween(latitude,longitude,lat,lon,distance); - if (distance[i] < 50){ + if (distance[i] < 10000000.0){ //ここにPlayListManagerへ投稿を送る t.add(v); } @@ -139,7 +141,7 @@ return playListManager; } - private void callPlayNext(Voicememo voicememo){ + private void callPlayNext(VoiceMemo voicememo){ for(PlayListListener pl:playListListeners)pl.onPlayNext(voicememo); } private void callPlayEnd(){ @@ -179,6 +181,37 @@ longitude=location.getLongitude(); latitude=location.getLatitude(); + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/amaryllis/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + final VoicememosRest voicememosRest=retrofit.create(VoicememosRest.class); + double range=1.0; + Call> call=voicememosRest.getVoicememos(latitude+range,latitude-range,longitude+range,longitude-range); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + List voicememos = response.body(); + float distance[] = new float[voicememos.size()]; + ArrayList t = new ArrayList<>(); + for(VoiceMemo v:voicememos){ + double lat=v.getLatitude(); + double lon=v.getLongitude(); + Location.distanceBetween(latitude,longitude,lat,lon,distance); + if (distance[i] < 50){ + //ここにPlayListManagerへ投稿を送る + t.add(v); + } + i++; + } + playListManager.addVoiceMemos(t); + } + + @Override + public void onFailure(Call> call, Throwable t) { + + } + }); } @Override @@ -235,12 +268,13 @@ // mediaSession.setActive(true); // //mediaPlayer; // } - mediaSession.setActive(true); + //mediaSession.setActive(true); switch (mState){ case PLAY: break; case STOP: + if(playListManager.getUnplayedList().size()==0)break; currentVoicememo=playListManager.getNextVoicememo(); if(currentVoicememo==null){ System.out.println("NULLだよ"); @@ -265,12 +299,16 @@ @Override public void onCompletion(MediaPlayer mediaPlayer) { mState=State.STOP; - onPlay(); - callPlayEnd(); + clean(); + if(playListManager.getUnplayedList().size()!=0){ + onPlay(); + callPlayEnd(); + } } }); + callPlayNext(currentVoicememo); mediaPlayer.start(); - + mState=State.PLAY; } catch (IOException e) { e.printStackTrace(); } diff --git a/app/src/main/java/org/ntlab/amaryllis/client/entities/PlayListListener.java b/app/src/main/java/org/ntlab/amaryllis/client/entities/PlayListListener.java index 05ec5dc..591baba 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/entities/PlayListListener.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/entities/PlayListListener.java @@ -1,6 +1,8 @@ package org.ntlab.amaryllis.client.entities; +import org.ntlab.amaryllis.client.voiceservice.VoiceMemo; + public interface PlayListListener { - public void onPlayNext(Voicememo voicememo); + public void onPlayNext(VoiceMemo voicememo); public void onPlayEnd(); } diff --git a/app/src/main/java/org/ntlab/amaryllis/client/voiceservice/PlayListManager.java b/app/src/main/java/org/ntlab/amaryllis/client/voiceservice/PlayListManager.java index f524526..f3f1fd4 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/voiceservice/PlayListManager.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/voiceservice/PlayListManager.java @@ -40,9 +40,9 @@ if(exist == false) unplayedlist.add(playlist.get(i)); } - for(int i = index; i < playlist.size(); i++){ - unplayedlist.add(playlist.get(i)); - } +// for(int i = index; i < playlist.size(); i++){ +//// // unplayedlist.add(playlist.get(i)); +//// } return unplayedlist; }