diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9bfd7ed..88f80df 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,6 +6,8 @@ + + - - - - - - - - - - @@ -61,7 +50,11 @@ + android:name=".service.BackgroundLocalizationService" + android:exported="false" + android:launchMode="singleTop" + android:enabled="true" + /> diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java index a113c6f..20907e0 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java @@ -343,7 +343,7 @@ public class LoginActivity extends AppCompatActivity implements LoaderCallbacks< @Override protected Boolean doInBackground(Void... params) { - LdapUser user = new LdapUser("admin@admin",mPassword,"admin",(isTutor)?"Tutor":"Student","string","string",mEmail); + LdapUser user = new LdapUser(mEmail,mPassword,"admin",(isTutor)?"Tutor":"Student","string","string",mEmail); disposable.add( ldapService diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/MainActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/MainActivity.java index 4cbceb0..b6ca075 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/MainActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/MainActivity.java @@ -42,9 +42,6 @@ public class MainActivity extends AppCompatActivity { private MapFragment mapFragment; private NotificationFragment notificationFragment; private ProfileFragment profileFragment; - public static IntentFilter backgroundLocalizationService = null; - - private BroadcastReceiver broadcastReceiver = null; private static final int REQUEST_PERMISSIONS = 100; private boolean boolean_permission = false; @@ -96,7 +93,6 @@ public class MainActivity extends AppCompatActivity { final FloatingActionButton button = findViewById(R.id.logoutButton); button.setOnClickListener(view -> { PrefUtils.cleanUserLocalStorage(getApplicationContext()); - unRegisterLocalizationService(); Intent i = getBaseContext().getPackageManager() .getLaunchIntentForPackage(getBaseContext().getPackageName()); @@ -108,7 +104,6 @@ public class MainActivity extends AppCompatActivity { if (isTutor) { fn_permission(); - this.broadcastReceiver = new BroadcastLocalizationHandler(); } } @@ -132,18 +127,15 @@ public class MainActivity extends AppCompatActivity { } else { if (isTutor) { - Intent intent = new Intent(getApplicationContext(), BackgroundLocalizationService.class); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { startForegroundService(intent); } else { startService(intent); } - - } else { + } else { Toast.makeText(getApplicationContext(), "Please enable the gps", Toast.LENGTH_SHORT).show(); } } @@ -157,7 +149,6 @@ public class MainActivity extends AppCompatActivity { case REQUEST_PERMISSIONS: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { boolean_permission = true; - } else { Toast.makeText(getApplicationContext(), "Please allow the permission", Toast.LENGTH_LONG).show(); } @@ -168,37 +159,16 @@ public class MainActivity extends AppCompatActivity { @Override protected void onResume() { super.onResume(); - backgroundLocalizationService = new IntentFilter(BackgroundLocalizationService.str_receiver); - - if (isTutor) - registerReceiver(this.broadcastReceiver, backgroundLocalizationService); } @Override protected void onPause() { super.onPause(); - - if (isTutor) - unregisterReceiver(this.broadcastReceiver); } protected void onDestroy() { - unRegisterLocalizationService(); super.onDestroy(); } - - private void unRegisterLocalizationService() { - if (this.broadcastReceiver != null) { - try { - LocalBroadcastManager.getInstance(this).unregisterReceiver(broadcastReceiver); - - Intent intent = new Intent(this, BackgroundLocalizationService.class); - stopService(intent); - } catch (IllegalArgumentException e) { - Log.d("Destroy app", "RECIEVER UNREGISTER ERROR"); - } - } - } } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java b/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java index e9afd01..22c356b 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/service/BackgroundLocalizationService.java @@ -44,16 +44,16 @@ public class BackgroundLocalizationService extends Service { private static final float LOCATION_DISTANCE = 10f; private Handler mHandler = new Handler(); private static long notify_interval = 10000; + + double latitude, longitude; + boolean isGPSEnable = false; + boolean isNetworkEnable = false; + Location mLastLocation; Intent intent; LocationManager locationManager; Location location; - double latitude, longitude; - - - boolean isGPSEnable = false; - boolean isNetworkEnable = false; private class LocationListener implements android.location.LocationListener { @@ -66,7 +66,7 @@ public class BackgroundLocalizationService extends Service { public void onLocationChanged(Location location) { Log.e(TAG, "onLocationChanged: " + location); mLastLocation.set(location); - sendToBroadcast(mLastLocation); + fn_update(mLastLocation); } @Override @@ -88,7 +88,7 @@ public class BackgroundLocalizationService extends Service { LocationListener[] mLocationListeners = new LocationListener[]{ new LocationListener(LocationManager.GPS_PROVIDER), new LocationListener(LocationManager.NETWORK_PROVIDER), - new LocationListener(LocationManager.PASSIVE_PROVIDER) + //new LocationListener(LocationManager.PASSIVE_PROVIDER) }; @Override @@ -114,13 +114,10 @@ public class BackgroundLocalizationService extends Service { else { Notification notification = new NotificationCompat.Builder(this, "NOTIFICATION_CHANNEL") .setContentText("Content").build(); - startForeground(1001, notification); } - - initializeLocationManager(); try { @@ -148,14 +145,14 @@ public class BackgroundLocalizationService extends Service { } catch (IllegalArgumentException ex) { Log.d(TAG, "gps provider does not exist " + ex.getMessage()); } - Timer mTimer = new Timer(); mTimer.schedule(new TimerTaskToGetLocation(), 5, notify_interval); intent = new Intent(str_receiver); } + @RequiresApi(api = Build.VERSION_CODES.O) - private void startMyOwnForeground(){ + private void startMyOwnForeground() { String NOTIFICATION_CHANNEL_ID = "com.example.simpleapp"; String channelName = "My Background Service"; @@ -199,9 +196,9 @@ public class BackgroundLocalizationService extends Service { return; } locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, mLocationListeners[1]); - if (locationManager!=null){ + if (locationManager != null) { location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); - if (location!=null){ + if (location != null) { latitude = location.getLatitude(); longitude = location.getLongitude(); @@ -237,7 +234,7 @@ public class BackgroundLocalizationService extends Service { return; } location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); - if (location!=null){ + if (location != null) { latitude = location.getLatitude(); longitude = location.getLongitude(); fn_update(location); @@ -252,33 +249,18 @@ public class BackgroundLocalizationService extends Service { } - - - private class TimerTaskToGetLocation extends TimerTask{ + private class TimerTaskToGetLocation extends TimerTask { @Override public void run() { mHandler.post(BackgroundLocalizationService.this::fn_getlocation); } } - private void fn_update(Location location){ - intent.putExtra("latitude",location.getLatitude()); - intent.putExtra("longitude",location.getLongitude()); + private void fn_update(Location location) { + intent.putExtra("latitude", location.getLatitude()); + intent.putExtra("longitude", location.getLongitude()); + Log.e(TAG, String.valueOf(location)); new Task(location).execute(); - // sendBroadcast(intent); - } - - private void sendToBroadcast(Location location) { - Log.e("sendToBroadcast", String.valueOf(location)); - - intent.putExtra("latitude",location.getLatitude()); - intent.putExtra("longitude",location.getLongitude()); - new Task(location).execute(); - //sendBroadcast(intent); - } - - private void getLocation() { - sendToBroadcast(mLastLocation); } @Override @@ -344,9 +326,10 @@ public class BackgroundLocalizationService extends Service { Log.e("CoordinateService onSuccess", String.valueOf(coord)); } + @SuppressLint("LongLogTag") @Override public void onError(Throwable e) { - Log.e("LoginError", "onError: " + e.getMessage()); + Log.e("CoordinateService onError", e.getMessage()); } })); } catch (IllegalArgumentException e) {