diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 2715a34..30aa626 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -1,29 +1,29 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 80031db..5ccbfb9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,7 +28,9 @@ + android:theme="@style/AppTheme.NoActionBar" + android:screenOrientation="portrait" + android:configChanges="keyboardHidden|orientation|screenSize"> @@ -37,14 +39,20 @@ + android:launchMode="singleTop" + android:screenOrientation="portrait" + android:configChanges="keyboardHidden|orientation|screenSize"/> + android:noHistory="true" + android:screenOrientation="portrait" + android:configChanges="keyboardHidden|orientation|screenSize"/> + android:name=".activity.SettingsActivity" + android:screenOrientation="portrait" + android:configChanges="keyboardHidden|orientation|screenSize"/> + android:theme="@style/AppTheme" + android:screenOrientation="portrait" + android:configChanges="keyboardHidden|orientation|screenSize"/> \ 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 index 0c2298f..3c2eabf 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/FindMyTutor.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/FindMyTutor.java @@ -5,6 +5,8 @@ import android.content.Context; import android.content.SharedPreferences; import android.content.res.Configuration; +import com.uam.wmi.findmytutor.utils.Const; + import static org.acra.ReportField.*; import org.acra.ACRA; import org.acra.annotation.AcraLimiter; @@ -50,7 +52,7 @@ public class FindMyTutor extends Application { builder.getPluginConfigurationBuilder( HttpSenderConfigurationBuilder.class // ).setUri("http://192.168.0.15:3000/api/acra") - ).setUri("https://s416084.projektstudencki.pl/develop/api/Feedback/autoFeedback") + ).setUri(Const.BASE_URL +"api/Feedback/autoFeedback") .setHttpMethod(HttpSender.Method.POST) .setHttpHeaders(header) .setEnabled(true); 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 5be8ec4..3a5956e 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 @@ -7,6 +7,7 @@ import android.app.FragmentTransaction; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Configuration; +import android.graphics.drawable.ColorDrawable; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; @@ -20,10 +21,14 @@ 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.Gravity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.FrameLayout; +import android.widget.LinearLayout; +import android.widget.PopupWindow; import android.widget.Toast; import com.uam.wmi.findmytutor.R; @@ -46,6 +51,7 @@ import io.reactivex.functions.Function; import io.reactivex.schedulers.Schedulers; +import static com.mapbox.mapboxsdk.Mapbox.getApplicationContext; 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; @@ -76,15 +82,18 @@ public abstract class BaseActivity private ActiveFragment activeFragment = ActiveFragment.NONE; private Fragment activeBottomMenu = null; private SearchView searchView; + public MenuItem infoMenuItem; @SuppressLint("CheckResult") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getContentViewId()); + drawerNavigationView = findViewById(R.id.nav_view); sideDrawer = findViewById(R.id.activity_container); feedbackUtils = new FeedbackUtils(BaseActivity.this); + drawerNavigationView.setNavigationItemSelectedListener( item -> { String itemName = (String) item.getTitle(); @@ -191,7 +200,10 @@ public abstract class BaseActivity public void stopBackgroundLocalizationTask() { Intent stopIntent = new Intent(getApplicationContext(), BackgroundLocalizationService.class); stopIntent.putExtra("request_stop", true); - startService(stopIntent); + Log.e("Localization", "JEstem w stop BG"); + + stopService(stopIntent); + } public void startBackgroundLocalizationTask() { @@ -207,12 +219,17 @@ public abstract class BaseActivity } public void handleBackgroundTaskLifeCycle() { + Log.e("Localization", String.valueOf(PrefUtils.isEnableSharingLocalization(getApplicationContext()))); Boolean shouldServiceRun = PrefUtils.isEnableSharingLocalization(getApplicationContext()) && isTutor; + Log.e("Localization", String.valueOf(shouldServiceRun)); if (shouldServiceRun) { startBackgroundLocalizationTask(); + Log.e("Localization", "JEstem i odpalam"); + } else { stopBackgroundLocalizationTask(); + Log.e("Localization", "JEstem i nie odpalam"); } } @@ -266,6 +283,8 @@ public abstract class BaseActivity @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); + infoMenuItem = menu.findItem(R.id.action_info); + MenuItem myActionMenuItem = menu.findItem(R.id.action_search); searchView = (SearchView) myActionMenuItem.getActionView(); @@ -313,6 +332,33 @@ public abstract class BaseActivity if (actionBarDrawerToggle.onOptionsItemSelected(item)) { return true; } + + if (item.getItemId()==R.id.action_info){ + int layoutID; + switch (activeFragment){ + case SHARED_PREFERENCES: + layoutID = R.layout.info_popup_sharing_tab; + break; + case USER_LIST: + layoutID = R.layout.info_popup_userlist; + break; + default: + layoutID = R.layout.info_popup_map; + } + + View popupView = getLayoutInflater().inflate(layoutID,null); + + PopupWindow popupWindow = new PopupWindow(popupView, + LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); + // If the PopupWindow should be focusable + popupWindow.setFocusable(true); + // If you need the PopupWindow to dismiss when when touched outside + popupWindow.setBackgroundDrawable(new ColorDrawable()); + // Get the View's(the one that was clicked in the Fragment) location + View anchorView= getWindow().getDecorView().findViewById(android.R.id.content); + popupWindow.showAtLocation(anchorView,Gravity.TOP|Gravity.END, 0, 0); + } + return super.onOptionsItemSelected(item); } @@ -343,7 +389,7 @@ public abstract class BaseActivity if (itemId == R.id.nav_map) { removeFragment(sharingFragment); removeFragment(userListFragment); - activeFragment = ActiveFragment.NONE; + activeFragment = ActiveFragment.NONE; } else if (itemId == R.id.nav_profile) { loadUserSettingsFragment(); } else if (itemId == R.id.nav_user_list) { 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 d355d2e..b1e9a32 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,8 +4,6 @@ import android.Manifest; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.annotation.SuppressLint; -import android.app.Dialog; -import android.graphics.drawable.ColorDrawable; import android.location.Location; import android.os.Bundle; import android.os.Handler; @@ -13,14 +11,11 @@ import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import android.text.TextUtils; import android.util.Log; -import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.animation.LinearInterpolator; import android.widget.Button; import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.PopupWindow; import android.widget.TextView; import android.widget.Toast; @@ -52,7 +47,9 @@ import com.uam.wmi.findmytutor.service.CoordinateService; 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.InfoHelperUtils; + +import com.uam.wmi.findmytutor.utils.EnableSharingDialog; + import com.uam.wmi.findmytutor.utils.ManualLocationUtils; import com.uam.wmi.findmytutor.utils.MapMarker; import com.uam.wmi.findmytutor.utils.MapUtils; @@ -73,8 +70,6 @@ import io.reactivex.schedulers.Schedulers; import okhttp3.ResponseBody; import timber.log.Timber; -import static com.mapbox.mapboxsdk.Mapbox.getApplicationContext; - public class MapActivity extends BaseActivity implements PermissionsListener, OnMapReadyCallback { @@ -111,6 +106,7 @@ public class MapActivity extends BaseActivity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + isTutor = PrefUtils.getIsTutor(this); myId = PrefUtils.getUserId(getApplicationContext()); @@ -131,7 +127,7 @@ public class MapActivity extends BaseActivity }; - findViewById(R.id.mapInfoImageButton).setOnClickListener(v-> InfoHelperUtils.infoPopUp(v, R.layout.info_popup_map)); + selectLocationButton = findViewById(R.id.select_location_button); removeLocationButton = findViewById(R.id.remove_location_button); mapView = findViewById(R.id.mapView); @@ -142,7 +138,6 @@ public class MapActivity extends BaseActivity handleBackgroundTaskLifeCycle(); manualLocationUtils = new ManualLocationUtils(MapActivity.this); approximatedLocalization = new ApproximatedLocalization(MapUtils.loadJsonFromAsset(getApplicationContext(), "building.geojson")); - } @Override @@ -155,7 +150,7 @@ public class MapActivity extends BaseActivity String id = markerUserHash.get(marker.getId()); String locationLevel = PrefUtils.getLocationLevel(getApplicationContext()); - if (id.equals(myId) && (locationLevel.equals(SharingLevel.MANUAL.toString()) || locationLevel.equals(SharingLevel.PREDEFINED.toString()))) { + /* if (id.equals(myId) && (locationLevel.equals(SharingLevel.MANUAL.toString()) || locationLevel.equals(SharingLevel.PREDEFINED.toString()))) { selectLocationButton.setVisibility(View.GONE); removeLocationButton.setVisibility(View.VISIBLE); @@ -166,9 +161,9 @@ public class MapActivity extends BaseActivity Toast.makeText(MapActivity.this, R.string.manual_marker_info, Toast.LENGTH_SHORT).show(); }); - } else { + } else {*/ createMarkerModal(id); - } + /* }*/ return true; }); @@ -220,14 +215,19 @@ public class MapActivity extends BaseActivity TextView sharingLevelView = view.findViewById(R.id.sharing_level); userName.setText(String.format("%s %s", user.getFirstName(), user.getLastName())); - status.setText(String.format("%s: %s", getResources().getString(R.string.status_switch_title), cordStatus)); + + if(cordStatus.equals("")){ + status.setText(String.format("%s: %s", getResources().getString(R.string.status_switch_title), getString(R.string.lack_of_status))); + }else{ + status.setText(String.format("%s: %s", getResources().getString(R.string.status_switch_title), cordStatus)); + } + sharingLevelView.setText(String.format("%s: %s", getResources().getString(R.string.settings_location_level), sharingLevel)); final AlertDialog alertDialog = alertDialogBuilderUserInput.create(); alertDialog.show(); } - private void handleError(Throwable error) { showError(error); } @@ -235,8 +235,6 @@ public class MapActivity extends BaseActivity private void showError(Throwable e) { String message; - Log.e("ERR", e.toString()); - if (e instanceof HttpException) { ResponseBody responseBody = ((HttpException) e).response().errorBody(); message = RestApiHelper.getErrorMessage(responseBody); @@ -291,6 +289,11 @@ public class MapActivity extends BaseActivity PrefUtils.getLocationLevel(getApplicationContext()) ); + if (!PrefUtils.isEnableSharingLocalization(getApplicationContext())) { + EnableSharingDialog sharingDialog = new EnableSharingDialog(); + sharingDialog.show(getFragmentManager(), "Sharing"); + } + PrefUtils.putManualLocation(this, latLng, approximatedLocation); handleBackgroundTaskLifeCycle(); @@ -334,10 +337,14 @@ public class MapActivity extends BaseActivity alertDialog.setOnShowListener(dialogInterface -> { Button sendButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE); - Button dismissButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE); - dismissButton.setOnClickListener(view1 -> alertDialog.dismiss()); + dismissButton.setOnClickListener(view1 -> { + PrefUtils.putCurrentManualLocationName(getApplicationContext(), "Inne"); + PrefUtils.putCurrentManualLocation(getApplicationContext(), "-1"); + + alertDialog.dismiss(); + }); sendButton.setOnClickListener(view1 -> { String body = modalUserInput.getText().toString(); @@ -347,7 +354,7 @@ public class MapActivity extends BaseActivity modalUserInput.requestFocus(); } else { sendLocation(body, latLng); - PrefUtils.putCurrentManualLocationName(getApplicationContext(),body); + PrefUtils.putCurrentManualLocationName(getApplicationContext(), body); alertDialog.dismiss(); } }); diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java index 1b7a63d..fa54e0f 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java @@ -11,6 +11,7 @@ import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; import android.util.DisplayMetrics; +import android.util.Log; import android.view.MenuItem; import com.uam.wmi.findmytutor.R; @@ -54,7 +55,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity { Preference languagesList = findPreference(getResources().getString(R.string.key_language)); languagesList.setDefaultValue(0); - if(PrefUtils.getLocale(getActivity()).equals("pl")){ + if(PrefUtils.getLocale(getActivity()).equals("1")){ languagesList.setDefaultValue(1); } 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 1ede65f..1eee441 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 @@ -2,6 +2,7 @@ package com.uam.wmi.findmytutor.activity; import android.annotation.SuppressLint; import android.app.FragmentTransaction; +import android.content.SharedPreferences; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; @@ -21,6 +22,8 @@ import com.uam.wmi.findmytutor.R; import com.uam.wmi.findmytutor.model.PredefinedCoordViewModel; import com.uam.wmi.findmytutor.network.ApiClient; import com.uam.wmi.findmytutor.service.PredefinedStatusesService; +import com.uam.wmi.findmytutor.utils.Const; +import com.uam.wmi.findmytutor.utils.EnableSharingDialog; import com.uam.wmi.findmytutor.utils.PrefUtils; import com.uam.wmi.findmytutor.utils.RestApiHelper; import com.uam.wmi.findmytutor.utils.RightButtonPreference; @@ -40,7 +43,7 @@ import okhttp3.ResponseBody; import static com.mapbox.mapboxsdk.Mapbox.getApplicationContext; -public class SharingFragment extends PreferenceFragment { +public class SharingFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener { protected SwitchPreference locationSharing; protected Preference locationMode; protected ListPreference manualLocationList; @@ -67,7 +70,7 @@ public class SharingFragment extends PreferenceFragment { @Override public void onSuccess(List strings) { String[] statusesArray = strings.toArray(new String[strings.size()]); - setListPreferenceData(statusList, statusesArray,null); + setListPreferenceData(statusList, statusesArray, null); } @Override @@ -86,25 +89,27 @@ public class SharingFragment extends PreferenceFragment { @Override public void onSuccess(List coords) { - List names = Stream.of(coords).map(PredefinedCoordViewModel::getName).collect(com.annimon.stream.Collectors.toList()); - predefinedCoordsList.addAll(coords); - String[] stringnames = names.toArray(new String[0]); String currentCoordId = PrefUtils.getCurrentManualLocation(getApplicationContext()); - List activeId = Stream.of(coords).indexed() + List predefinedLocationsNames = Stream.of(coords).map(PredefinedCoordViewModel::getName).toList(); + predefinedCoordsList.addAll(coords); + + String[] stringnames = predefinedLocationsNames.toArray(new String[0]); + + List activesId = Stream.of(coords).indexed() .filter(v -> v.getSecond().getPredefinedCoordinateId().equals(currentCoordId)).map(IntPair::getFirst).toList(); - if(activeId.size() > 0) - setListPreferenceData(manualLocationList, stringnames, activeId.get(0)); - else{ - setListPreferenceData(manualLocationList, stringnames,null); + if( activesId.size() == 0){ + setListPreferenceData(manualLocationList, stringnames, null); + } + else { + setListPreferenceData(manualLocationList, stringnames, activesId.get(0)); } } @Override public void onError(Throwable e) { Toast.makeText(getApplicationContext(), R.string.error_location_fetch, Toast.LENGTH_SHORT).show(); - } })); } @@ -117,7 +122,7 @@ public class SharingFragment extends PreferenceFragment { locationSharing = (SwitchPreference) findPreference("key_sharing_enabled"); locationMode = findPreference("key_location_level"); preferenceCategory = (PreferenceCategory) findPreference("category_sharing"); - manualLocationList = (ListPreference) findPreference("key_manual_location_value"); + manualLocationList = (ListPreference) findPreference("key_manual_location_value"); manualLocationButton = (RightButtonPreference) findPreference("manual_location_button"); manualStatus = findPreference("key_manual_status"); statusList = (ListPreference) findPreference("key_status_value"); @@ -138,7 +143,7 @@ public class SharingFragment extends PreferenceFragment { statusList.setSummary(PrefUtils.getUserStatus(getApplicationContext())); manualLocationList.setSummary(PrefUtils.getCurrentManualLocationName(getApplicationContext())); -// manualLocationList.setSummary(PrefUtils.getManualLocation(getApplicationContext())); + /** Main sharing switch**/ locationSharing.setOnPreferenceChangeListener((buttonView, newValue) -> { PrefUtils.storeEnableSharingLocalization(getApplicationContext(), (Boolean) newValue); @@ -150,10 +155,11 @@ public class SharingFragment extends PreferenceFragment { locationMode.setOnPreferenceChangeListener((preference, newValue) -> { PrefUtils.storeLocationMode(getApplicationContext(), locationLevelMapping.get(Integer.parseInt((String) newValue))); - if (PrefUtils.getLocationLevel(getApplicationContext()).equals("manual")) { - if(!predefinedCoordsList.isEmpty()){ - preferenceCategory.addPreference(manualLocationList); - } + + if (PrefUtils.getLocationLevel(getApplicationContext()).equals(SharingLevel.MANUAL.toString())) { + if (!predefinedCoordsList.isEmpty()) { + preferenceCategory.addPreference(manualLocationList); + } preferenceCategory.addPreference(manualLocationButton); @@ -168,12 +174,6 @@ public class SharingFragment extends PreferenceFragment { if (!PrefUtils.getLocationLevel(getApplicationContext()).equals("manual")) { preferenceCategory.removePreference(manualLocationList); preferenceCategory.removePreference(manualLocationButton); - }else{ -// if(predefinedCoordsList.isEmpty()){ -//// preferenceCategory.removePreference(manualLocationList); -// -// -// } } /** Custom manual location list change listener **/ @@ -181,14 +181,24 @@ public class SharingFragment extends PreferenceFragment { ListPreference lp = (ListPreference) preference; CharSequence[] entries = lp.getEntries(); PredefinedCoordViewModel temp = Stream.of(predefinedCoordsList).filter(p -> p.getName().equals(lp.getEntries()[Integer.parseInt((String) newValue)].toString())).toList().get(0); - PrefUtils.putManualLocation(getApplicationContext(), temp.getGeoData(), temp.getApproximatedLocation() ); - PrefUtils.putCurrentManualLocation(getApplicationContext(),temp.getPredefinedCoordinateId()); - PrefUtils.putCurrentManualLocationName(getApplicationContext(), (String )lp.getEntries()[Integer.parseInt((String) newValue)]); + + //sharing dialog -> ask for start BG + if (!PrefUtils.isEnableSharingLocalization(getApplicationContext())) { + EnableSharingDialog sharingDialog = new EnableSharingDialog(); + sharingDialog.show(getFragmentManager(), "Sharing"); + } + + PrefUtils.putManualLocation(getApplicationContext(), temp.getGeoData(), temp.getApproximatedLocation()); + PrefUtils.putCurrentManualLocation(getApplicationContext(), temp.getPredefinedCoordinateId()); + PrefUtils.putCurrentManualLocationName(getApplicationContext(), (String) lp.getEntries()[Integer.parseInt((String) newValue)]); lp.setSummary(lp.getEntries()[Integer.parseInt((String) newValue)]); + ((MapActivity) getActivity()).handleBackgroundTaskLifeCycle(); return true; }); + + /** Button 'choose from map' button listener **/ manualLocationButton.setOnPreferenceChangeListener((preference, o) -> { FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); @@ -205,6 +215,7 @@ public class SharingFragment extends PreferenceFragment { lp.setSummary(entries[Integer.parseInt((String) newValue)]); return true; }); + /** Custom status list change listener **/ manualStatus.setOnPreferenceChangeListener((preference, newValue) -> { @@ -213,11 +224,8 @@ public class SharingFragment extends PreferenceFragment { .observeOn(AndroidSchedulers.mainThread()) .subscribe(this::handleResponse, this::handleError)); - return true; }); - - } @Override @@ -229,37 +237,37 @@ public class SharingFragment extends PreferenceFragment { } protected void setListPreferenceData(ListPreference lp, String[] entries, Integer activeId) { - Log.d("setlistpref",lp.getKey()); - try { - lp.setEntries(entries); - CharSequence[] entryValues = new CharSequence[entries.length]; - for (int i = 0; i < entries.length; i++) { - entryValues[i] = Integer.toString(i); - } + try { + lp.setEntries(entries); + CharSequence[] entryValues = new CharSequence[entries.length]; - lp.setDefaultValue(0); - lp.setEntryValues(entryValues); + for (int i = 0; i < entries.length; i++) { + entryValues[i] = Integer.toString(i); + } - if(entries.length > 0 && activeId != null) - lp.setValueIndex(activeId); + lp.setDefaultValue(0); + lp.setEntryValues(entryValues); - }catch (Exception e){ - Log.e("Failed to set listPref",e.getMessage()); - } + if (entries.length > 0 && activeId != null) + lp.setValueIndex(activeId); - }; + } catch (Exception e) { + Log.e("Failed to set listPref", e.getMessage()); + } + + } + + ; private void handleResponse(List resp) { String[] statusesArray = resp.toArray(new String[resp.size()]); - setListPreferenceData(statusList, statusesArray,resp.size() - 1); + setListPreferenceData(statusList, statusesArray, resp.size() - 1); statusList.setValueIndex(resp.size() - 1); PrefUtils.storeStatus(getApplicationContext(), resp.get(resp.size() - 1)); - statusList.setSummary(PrefUtils.getUserStatus(getApplicationContext())); - - + statusList.setSummary(PrefUtils.getUserStatus(getApplicationContext())); } private void handleError(Throwable error) { @@ -274,4 +282,22 @@ public class SharingFragment extends PreferenceFragment { } } + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + locationSharing.setChecked(PrefUtils.isEnableSharingLocalization(getApplicationContext())); + + } + + @Override + public void onResume() { + super.onResume(); + getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); + + } + + @Override + public void onPause() { + getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); + super.onPause(); + } } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java index d0fd9dc..9f6e086 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java @@ -23,6 +23,7 @@ public class StartupActivity extends AppCompatActivity { if (PrefUtils.isLoggedIn(getApplicationContext())){ Intent startupIntent = new Intent(this, MapActivity.class); + PrefUtils.storeLocale(getApplicationContext(),PrefUtils.getLocale(getApplicationContext())); startupIntent.putExtra(currentLang, PrefUtils.getLocale(getApplicationContext())); startupIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(startupIntent); diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/TutorTab.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/TutorTab.java index 1fa3793..288f269 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/TutorTab.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/TutorTab.java @@ -116,12 +116,12 @@ public class TutorTab extends AppCompatActivity { ifTutorTabExists = false; dutyHoursAdapter = new DutyHoursAdapter(getApplicationContext(),new ArrayList()); dutyHoursRecycller.setAdapter(dutyHoursAdapter); - addDutyButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - addEmptyDuty(dutyHoursAdapter); - } - }); + addDutyButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + addEmptyDuty(dutyHoursAdapter); + } + }); } showError(e); } @@ -135,7 +135,7 @@ public class TutorTab extends AppCompatActivity { disposable.add( - userService.getUserById(PrefUtils.getUserId(getApplicationContext())) + userService.getUserById(PrefUtils.getUserId(getApplicationContext())) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribeWith(new DisposableSingleObserver() { @@ -152,12 +152,12 @@ public class TutorTab extends AppCompatActivity { showError(e); } })); - setUpSaveListener(saveButon); + setUpSaveListener(saveButon); } private void addEmptyDuty(DutyHoursAdapter adapter){ adapter.addDuty(new DutyHourViewModel()); adapter.notifyItemInserted(adapter.getItemCount()); - dutyHoursRecycller.scrollToPosition(adapter.getItemCount()-1); + dutyHoursRecycller.scrollToPosition(adapter.getItemCount()-1); } private void setUpSaveListener(Button button) { @@ -178,7 +178,7 @@ public class TutorTab extends AppCompatActivity { } }); } - + private void putUserTab(TutorTabViewModel tutorTabViewModel) { disposable.add(tutorTabService.apiUsersTutorTabByTutorIdPut(PrefUtils.getUserId(getApplicationContext()), tutorTabViewModel) .subscribeOn(Schedulers.io()) diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListFragment.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListFragment.java index f034f44..0ed27fc 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListFragment.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/UsersListFragment.java @@ -84,7 +84,6 @@ public class UsersListFragment extends Fragment { public void onViewCreated(View view, Bundle savedInstanceState) { ButterKnife.bind(this, view); - view.findViewById(R.id.userListInfoImageButton).setOnClickListener(v -> InfoHelperUtils.infoPopUp(v,R.layout.info_popup_userlist)); userService = ApiClient.getClient(getApplicationContext()) .create(UserService.class); diff --git a/app/src/main/java/com/uam/wmi/findmytutor/adapters/DutyHoursAdapter.java b/app/src/main/java/com/uam/wmi/findmytutor/adapters/DutyHoursAdapter.java index 2de243f..ae2d465 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/adapters/DutyHoursAdapter.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/adapters/DutyHoursAdapter.java @@ -1,163 +1,163 @@ -package com.uam.wmi.findmytutor.adapters; - -import android.content.Context; -import android.support.annotation.NonNull; -import android.support.v7.widget.RecyclerView; -import android.text.Editable; -import android.text.TextWatcher; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageButton; -import android.widget.TextView; - -import com.annimon.stream.Collectors; -import com.annimon.stream.Stream; -import com.uam.wmi.findmytutor.R; -import com.uam.wmi.findmytutor.model.DutyHourViewModel; - -import java.util.ArrayList; -import java.util.List; -import butterknife.BindView; -import butterknife.ButterKnife; - - -public class DutyHoursAdapter extends RecyclerView.Adapter { - private Context context; - private List hours; - -public DutyHoursAdapter(Context context, List hours) { - this.context = context; - this.hours = new ArrayList(hours); -} - - -public List getDutyList(){ - ArrayList notEmpty = Stream.of(hours).filter(DutyHourViewModel::isValid).collect(Collectors.toCollection(ArrayList::new)); - return notEmpty; -} -public void addDuty(DutyHourViewModel duty){ - hours.add(duty); -} -private void removeDuty(int pos){ - hours.remove(pos); - this.notifyItemRemoved(pos); - Log.d("DutyIndex af rm size",Integer.toString(getItemCount())); - -} - -@NonNull -@Override -public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View itemView = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.duty_hour_row, parent, false); - - return new MyViewHolder(itemView); - } - -@Override -public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { - DutyHourViewModel duty = hours.get(position); - holder.dutyDay.setText(duty.getDay()); - holder.dutyDay.addTextChangedListener(new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - - } - - @Override - public void afterTextChanged(Editable s) { - duty.setDay(holder.dutyDay.getText().toString()); - } - }); - holder.dutyStart.setText(duty.getStart()); - holder.dutyStart.addTextChangedListener(new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - - } - - @Override - public void afterTextChanged(Editable s) { - duty.setStart(holder.dutyStart.getText().toString()); - } - }); - holder.dutyStop.setText(duty.getEnd()); - holder.dutyStop.addTextChangedListener(new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - - } - - @Override - public void afterTextChanged(Editable s) { - duty.setEnd(holder.dutyStop.getText().toString()); - } - }); - holder.deleteRow.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - try{ - Log.d("DutyIndex bf rm size",Integer.toString(getItemCount())); - Log.d("DutyIndex bf rm pos",Integer.toString(holder.getLayoutPosition())); - removeDuty(holder.getLayoutPosition()); - Log.d("DutyIndex af rm pos",Integer.toString(holder.getLayoutPosition())); - - - }catch(Error e){ - Log.e("DutyIndex error",e.getMessage()); - Log.e("DutyIndex size",Integer.toString(getItemCount())); - Log.e("DutyIndex pos",Integer.toString(holder.getAdapterPosition())); - - - } - - } - }); - - } - -@Override -public int getItemCount() { - return hours.size(); - } - -class MyViewHolder extends RecyclerView.ViewHolder { - - @BindView(R.id.duty_day_value) - TextView dutyDay; - - @BindView(R.id.duty_start_value) - TextView dutyStart; - - @BindView(R.id.duty_stop_value) - TextView dutyStop; - - @BindView(R.id.deleteRow) - ImageButton deleteRow; - - MyViewHolder(View view) { - super(view); - ButterKnife.bind(this, view); - } -} - - - +package com.uam.wmi.findmytutor.adapters; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.v7.widget.RecyclerView; +import android.text.Editable; +import android.text.TextWatcher; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageButton; +import android.widget.TextView; + +import com.annimon.stream.Collectors; +import com.annimon.stream.Stream; +import com.uam.wmi.findmytutor.R; +import com.uam.wmi.findmytutor.model.DutyHourViewModel; + +import java.util.ArrayList; +import java.util.List; +import butterknife.BindView; +import butterknife.ButterKnife; + + +public class DutyHoursAdapter extends RecyclerView.Adapter { + private Context context; + private List hours; + + public DutyHoursAdapter(Context context, List hours) { + this.context = context; + this.hours = new ArrayList(hours); + } + + + public List getDutyList(){ + ArrayList notEmpty = Stream.of(hours).filter(DutyHourViewModel::isValid).collect(Collectors.toCollection(ArrayList::new)); + return notEmpty; + } + public void addDuty(DutyHourViewModel duty){ + hours.add(duty); + } + private void removeDuty(int pos){ + hours.remove(pos); + this.notifyItemRemoved(pos); + Log.d("DutyIndex af rm size",Integer.toString(getItemCount())); + + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.duty_hour_row, parent, false); + + return new MyViewHolder(itemView); + } + + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { + DutyHourViewModel duty = hours.get(position); + holder.dutyDay.setText(duty.getDay()); + holder.dutyDay.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + duty.setDay(holder.dutyDay.getText().toString()); + } + }); + holder.dutyStart.setText(duty.getStart()); + holder.dutyStart.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + duty.setStart(holder.dutyStart.getText().toString()); + } + }); + holder.dutyStop.setText(duty.getEnd()); + holder.dutyStop.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + duty.setEnd(holder.dutyStop.getText().toString()); + } + }); + holder.deleteRow.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + try{ + Log.d("DutyIndex bf rm size",Integer.toString(getItemCount())); + Log.d("DutyIndex bf rm pos",Integer.toString(holder.getLayoutPosition())); + removeDuty(holder.getLayoutPosition()); + Log.d("DutyIndex af rm pos",Integer.toString(holder.getLayoutPosition())); + + + }catch(Error e){ + Log.e("DutyIndex error",e.getMessage()); + Log.e("DutyIndex size",Integer.toString(getItemCount())); + Log.e("DutyIndex pos",Integer.toString(holder.getAdapterPosition())); + + + } + + } + }); + + } + + @Override + public int getItemCount() { + return hours.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + + @BindView(R.id.duty_day_value) + TextView dutyDay; + + @BindView(R.id.duty_start_value) + TextView dutyStart; + + @BindView(R.id.duty_stop_value) + TextView dutyStop; + + @BindView(R.id.deleteRow) + ImageButton deleteRow; + + MyViewHolder(View view) { + super(view); + ButterKnife.bind(this, view); + } + } + + + } \ No newline at end of file diff --git a/app/src/main/java/com/uam/wmi/findmytutor/model/DutyHour.java b/app/src/main/java/com/uam/wmi/findmytutor/model/DutyHour.java index 3c17824..46cbdb3 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/model/DutyHour.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/model/DutyHour.java @@ -33,9 +33,6 @@ public class DutyHour extends BaseResponse { public DutyHour dutyHourId(UUID dutyHourId) { this.dutyHourId = dutyHourId; return this; - } - public DutyHour(){ - } /** 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 1835496..71c1e1b 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 @@ -4,6 +4,7 @@ import android.content.Context; import android.text.TextUtils; import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; +import com.uam.wmi.findmytutor.utils.Const; import com.uam.wmi.findmytutor.utils.PrefUtils; import java.io.IOException; @@ -26,7 +27,6 @@ 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/"; public static Retrofit getClient(Context context) { @@ -35,7 +35,7 @@ public class ApiClient { if (retrofit == null) { retrofit = new Retrofit.Builder() - .baseUrl(BASE_URL) + .baseUrl(Const.BASE_URL) .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) 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 83f26fc..9cd78d7 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 @@ -1,25 +1,18 @@ package com.uam.wmi.findmytutor.utils; -import android.support.annotation.NonNull; - -import com.google.gson.GsonBuilder; -import com.mapbox.geojson.BoundingBox; import com.mapbox.geojson.Feature; import com.mapbox.geojson.FeatureCollection; -import com.mapbox.geojson.Geometry; import com.mapbox.geojson.Point; import com.mapbox.geojson.Polygon; -import com.mapbox.geojson.gson.BoundingBoxDeserializer; -import com.mapbox.geojson.gson.GeoJsonAdapterFactory; -import com.mapbox.geojson.gson.GeometryDeserializer; -import com.mapbox.geojson.gson.PointDeserializer; +import com.mapbox.turf.TurfClassification; import com.mapbox.turf.TurfJoins; +import com.mapbox.turf.TurfMeasurement; import java.util.Arrays; import java.util.List; import java.util.Objects; -; +;import static com.mapbox.geojson.FeatureCollection.fromJson; public class ApproximatedLocalization { private FeatureCollection buildingSchema = null; @@ -28,17 +21,6 @@ public class ApproximatedLocalization { buildingSchema = fromJson(buildingObject); } - private FeatureCollection fromJson(@NonNull String json) { - GsonBuilder gson = new GsonBuilder(); - - gson.registerTypeAdapterFactory(GeoJsonAdapterFactory.create()); - gson.registerTypeAdapter(Point.class, new PointDeserializer()); - gson.registerTypeAdapter(Geometry.class, new GeometryDeserializer()); - gson.registerTypeAdapter(BoundingBox.class, new BoundingBoxDeserializer()); - - return gson.create().fromJson(json, FeatureCollection.class); - } - public String getNameOfBuildingPart(Point point) { for (Feature feature : Objects.requireNonNull(buildingSchema.features())) { @@ -56,7 +38,9 @@ public class ApproximatedLocalization { for (Feature feature : Objects.requireNonNull(buildingSchema.features())) { String partName = feature.getStringProperty("name"); + if (buildingPart != null && buildingPart.equals(partName)) { + Double longitude = feature.getNumberProperty("longitude").doubleValue(); Double latitude = feature.getNumberProperty("latitude").doubleValue(); 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 6a4282a..48fd35f 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 @@ -6,7 +6,8 @@ import java.util.Arrays; import java.util.List; public class Const { - public final static Integer onlineBackgroundLocationInterval = 15000; + public final static String BASE_URL = "https://s416084.projektstudencki.pl/master/"; + public final static Integer onlineBackgroundLocationInterval = 7000; public final static Integer offlineBackgroundLocationInterval = 36000; public final static Integer defaultMapZoom = 17; public final static Integer searchMapZoom = 13; diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/EnableSharingDialog.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/EnableSharingDialog.java new file mode 100644 index 0000000..eafb29e --- /dev/null +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/EnableSharingDialog.java @@ -0,0 +1,31 @@ +package com.uam.wmi.findmytutor.utils; + +import android.app.Dialog; +import android.app.DialogFragment; +import android.content.Context; +import android.os.Bundle; +import android.support.v7.app.AlertDialog; +import android.widget.Toast; + +import com.uam.wmi.findmytutor.R; +import com.uam.wmi.findmytutor.activity.MapActivity; + +public class EnableSharingDialog extends DialogFragment { + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + return new AlertDialog.Builder(getActivity()) + .setTitle(R.string.sharing_modal_title) + .setMessage(R.string.enable_sharing_question) + .setPositiveButton(R.string.possitive_dialog_button, (dialog, which) -> + dialogPositiveAnswer(getActivity()) + ) + .setNegativeButton(R.string.negative_dialog_button, (dialog, which) -> dialog.cancel()).create(); + } + + private void dialogPositiveAnswer(Context context) { + PrefUtils.storeEnableSharingLocalization(context, true); + ((MapActivity) getActivity()).handleBackgroundTaskLifeCycle(); + + } +} diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/InfoHelperUtils.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/InfoHelperUtils.java index 232e3ae..1bde7f4 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/InfoHelperUtils.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/InfoHelperUtils.java @@ -1,30 +1,23 @@ package com.uam.wmi.findmytutor.utils; -import android.app.Activity; import android.content.Context; import android.graphics.drawable.ColorDrawable; -import android.support.v7.app.AlertDialog; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; -import android.view.WindowManager; -import android.widget.Button; import android.widget.LinearLayout; import android.widget.PopupWindow; -import android.widget.Toast; -import com.uam.wmi.findmytutor.R; +import java.util.Objects; import static com.mapbox.mapboxsdk.Mapbox.getApplicationContext; public class InfoHelperUtils { - - public static void infoPopUp(View anchorView, int layoutId) { LayoutInflater layoutInflater = (LayoutInflater)getApplicationContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE ); - View popupView = layoutInflater.inflate(layoutId, null); + View popupView = Objects.requireNonNull(layoutInflater).inflate(layoutId, null); PopupWindow popupWindow = new PopupWindow(popupView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/LocaleUtils.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/LocaleUtils.java index f4c15fb..7046b83 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/LocaleUtils.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/LocaleUtils.java @@ -1,15 +1,10 @@ package com.uam.wmi.findmytutor.utils; -import android.content.Context; -import android.os.Build; +import android.content.res.Resources; +import android.support.v4.os.ConfigurationCompat; public class LocaleUtils { - public static String getCurrentLocale(Context context){ - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ - return String.valueOf(context.getResources().getConfiguration().getLocales().get(0)); - } else{ - //noinspection deprecation - return String.valueOf(context.getResources().getConfiguration().locale); - } + public static String getCurrentLocale(){ + return String.valueOf(ConfigurationCompat.getLocales(Resources.getSystem().getConfiguration())); } } 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 3a12597..5d45d85 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 @@ -144,7 +144,7 @@ public class PrefUtils { } public static String getLocale(Context context) { - return getSharedPreferences(context).getString("LOCALE", LocaleUtils.getCurrentLocale(context)); + return getSharedPreferences(context).getString("LOCALE", LocaleUtils.getCurrentLocale()); } public static Boolean isBackgroundLocationServiceRunning(Context context) { @@ -162,7 +162,7 @@ public class PrefUtils { editor.putString("key_location_level","3"); editor.putString("location_mode", "manual"); editor.putString("approx_manual_loc", approximatedLocation); - editor.putBoolean("key_sharing_enabled", true); + /*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.apply(); diff --git a/app/src/main/res/drawable/layout_bg.xml b/app/src/main/res/drawable/layout_bg.xml index 574781c..051dd17 100644 --- a/app/src/main/res/drawable/layout_bg.xml +++ b/app/src/main/res/drawable/layout_bg.xml @@ -1,7 +1,7 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_map.xml b/app/src/main/res/layout/activity_map.xml index 20477f0..fa650bb 100644 --- a/app/src/main/res/layout/activity_map.xml +++ b/app/src/main/res/layout/activity_map.xml @@ -20,12 +20,6 @@ - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + + + + + +