From d13b160b4f593df9e162661dcbdd02d4ee76a042 Mon Sep 17 00:00:00 2001 From: madwasp79 Date: Fri, 19 Apr 2019 15:48:28 +0300 Subject: [PATCH] saving and edit new profile - work in progress --- OsmAnd/AndroidManifest.xml | 2 +- .../src/net/osmand/plus/ApplicationMode.java | 53 +++-- .../src/net/osmand/plus/OsmandSettings.java | 2 + .../osmand/plus/activities/MapActivity.java | 10 +- .../plus/profiles/EditProfileActivity.java | 57 +++++ ...Fragment.java => EditProfileFragment.java} | 218 +++++++++++++----- .../IconSelectBottomSheetDialogFragment.java | 20 -- .../plus/profiles/ProfileMenuAdapter.java | 3 +- .../profiles/SelectedProfileActivity.java | 51 ---- .../profiles/SettingsProfileFragment.java | 20 +- 10 files changed, 281 insertions(+), 155 deletions(-) create mode 100644 OsmAnd/src/net/osmand/plus/profiles/EditProfileActivity.java rename OsmAnd/src/net/osmand/plus/profiles/{SelectedProfileFragment.java => EditProfileFragment.java} (62%) delete mode 100644 OsmAnd/src/net/osmand/plus/profiles/IconSelectBottomSheetDialogFragment.java delete mode 100644 OsmAnd/src/net/osmand/plus/profiles/SelectedProfileActivity.java diff --git a/OsmAnd/AndroidManifest.xml b/OsmAnd/AndroidManifest.xml index 483726be1e..069173225e 100644 --- a/OsmAnd/AndroidManifest.xml +++ b/OsmAnd/AndroidManifest.xml @@ -1066,7 +1066,7 @@ android:name=".profiles.SettingsProfileActivity"/> - diff --git a/OsmAnd/src/net/osmand/plus/ApplicationMode.java b/OsmAnd/src/net/osmand/plus/ApplicationMode.java index ee0bc7ca53..fb41b9056c 100644 --- a/OsmAnd/src/net/osmand/plus/ApplicationMode.java +++ b/OsmAnd/src/net/osmand/plus/ApplicationMode.java @@ -56,7 +56,7 @@ public class ApplicationMode { // // public static final ApplicationMode TRAIN = create(R.string.app_mode_train, "train").speed(25f, 40). // carLocation().icon(R.drawable.map_action_train, R.drawable.ic_action_train).reg(); - + String profile = "profile: "; static { ApplicationMode[] exceptDefault = new ApplicationMode[]{CAR, PEDESTRIAN, BICYCLE, BOAT, PUBLIC_TRANSPORT}; ApplicationMode[] exceptPedestrianAndDefault = new ApplicationMode[]{CAR, BICYCLE, BOAT, PUBLIC_TRANSPORT}; @@ -104,8 +104,6 @@ public class ApplicationMode { public static class ApplicationModeBuilder { - - private ApplicationMode applicationMode; public ApplicationMode reg() { @@ -125,6 +123,29 @@ public class ApplicationMode { return this; } + + public ApplicationModeBuilder parent(ApplicationMode parent) { + applicationMode.parent = parent; + return this; + } + + /** + * @param type - id of set of icons for different navigation styles: + * 1 - car, 2 - bicicle, 3 - nautical, any other - default + */ + public ApplicationModeBuilder setLocationAndBearingIcons(int type) { + switch (type) { + case 1: + return this.carLocation(); + case 2: + return this.bicycleLocation(); + case 3: + return this.nauticalLocation(); + default: + return this.defLocation(); + } + } + public ApplicationModeBuilder carLocation() { applicationMode.bearingIconDay = R.drawable.map_car_bearing; applicationMode.bearingIconNight = R.drawable.map_car_bearing_night; @@ -137,11 +158,6 @@ public class ApplicationMode { return this; } - public ApplicationModeBuilder parent(ApplicationMode parent) { - applicationMode.parent = parent; - return this; - } - public ApplicationModeBuilder bicycleLocation() { applicationMode.bearingIconDay = R.drawable.map_bicycle_bearing; applicationMode.bearingIconNight = R.drawable.map_bicycle_bearing_night; @@ -191,8 +207,15 @@ public class ApplicationMode { applicationMode.offRouteDistance = offRouteDistance; return this; } + + public ApplicationModeBuilder userProfileTitle(String userProfileTitle) { + applicationMode.userProfileTitle = userProfileTitle; + return this; + } } + + private static ApplicationModeBuilder create(int key, String stringKey) { ApplicationModeBuilder builder = new ApplicationModeBuilder(); builder.applicationMode = new ApplicationMode(key, stringKey); @@ -200,7 +223,7 @@ public class ApplicationMode { } public static ApplicationModeBuilder createCustomMode(String userProfileTitle, String stringKey) { - return create(-1, stringKey); + return create(-1, stringKey).userProfileTitle(userProfileTitle); } private ApplicationMode(int key, String stringKey) { @@ -410,18 +433,6 @@ public class ApplicationMode { return offRouteDistance; } - public void setUserProfileTitle(String userProfileTitle) { - this.userProfileTitle = userProfileTitle; - } - - public void setMapIconId(int mapIconId) { - this.mapIconId = mapIconId; - } - - public void setSmallIconDark(int smallIconDark) { - this.smallIconDark = smallIconDark; - } - public boolean isDerivedRoutingFrom(ApplicationMode mode) { return this == mode || getParent() == mode; } diff --git a/OsmAnd/src/net/osmand/plus/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/OsmandSettings.java index 213cf55352..3dcffc67e7 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/OsmandSettings.java @@ -842,6 +842,8 @@ public class OsmandSettings { public final OsmandPreference AVAILABLE_APP_MODES = new StringPreference("available_application_modes", "car,bicycle,pedestrian,public_transport,").makeGlobal().cache(); +// public final OsmandPreference> CUSTOM_APP_MODES = new ListStringPreference() + public final OsmandPreference LAST_FAV_CATEGORY_ENTERED = new StringPreference("last_fav_category", "").makeGlobal(); diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java index 7bc66cad7c..53e9677b27 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java @@ -105,7 +105,7 @@ import net.osmand.plus.mapmarkers.PlanRouteFragment; import net.osmand.plus.measurementtool.MeasurementEditingContext; import net.osmand.plus.measurementtool.MeasurementToolFragment; import net.osmand.plus.measurementtool.NewGpxData; -import net.osmand.plus.profiles.SelectedProfileFragment; +import net.osmand.plus.profiles.EditProfileFragment; import net.osmand.plus.render.RendererRegistry; import net.osmand.plus.resources.ResourceManager; import net.osmand.plus.routepreparationmenu.ChooseRouteFragment; @@ -777,14 +777,14 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven } setIntent(null); } - if (intent.hasExtra(SelectedProfileFragment.OPEN_CONFIG_ON_MAP)) { - switch (intent.getStringExtra(SelectedProfileFragment.OPEN_CONFIG_ON_MAP)) { - case SelectedProfileFragment.MAP_CONFIG: + if (intent.hasExtra(EditProfileFragment.OPEN_CONFIG_ON_MAP)) { + switch (intent.getStringExtra(EditProfileFragment.OPEN_CONFIG_ON_MAP)) { + case EditProfileFragment.MAP_CONFIG: LOG.debug("open map config"); this.getDashboard().setDashboardVisibility(true, DashboardType.CONFIGURE_MAP, null); break; - case SelectedProfileFragment.SCREEN_CONFIG: + case EditProfileFragment.SCREEN_CONFIG: LOG.debug("open screen config"); this.getDashboard().setDashboardVisibility(true, DashboardType.CONFIGURE_SCREEN, null); break; diff --git a/OsmAnd/src/net/osmand/plus/profiles/EditProfileActivity.java b/OsmAnd/src/net/osmand/plus/profiles/EditProfileActivity.java new file mode 100644 index 0000000000..3e24fbc362 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/profiles/EditProfileActivity.java @@ -0,0 +1,57 @@ +package net.osmand.plus.profiles; + +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.Nullable; + +import android.view.MenuItem; + +import net.osmand.plus.R; +import net.osmand.plus.activities.OsmandActionBarActivity; +import net.osmand.util.Algorithms; + +public class EditProfileActivity extends OsmandActionBarActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + getMyApplication().applyTheme(this); + super.onCreate(savedInstanceState); + setContentView(R.layout.single_fragment_layout); +// Intent intent = getIntent(); +// if (intent.getExtras() != null) { +// String title = ""; +// if (intent.getBooleanExtra("isUserProfile", false)) { +// +// } else if (intent.getBooleanExtra("isNew", false)) { +// title = String.format("%s (new)", intent.getStringExtra("stringKey").replace("_", " ")); +// } else { +// title = Algorithms.capitalizeFirstLetterAndLowercase( +// intent.getStringExtra("stringKey").replace("_", " ")); +// } +// +// if (getSupportActionBar() != null) { +// getSupportActionBar().setTitle(title); +// getSupportActionBar().setElevation(5.0f); +// } +// } + + if (savedInstanceState == null) { + EditProfileFragment editProfileFragment = new EditProfileFragment(); + editProfileFragment.setArguments(getIntent().getExtras()); + getSupportFragmentManager().beginTransaction().add(android.R.id.content, + editProfileFragment).commit(); + } + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int itemId = item.getItemId(); + switch (itemId) { + case android.R.id.home: + finish(); + return true; + + } + return false; + } +} diff --git a/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileFragment.java b/OsmAnd/src/net/osmand/plus/profiles/EditProfileFragment.java similarity index 62% rename from OsmAnd/src/net/osmand/plus/profiles/SelectedProfileFragment.java rename to OsmAnd/src/net/osmand/plus/profiles/EditProfileFragment.java index 2ba11b238b..77b0461840 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileFragment.java +++ b/OsmAnd/src/net/osmand/plus/profiles/EditProfileFragment.java @@ -3,6 +3,7 @@ package net.osmand.plus.profiles; import android.content.Intent; import android.graphics.drawable.GradientDrawable; import android.os.Bundle; +import android.os.Parcel; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.content.ContextCompat; @@ -19,8 +20,12 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; import net.osmand.PlatformUtil; +import net.osmand.StateChangedListener; import net.osmand.plus.ApplicationMode; +import net.osmand.plus.OsmAndAppCustomization; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.activities.MapActivity; @@ -31,12 +36,14 @@ import net.osmand.plus.profiles.ProfileBottomSheetDialogFragment.ProfileTypeDial import net.osmand.plus.profiles.SelectIconBottomSheetDialogFragment.IconIdListener; import net.osmand.plus.widgets.OsmandTextFieldBoxes; import net.osmand.router.GeneralRouter.GeneralRouterProfile; +import net.osmand.util.Algorithms; +import net.sf.junidecode.App; import org.apache.commons.logging.Log; import studio.carbonylgroup.textfieldboxes.ExtendedEditText; -public class SelectedProfileFragment extends BaseOsmAndFragment { +public class EditProfileFragment extends BaseOsmAndFragment { - private static final Log LOG = PlatformUtil.getLog(SelectedProfileFragment.class); + private static final Log LOG = PlatformUtil.getLog(EditProfileFragment.class); public static final String OPEN_CONFIG_ON_MAP = "openConfigOnMap"; public static final String MAP_CONFIG = "openMapConfigMenu"; @@ -44,16 +51,14 @@ public class SelectedProfileFragment extends BaseOsmAndFragment { public static final String SCREEN_CONFIG = "openScreenConfigMenu"; public static final String SELECTED_PROFILE = "editedProfile"; - - - ApplicationMode profile = null; - ApplicationMode parent = null; + TempApplicationProfile profile = null; ArrayList routingProfiles; OsmandApplication app; RoutingProfile selectedRoutingProfile = null; float defSpeed = 0f; private boolean isNew = false; + private boolean isUserProfile = false; private boolean isDataChanged = false; private ProfileTypeDialogListener profileTypeDialogListener = null; @@ -65,12 +70,11 @@ public class SelectedProfileFragment extends BaseOsmAndFragment { app = getMyApplication(); if (getArguments() != null) { String modeName = getArguments().getString("stringKey", "car"); - if (!getArguments().getBoolean("isNew", true)) { - profile = ApplicationMode.valueOfStringKey(modeName, ApplicationMode.CAR); - } else { - isNew = true; - parent = ApplicationMode.valueOfStringKey(modeName, ApplicationMode.CAR); - } + isNew = getArguments().getBoolean("isNew", false); + isUserProfile = getArguments().getBoolean("isUserProfile", false); + profile = new TempApplicationProfile( + ApplicationMode.valueOfStringKey(modeName, ApplicationMode.DEFAULT), isNew); + LOG.debug("Name: " + modeName + ", "); } routingProfiles = getRoutingProfiles(); } @@ -99,44 +103,63 @@ public class SelectedProfileFragment extends BaseOsmAndFragment { profileIconBtn.setBackgroundResource(R.drawable.rounded_background_3dp); GradientDrawable selectIconBtnBackground = (GradientDrawable) profileIconBtn .getBackground(); - if(isNew) { - profileIcon.setImageDrawable(app.getUIUtilities().getIcon(parent.getSmallIconDark(), - isNightMode ? R.color.active_buttons_and_links_dark - : R.color.active_buttons_and_links_light)); - } else { - profileIcon.setImageDrawable(app.getUIUtilities().getIcon(profile.getSmallIconDark(), - isNightMode ? R.color.active_buttons_and_links_dark - : R.color.active_buttons_and_links_light)); - } + + if (isNightMode) { - profileNameTextBox - .setPrimaryColor(ContextCompat.getColor(app, R.color.color_dialog_buttons_dark)); - navTypeTextBox - .setPrimaryColor(ContextCompat.getColor(app, R.color.color_dialog_buttons_dark)); - selectIconBtnBackground - .setColor(app.getResources().getColor(R.color.text_field_box_dark)); + profileNameTextBox.setPrimaryColor(ContextCompat.getColor(app, R.color.color_dialog_buttons_dark)); + navTypeTextBox.setPrimaryColor(ContextCompat.getColor(app, R.color.color_dialog_buttons_dark)); + selectIconBtnBackground.setColor(app.getResources().getColor(R.color.text_field_box_dark)); } else { - selectIconBtnBackground - .setColor(app.getResources().getColor(R.color.text_field_box_light)); + selectIconBtnBackground.setColor(app.getResources().getColor(R.color.text_field_box_light)); } + String title = "New Profile"; + int startIconId = R.drawable.map_world_globe_dark; + LOG.debug("isUserProfile = " + isUserProfile); + LOG.debug("isNew = " + isNew); + if (isUserProfile && !isNew) { + title = profile.getUserProfileTitle(); + profileNameEt.setText(title); + startIconId = profile.iconId; + } else if (isNew) { + title = String.format("%s (new)", getResources().getString(profile.parent.getStringResource())); + profileNameEt.setText(title); + startIconId = profile.getParent().getSmallIconDark(); + } else if (profile.getKey() != -1){ + title = getResources().getString(profile.getKey()); + profileNameEt.setText(profile.getKey()); + startIconId = profile.getIconId(); + } + + profileNameEt.clearFocus(); + + if (getActivity() != null && ((EditProfileActivity) getActivity()).getSupportActionBar() != null) { + ((EditProfileActivity) getActivity()).getSupportActionBar().setTitle(title); + ((EditProfileActivity) getActivity()).getSupportActionBar().setElevation(5.0f); + } + + profileIcon.setImageDrawable(app.getUIUtilities().getIcon(startIconId, + isNightMode ? R.color.active_buttons_and_links_dark + : R.color.active_buttons_and_links_light)); + profileTypeDialogListener = new ProfileTypeDialogListener() { @Override public void onSelectedType(int pos) { selectedRoutingProfile = routingProfiles.get(pos); navTypeEt.setText(selectedRoutingProfile.getName()); + profile.setRoutingProfile(selectedRoutingProfile); } }; iconIdListener = new IconIdListener() { @Override public void selectedIconId(int iconRes) { - profile.setMapIconId(iconRes); - profile.setSmallIconDark(iconRes); + profile.setIconId(iconRes); profileIcon.setImageDrawable(app.getUIUtilities().getIcon(iconRes, isNightMode ? R.color.active_buttons_and_links_dark : R.color.active_buttons_and_links_light)); + profile.setIconId(iconRes); } }; @@ -157,6 +180,7 @@ public class SelectedProfileFragment extends BaseOsmAndFragment { ActionBar actionBar = ((OsmandActionBarActivity) getActivity()).getSupportActionBar(); if (actionBar != null) { actionBar.setTitle(s.toString()); + profile.setUserProfileTitle(s.toString()); } } } @@ -176,13 +200,10 @@ public class SelectedProfileFragment extends BaseOsmAndFragment { .commitAllowingStateLoss(); } - -// navTypeEt.setText("Car"); -// navTypeEt.setCursorVisible(false); -// navTypeEt.setTextIsSelectable(false); -// navTypeEt.clearFocus(); + navTypeEt.setCursorVisible(false); + navTypeEt.setTextIsSelectable(false); + navTypeEt.clearFocus(); navTypeEt.requestFocus(ExtendedEditText.FOCUS_UP); -// LOG.debug("click on text"); } }); @@ -193,7 +214,7 @@ public class SelectedProfileFragment extends BaseOsmAndFragment { final SelectIconBottomSheetDialogFragment iconSelectDialog = new SelectIconBottomSheetDialogFragment(); iconSelectDialog.setIconIdListener(iconIdListener); Bundle bundle = new Bundle(); - bundle.putInt("selectedIcon", profile.getSmallIconDark()); + bundle.putInt("selectedIcon", profile.getIconId()); iconSelectDialog.setArguments(bundle); if (getActivity() != null) { getActivity().getSupportFragmentManager().beginTransaction() @@ -260,11 +281,8 @@ public class SelectedProfileFragment extends BaseOsmAndFragment { saveButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - String title = profileNameTextBox.getEditText().getText().toString(); - if (ApplicationMode.allPossibleValues().contains(profile)) { - updateProfile(); - } else { - saveNewProfile(title, parent, selectedRoutingProfile, defSpeed); + if (saveNewProfile(profile, selectedRoutingProfile)) { + getActivity().onBackPressed(); } } }); @@ -272,30 +290,56 @@ public class SelectedProfileFragment extends BaseOsmAndFragment { return view; } - private boolean saveNewProfile( - String userProfileTitle, - ApplicationMode profile, - RoutingProfile selectedRoutingProfile, - float defSpeed) { + private boolean saveNewProfile(TempApplicationProfile profile, RoutingProfile selectedRoutingProfile) { + //todo check if profile exists + List copyAllModes = new ArrayList<>(ApplicationMode.allPossibleValues()); + List copyAllAvailableModes = new ArrayList<>(ApplicationMode.values(getMyApplication())); + Iterator it = copyAllModes.iterator(); + while (it.hasNext()) { + ApplicationMode am = it.next(); + if (am.getStringKey().equals(profile.stringKey)) { + if (ApplicationMode.values(getMyApplication()).contains(am)) { + //todo unregister mode from available + } + it.remove(); + } + } - - String customStringKey = profile.getParent().getStringKey() + "_" + userProfileTitle.hashCode(); + String customStringKey = profile.getParent().getStringKey() + "_" + profile.userProfileTitle.hashCode(); for (ApplicationMode mode : ApplicationMode.allPossibleValues()) { if (mode.getStringKey().equals(customStringKey)) { //todo notify user that there is already profile with such name return false; } } + ApplicationMode.ApplicationModeBuilder builder = ApplicationMode + .createCustomMode(profile.userProfileTitle, customStringKey) + .parent(profile.parent) + .icon(profile.iconId, profile.iconId); + switch (profile.parent.getStringKey()) { + case "car": + case "aircraft": + builder.carLocation(); + break; + case "bicicle": + builder.bicycleLocation(); + break; + case "boat": + builder.nauticalLocation(); + break; + } + + builder.customReg(); - ApplicationMode.createCustomMode(userProfileTitle, customStringKey); //todo build profile, save and register: return true; } - private void updateProfile() { - + private boolean updateProfile() { + //todo implement update; + return false; } /** @@ -333,4 +377,72 @@ public class SelectedProfileFragment extends BaseOsmAndFragment { } return routingProfiles; } + + + private class TempApplicationProfile { + int key = -1; + String stringKey = ""; + String userProfileTitle = ""; + ApplicationMode parent = null; + int iconId = R.drawable.map_world_globe_dark; + float defaultSpeed = 10f; //todo use default or what? + int minDistanceForTurn = 50; //todo use default or what? + RoutingProfile routingProfile = null; + + TempApplicationProfile(ApplicationMode mode, boolean isNew) { + if (isNew ) { + stringKey = "new_" + mode.getStringKey(); + parent = mode; + } else if (isUserProfile) { + stringKey = mode.getStringKey(); + parent = getParent(); + iconId = mode.getSmallIconDark(); + userProfileTitle = mode.getUserProfileTitle(); + } else { + key = mode.getStringResource(); + stringKey = mode.getStringKey(); + iconId = mode.getSmallIconDark(); + } + } + + public RoutingProfile getRoutingProfile() { + return routingProfile; + } + + public ApplicationMode getParent() { + return parent; + } + + public int getKey() { + return key; + } + + public int getIconId() { + return iconId; + } + + public String getStringKey() { + return stringKey; + } + + public String getUserProfileTitle() { + return userProfileTitle; + } + + public void setStringKey(String stringKey) { + this.stringKey = stringKey; + } + + public void setUserProfileTitle(String userProfileTitle) { + this.userProfileTitle = userProfileTitle; + } + + public void setIconId(int iconId) { + this.iconId = iconId; + } + + public void setRoutingProfile(RoutingProfile routingProfile) { + this.routingProfile = routingProfile; + } + } } diff --git a/OsmAnd/src/net/osmand/plus/profiles/IconSelectBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/profiles/IconSelectBottomSheetDialogFragment.java deleted file mode 100644 index 796b62d881..0000000000 --- a/OsmAnd/src/net/osmand/plus/profiles/IconSelectBottomSheetDialogFragment.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.osmand.plus.profiles; - -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import net.osmand.plus.base.BottomSheetDialogFragment; -import net.osmand.plus.dashboard.DashBaseFragment; - -public class IconSelectBottomSheetDialogFragment extends BottomSheetDialogFragment { - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - return null; - } -} diff --git a/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java b/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java index 145eb5f0a4..5b5a17657d 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java +++ b/OsmAnd/src/net/osmand/plus/profiles/ProfileMenuAdapter.java @@ -63,7 +63,8 @@ public class ProfileMenuAdapter extends RecyclerView.Adapter public void onBindViewHolder(@NonNull final ProfileViewHolder holder, int position) { final ApplicationMode item = items.get(position); if (item.getParent() != null) { - holder.descr.setText(String.format("Type: %s", item.getParent().getStringKey())); + holder.title.setText(item.getUserProfileTitle()); + holder.descr.setText(String.format("Type: %s", Algorithms.capitalizeFirstLetterAndLowercase(item.getParent().getStringKey().replace("_", " ")))); } else { holder.title.setText(app.getResources().getString(item.getStringResource())); holder.descr.setText(String.format("Type: %s", Algorithms.capitalizeFirstLetterAndLowercase(item.getStringKey().replace("_", " ")))); diff --git a/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileActivity.java b/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileActivity.java deleted file mode 100644 index 49f583e8fe..0000000000 --- a/OsmAnd/src/net/osmand/plus/profiles/SelectedProfileActivity.java +++ /dev/null @@ -1,51 +0,0 @@ -package net.osmand.plus.profiles; - -import android.content.Intent; -import android.os.Bundle; -import android.support.annotation.Nullable; - -import android.view.MenuItem; - -import net.osmand.plus.R; -import net.osmand.plus.activities.OsmandActionBarActivity; -import net.osmand.util.Algorithms; - -public class SelectedProfileActivity extends OsmandActionBarActivity { - - @Override - protected void onCreate(@Nullable Bundle savedInstanceState) { - getMyApplication().applyTheme(this); - super.onCreate(savedInstanceState); - setContentView(R.layout.single_fragment_layout); - Intent intent = getIntent(); - if (intent.getExtras() != null) { - String title = Algorithms.capitalizeFirstLetterAndLowercase( - intent.getStringExtra("stringKey").replace("_", " ")); - if (intent.getBooleanExtra("isNew", false)) { - title = String.format("%s (new)", title); - } - if (getSupportActionBar() != null) { - getSupportActionBar().setTitle(title); - getSupportActionBar().setElevation(5.0f); - } - } - - if (savedInstanceState == null) { - SelectedProfileFragment selectedProfileFragment = new SelectedProfileFragment(); - selectedProfileFragment.setArguments(getIntent().getExtras()); - getSupportFragmentManager().beginTransaction().add(android.R.id.content, selectedProfileFragment).commit(); - } - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int itemId = item.getItemId(); - switch (itemId) { - case android.R.id.home: - finish(); - return true; - - } - return false; - } -} diff --git a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java index 7ae5a5071a..09df1a9a96 100644 --- a/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java +++ b/OsmAnd/src/net/osmand/plus/profiles/SettingsProfileFragment.java @@ -2,7 +2,6 @@ package net.osmand.plus.profiles; import static net.osmand.plus.profiles.ProfileBottomSheetDialogFragment.TYPE_APP_PROFILE; -import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; @@ -85,9 +84,14 @@ public class SettingsProfileFragment extends BaseOsmAndFragment { @Override public void editProfile(ApplicationMode item) { - Intent intent = new Intent(getActivity(), SelectedProfileActivity.class); + Intent intent = new Intent(getActivity(), EditProfileActivity.class); intent.putExtra("stringKey", item.getStringKey()); intent.putExtra("isNew", false); + if (!item.getUserProfileTitle().isEmpty()) { + intent.putExtra("isUserProfile", true); + } else { + intent.putExtra("isUserProfile", false); + } startActivity(intent); } }; @@ -96,8 +100,9 @@ public class SettingsProfileFragment extends BaseOsmAndFragment { @Override public void onSelectedType(int pos) { LOG.debug("Base profile: " + baseProfiles.get(pos).getName()); - Intent intent = new Intent(getActivity(), SelectedProfileActivity.class); + Intent intent = new Intent(getActivity(), EditProfileActivity.class); intent.putExtra("isNew", true); + intent.putExtra("isUserProfile", true); intent.putExtra("stringKey", baseProfiles.get(pos).getStringKey()); startActivity(intent); } @@ -132,6 +137,15 @@ public class SettingsProfileFragment extends BaseOsmAndFragment { return view; } + @Override + public void onResume() { + super.onResume(); + allAppModes = ApplicationMode.allPossibleValues(); + allAppModes.remove(ApplicationMode.DEFAULT); + + adapter.updateItemsList(allAppModes); + } + private ArrayList getBaseProfiles() { ArrayList profiles = new ArrayList<>(); for (ApplicationMode mode : ApplicationMode.getDefaultValues()) {