Add broadcast receiver
This commit is contained in:
parent
c73325dd4e
commit
b591587e6a
@ -16,6 +16,14 @@
|
|||||||
android:theme="@style/AppTheme">
|
android:theme="@style/AppTheme">
|
||||||
|
|
||||||
|
|
||||||
|
<receiver android:name=".utils.BroadcastLocalizationHandler">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="com.uam.wmi.findmytutor">
|
||||||
|
</action>
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<activity android:name=".activity.StartupActivity"
|
<activity android:name=".activity.StartupActivity"
|
||||||
android:label="@string/title_activity_startup"
|
android:label="@string/title_activity_startup"
|
||||||
|
@ -343,7 +343,7 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks<
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Boolean doInBackground(Void... params) {
|
protected Boolean doInBackground(Void... params) {
|
||||||
LdapUser user = new LdapUser("string",mPassword,"string",(isTutor)?"tutor":"student","string","string",mEmail);
|
LdapUser user = new LdapUser("admin@admin",mPassword,"admin",(isTutor)?"Tutor":"Student","string","string",mEmail);
|
||||||
|
|
||||||
disposable.add(
|
disposable.add(
|
||||||
ldapService
|
ldapService
|
||||||
|
@ -19,6 +19,10 @@ import android.view.View;
|
|||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.uam.wmi.findmytutor.model.Coordinate;
|
||||||
|
import com.uam.wmi.findmytutor.model.LdapUser;
|
||||||
|
import com.uam.wmi.findmytutor.network.ApiClient;
|
||||||
|
import com.uam.wmi.findmytutor.service.CoordinateService;
|
||||||
import com.uam.wmi.findmytutor.service.GoogleService;
|
import com.uam.wmi.findmytutor.service.GoogleService;
|
||||||
import android.support.design.widget.FloatingActionButton;
|
import android.support.design.widget.FloatingActionButton;
|
||||||
|
|
||||||
@ -31,9 +35,23 @@ import android.view.MenuItem;
|
|||||||
|
|
||||||
import com.mapbox.mapboxsdk.Mapbox;
|
import com.mapbox.mapboxsdk.Mapbox;
|
||||||
import com.uam.wmi.findmytutor.R;
|
import com.uam.wmi.findmytutor.R;
|
||||||
|
import com.uam.wmi.findmytutor.service.LdapService;
|
||||||
import com.uam.wmi.findmytutor.service.LocationService;
|
import com.uam.wmi.findmytutor.service.LocationService;
|
||||||
import com.uam.wmi.findmytutor.utils.PrefUtils;
|
import com.uam.wmi.findmytutor.utils.PrefUtils;
|
||||||
|
|
||||||
|
import org.reactivestreams.Subscriber;
|
||||||
|
import org.reactivestreams.Subscription;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
|
import io.reactivex.disposables.CompositeDisposable;
|
||||||
|
import io.reactivex.observers.DisposableObserver;
|
||||||
|
import io.reactivex.observers.DisposableSingleObserver;
|
||||||
|
import io.reactivex.schedulers.Schedulers;
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private BottomNavigationView mMainNav;
|
private BottomNavigationView mMainNav;
|
||||||
@ -44,17 +62,24 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
private ProfileFragment profileFragment;
|
private ProfileFragment profileFragment;
|
||||||
public static Intent backgroundLocalizationService = null;
|
public static Intent backgroundLocalizationService = null;
|
||||||
|
|
||||||
|
;
|
||||||
|
private BroadcastReceiver broadcastReceiver = null;
|
||||||
|
|
||||||
private static final int REQUEST_PERMISSIONS = 100;
|
private static final int REQUEST_PERMISSIONS = 100;
|
||||||
private boolean boolean_permission = false;
|
private boolean boolean_permission = false;
|
||||||
|
|
||||||
Double latitude, longitude;
|
Double latitude, longitude;
|
||||||
|
|
||||||
|
/* CompositeDisposable disposable = new CompositeDisposable();
|
||||||
|
CoordinateService coordinateService = ApiClient.getClient(getApplicationContext())
|
||||||
|
.create(CoordinateService.class);*/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
Mapbox.getInstance(this, getString(R.string.access_token));
|
Mapbox.getInstance(this, getString(R.string.access_token));
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
fn_permission();
|
|
||||||
mMainFrame = (FrameLayout) findViewById(R.id.main_frame);
|
mMainFrame = (FrameLayout) findViewById(R.id.main_frame);
|
||||||
mMainNav = (BottomNavigationView) findViewById(R.id.main_nav);
|
mMainNav = (BottomNavigationView) findViewById(R.id.main_nav);
|
||||||
isTutor = PrefUtils.getIsTutor(getApplicationContext());
|
isTutor = PrefUtils.getIsTutor(getApplicationContext());
|
||||||
@ -113,39 +138,41 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if (boolean_permission) {
|
|
||||||
if (!PrefUtils.getIsServiceRunning(getApplicationContext())) {
|
|
||||||
Intent intent = new Intent(getApplicationContext(), GoogleService.class);
|
|
||||||
startService(intent);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
Toast.makeText(getApplicationContext(), "Service is already running", Toast.LENGTH_SHORT).show();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Toast.makeText(getApplicationContext(), "Please enable the gps", Toast.LENGTH_SHORT).show();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
fn_permission();
|
fn_permission();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
this.broadcastReceiver = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
|
||||||
|
latitude = intent.getDoubleExtra("latitude",0);
|
||||||
|
longitude = intent.getDoubleExtra("longitude",0);
|
||||||
|
|
||||||
|
Log.e("Background service", String.valueOf(latitude));
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//You should find out what causes this fancy/not reproducible error
|
||||||
|
/* Coordinate coordinate = new Coordinate(latitude);
|
||||||
|
|
||||||
|
disposable.add(coordinateService.postCoordinate(coordinate)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribeWith(new DisposableSingleObserver<Coordinate>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(Coordinate coordinate) {
|
||||||
|
Log.e("Service", "onSuccess: " + coordinate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Throwable e) {
|
||||||
/*backgroundLocalizationService = new Intent(getApplicationContext(), GoogleService.class);
|
Log.e("Service", "onError: " + e.getMessage());
|
||||||
startService(backgroundLocalizationService);*/
|
}
|
||||||
|
}));*/
|
||||||
/* if (boolean_permission) {
|
|
||||||
if (!PrefUtils.getIsServiceRunning(getApplicationContext())){
|
|
||||||
backgroundLocalizationService = new Intent(getApplicationContext(), GoogleService.class);
|
|
||||||
startService(backgroundLocalizationService);
|
|
||||||
} else{
|
|
||||||
Toast.makeText(getApplicationContext(), "Service is already running", Toast.LENGTH_SHORT).show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
|
||||||
fn_permission();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
private void setFragment(Fragment fragment) {
|
private void setFragment(Fragment fragment) {
|
||||||
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
|
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
|
||||||
@ -168,7 +195,21 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
boolean_permission = true;
|
boolean_permission = true;
|
||||||
|
if (boolean_permission) {
|
||||||
|
if (!PrefUtils.getIsServiceRunning(getApplicationContext())) {
|
||||||
|
Intent intent = new Intent(getApplicationContext(), GoogleService.class);
|
||||||
|
startService(intent);
|
||||||
|
} else {
|
||||||
|
Toast.makeText(getApplicationContext(), "Service is already running", Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Toast.makeText(getApplicationContext(), "Please enable the gps", Toast.LENGTH_SHORT).show();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -182,24 +223,21 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(getApplicationContext(), "Please allow the permission", Toast.LENGTH_LONG).show();
|
Toast.makeText(getApplicationContext(), "Please allow the permission", Toast.LENGTH_LONG).show();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
registerReceiver(this.broadcastReceiver, new IntentFilter(GoogleService.str_receiver));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
}
|
unregisterReceiver(this.broadcastReceiver);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ public class Coordinate extends BaseResponse{
|
|||||||
private UUID coordinateId = null;
|
private UUID coordinateId = null;
|
||||||
|
|
||||||
@SerializedName("latitude")
|
@SerializedName("latitude")
|
||||||
private Float latitude = null;
|
private Double latitude;
|
||||||
|
|
||||||
@SerializedName("longitude")
|
@SerializedName("longitude")
|
||||||
private Float longitude = null;
|
private Float longitude = null;
|
||||||
@ -37,7 +37,19 @@ public class Coordinate extends BaseResponse{
|
|||||||
private Long timeStamp = null;
|
private Long timeStamp = null;
|
||||||
|
|
||||||
@SerializedName("label")
|
@SerializedName("label")
|
||||||
private String label = null;
|
private String label;
|
||||||
|
|
||||||
|
/* public Coordinate (Float latitude, Float longitude, String userId, String label ) {
|
||||||
|
this.latitude = latitude;
|
||||||
|
this.longitude = longitude;
|
||||||
|
this.userId = userId;
|
||||||
|
this.label = label;
|
||||||
|
|
||||||
|
}*/
|
||||||
|
|
||||||
|
public Coordinate (Double latitude) {
|
||||||
|
this.latitude = latitude;
|
||||||
|
}
|
||||||
|
|
||||||
public Coordinate coordinateId(UUID coordinateId) {
|
public Coordinate coordinateId(UUID coordinateId) {
|
||||||
this.coordinateId = coordinateId;
|
this.coordinateId = coordinateId;
|
||||||
@ -57,7 +69,7 @@ public class Coordinate extends BaseResponse{
|
|||||||
this.coordinateId = coordinateId;
|
this.coordinateId = coordinateId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Coordinate latitude(Float latitude) {
|
public Coordinate latitude(Double latitude) {
|
||||||
this.latitude = latitude;
|
this.latitude = latitude;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -67,11 +79,11 @@ public class Coordinate extends BaseResponse{
|
|||||||
* @return latitude
|
* @return latitude
|
||||||
**/
|
**/
|
||||||
@ApiModelProperty(required = true, value = "")
|
@ApiModelProperty(required = true, value = "")
|
||||||
public Float getLatitude() {
|
public Double getLatitude() {
|
||||||
return latitude;
|
return latitude;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLatitude(Float latitude) {
|
public void setLatitude(Double latitude) {
|
||||||
this.latitude = latitude;
|
this.latitude = latitude;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ public class ApiClient {
|
|||||||
// Adding Authorization token (API Key)
|
// Adding Authorization token (API Key)
|
||||||
// Requests will be denied without API key
|
// Requests will be denied without API key
|
||||||
if (!TextUtils.isEmpty(PrefUtils.getApiKey(context))) {
|
if (!TextUtils.isEmpty(PrefUtils.getApiKey(context))) {
|
||||||
requestBuilder.addHeader("Authorization", PrefUtils.getApiKey(context));
|
requestBuilder.addHeader("Authorization", "Bearer " + PrefUtils.getApiKey(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
Request request = requestBuilder.build();
|
Request request = requestBuilder.build();
|
||||||
|
@ -4,10 +4,14 @@ import com.uam.wmi.findmytutor.model.Coordinate;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import io.reactivex.Single;
|
||||||
import okhttp3.ResponseBody;
|
import okhttp3.ResponseBody;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.http.Body;
|
import retrofit2.http.Body;
|
||||||
import retrofit2.http.DELETE;
|
import retrofit2.http.DELETE;
|
||||||
|
import retrofit2.http.Field;
|
||||||
|
import retrofit2.http.FormUrlEncoded;
|
||||||
import retrofit2.http.GET;
|
import retrofit2.http.GET;
|
||||||
import retrofit2.http.POST;
|
import retrofit2.http.POST;
|
||||||
import retrofit2.http.PUT;
|
import retrofit2.http.PUT;
|
||||||
@ -33,8 +37,18 @@ public interface CoordinateService {
|
|||||||
@GET("api/coordinates/top/online")
|
@GET("api/coordinates/top/online")
|
||||||
Call<List<Coordinate>> getOnlineCoordinates();
|
Call<List<Coordinate>> getOnlineCoordinates();
|
||||||
|
|
||||||
|
|
||||||
|
// Create note
|
||||||
|
@FormUrlEncoded
|
||||||
@POST("api/coordinates")
|
@POST("api/coordinates")
|
||||||
Call<ResponseBody> postCoordinate(@Body Coordinate coordinate);
|
Single <Coordinate> postCoordinate(@Body Coordinate coordinate);
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Create note
|
||||||
|
@FormUrlEncoded
|
||||||
|
@POST("api/coordinates")
|
||||||
|
Observable <Coordinate> postCoordinate(@Field("latitude") Double latitude);
|
||||||
|
*/
|
||||||
|
|
||||||
@PUT("api/coordinates/{id}")
|
@PUT("api/coordinates/{id}")
|
||||||
Call<Coordinate> putCoordinatesById(@Path("id") String id);
|
Call<Coordinate> putCoordinatesById(@Path("id") String id);
|
||||||
|
@ -37,7 +37,7 @@ public class GoogleService extends Service implements LocationListener{
|
|||||||
private Handler mHandler = new Handler();
|
private Handler mHandler = new Handler();
|
||||||
private Timer mTimer = null;
|
private Timer mTimer = null;
|
||||||
long notify_interval = 5000;
|
long notify_interval = 5000;
|
||||||
public static String str_receiver = "servicetutorial.service.receiver";
|
public static String str_receiver = "background.location.broadcast";
|
||||||
Intent intent;
|
Intent intent;
|
||||||
|
|
||||||
|
|
||||||
@ -113,10 +113,6 @@ public class GoogleService extends Service implements LocationListener{
|
|||||||
}
|
}
|
||||||
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
|
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
|
||||||
if (location!=null){
|
if (location!=null){
|
||||||
|
|
||||||
Log.e("latitude",location.getLatitude()+"");
|
|
||||||
Log.e("longitude",location.getLongitude()+"");
|
|
||||||
|
|
||||||
latitude = location.getLatitude();
|
latitude = location.getLatitude();
|
||||||
longitude = location.getLongitude();
|
longitude = location.getLongitude();
|
||||||
fn_update(location);
|
fn_update(location);
|
||||||
@ -139,37 +135,20 @@ public class GoogleService extends Service implements LocationListener{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
private void sendLocalizationToApi(Double latitude,Double longitude){
|
|
||||||
Log.e("Service google",PrefUtils.getUserId(getApplicationContext()));
|
|
||||||
Log.e("Service google",latitude + " " + longitude);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
private class TimerTaskToGetLocation extends TimerTask{
|
private class TimerTaskToGetLocation extends TimerTask{
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
mHandler.post(GoogleService.this::fn_getlocation);
|
||||||
mHandler.post(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
fn_getlocation();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fn_update(Location location){
|
private void fn_update(Location location){
|
||||||
intent.putExtra("latutide",location.getLatitude()+"");
|
intent.putExtra("latitude",location.getLatitude());
|
||||||
intent.putExtra("longitude",location.getLongitude()+"");
|
intent.putExtra("longitude",location.getLongitude());
|
||||||
sendBroadcast(intent);
|
sendBroadcast(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package com.uam.wmi.findmytutor.utils;
|
||||||
|
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
public class BroadcastLocalizationHandler extends BroadcastReceiver {
|
||||||
|
public static String str_receiver = "servicetutorial.service.receiver";
|
||||||
|
|
||||||
|
private IntentFilter filter =
|
||||||
|
new IntentFilter(str_receiver);
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context arg0, Intent arg1) {
|
||||||
|
//tutaj operujemy na naszym powiadomieniu, dane które zostały nam przekazane wyciągamy z parametru arg1.
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -7,7 +7,7 @@ buildscript {
|
|||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.1.4'
|
classpath 'com.android.tools.build:gradle:3.2.0'
|
||||||
|
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
|
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
|||||||
#Sun Aug 12 23:17:46 CEST 2018
|
#Sat Sep 29 16:56:56 CEST 2018
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
|
||||||
|
Loading…
Reference in New Issue
Block a user