Merge branch 'develop' of s416084/find-my-tutor-android into master
This commit is contained in:
commit
8d7ba2e947
@ -29,7 +29,7 @@
|
||||
</value>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8 (1)" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
@ -10,7 +10,7 @@ android {
|
||||
applicationId "com.uam.wmi.findmytutor"
|
||||
minSdkVersion 22
|
||||
targetSdkVersion 27
|
||||
versionCode 19
|
||||
versionCode 21
|
||||
versionName "0.9.5-beta"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
|
Binary file not shown.
@ -8,18 +8,13 @@ import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Adapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.jakewharton.retrofit2.adapter.rxjava2.HttpException;
|
||||
import com.uam.wmi.findmytutor.R;
|
||||
import com.uam.wmi.findmytutor.adapters.DutyHoursAdapter;
|
||||
import com.uam.wmi.findmytutor.model.DutyHour;
|
||||
import com.uam.wmi.findmytutor.model.DutyHourViewModel;
|
||||
import com.uam.wmi.findmytutor.model.TutorTabViewModel;
|
||||
import com.uam.wmi.findmytutor.model.User;
|
||||
@ -36,11 +31,14 @@ import java.util.List;
|
||||
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.observers.DisposableCompletableObserver;
|
||||
import io.reactivex.observers.DisposableSingleObserver;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.Response;
|
||||
|
||||
import static java.lang.String.valueOf;
|
||||
|
||||
public class TutorTab extends AppCompatActivity {
|
||||
private TutorTabApi tutorTabService;
|
||||
private UserService userService;
|
||||
@ -53,6 +51,7 @@ public class TutorTab extends AppCompatActivity {
|
||||
private TextView department;
|
||||
private Button addDutyButton;
|
||||
private Button saveButon;
|
||||
private Button scrapButton;
|
||||
private Boolean ifTutorTabExists = true;
|
||||
private List<DutyHourViewModel> dutyHourList;
|
||||
private RecyclerView dutyHoursRecycller;
|
||||
@ -72,69 +71,24 @@ public class TutorTab extends AppCompatActivity {
|
||||
userEmail = findViewById(R.id.userEmail);
|
||||
department = findViewById(R.id.userDepartment);
|
||||
saveButon = findViewById(R.id.saveButon);
|
||||
scrapButton = findViewById(R.id.scrapTutorTab);
|
||||
addDutyButton = findViewById(R.id.addDuty);
|
||||
dutyHoursRecycller = (RecyclerView) findViewById(R.id.dutyHourView);
|
||||
dutyHoursRecycller = findViewById(R.id.dutyHourView);
|
||||
dutyHoursLayoutManager = new LinearLayoutManager(this);
|
||||
dutyHoursRecycller.setLayoutManager(dutyHoursLayoutManager);
|
||||
|
||||
|
||||
tutorTabService = ApiClient.getClient(getApplicationContext())
|
||||
.create(TutorTabApi.class);
|
||||
userService = ApiClient.getClient(getApplicationContext())
|
||||
.create(UserService.class);
|
||||
disposable.add(
|
||||
tutorTabService.apiUsersTutorTabByTutorIdGet(PrefUtils.getUserId(getApplicationContext()))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribeWith(new DisposableSingleObserver<TutorTabViewModel>() {
|
||||
@Override
|
||||
public void onSuccess(TutorTabViewModel tutorTabViewModel) {
|
||||
|
||||
dutyHourList = tutorTabViewModel.getDutyHours();
|
||||
if(dutyHourList == null){
|
||||
}else{
|
||||
dutyHoursAdapter = new DutyHoursAdapter(getApplicationContext(),dutyHourList);
|
||||
dutyHoursRecycller.setAdapter(dutyHoursAdapter);
|
||||
addDutyButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
addEmptyDuty(dutyHoursAdapter);
|
||||
}
|
||||
});
|
||||
}
|
||||
userRoom.setText(String.format("%s", tutorTabViewModel.getRoom()));
|
||||
userEmail.setText(String.format("%s", tutorTabViewModel.getEmailTutorTab()));
|
||||
if (!tutorTabViewModel.getNote().equals("")) {
|
||||
userNote.setText(String.format("%s", tutorTabViewModel.getNote()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
int code = ((HttpException) e).response().code();
|
||||
if( code == 404){
|
||||
ifTutorTabExists = false;
|
||||
dutyHoursAdapter = new DutyHoursAdapter(getApplicationContext(),new ArrayList<DutyHourViewModel>());
|
||||
dutyHoursRecycller.setAdapter(dutyHoursAdapter);
|
||||
addDutyButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
addEmptyDuty(dutyHoursAdapter);
|
||||
}
|
||||
});
|
||||
}
|
||||
showError(e);
|
||||
}
|
||||
}));
|
||||
|
||||
|
||||
getTutorTab();
|
||||
|
||||
findViewById(R.id.contentTutorTabInfoImageButton).setOnClickListener(v-> InfoHelperUtils.infoPopUp(v,R.layout.info_popup_tutor_tab));
|
||||
|
||||
userName.setText(String.format("%s %s", PrefUtils.getUserFirstName(getApplicationContext()), PrefUtils.getUserLastName(getApplicationContext())));
|
||||
|
||||
disposable.add(
|
||||
|
||||
userService.getUserById(PrefUtils.getUserId(getApplicationContext()))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
@ -153,7 +107,46 @@ public class TutorTab extends AppCompatActivity {
|
||||
}
|
||||
}));
|
||||
setUpSaveListener(saveButon);
|
||||
scrapButton.setOnClickListener(view -> scrapTutorTab());
|
||||
}
|
||||
|
||||
private void getTutorTab(){
|
||||
disposable.add(
|
||||
tutorTabService.apiUsersTutorTabByTutorIdGet(PrefUtils.getUserId(getApplicationContext()))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribeWith(new DisposableSingleObserver<TutorTabViewModel>() {
|
||||
@Override
|
||||
public void onSuccess(TutorTabViewModel tutorTabViewModel) {
|
||||
|
||||
dutyHourList = tutorTabViewModel.getDutyHours();
|
||||
if(dutyHourList != null){
|
||||
dutyHoursAdapter = new DutyHoursAdapter(getApplicationContext(),dutyHourList);
|
||||
dutyHoursRecycller.setAdapter(dutyHoursAdapter);
|
||||
addDutyButton.setOnClickListener(v -> addEmptyDuty(dutyHoursAdapter));
|
||||
}
|
||||
userRoom.setText(String.format("%s", tutorTabViewModel.getRoom()));
|
||||
userEmail.setText(String.format("%s", tutorTabViewModel.getEmailTutorTab()));
|
||||
if (!tutorTabViewModel.getNote().equals("")) {
|
||||
userNote.setText(String.format("%s", tutorTabViewModel.getNote()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
int code = ((HttpException) e).response().code();
|
||||
if( code == 404){
|
||||
ifTutorTabExists = false;
|
||||
dutyHoursAdapter = new DutyHoursAdapter(getApplicationContext(),new ArrayList<DutyHourViewModel>());
|
||||
dutyHoursRecycller.setAdapter(dutyHoursAdapter);
|
||||
addDutyButton.setOnClickListener(v -> addEmptyDuty(dutyHoursAdapter));
|
||||
}
|
||||
showError(e);
|
||||
}
|
||||
}));
|
||||
|
||||
}
|
||||
|
||||
private void addEmptyDuty(DutyHoursAdapter adapter){
|
||||
adapter.addDuty(new DutyHourViewModel());
|
||||
adapter.notifyItemInserted(adapter.getItemCount());
|
||||
@ -161,20 +154,17 @@ public class TutorTab extends AppCompatActivity {
|
||||
}
|
||||
|
||||
private void setUpSaveListener(Button button) {
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
newTab = new TutorTabViewModel(PrefUtils.getUserId(getApplicationContext()),
|
||||
userRoom.getText().toString(),
|
||||
userEmail.getText().toString(),
|
||||
userNote.getText().toString(),
|
||||
dutyHoursAdapter.getDutyList());
|
||||
if(ifTutorTabExists){
|
||||
putUserTab(newTab);
|
||||
}else{
|
||||
postUserTab(newTab);
|
||||
ifTutorTabExists=true;
|
||||
}
|
||||
button.setOnClickListener(view -> {
|
||||
newTab = new TutorTabViewModel(PrefUtils.getUserId(getApplicationContext()),
|
||||
userRoom.getText().toString(),
|
||||
userEmail.getText().toString(),
|
||||
userNote.getText().toString(),
|
||||
dutyHoursAdapter.getDutyList());
|
||||
if(ifTutorTabExists){
|
||||
putUserTab(newTab);
|
||||
}else{
|
||||
postUserTab(newTab);
|
||||
ifTutorTabExists=true;
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -185,23 +175,35 @@ public class TutorTab extends AppCompatActivity {
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(this::handleResponsePut, this::handleError));
|
||||
}
|
||||
|
||||
private void postUserTab(TutorTabViewModel tutorTabViewModel) {
|
||||
disposable.add(tutorTabService.apiUsersTutorTabByTutorIdPost(PrefUtils.getUserId(getApplicationContext()), tutorTabViewModel)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(this::handleResponsePost, this::handleError));
|
||||
}
|
||||
private void scrapTutorTab() {
|
||||
|
||||
disposable.add(tutorTabService.apiUsersScrapTutorTabByTutorIdPost(PrefUtils.getUserId(getApplicationContext()))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(this::handleResponseScrap, this::handleError));
|
||||
|
||||
}
|
||||
|
||||
private void handleResponseScrap() {
|
||||
Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.scrap_tutor_msg), Toast.LENGTH_SHORT).show();
|
||||
getTutorTab();
|
||||
}
|
||||
|
||||
private void handleResponsePut(Response<Void> resp) {
|
||||
Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.updateToast), Toast.LENGTH_SHORT).show();
|
||||
|
||||
}
|
||||
|
||||
private void handleResponsePost(TutorTabViewModel tutorTabViewModel ) {
|
||||
Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.updateToast), Toast.LENGTH_SHORT).show();
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void handleError(Throwable error) {
|
||||
if (error instanceof HttpException) {
|
||||
|
||||
@ -212,6 +214,10 @@ public class TutorTab extends AppCompatActivity {
|
||||
} else {
|
||||
Toast.makeText(getApplicationContext(),
|
||||
"Network error " + error.getMessage(), Toast.LENGTH_SHORT).show();
|
||||
|
||||
|
||||
Log.e("WMI SUCC", String.valueOf(error));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -330,7 +330,12 @@ public class BackgroundLocalizationService extends Service {
|
||||
String locationLevel = PrefUtils.getLocationLevel(getApplicationContext());
|
||||
String status = (PrefUtils.isStatusEnabled(getApplicationContext())) ? PrefUtils.getUserStatus(getApplicationContext()) : "";
|
||||
|
||||
|
||||
if (locationLevel.equals(SharingLevel.PRESENCE.toString())) {
|
||||
if(!MapUtils.checkIfCoordinateIsValid(latitude,longitude)){
|
||||
return null;
|
||||
}
|
||||
|
||||
latitude = presenceLatitude;
|
||||
longitude = presenceLongitude;
|
||||
approximatedBuildingPart = presenceApproximatedName;
|
||||
|
@ -3,6 +3,7 @@ package com.uam.wmi.findmytutor.service;
|
||||
|
||||
import com.uam.wmi.findmytutor.model.TutorTabViewModel;
|
||||
|
||||
import io.reactivex.Completable;
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.Single;
|
||||
import retrofit2.Response;
|
||||
@ -17,7 +18,7 @@ public interface TutorTabApi {
|
||||
* @return Call<Void>
|
||||
*/
|
||||
@POST("api/users/scrapTutorTab/{tutorId}")
|
||||
Observable<Void> apiUsersScrapTutorTabByTutorIdPost(
|
||||
Completable apiUsersScrapTutorTabByTutorIdPost(
|
||||
@retrofit2.http.Path("tutorId") String tutorId
|
||||
);
|
||||
|
||||
@ -27,7 +28,7 @@ public interface TutorTabApi {
|
||||
* @return Call<Void>
|
||||
*/
|
||||
@POST("api/users/scrapTutorTab")
|
||||
Observable<Void> apiUsersScrapTutorTabPost();
|
||||
Single<Void> apiUsersScrapTutorTabPost();
|
||||
|
||||
|
||||
/**
|
||||
|
@ -77,6 +77,10 @@ public class MapUtils {
|
||||
return outsideLatitudeRange.contains(coordinate.getLatitude()) && outsideLongitudeRange.contains(coordinate.getLongitude());
|
||||
}
|
||||
|
||||
public static Boolean checkIfCoordinateIsValid(Double latitude, Double longitude){
|
||||
return Const.buildingLatitudeRange.contains(latitude) && Const.buildingLongitudeRange.contains(longitude);
|
||||
}
|
||||
|
||||
// Function for marker animation
|
||||
public static class LatLngEvaluator implements TypeEvaluator<LatLng> {
|
||||
// Method is used to interpolate the marker animation.
|
||||
|
@ -7,6 +7,8 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
@ -16,14 +18,24 @@
|
||||
android:paddingLeft="@dimen/activity_margin"
|
||||
android:paddingRight="@dimen/activity_margin"
|
||||
android:paddingTop="@dimen/activity_margin">
|
||||
<LinearLayout android:layout_width="fill_parent"
|
||||
android:id="@+id/linearLayout1" android:layout_height="wrap_content">
|
||||
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/scrapTutorTab"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1.0"
|
||||
android:text="@string/scrap_tutor_tab" />
|
||||
<ImageButton
|
||||
android:id="@+id/contentTutorTabInfoImageButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="right"
|
||||
android:layout_gravity="end"
|
||||
mapbox:srcCompat="@drawable/outline_info_24"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
<TextView
|
||||
android:id="@+id/userName"
|
||||
android:layout_width="wrap_content"
|
||||
@ -122,14 +134,19 @@
|
||||
android:layout_height="100dp"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<LinearLayout android:layout_width="fill_parent"
|
||||
android:id="@+id/linearLayout1" android:layout_height="wrap_content">
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/addDuty"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_weight="1.0"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/addDuty"
|
||||
android:layout_gravity="end"/>
|
||||
|
||||
android:layout_gravity="end"
|
||||
android:text="@string/addDuty" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:textSize="16sp"
|
||||
|
@ -29,7 +29,7 @@
|
||||
<string name="mockup_location_string">\"\"</string>
|
||||
<string name="pref_header_about">O aplikacji</string>
|
||||
<string name="summary_about">
|
||||
Jesteśmy grupą studentów, która chce pomoć w rozwoju naszego wydziału.\nDziękujemy za używanie naszej aplikacji.\nZespół FMT.!</string>
|
||||
Jesteśmy grupą studentów, która chce pomoć w rozwoju naszego wydziału.\nDziękujemy za używanie naszej aplikacji.\nZespół FMT</string>
|
||||
<string name="app_version">0.1.0</string>
|
||||
<string name="summary_support">Masz jakieś pytania? Uwagi? Chętnie odpiszemy!</string>
|
||||
<string name="title_send_feedback">Skontaktuj się z nami</string>
|
||||
@ -92,7 +92,7 @@
|
||||
<string name="title_manual_location">Dodaj ręczną lokalizacje</string>
|
||||
<string name="assembly_a">Skrzydło A</string>
|
||||
<string name="assembly_c">Skrzydło C</string>
|
||||
<string name="passage_d">ŁącznikD</string>
|
||||
<string name="passage_d">Łącznik D</string>
|
||||
|
||||
<string name="key_language">key_language</string>
|
||||
<string name="title_activity_settings2">Ustawienia</string>
|
||||
@ -118,7 +118,7 @@
|
||||
<string name="userDepartment">Zakład</string>
|
||||
<string name="loading">Ładowanie …</string>
|
||||
<string name="logo_find_my_tutor">Logo find my tutor</string>
|
||||
<string name="prompt_login">Login (Ldap)</string>
|
||||
<string name="prompt_login">Login (LDAP WMI)</string>
|
||||
<string name="action_log_in">Zaloguj!</string>
|
||||
<string name="error_invalid_login_name">Niepoprawny format loginu.</string>
|
||||
<string name="user_list_nav">Kadra</string>
|
||||
@ -138,8 +138,8 @@
|
||||
<string name="preference_manual_location_button">Wybierz z mapy</string>
|
||||
<string name="permission_denied_explanation">Odmowa dostępu</string>
|
||||
<string name="permission_rationale">Uprawnienia powinny zostać przyznane.</string>
|
||||
<string name="title_feedback_report_notice">Powiedz nam co myślisz!(max 1000 znaków)</string>
|
||||
<string name="title_bug_report_notice">Powiedz nam co zauważyłeś!(max 1000 znaków)</string>
|
||||
<string name="title_feedback_report_notice">Powiedz nam co myślisz! (max 1000 znaków)</string>
|
||||
<string name="title_bug_report_notice">Powiedz nam co zauważyłeś! (max 1000 znaków)</string>
|
||||
<string name="title_bug_report">ZGŁOŚ BUG</string>
|
||||
<string name="title_feedback_report">FEEDBACK</string>
|
||||
<string name="modal_feedback_send">WYŚLIJ</string>
|
||||
@ -159,7 +159,7 @@
|
||||
<string name="network_error">Błąd sieci!</string>
|
||||
<string name="manual_status_error">Błąd podczas pobierania danych.</string>
|
||||
<string name="error_status_fetch">Błąd podczas pobierania statusów.</string>
|
||||
<string name="notification_text">Upss. Coś poszło nie tak. Pracujemy nad tym!</string>
|
||||
<string name="notification_text">Upss. Coś poszło nie tak!</string>
|
||||
<string name="lack_duty_hours">Brak informacji o dyżurze.</string>
|
||||
<string name="lack_note">Brak notatki.</string>
|
||||
<string name="search">Wyszukiwarka</string>
|
||||
@ -194,16 +194,16 @@
|
||||
|
||||
<!--(PL) Sharing Tab info helper-->
|
||||
<string name="info_icon_sharing_tab_p1">W tej zakładce możesz włączyć/wyłączyć udostępnianie swojej lokalizacji oraz ją skonfigurować.</string>
|
||||
<string name="info_icon_sharing_tab_p2">Niektóre zmiany mogą nie być widoczne od razu! Odświeżanie informacji zajmuje do 2 minut.</string>
|
||||
<string name="info_icon_sharing_tab_p2">Niektóre zmiany mogą nie być widoczne od razu! Wyłączenie wysyłania ma skutek natychmiastowy, lecz odświeżanie informacji zajmuje serwerowi do 2 minut.</string>
|
||||
<string name="info_icon_sharing_tab_p3">Udostępniać możesz na jednym z 4 poziomów:</string>
|
||||
<string name="info_icon_sharing_tab_p3_level_exact"><b>dokładny </b> - lokalizacja wyświetlana na mapie na podstawie GPS</string>
|
||||
<string name="info_icon_sharing_tab_p3_level_approximate"><b>przybliżony</b> - przybliżona lokalizacja wyświetlana na podstawie GPS</string>
|
||||
<string name="info_icon_sharing_tab_p3_level_manual"><b>manualny</b> - udostępnianie z ręcznie wybranego punktu na mapie</string>
|
||||
<string name="info_icon_sharing_tab_p3_level_presence"><b>tylko obecność</b> - udostępnianie jedynie informacji o pojawieniu się na wydziale (aktywny na liście), bez udostępniania lokalizacji</string>
|
||||
<string name="info_icon_sharing_tab_p4">Każdy poziom z wyjątkiem manualnie wybranej lokalizacji automatycznie zaczyna udostępniać po wejściu na wydział i przestaje udostępniać po jego opuszczeniu. Wystarczy włączyć udostępnianie, a lokalizacja nie będzie udostępniana tylko przy obecności na wydziale.</string>
|
||||
<string name="info_icon_sharing_tab_p4">Każdy poziom z wyjątkiem manualnie wybranej lokalizacji automatycznie zaczyna udostępniać po wejściu na wydział i przestaje udostępniać po jego opuszczeniu. Wystarczy włączyć udostępnianie, a lokalizacja będzie udostępniana tylko przy obecności na wydziale.</string>
|
||||
<string name="info_icon_sharing_tab_p5">Udostępnianie w dowolnym momencie można wyłączyć za pomocą przełącznika.</string>
|
||||
<string name="info_icon_sharing_tab_p6">Dodatkowo, do Twojej lokalizacji możesz dodać status opisowy (będzie on widoczny dla użytkowników po kliknięciu w marker).</string>
|
||||
<string name="info_icon_sharing_tab_p7">Zarówno manualne lokalizacje jak i statusy możesz dodać do listy, które potem możesz wybrać w wygodny sposób.</string>
|
||||
<string name="info_icon_sharing_tab_p7">Zarówno manualne lokalizacje jak i statusy możesz dodać do listy, z której możesz potem je wybrać w wygodny sposób.</string>
|
||||
<!--(PL) Userlist Tab info helper-->
|
||||
<string name="info_icon_userlist_tab_p1">W tym panelu znajduje się listę profesorów.</string>
|
||||
<string name="info_icon_userlist_tab_p2">Ich status symbolizowany jest przez kolorowe kropki:</string>
|
||||
@ -219,7 +219,7 @@
|
||||
<string name="pref_acra_disabled" translatable="false">Pozwól na wysyłanie raportów o błędach.</string>
|
||||
<string name="pref_acra_enabled" translatable="false">Pozwól na wysyłanie raportów o błędach.</string>
|
||||
<string name="pref_title_acra" translatable="false">Raportowanie błędów.</string>
|
||||
<string name="acra_toast_text" translatable="false">Błąd aplikacji. Informacje o błędzie zostanie wysłana do twórców.</string>
|
||||
<string name="acra_toast_text" translatable="false">Błąd aplikacji. Informacje o błędzie zostaną wysłane do twórców.</string>
|
||||
|
||||
|
||||
<string name="hint_duty_day">Dzień</string>
|
||||
@ -239,6 +239,9 @@
|
||||
<string name="negative_dialog_button">Nie</string>
|
||||
<string name="enable_sharing_question">Aby skorzystać z tej funkcji musisz pozwolić na udostępnianie lokalizacji. Zgadzasz sie?</string>
|
||||
<string name="sharing_modal_title">Udostępnianie</string>
|
||||
<string name="scrap_tutor_tab">Pobierz dane z WMI</string>
|
||||
<string name="scrap_tutor_msg">Dane zostały zaktualizwane!</string>
|
||||
|
||||
</resources>
|
||||
|
||||
|
||||
|
@ -279,7 +279,7 @@
|
||||
|
||||
<!--(ENG) Sharing Tab info helper-->
|
||||
<string name="info_icon_sharing_tab_p1">In this tab you can turn on/off sharing your localization and configure it.</string>
|
||||
<string name="info_icon_sharing_tab_p2">Some of the changes may not happen immediately! Refreshing information takes up to 2 minutes.</string>
|
||||
<string name="info_icon_sharing_tab_p2">Some of the changes may not be visible immediately! Turning sharing off is stopping the sharing immediately, but refreshing information by server takes up to 2 minutes.</string>
|
||||
<string name="info_icon_sharing_tab_p3">You can share your localization on one of the 4 levels:</string>
|
||||
<string name="info_icon_sharing_tab_p3_level_exact"><b>exact</b> - localization displayed on a map, based on GPS</string>
|
||||
<string name="info_icon_sharing_tab_p3_level_approximate"><b>approximated</b> - approximated localization based on GPS</string>
|
||||
@ -319,4 +319,7 @@
|
||||
<string name="enable_sharing_question">In order to use this function, you have to enable localization sharing. May I do it for you?</string>
|
||||
<string name="sharing_modal_title">Sharing</string>
|
||||
<string name="lack_of_status">The user hasn\'t defined a status.</string>
|
||||
<string name="scrap_tutor_tab">Scrap!</string>
|
||||
<string name="scrap_tutor_msg">Thank you for scraping your tab!</string>
|
||||
|
||||
</resources>
|
||||
|
Loading…
Reference in New Issue
Block a user