From a7f31b3b4176407eaf92472bb232212173636450 Mon Sep 17 00:00:00 2001 From: Domagalski Date: Mon, 7 Jan 2019 20:39:16 +0100 Subject: [PATCH] manual loc + black white list string fixes --- app/build.gradle | 4 +- .../wmi/findmytutor/activity/BlackList.java | 5 +- .../wmi/findmytutor/activity/MapActivity.java | 74 +++++++++++--- .../wmi/findmytutor/activity/WhiteList.java | 5 +- .../BackgroundLocalizationService.java | 4 +- .../com/uam/wmi/findmytutor/utils/Const.java | 1 + .../uam/wmi/findmytutor/utils/PrefUtils.java | 6 +- .../exact_localization_marker_minus_1.png | Bin 1889 -> 7542 bytes .../drawable/manual_localization_marker_0.png | Bin 0 -> 6094 bytes .../drawable/manual_localization_marker_1.png | Bin 0 -> 5686 bytes .../drawable/manual_localization_marker_2.png | Bin 0 -> 6022 bytes .../drawable/manual_localization_marker_3.png | Bin 0 -> 5929 bytes .../manual_localization_marker_minus_1.png | Bin 1873 -> 5886 bytes .../main/res/layout/activity_black_list.xml | 2 +- .../main/res/layout/activity_white_list.xml | 2 +- app/src/main/res/layout/location_modal.xml | 91 +++++++++++------- app/src/main/res/values-pl/strings.xml | 3 + app/src/main/res/values/strings.xml | 12 ++- 18 files changed, 145 insertions(+), 64 deletions(-) create mode 100644 app/src/main/res/drawable/manual_localization_marker_0.png create mode 100644 app/src/main/res/drawable/manual_localization_marker_1.png create mode 100644 app/src/main/res/drawable/manual_localization_marker_2.png create mode 100644 app/src/main/res/drawable/manual_localization_marker_3.png diff --git a/app/build.gradle b/app/build.gradle index f019038..02412b7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -26,7 +26,7 @@ android { repositories { maven { url 'http://dl.bintray.com/amulyakhare/maven' - } + } } def acraVersion = '5.2.1' @@ -36,8 +36,6 @@ dependencies { implementation "ch.acra:acra-notification:$acraVersion" implementation "ch.acra:acra-limiter:$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/src/main/java/com/uam/wmi/findmytutor/activity/BlackList.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/BlackList.java index ce91562..47f2d79 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/BlackList.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/BlackList.java @@ -104,11 +104,11 @@ public class BlackList extends AppCompatActivity { .create(UserService.class); if (PrefUtils.isBlackListing(this)){ - aSwitch.setText(getString(R.string.action_black_list) +" ON"); + aSwitch.setText(getString(R.string.action_black_list) + " " +getString(R.string.on) ); aSwitch.setChecked(true); handleChangeRequest(true); }else{ - aSwitch.setText(getString(R.string.action_black_list) +" OFF"); + aSwitch.setText(getString(R.string.action_black_list) + " " +getString(R.string.off) ); aSwitch.setChecked(false); handleChangeRequest(false); } @@ -184,6 +184,7 @@ public class BlackList extends AppCompatActivity { @Override public void onComplete() { Collections.sort(blacklistedUsers, (a, b) -> sortByUserName(a,b)); + didFetched = true; refreshUI(); } })); 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 2822ed9..bf3f3ca 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 @@ -4,6 +4,7 @@ import android.Manifest; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.annotation.SuppressLint; +import android.graphics.Typeface; import android.location.Location; import android.os.Bundle; import android.os.Handler; @@ -13,9 +14,11 @@ import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; +import android.view.WindowManager; import android.view.animation.LinearInterpolator; import android.widget.Button; import android.widget.EditText; +import android.widget.NumberPicker; import android.widget.TextView; import android.widget.Toast; @@ -49,6 +52,7 @@ import com.uam.wmi.findmytutor.service.PredefinedStatusesService; import com.uam.wmi.findmytutor.service.UserService; import com.uam.wmi.findmytutor.utils.ApproximatedLocalization; +import com.uam.wmi.findmytutor.utils.Const; import com.uam.wmi.findmytutor.utils.EnableSharingDialog; import com.uam.wmi.findmytutor.utils.ManualLocationUtils; @@ -58,6 +62,8 @@ import com.uam.wmi.findmytutor.utils.PrefUtils; import com.uam.wmi.findmytutor.utils.RestApiHelper; import com.uam.wmi.findmytutor.utils.SharingLevel; +import org.jetbrains.annotations.NotNull; + import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -101,9 +107,11 @@ public class MapActivity extends BaseActivity private int zoomParam = 17; private int bearingParam = 180; private int tiltParam = 30; + private int floor = Const.defaultFloor; private String myId; private boolean isTutor; private ApproximatedLocalization approximatedLocalization; + String approximatedLocation; private boolean shouldFetchNewCoords = true; @Override @@ -247,9 +255,9 @@ public class MapActivity extends BaseActivity selectLocationButton.setVisibility(View.VISIBLE); removeLocationButton.setVisibility(View.GONE); + String sharingLevel = SharingLevel.MANUAL.toString(); + Icon defaultIcon = getMapIcon(sharingLevel, myId, floor); if (tmpLocalMarker == null) { - String sharingLevel = SharingLevel.MANUAL.toString(); - Icon defaultIcon = getMapIcon(sharingLevel, myId); MarkerOptions markerOptions = new MarkerOptions() .setIcon(defaultIcon) @@ -259,6 +267,7 @@ public class MapActivity extends BaseActivity new MapMarker(tmpLocalMarker, markerOptions, defaultIcon, sharingLevel); } else { + tmpLocalMarker.setIcon(defaultIcon); ValueAnimator markerAnimator = ObjectAnimator.ofObject(tmpLocalMarker, "position", new MapUtils.LatLngEvaluator(), tmpLocalMarker.getPosition(), latLng); markerAnimator.setDuration(2000); @@ -268,7 +277,7 @@ public class MapActivity extends BaseActivity selectLocationButton.setOnClickListener((View view) -> { if (tmpLocalMarker != null) { - String approximatedLocation = approximatedLocalization.getNameOfBuildingPart(Point.fromLngLat(latLng.getLongitude(), latLng.getLatitude())); + approximatedLocation = approximatedLocalization.getNameOfBuildingPart(Point.fromLngLat(latLng.getLongitude(), latLng.getLatitude())); try { droppedMarkercoordinate = new Coordinate( @@ -312,7 +321,7 @@ public class MapActivity extends BaseActivity } public void showLocationDialog(LatLng latLng) { - + floor = Const.defaultFloor; LayoutInflater layoutInflaterAndroid = LayoutInflater.from(getApplicationContext()); @SuppressLint("InflateParams") View view = layoutInflaterAndroid.inflate(R.layout.location_modal, null); AlertDialog.Builder alertDialogBuilderUserInput = new android.support.v7.app.AlertDialog.Builder(this); @@ -322,10 +331,31 @@ public class MapActivity extends BaseActivity alertDialogBuilderUserInput .setPositiveButton(R.string.lbl_ok, null) .setNegativeButton(R.string.lbl_cancel, null); - final AlertDialog alertDialog = alertDialogBuilderUserInput.create(); - + alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); EditText modalUserInput = view.findViewById(R.id.manual_input); + NumberPicker numberPicker = view.findViewById(R.id.manualFloorNumberPicker); + //Initializing a new string array with elements + final String[] values= {"-1","0","1", "2", "3"}; +// modifyDataForNumberPicker(values); + //Populate NumberPicker values from String array values + //Set the minimum value of NumberPicker + numberPicker.setMinValue(0); //from array first value + //Specify the maximum value/number of NumberPicker + numberPicker.setMaxValue(values.length-1); //to array last value + //Specify the NumberPicker data source as array elements + numberPicker.setDisplayedValues(values); + numberPicker.setValue(1); + //Gets whether the selector wheel wraps when reaching the min/max value. + numberPicker.setWrapSelectorWheel(false); + //Set a value change listener for NumberPicker + numberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal){ + //Display the newly selected value from picker + floor = newVal-1; + } + }); alertDialog.setOnShowListener(dialogInterface -> { Button sendButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE); @@ -345,8 +375,12 @@ public class MapActivity extends BaseActivity Toast.makeText(getApplicationContext(), getApplicationContext().getString(R.string.modal_location_hint), Toast.LENGTH_SHORT).show(); modalUserInput.requestFocus(); } else { + latLng.setAltitude((double) floor); sendLocation(body, latLng); +// Toast.makeText(getApplicationContext(), "Flooor: "+floor, Toast.LENGTH_SHORT).show(); PrefUtils.putCurrentManualLocationName(getApplicationContext(), body); + PrefUtils.putManualLocation(getApplicationContext(),latLng, approximatedLocation); + handleBackgroundTaskLifeCycle(); alertDialog.dismiss(); } }); @@ -427,10 +461,11 @@ public class MapActivity extends BaseActivity String newLabel = element.getLabel(); String newSharingLevel = element.getDisplayMode(); + Coordinate coordinate = coordsMap.get(id); Log.e(tag, "hashMapSize: " + coordsMap.size()); - Log.e(tag, "markerMapSize: " + coordsMap.size()); + Log.e(tag, "markerMapSize: " + markerHash.size()); if (coordinate != null) { @@ -446,7 +481,7 @@ public class MapActivity extends BaseActivity showModalAfterAnimation = true; } - LatLng toDestination = new LatLng(element.getLatitude(), element.getLongitude()); + LatLng toDestination = new LatLng(element.getLatitude(), element.getLongitude(), element.getAltitude()); ValueAnimator markerAnimator = ObjectAnimator.ofObject(marker, "position", new MapUtils.LatLngEvaluator(), @@ -456,8 +491,8 @@ public class MapActivity extends BaseActivity markerAnimator.setInterpolator(new LinearInterpolator()); markerAnimator.start(); - coordsMap.put(id, element); + marker.setIcon(getMapIcon(element.getDisplayMode(), id, element.getAltitude())); marker.setPosition(toDestination); @@ -474,7 +509,7 @@ public class MapActivity extends BaseActivity coordsMap.put(id, element); String sharingLevel = coordsMap.get(id).getDisplayMode(); - Icon defaultIcon = getMapIcon(sharingLevel, id); + Icon defaultIcon = getMapIcon(sharingLevel, id, element.getAltitude()); MarkerOptions markerOptions = new MarkerOptions() .setIcon(defaultIcon) @@ -493,7 +528,7 @@ public class MapActivity extends BaseActivity Boolean newLocalizationMode = markerHash.get(id).getMarkerType().equals(newSharingLevel); if (!newLocalizationMode) { - Icon defaultIcon = getMapIcon(newSharingLevel, id); + Icon defaultIcon = getMapIcon(newSharingLevel, id, element.getAltitude()); MapMarker marker = markerHash.get(id); coordsMap.get(id).setDisplayMode(newSharingLevel); @@ -519,14 +554,27 @@ public class MapActivity extends BaseActivity ); } - private Icon getMapIcon(String sharingLevel, String id) { + private Icon getMapIcon(String sharingLevel, String id, double Altitude ) { Icon defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.exact_localization_marker); if (sharingLevel.equals(SharingLevel.APPROXIMATED.toString())) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.approximate_localization_marker); } else if (sharingLevel.equals(SharingLevel.MANUAL.toString()) || sharingLevel.equals(SharingLevel.PREDEFINED.toString())) { - defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker); + + if (Altitude == (double) -1){ + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker_minus_1); + }else if (Altitude == (double) 0) { + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker_0); + }else if (Altitude == (double) 1) { + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker_1); + }else if (Altitude == (double) 2) { + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker_2); + }else if (Altitude == (double) 3) { + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker_3); + } else { + defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.manual_localization_marker); + } } else if (id.equals(myId)) { defaultIcon = IconFactory.getInstance(MapActivity.this).fromResource(R.drawable.my_marker); } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/WhiteList.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/WhiteList.java index aad7e70..c2c9e47 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/WhiteList.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/WhiteList.java @@ -91,11 +91,11 @@ public class WhiteList extends AppCompatActivity { .create(UserService.class); if (PrefUtils.isWhiteListing(this)){ - aSwitch.setText(getString(R.string.action_white_list) +" ON"); + aSwitch.setText(getString(R.string.action_white_list) +" "+getString(R.string.on) ); aSwitch.setChecked(true); handleChangeRequest(true); }else{ - aSwitch.setText(getString(R.string.action_white_list) +" OFF"); + aSwitch.setText(getString(R.string.action_white_list) +" "+getString(R.string.off) ); aSwitch.setChecked(false); handleChangeRequest(false); } @@ -169,6 +169,7 @@ public class WhiteList extends AppCompatActivity { @Override public void onComplete() { Collections.sort(whitelistedUsers, (a, b) -> sortByUserName(a,b)); + didFetched = true; refreshUI(); } })); 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 81fecf3..b3e0fb1 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 @@ -320,13 +320,15 @@ public class BackgroundLocalizationService extends Service { LatLng latLng = PrefUtils.getManualLocation(getApplicationContext()); latitude = latLng.getLatitude(); longitude = latLng.getLongitude(); + altitude = latLng.getAltitude(); + fakeLoc.setAltitude(altitude); approximatedBuildingPart = PrefUtils.getManualLocationApproximation(getApplicationContext()); } Location fakeLoc = new Location(""); - fakeLoc.setLatitude(latitude); fakeLoc.setLongitude(longitude); + coordinatesHistory.add(fakeLoc); try { diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/Const.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/Const.java index b6c0dab..70f72aa 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/Const.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/Const.java @@ -7,6 +7,7 @@ import java.util.List; public class Const { public final static String BASE_URL = "https://s416084.projektstudencki.pl/master/"; + public final static Integer defaultFloor = -255; public final static Integer mapRefreshInterval = 6000; public final static Integer onlineBackgroundLocationInterval = 7000; public final static Integer offlineBackgroundLocationInterval = 360000; diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java index 2ae7c57..4d0b717 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java @@ -180,14 +180,16 @@ public class PrefUtils { /*editor.putBoolean("key_sharing_enabled", true);*/ editor.putLong("longitude_manual_location", Double.doubleToRawLongBits(latLng.getLongitude())); editor.putLong("latitude_manual_location", Double.doubleToRawLongBits(latLng.getLatitude())); + editor.putLong("altitude_manual_location", Double.doubleToRawLongBits(latLng.getAltitude())); editor.apply(); } public static LatLng getManualLocation(Context context) { return new LatLng( Double.longBitsToDouble(getSharedPreferences(context).getLong("latitude_manual_location", 0)), - Double.longBitsToDouble(getSharedPreferences(context).getLong("longitude_manual_location", 0)) - ); + Double.longBitsToDouble(getSharedPreferences(context).getLong("longitude_manual_location", 0)), + Double.longBitsToDouble(getSharedPreferences(context).getLong("altitude_manual_location", Const.defaultFloor)) + ); } public static String getManualLocationApproximation(Context context) { diff --git a/app/src/main/res/drawable/exact_localization_marker_minus_1.png b/app/src/main/res/drawable/exact_localization_marker_minus_1.png index be491823949a42d4933e468c1f92fc3faec2d037..f86da6a1c514ea304d09c338c1c84fde8a1c92e6 100644 GIT binary patch delta 7527 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 delta 1833 zcmV+^2iExZI^hnGBa_?}E`Q<+85J2ESaq%8000K=Nkl0@JQ1}vxy+$gHLnSJZ z5HCh*T9meN3q>K0Lj$Ujq86!1ahk+Q>W%kiKknzu@UZLD8}Hp+yMGo>IZs!2=APf2 zGiS~@a|w0I_V0}EkP17Ynt?>l*D&+C=+^8hPtZ`ZWAr$03*rTj)X)`-TIwiVXZD@26r*RI0OUk79C zPbVjab_ZJAGm!eB6mlSzNFv_Ux@PE-grf}r5nQ|Qg)R3zs(&uL^Tyv+Sp3z2U-b$h zj)kJ}Pi1M4=SC=o$;4jd~F$I3%^&W)(91~2Ij_Y9TA-MZzWnc!3akKp?NcnY$lD* z-nIe#ySC$tUAF-M{{6uvOdOfUhnGG^yeWxTA{hvG?E=h&c`%JVtU+QYfU2u?3Rz?` zY3zF7OW5~hZ`s&G+wR0e+wR0qe?NsI$7iAG28>8UMSne^NUZoEv6BI~R}V$1?rAoY zMpt{=3g~j#_hc`++S`!Lq^s_EiFGeiN_AJl9u0ZDmuIYhur1Ak^o)M>id5#qr5PB#AL)Y-q(Ni_S zzkBTz3|&J|uo4km%LagV7$n}1!iSJvpu$)piQ}_pG5Obb1LsV>{VtBro<%H?tQs#; z_+X4p@w*=GJL5Y3vjhrUsS%1m2@h|bejn$rEPvv2n>Qd4E6)As>LPymhri&ZqyIoW z-iUbfhCr}gFyT86csTM+0)XzP$Bq$EZ|m)yRa0jE`XcgX8jdH*6NAnXOC%9%Y_9tK z#}_{Yl$@G5JiJ3Iz5Inzs@E>$KFKZ>&R{g&glIz}9NU8MoMQ0lA%wyafLPT6V;6FO zl7AqgpO@9+p8nJvF}@|asbgKs;*z!L`8i18pPxBA+)-AKiD*RlUU6mXERL0j@I8QO zBNcnD?*8$Q7-Q}0Y4tK|FU%Ys-dxrQeA0lar=;*<70h+B*27~@ZS#&&Jm|W1v66& zh&77vJy0T!%c=v7h;Z%lc?cownTf%Q=`gU?F^xST zd=G_eX7vG;U4-yG5K~VC>JJ*2{`KIi#OcjkW&u+8bwj1_i|r4mH&4DW^y;d?0Dr)I z?J*)!*VC74_RcqM4aK>NY_+qh?rMW4e)D}>5r5os9a!1Lx?JqJ4ixdnr++)_tm%F{ zHa2D`r8*mQ+5E@%dCKzDeaTH7U|b7yae96Z5sglL>+@nL=dnd1IyXE#?A8rFc<|s> zrBpir0RTb~KXQ&ACB}{9?Hy3!rhkh$C!{aVK}q56>J(q+q?YO?C!z~`_wM~qRq%lW z2Us{9?g6l(X*!e9?|yGVJs*k1(a_YoB2ifREbdCG@7>)j&Q$7>ZQDM%fB$}2agU?X zXm=$j0Nj)GW)p^*v~p%y-|RUStelC2p(gKX6|+Hod`b7p;2Iqr?UYg)fq#WuK3~APxN^dZDlt?`+u&)CdM8Q(jWPZKVE#U54yxy;p&l*k#meO zx9*%QK~mOtQ7S>*k&%&e6^~P)P?!O*_97fCUP<@rGS{b&`Z8CgTrH*CSn`al*Q)>| zW9;&(bM?)VN~M}S&ueCk#g$SG05l@fN|EXV@QElVrOfKOzBn{Alpet?xh1#c|0Vwe XHKRz2Pif8$00000NkvXXu0mjfsD^}G diff --git a/app/src/main/res/drawable/manual_localization_marker_0.png b/app/src/main/res/drawable/manual_localization_marker_0.png new file mode 100644 index 0000000000000000000000000000000000000000..46cd50b0c1ec40d1213ba31569a1137fded75ce9 GIT binary patch literal 6094 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/manual_localization_marker_2.png b/app/src/main/res/drawable/manual_localization_marker_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a1cfd701339c3a72a5f83fc6da8b7a0e42c7ebc7 GIT binary patch literal 6022 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 AHUIzs literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/manual_localization_marker_3.png b/app/src/main/res/drawable/manual_localization_marker_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5c1df0af75ba07a302ae216a65d33d097da52751 GIT binary patch literal 5929 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 LNkvXXu0mjfsa1E? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/manual_localization_marker_minus_1.png b/app/src/main/res/drawable/manual_localization_marker_minus_1.png index 89adebf37357aaf6e127812e01f3be0929ea6513..e85cf2ce8cbcbe28a3a3843e4835cee4bda729ed 100644 GIT binary patch delta 5859 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 delta 1817 zcmV+!2j=+xEzu5;Ba@^ME`Q<+85IK#8{sB$000KwNkl9)x75>hBzcb?* z+Y(rA6cdEqGy>UGTSQ1ywN)voiV`XQ!MF<9Aa#R43YbmW(xjnkyTG_oDzzf(q=wjW z6q=}oL@Mo~jp`=FPD86u1aW{82kh~9-n`#)x|p%C@w}O_V|B$@J%8Pw^WF3J-E$wI zM(J!nwTlRk1F}^FZ2;95XCzC6O8||D;CG`Fd(PIPkE#O>JqN;%M4%G@L(`xu4T_3e zSp*?R2%-oAfCwQ3KOLRu`^l<+yW3BHm%*=#h-K*pl9mNaGXMyrtP+A31#mnMUKoIg zJc4@iwTa%}m(#D68-MKT7{j6XiA|zv38&+rDA;|35^t(`HlH;RdVqUMa0h7$*M6WB19a)4FkAgfQTay zRjx`AK_-!eh}d22r+xqcdT|0rP2GU0>9N)l05=RU>lP3M5kj8<0J^DQ7#cEm0=90% z`pVRFn7V-=ihrI1@H6UeKmF|p{7z#s1yj>wLFYUdvxNd$TI=!D!45q1m307sf4%=1 zUVd>LlmE#glSrV>vSY#hD8#grhX%Dnd#JhRARv!4*r`}od0~JV$HC6-Ry=?5TWD#` zAd%FONa|>5&ET=`eG#{A7I1O=Qy97qU6rK==t{$!Uw;6IZYzjvD_SbCSvl(#u<^l0 z9C%?{?BNc)unij@Y{aZv0L2ob6um04O#x`rl~&O`fgj=NXF958@YBz9An+sjQ5XY@ zd2h5S01cJ0GUNz>A7RVZrmDbOwl*Q~BZM4PtO^1e6oIIgden4UlQkvFMG53u#9Wd1 zbwlCO2Y+e|8*(o<^ zS*SDZn3DoCP9C|uhi^Wy5l;#fEDxybt- z>ei(!Dz!If3AD2*QyBYl@M$g!ft(wi=-Z{2 zeE$m(*;(*?*oG17@|0yEWm)jT0AVRKx~9R>jfFLF;)XsL0;SZ?m)ysl?L${JQXAH# zGk>e@Ix5xfXLGZNgg+h~?|Wd$eXJ?f9}2?_e5|#2fse45RQ+XpuCDe|lSH_GeL91+ zGMb1mmCJ%fJ{g_pYgy6=+&P8X$0Bh2wX@psJ+KHAseOybmjI7U>^=w3Sk5i18E~$6 zTm5}xyx41%1qJ}6tDgA{YXJ%Xq@iaS&VStlBk%9NN<_bQ0uPlqyqZMJZ~_k?`pw8c z_FSp?3Dem=RM3>N*VV1OycWub*&UteOO#s^dyObky%94U&s{}AxrmsdNcG0*kDC}7 z?>$3AZ_j!zcm)=-2xeUuMD+H^c<-4N0~f6}pCCYHoVf~p)KWe!u7y~pdc30UN`I5X z7dl-LtutVT<9jvLY`_c=t@F2IyS-Jtk58O9VT#BmJL5I}>7|W>UV$E7pQ?va<+m^k zrt(=>33>M$-@kImowcTk=+$24Q1tI&w(lOsot{C~S5@UdgZlx^FO09bZ6e*9j;mdT0quac&Tw4GQ+ z6prtsrG4(ehObWlvy3f)>$-nAdh{rljd3!W++Ge809qfteIeBl4m-Y&U{T*3L?ImC zN2(zlZhiFDg_y`0CEd%DYhYkt6EmA}F%Mj&Z{IsPs2Os7+Q~yiAR@)Lkbfc9x9^=C z3|ythmKn1-Ffg!b889<{p<33uIo;f{)PGmZ)pyI_;9x@#1dU3m zw20IJ(21z@$4Ei|ArZ|nbIve~=|hJOÐglY8?2lK%mwn=a7}q7Kg~00000NkvXX Hu0mjfmyv4s diff --git a/app/src/main/res/layout/activity_black_list.xml b/app/src/main/res/layout/activity_black_list.xml index b4c9188..60c0e30 100644 --- a/app/src/main/res/layout/activity_black_list.xml +++ b/app/src/main/res/layout/activity_black_list.xml @@ -40,7 +40,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" - android:text="Block the users" + android:text="@string/block_the_users" android:textSize="15sp"/> - android:layout_width="match_parent" - android:layout_height="match_parent" - android:fontFamily="@font/lato_regular" - android:orientation="vertical" - android:paddingLeft="@dimen/activity_horizontal_margin" - android:paddingTop="@dimen/activity_vertical_margin" - android:paddingRight="@dimen/activity_horizontal_margin" - android:paddingBottom="@dimen/activity_vertical_margin"> + - + - + + - \ No newline at end of file + + + + + + + + + + diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index ba3c288..ac2f6f9 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -276,6 +276,9 @@ Użytkownik został dodany! Użytkownik usunięty! + Piętro + Zablokuj użytkowników + Bądź dostępny dla użytkowników diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 52f5d89..57d1b5b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -223,9 +223,9 @@ User profile Remove Manual location TutorTab - Do you want to save this localization? - Save! - Cancel! + Manual localization + Save + Cancel Your marker will disappear in next couple minutes Manual Locations selected! Location saved! @@ -342,7 +342,7 @@ Network Error ! Search response is empty! - Insert a name for this localization. + Name the localization Online Offline Inactive @@ -351,5 +351,9 @@ User has been added! User removed! + Floor + Block the users + Be visible for these users +