diff --git a/.idea/misc.xml b/.idea/misc.xml index b0c7b20..dc44dda 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -29,7 +29,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index d7e6c83..5a09b18 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,7 +10,7 @@ android { applicationId "com.uam.wmi.findmytutor" minSdkVersion 22 targetSdkVersion 27 - versionCode 8 + versionCode 14 versionName "0.9.1-alpha" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true @@ -28,8 +28,14 @@ repositories { url 'http://dl.bintray.com/amulyakhare/maven' } } +def acraVersion = '5.2.1' dependencies { + implementation "ch.acra:acra-http:$acraVersion" + implementation "ch.acra:acra-toast:$acraVersion" + implementation "ch.acra:acra-notification:$acraVersion" + + implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:preference-v7:27.1.1' implementation 'com.android.support:appcompat-v7:27.1.1' diff --git a/app/release/release/app.aab b/app/release/release/app.aab index 1635523..c0a50db 100644 Binary files a/app/release/release/app.aab and b/app/release/release/app.aab differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2477479..80031db 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,6 +17,7 @@ + android:theme="@style/AppTheme"/> \ No newline at end of file diff --git a/app/src/main/java/com/uam/wmi/findmytutor/FindMyTutor.java b/app/src/main/java/com/uam/wmi/findmytutor/FindMyTutor.java new file mode 100644 index 0000000..763c4b5 --- /dev/null +++ b/app/src/main/java/com/uam/wmi/findmytutor/FindMyTutor.java @@ -0,0 +1,75 @@ +package com.uam.wmi.findmytutor; + +import android.app.Application; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Configuration; + +import static org.acra.ReportField.*; +import org.acra.ACRA; +import org.acra.annotation.AcraNotification; +import org.acra.config.CoreConfigurationBuilder; +import org.acra.config.HttpSenderConfigurationBuilder; +import org.acra.config.ToastConfigurationBuilder; +import org.acra.data.StringFormat; +import org.acra.sender.HttpSender; +import java.util.HashMap; +import java.util.Map; + + +@AcraNotification(resText = R.string.notification_text, + resTitle = R.string.notification_title, + resChannelName = R.string.notification_channel) +public class FindMyTutor extends Application { + @Override + protected void attachBaseContext(Context base) { + super.attachBaseContext(base); + + // ACRA core + CoreConfigurationBuilder builder = new CoreConfigurationBuilder(this) + .setBuildConfigClass(BuildConfig.class) + .setReportContent(REPORT_ID, PHONE_MODEL, LOGCAT, USER_APP_START_DATE, USER_CRASH_DATE, SHARED_PREFERENCES, + ANDROID_VERSION, STACK_TRACE, CUSTOM_DATA, BUILD_CONFIG) + .setReportFormat(StringFormat.JSON); + + // Toast for user + builder.setBuildConfigClass(BuildConfig.class) + .setReportFormat(StringFormat.JSON); + builder.getPluginConfigurationBuilder( + ToastConfigurationBuilder.class + ).setResText(R.string.acra_toast_text); + + SharedPreferences sharedPreferences = base.getSharedPreferences("com.uam.wmi.findmytutor_preferences", Context.MODE_PRIVATE); + Map header = new HashMap(); + String token = sharedPreferences.getString("API_KEY", "KEY_EMPTY"); + header.put("Authorization","Bearer " + token); + + // Api POST + builder.getPluginConfigurationBuilder( + HttpSenderConfigurationBuilder.class +// ).setUri("http://192.168.0.15:3000/api/acra") + ).setUri("https://s416084.projektstudencki.pl/develop/api/Feedback/autoFeedback") + .setHttpMethod(HttpSender.Method.POST) + .setHttpHeaders(header) + .setEnabled(true); + + ACRA.init(this, builder); + //Shared preferences + ACRA.getErrorReporter().putCustomData("USER_ID", sharedPreferences.getString("USER_ID", "no user id")); + } + + // Called by the system when the device configuration changes while your component is running. + // Overriding this method is totally optional! + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + } + + // This is called when the overall system is running low on memory, + // and would like actively running processes to tighten their belts. + // Overriding this method is totally optional! + @Override + public void onLowMemory() { + super.onLowMemory(); + } +} diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java index da73814..5be8ec4 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java @@ -20,19 +20,16 @@ import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.SearchView; import android.support.v7.widget.Toolbar; -import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.FrameLayout; import android.widget.Toast; -import com.mapbox.mapboxsdk.Mapbox; import com.uam.wmi.findmytutor.R; import com.uam.wmi.findmytutor.service.BackgroundLocalizationService; import com.uam.wmi.findmytutor.utils.ActiveFragment; import com.uam.wmi.findmytutor.utils.FeedbackUtils; -import com.uam.wmi.findmytutor.utils.MapUtils; import com.uam.wmi.findmytutor.utils.PrefUtils; import com.uam.wmi.findmytutor.utils.RxSearchObservable; @@ -49,8 +46,8 @@ import io.reactivex.functions.Function; import io.reactivex.schedulers.Schedulers; -import static com.uam.wmi.findmytutor.utils.Consts.deafultMapZoom; -import static com.uam.wmi.findmytutor.utils.Consts.searchMapZoom; +import static com.uam.wmi.findmytutor.utils.Const.defaultMapZoom; +import static com.uam.wmi.findmytutor.utils.Const.searchMapZoom; import static com.uam.wmi.findmytutor.utils.PrefUtils.storeBackgroundLocationStatus; @@ -276,7 +273,7 @@ public abstract class BaseActivity searchView.setOnQueryTextFocusChangeListener((v, hasFocus) -> { if (!hasFocus && activeFragment.equals(ActiveFragment.NONE)) { restoreMapMarkers(); - adjustMapToSearch(deafultMapZoom); + adjustMapToSearch(defaultMapZoom); } if(hasFocus && activeFragment.equals(ActiveFragment.NONE)){ 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 a7dd423..7734dd1 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 @@ -21,7 +21,6 @@ import com.auth0.android.jwt.JWT; import com.jakewharton.retrofit2.adapter.rxjava2.HttpException; import com.uam.wmi.findmytutor.R; import com.uam.wmi.findmytutor.model.JwtToken; -import com.uam.wmi.findmytutor.model.LdapUser; import com.uam.wmi.findmytutor.model.User; import com.uam.wmi.findmytutor.model.ValidateUser; import com.uam.wmi.findmytutor.network.ApiClient; diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java index 8e89d40..b37e529 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java @@ -80,8 +80,6 @@ public class MapActivity extends BaseActivity private int mInterval = 10000; private Handler mHandler = new Handler(); private Runnable mStatusChecker; - private Handler manualLocHandler = new Handler(); - private Runnable manualLocStatusChecker; private MapView mapView; private MapboxMap mapboxMap; private Button selectLocationButton; @@ -343,7 +341,6 @@ public class MapActivity extends BaseActivity }); }); - alertDialog.show(); } @@ -623,8 +620,6 @@ public class MapActivity extends BaseActivity super.onDestroy(); mapView.onDestroy(); mHandler.removeCallbacks(mStatusChecker); - // TODO remove after BG sending - manualLocHandler.removeCallbacks(manualLocStatusChecker); disposable.dispose(); } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/SharingFragment.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/SharingFragment.java index 21d904f..eb76a2a 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/SharingFragment.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/SharingFragment.java @@ -232,7 +232,7 @@ public class SharingFragment extends PreferenceFragment { lp.setDefaultValue(0); lp.setEntryValues(entryValues); - if(entries.length > 0) + if(entries.length > 0 && activeId != null) lp.setValueIndex(activeId); }; diff --git a/app/src/main/java/com/uam/wmi/findmytutor/model/Coordinate.java b/app/src/main/java/com/uam/wmi/findmytutor/model/Coordinate.java index 7334350..4d598ff 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/model/Coordinate.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/model/Coordinate.java @@ -3,8 +3,9 @@ package com.uam.wmi.findmytutor.model; import android.util.Range; import com.google.gson.annotations.SerializedName; -import com.uam.wmi.findmytutor.utils.Consts; +import com.uam.wmi.findmytutor.utils.Const; +import java.util.List; import java.util.Objects; import java.util.UUID; @@ -15,8 +16,9 @@ import io.swagger.annotations.ApiModelProperty; */ public class Coordinate extends BaseResponse { - private Range latitudeRange = Consts.latitudeRange; - private Range longtitudeRange = Consts.longitudeRange; + private Range latitudeRange = Const.latitudeRange; + private Range longtitudeRange = Const.longitudeRange; + private List allowedApproximatedLocations = Const.validApproximatedLocations; @SerializedName("coordinateId") private UUID coordinateId = null; @@ -48,7 +50,7 @@ public class Coordinate extends BaseResponse { public Coordinate (Double latitude, Double longitude, Double altitude, String approximatedLocation, String label, String userId, String displayMode) { if (!latitudeRange.contains(latitude)) throw new IllegalArgumentException("Inappropriate latitude value" + latitude); if (!longtitudeRange.contains(longitude)) throw new IllegalArgumentException("Inappropriate longitude value" + longitude); - //if (approximatedLocation == null) throw new IllegalArgumentException("Inappropriate approximatedLocation"); + if (!allowedApproximatedLocations.contains(approximatedLocation)) throw new IllegalArgumentException("Inappropriate approximatedLocation"); this.latitude = latitude; this.longitude = longitude; diff --git a/app/src/main/java/com/uam/wmi/findmytutor/network/ApiClient.java b/app/src/main/java/com/uam/wmi/findmytutor/network/ApiClient.java index 1076954..1835496 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/network/ApiClient.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/network/ApiClient.java @@ -23,26 +23,27 @@ import retrofit2.converter.gson.GsonConverterFactory; public class ApiClient { - private static Retrofit retrofit = null; - private static int REQUEST_TIMEOUT = 60; - private static OkHttpClient okHttpClient; - private static final String BASE_URL = "https://s416084.projektstudencki.pl/master/"; + private static Retrofit retrofit = null; + private static int REQUEST_TIMEOUT = 60; + private static OkHttpClient okHttpClient; + private static final String BASE_URL = "https://s416084.projektstudencki.pl/master/"; - public static Retrofit getClient(Context context) { + public static Retrofit getClient(Context context) { - if (okHttpClient == null) - initOkHttp(context); + if (okHttpClient == null) + initOkHttp(context); - if (retrofit == null) { - retrofit = new Retrofit.Builder() - .baseUrl(BASE_URL) - .client(okHttpClient) - .addConverterFactory(GsonConverterFactory.create()) - .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) - .build(); + if (retrofit == null) { + retrofit = new Retrofit.Builder() + .baseUrl(BASE_URL) + .client(okHttpClient) + .addConverterFactory(GsonConverterFactory.create()) + .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) + .build(); + } + + return retrofit; } - return retrofit; - } private static void initOkHttp(final Context context) { @@ -51,14 +52,6 @@ public class ApiClient { .readTimeout(REQUEST_TIMEOUT, TimeUnit.SECONDS) .writeTimeout(REQUEST_TIMEOUT, TimeUnit.SECONDS); - // Android 7.0.0 fix: https://stackoverflow.com/questions/39133437/sslhandshakeexception-handshake-failed-on-android-n-7-0?fbclid=IwAR1FpUjQlE_iP_2hiZ3okHoFs-Ik4AilVcJaKDKs4FHNFIxn7wb-Uxb_WWY - ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS) - .tlsVersions(TlsVersion.TLS_1_2) - .cipherSuites(CipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA) - .build(); - - httpClient.connectionSpecs(Collections.singletonList(spec)); - HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 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 aca3b5f..d2000fc 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 @@ -16,7 +16,6 @@ import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.os.Handler; -import android.os.HandlerThread; import android.os.IBinder; import android.support.annotation.RequiresApi; import android.support.v4.app.ActivityCompat; @@ -32,18 +31,15 @@ import com.mapbox.mapboxsdk.geometry.LatLng; import com.uam.wmi.findmytutor.model.Coordinate; import com.uam.wmi.findmytutor.network.ApiClient; import com.uam.wmi.findmytutor.utils.ApproximatedLocalization; +import com.uam.wmi.findmytutor.utils.MapUtils; import com.uam.wmi.findmytutor.utils.PrefUtils; import com.uam.wmi.findmytutor.utils.RestApiHelper; import com.uam.wmi.findmytutor.utils.SharingLevel; -import com.uam.wmi.findmytutor.utils.MapUtils; -import org.apache.commons.collections4.Predicate; import org.apache.commons.collections4.queue.CircularFifoQueue; import java.util.ArrayList; -import java.util.Collection; import java.util.List; -import java.util.Queue; import java.util.TimerTask; import java.util.concurrent.atomic.AtomicReference; @@ -53,9 +49,9 @@ import io.reactivex.observers.DisposableSingleObserver; import io.reactivex.schedulers.Schedulers; import okhttp3.ResponseBody; -import static com.uam.wmi.findmytutor.utils.Consts.presenceApproximatedName; -import static com.uam.wmi.findmytutor.utils.Consts.presenceLatitude; -import static com.uam.wmi.findmytutor.utils.Consts.presenceLongitude; +import static com.uam.wmi.findmytutor.utils.Const.presenceApproximatedName; +import static com.uam.wmi.findmytutor.utils.Const.presenceLatitude; +import static com.uam.wmi.findmytutor.utils.Const.presenceLongitude; import static com.uam.wmi.findmytutor.utils.PrefUtils.storeBackgroundLocationStatus; public class BackgroundLocalizationService extends Service { @@ -66,22 +62,17 @@ public class BackgroundLocalizationService extends Service { private static long notify_interval = 10000; private static long notify_interval_inside_building = 10000; private static long notify_interval_outside_building = 360000; - - //private static long notify_interval_outside_building = 900000; private static int coordinatesHistoryLength = 10; + private Location mLastLocation; + private Boolean stopService = false; + private ArrayList providers = new ArrayList(); + private LocationListener[] mLocationListeners; private CircularFifoQueue coordinatesHistory = new CircularFifoQueue(coordinatesHistoryLength); - Location mLastLocation; - Boolean stopService = false; - ArrayList providers = new ArrayList(); - LocationListener[] mLocationListeners; - private LocationManager mLocationManager = null; private Handler mHandler = new Handler(); - private HandlerThread mHandlerThread = null; private Runnable mStatusChecker; private FusedLocationProviderClient mFusedLocationClient; - public BackgroundLocalizationService() { providers.add(LocationManager.GPS_PROVIDER); providers.add(LocationManager.NETWORK_PROVIDER); @@ -168,38 +159,26 @@ public class BackgroundLocalizationService extends Service { } } - - private void changeBackgroundMode() { - if(coordinatesHistory.size() > 4){ + if (coordinatesHistory.size() > 4) { Boolean shouldExtendTimeInterval = Stream.of(coordinatesHistory) - .map(MapUtils::checkIfCoordinateIsValid).takeWhile( s-> !s).toList().size() == coordinatesHistory.size(); + .map(MapUtils::checkIfCoordinateIsValid).takeWhile(s -> !s).toList().size() == coordinatesHistory.size(); - Boolean shouldAbbreviateTimeInterval = Stream.of(coordinatesHistory). - map(MapUtils::checkIfCoordinateIsValid).toList().get(coordinatesHistory.size() -1); + Boolean shouldAbbreviateTimeInterval = Stream.of(coordinatesHistory). + map(MapUtils::checkIfCoordinateIsValid).toList().get(coordinatesHistory.size() - 1); - - if(shouldExtendTimeInterval){ + if (shouldExtendTimeInterval) { notify_interval = notify_interval_outside_building; - }else if (shouldAbbreviateTimeInterval){ + } else if (shouldAbbreviateTimeInterval) { notify_interval = notify_interval_inside_building; } } - - Log.e("COORD_HISTORY", String.valueOf(Stream.of(coordinatesHistory) - .map(MapUtils::checkIfCoordinateIsValid).toList())); - - Log.e("COORD_HISTORY", String.valueOf(Stream.of(coordinatesHistory) - .map(x -> x.getLatitude() + " " + x.getLongitude()).toList())); - Log.e("COORD_NEW INTERVAL", String.valueOf(notify_interval)); - } - @RequiresApi(api = Build.VERSION_CODES.O) private void startMyOwnForeground() { - String NOTIFICATION_CHANNEL_ID = "com.example.simpleapp"; + String NOTIFICATION_CHANNEL_ID = "com.example.fmt"; String channelName = "My Background Service"; NotificationChannel chan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, channelName, NotificationManager.IMPORTANCE_NONE); chan.setLightColor(Color.BLUE); @@ -244,7 +223,7 @@ public class BackgroundLocalizationService extends Service { triggerAnotherLocationListener.set(true); }); - if(triggerAnotherLocationListener.get()){ + if (triggerAnotherLocationListener.get()) { for (String provider : providers1) { Location location = mLocationManager.getLastKnownLocation(provider); @@ -280,7 +259,6 @@ public class BackgroundLocalizationService extends Service { return; } mLocationManager.removeUpdates(listener); - Log.i(TAG, "Removed"); } catch (Exception ex) { Log.i(TAG, "fail to remove location listener, ignore", ex); @@ -296,14 +274,7 @@ public class BackgroundLocalizationService extends Service { mLocationManager = (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE); } } - - private class TimerTaskToGetLocation extends TimerTask { - @Override - public void run() { - mHandler.post(BackgroundLocalizationService.this::fn_getlocation); - } - } - + private class LocationListener implements android.location.LocationListener { public LocationListener(String provider) { @@ -372,8 +343,6 @@ public class BackgroundLocalizationService extends Service { approximatedBuildingPart = PrefUtils.getManualLocationApproximation(getApplicationContext()); } - - try { Coordinate coordinate = new Coordinate( latitude, @@ -400,18 +369,11 @@ public class BackgroundLocalizationService extends Service { @SuppressLint("LongLogTag") @Override public void onError(Throwable e) { - Log.e("CoordinateService onError", e.getMessage()); - - if (e instanceof HttpException) { - ResponseBody responseBody = ((HttpException) e).response().errorBody(); - Log.e("CoordinateService onError", RestApiHelper.getErrorMessage(responseBody)); - - } } })); } catch (IllegalArgumentException e) { - Log.e(TAG,e.toString()); + Log.e(TAG, e.toString()); } return null; diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/ApproximatedLocalization.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/ApproximatedLocalization.java index 4a42bf3..83f26fc 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/ApproximatedLocalization.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/ApproximatedLocalization.java @@ -48,7 +48,7 @@ public class ApproximatedLocalization { return Objects.requireNonNull(Objects.requireNonNull(feature.getStringProperty("name"))); } - return null; + return Const.presenceApproximatedName; } public List getMiddlePointOfBuildingPart(String buildingPart) { diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/Consts.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/Const.java similarity index 52% rename from app/src/main/java/com/uam/wmi/findmytutor/utils/Consts.java rename to app/src/main/java/com/uam/wmi/findmytutor/utils/Const.java index 4af26c4..e37fd1f 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/Consts.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/Const.java @@ -2,13 +2,16 @@ package com.uam.wmi.findmytutor.utils; import android.util.Range; -public class Consts { - public final static Integer deafultMapZoom = 17; +import java.util.Arrays; +import java.util.List; + +public class Const { + public final static Integer defaultMapZoom = 17; public final static Integer searchMapZoom = 13; - public final static Double presenceLatitude = 52.466365; + public final static Double presenceLatitude = 52.466365; public final static Double presenceLongitude = 16.926792; public final static String presenceApproximatedName = "Unknown"; public final static Range latitudeRange = Range.create(52.466092, 52.467529); - public final static Range longitudeRange = Range.create(16.926159, 16.927759); - + public final static Range longitudeRange = Range.create(16.926159, 16.927759); + public final static List validApproximatedLocations = Arrays.asList("Skrzydło B", "Skrzydło A", "Aule", "Łącznik", "Biblioteka", "Hol", "Unknown"); } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/MapUtils.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/MapUtils.java index a56ca7e..b63cf5f 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/MapUtils.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/MapUtils.java @@ -3,7 +3,6 @@ package com.uam.wmi.findmytutor.utils; import android.animation.TypeEvaluator; import android.content.Context; import android.location.Location; -import android.util.Log; import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; @@ -15,8 +14,8 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import java.io.IOException; import java.io.InputStream; -import static com.uam.wmi.findmytutor.utils.Consts.latitudeRange; -import static com.uam.wmi.findmytutor.utils.Consts.longitudeRange; +import static com.uam.wmi.findmytutor.utils.Const.latitudeRange; +import static com.uam.wmi.findmytutor.utils.Const.longitudeRange; public class MapUtils { diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b5db5f1..db10ac8 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -159,9 +159,14 @@ Błąd sieci! Błąd podczas pobierania danych. Błąd podczas pobierania statusów. + Upss. Coś poszło nie tak. Pracujemy nad tym! Brak informacji o dyzurze. Brak notatki. Wyszukiwarka + Nie przeszkadzać + Czekam na studentów + Na wakacjach + Status diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cd25c3a..1a1605b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -73,11 +73,16 @@ key_location_level Choose status - key_status_value + key_status_value Status Busy Available Consultation + Do not disturb + Waiting for students + On holidays + + Status Add custom status @@ -228,7 +233,13 @@ Network Error! Error handling status fetch Error handling status fetch + + Sorry, the application crashed. A report will be sent to the developers + Sorry, the application crashed. A report will be sent to the developers + FMT Crash + FMT Lack information about duty hours No note. Search + mock location string