Fix #7585
This commit is contained in:
parent
ab70f21acb
commit
192f84c80c
12 changed files with 416 additions and 259 deletions
|
@ -1,9 +1,65 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
<FrameLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="?attr/activity_background_color"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<android.support.design.widget.AppBarLayout
|
||||||
|
android:id="@+id/appbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<android.support.v7.widget.Toolbar
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/toolbar_height"
|
||||||
|
android:background="?attr/actionModeBackground"
|
||||||
|
app:contentInsetLeft="0dp"
|
||||||
|
app:contentInsetStart="0dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/close_button"
|
||||||
|
style="@style/Widget.AppCompat.Toolbar.Button.Navigation"
|
||||||
|
android:layout_width="@dimen/toolbar_height"
|
||||||
|
android:layout_height="@dimen/toolbar_height"
|
||||||
|
android:contentDescription="@string/access_shared_string_navigate_up"
|
||||||
|
android:src="@drawable/ic_action_mode_back" />
|
||||||
|
|
||||||
|
<net.osmand.plus.widgets.TextViewEx
|
||||||
|
android:id="@+id/toolbar_title"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingLeft="@dimen/content_padding"
|
||||||
|
android:paddingRight="@dimen/content_padding"
|
||||||
|
android:textColor="?attr/app_bar_primary_item_color"
|
||||||
|
android:textSize="@dimen/dialog_header_text_size"
|
||||||
|
app:typeface="@string/font_roboto_medium"
|
||||||
|
tools:text="@string/routing_settings_2" />
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/delete_button"
|
||||||
|
style="@style/Widget.AppCompat.Toolbar.Button.Navigation"
|
||||||
|
android:layout_width="@dimen/toolbar_height"
|
||||||
|
android:layout_height="@dimen/toolbar_height"
|
||||||
|
android:contentDescription="@string/shared_string_delete"
|
||||||
|
android:src="@drawable/ic_action_delete_dark" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</android.support.v7.widget.Toolbar>
|
||||||
|
|
||||||
|
</android.support.design.widget.AppBarLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/activity_background_color">
|
android:background="?attr/activity_background_color">
|
||||||
|
@ -379,7 +435,7 @@
|
||||||
android:textColor="@color/description_font_and_bottom_sheet_icons"/>
|
android:textColor="@color/description_font_and_bottom_sheet_icons"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/map_config_btn"
|
android:id="@+id/profile_config_btn"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="65dp"
|
android:layout_height="65dp"
|
||||||
android:background="?android:attr/selectableItemBackground"
|
android:background="?android:attr/selectableItemBackground"
|
||||||
|
@ -387,133 +443,37 @@
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/map_config_icon"
|
android:id="@+id/profile_config_icon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="24dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:layout_marginStart="@dimen/list_content_padding"
|
android:layout_marginStart="@dimen/list_content_padding"
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:src="@drawable/ic_action_layers_dark"
|
android:src="@drawable/ic_action_settings"
|
||||||
android:tint="?attr/default_icon_color"/>
|
android:tint="?attr/default_icon_color"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="24dp"
|
android:layout_marginStart="24dp"
|
||||||
android:layout_marginEnd="@dimen/list_content_padding"
|
|
||||||
android:layout_marginLeft="24dp"
|
android:layout_marginLeft="24dp"
|
||||||
|
android:layout_marginEnd="@dimen/list_content_padding"
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/configure_map"
|
android:text="@string/configure_profile"
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
android:textSize="@dimen/default_list_text_size"/>
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/edit_profile_setup_map_subtitle"
|
android:textColor="@color/description_font_and_bottom_sheet_icons"
|
||||||
android:textColor="@color/description_font_and_bottom_sheet_icons"/>
|
android:visibility="gone"
|
||||||
</LinearLayout>
|
tools:text="@string/configure_profile_info"
|
||||||
</LinearLayout>
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp"
|
|
||||||
android:layout_marginStart="64dp"
|
|
||||||
android:layout_marginLeft="64dp"
|
|
||||||
android:background="?attr/divider_color"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/screen_config_btn"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="64dp"
|
|
||||||
android:background="?android:attr/selectableItemBackground"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/screen_config_icon"
|
|
||||||
android:layout_width="24dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:layout_marginStart="@dimen/list_content_padding"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:src="@drawable/ic_configure_screen_dark"
|
|
||||||
android:tint="?attr/default_icon_color"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="24dp"
|
|
||||||
android:layout_marginEnd="@dimen/list_content_padding"
|
|
||||||
android:layout_marginLeft="24dp"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/map_widget_config"
|
|
||||||
android:textColor="?android:textColorPrimary"
|
|
||||||
android:textSize="@dimen/default_list_text_size"/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/edit_profile_screen_options_subtitle"
|
|
||||||
android:textColor="@color/description_font_and_bottom_sheet_icons"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp"
|
|
||||||
android:layout_marginStart="64dp"
|
|
||||||
android:layout_marginLeft="64dp"
|
|
||||||
android:background="?attr/divider_color"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/nav_settings_btn"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="64dp"
|
|
||||||
android:background="?android:attr/selectableItemBackground"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/nav_settings_icon"
|
|
||||||
android:layout_width="24dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:layout_marginStart="@dimen/list_content_padding"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:src="@drawable/ic_action_gdirections_dark"
|
|
||||||
android:tint="?attr/default_icon_color"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="24dp"
|
|
||||||
android:layout_marginEnd="@dimen/list_content_padding"
|
|
||||||
android:layout_marginLeft="24dp"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/routing_settings_2"
|
|
||||||
android:textColor="?android:textColorPrimary"
|
|
||||||
android:textSize="@dimen/default_list_text_size"/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/edit_profile_nav_settings_subtitle"
|
|
||||||
android:textColor="@color/description_font_and_bottom_sheet_icons"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
@ -613,3 +573,5 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -1,6 +1,20 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="?attr/activity_background_color"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<android.support.design.widget.AppBarLayout
|
||||||
|
android:id="@+id/appbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<include layout="@layout/global_preference_toolbar" />
|
||||||
|
|
||||||
|
</android.support.design.widget.AppBarLayout>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/activity_background_color"
|
android:background="?attr/activity_background_color"
|
||||||
|
@ -48,3 +62,5 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -36,6 +36,14 @@
|
||||||
android:title="@string/configure_map"
|
android:title="@string/configure_map"
|
||||||
tools:icon="@drawable/ic_action_layers_dark" />
|
tools:icon="@drawable/ic_action_layers_dark" />
|
||||||
|
|
||||||
|
<Preference
|
||||||
|
android:key="configure_screen"
|
||||||
|
android:layout="@layout/preference_with_descr"
|
||||||
|
android:persistent="false"
|
||||||
|
android:summary="@string/edit_profile_screen_options_subtitle"
|
||||||
|
android:title="@string/map_widget_config"
|
||||||
|
tools:icon="@drawable/ic_configure_screen_dark" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:layout="@layout/list_item_divider"
|
android:layout="@layout/list_item_divider"
|
||||||
android:selectable="false" />
|
android:selectable="false" />
|
||||||
|
|
|
@ -128,6 +128,7 @@ import net.osmand.plus.search.QuickSearchDialogFragment;
|
||||||
import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchTab;
|
import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchTab;
|
||||||
import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchType;
|
import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchType;
|
||||||
import net.osmand.plus.settings.BaseSettingsFragment;
|
import net.osmand.plus.settings.BaseSettingsFragment;
|
||||||
|
import net.osmand.plus.settings.ConfigureProfileFragment;
|
||||||
import net.osmand.plus.settings.MainSettingsFragment;
|
import net.osmand.plus.settings.MainSettingsFragment;
|
||||||
import net.osmand.plus.views.AddGpxPointBottomSheetHelper.NewGpxPoint;
|
import net.osmand.plus.views.AddGpxPointBottomSheetHelper.NewGpxPoint;
|
||||||
import net.osmand.plus.views.AnimateDraggingMapThread;
|
import net.osmand.plus.views.AnimateDraggingMapThread;
|
||||||
|
@ -161,6 +162,8 @@ import java.util.concurrent.Executors;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
import static net.osmand.plus.OsmAndCustomizationConstants.DRAWER_SETTINGS_ID;
|
||||||
|
|
||||||
public class MapActivity extends OsmandActionBarActivity implements DownloadEvents,
|
public class MapActivity extends OsmandActionBarActivity implements DownloadEvents,
|
||||||
OnRequestPermissionsResultCallback, IRouteInformationListener, AMapPointUpdateListener,
|
OnRequestPermissionsResultCallback, IRouteInformationListener, AMapPointUpdateListener,
|
||||||
MapMarkerChangedListener, OnDismissDialogFragmentListener, OnDrawMapListener,
|
MapMarkerChangedListener, OnDismissDialogFragmentListener, OnDrawMapListener,
|
||||||
|
@ -639,6 +642,13 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
||||||
chooseRouteFragment.dismiss(true);
|
chooseRouteFragment.dismiss(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
EditProfileFragment editProfileFragment = getEditProfileFragment();
|
||||||
|
if (editProfileFragment != null) {
|
||||||
|
if (!editProfileFragment.onBackPressedAllowed()) {
|
||||||
|
editProfileFragment.confirmCancelDialog(this);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (mapContextMenu.isVisible() && mapContextMenu.isClosable()) {
|
if (mapContextMenu.isVisible() && mapContextMenu.isClosable()) {
|
||||||
if (mapContextMenu.getCurrentMenuState() != MenuState.HEADER_ONLY) {
|
if (mapContextMenu.getCurrentMenuState() != MenuState.HEADER_ONLY) {
|
||||||
mapContextMenu.openMenuHeaderOnly();
|
mapContextMenu.openMenuHeaderOnly();
|
||||||
|
@ -804,6 +814,13 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
||||||
}
|
}
|
||||||
setIntent(null);
|
setIntent(null);
|
||||||
}
|
}
|
||||||
|
if (intent.hasExtra(EditProfileFragment.OPEN_SETTINGS)) {
|
||||||
|
String settingsType = intent.getStringExtra(EditProfileFragment.OPEN_SETTINGS);
|
||||||
|
if (EditProfileFragment.OPEN_CONFIG_PROFILE.equals(settingsType)) {
|
||||||
|
ConfigureProfileFragment.showInstance(getSupportFragmentManager());
|
||||||
|
}
|
||||||
|
setIntent(null);
|
||||||
|
}
|
||||||
if (intent.hasExtra(EditProfileFragment.OPEN_CONFIG_ON_MAP)) {
|
if (intent.hasExtra(EditProfileFragment.OPEN_CONFIG_ON_MAP)) {
|
||||||
switch (intent.getStringExtra(EditProfileFragment.OPEN_CONFIG_ON_MAP)) {
|
switch (intent.getStringExtra(EditProfileFragment.OPEN_CONFIG_ON_MAP)) {
|
||||||
case EditProfileFragment.MAP_CONFIG:
|
case EditProfileFragment.MAP_CONFIG:
|
||||||
|
@ -995,7 +1012,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
||||||
private BaseSettingsFragment getVisibleBaseSettingsFragment(int... ids) {
|
private BaseSettingsFragment getVisibleBaseSettingsFragment(int... ids) {
|
||||||
for (int id : ids) {
|
for (int id : ids) {
|
||||||
Fragment fragment = getSupportFragmentManager().findFragmentById(id);
|
Fragment fragment = getSupportFragmentManager().findFragmentById(id);
|
||||||
if (fragment != null && !fragment.isRemoving() && fragment instanceof BaseSettingsFragment
|
if (fragment != null && !fragment.isRemoving() && fragment.isVisible() && fragment instanceof BaseSettingsFragment
|
||||||
&& ((BaseSettingsFragment) fragment).getStatusBarColorId() != -1) {
|
&& ((BaseSettingsFragment) fragment).getStatusBarColorId() != -1) {
|
||||||
return (BaseSettingsFragment) fragment;
|
return (BaseSettingsFragment) fragment;
|
||||||
}
|
}
|
||||||
|
@ -1957,25 +1974,31 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceStartFragment(PreferenceFragmentCompat caller, Preference pref) {
|
public boolean onPreferenceStartFragment(PreferenceFragmentCompat caller, Preference pref) {
|
||||||
if (caller instanceof BaseSettingsFragment) {
|
try {
|
||||||
BaseSettingsFragment baseFragment = (BaseSettingsFragment) caller;
|
|
||||||
|
|
||||||
ApplicationMode mode = baseFragment.getSelectedAppMode();
|
|
||||||
if (mode != null) {
|
|
||||||
String fragmentName = pref.getFragment();
|
String fragmentName = pref.getFragment();
|
||||||
Fragment fragment = Fragment.instantiate(this, fragmentName);
|
Fragment fragment = Fragment.instantiate(this, fragmentName);
|
||||||
|
|
||||||
getSupportFragmentManager().beginTransaction()
|
getSupportFragmentManager().beginTransaction()
|
||||||
.replace(R.id.fragmentContainer, fragment, fragmentName)
|
.replace(R.id.fragmentContainer, fragment, fragment.getClass().getSimpleName())
|
||||||
.addToBackStack(fragmentName)
|
.addToBackStack(DRAWER_SETTINGS_ID + ".new")
|
||||||
.commitAllowingStateLoss();
|
.commit();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOG.error(e);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void dismissSettingsScreens() {
|
||||||
|
try {
|
||||||
|
getSupportFragmentManager().popBackStack(DRAWER_SETTINGS_ID + ".new", FragmentManager.POP_BACK_STACK_INCLUSIVE);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class ScreenOffReceiver extends BroadcastReceiver {
|
private class ScreenOffReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2193,6 +2216,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showSettings() {
|
public void showSettings() {
|
||||||
|
dismissSettingsScreens();
|
||||||
MainSettingsFragment.showInstance(getSupportFragmentManager());
|
MainSettingsFragment.showInstance(getSupportFragmentManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2232,6 +2256,11 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
||||||
return fragment != null && !fragment.isDetached() && !fragment.isRemoving() ? (ChooseRouteFragment) fragment : null;
|
return fragment != null && !fragment.isDetached() && !fragment.isRemoving() ? (ChooseRouteFragment) fragment : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public EditProfileFragment getEditProfileFragment() {
|
||||||
|
Fragment fragment = getSupportFragmentManager().findFragmentByTag(EditProfileFragment.TAG);
|
||||||
|
return fragment != null && !fragment.isDetached() && !fragment.isRemoving() ? (EditProfileFragment) fragment : null;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isTopToolbarActive() {
|
public boolean isTopToolbarActive() {
|
||||||
MapInfoLayer mapInfoLayer = getMapLayers().getMapInfoLayer();
|
MapInfoLayer mapInfoLayer = getMapLayers().getMapInfoLayer();
|
||||||
return mapInfoLayer.hasTopToolbar();
|
return mapInfoLayer.hasTopToolbar();
|
||||||
|
|
|
@ -663,6 +663,7 @@ public class MapActivityActions implements DialogProvider {
|
||||||
.setListener(new ItemClickListener() {
|
.setListener(new ItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextMenuClick(ArrayAdapter<ContextMenuItem> adapter, int itemId, int position, boolean isChecked, int[] viewCoordinates) {
|
public boolean onContextMenuClick(ArrayAdapter<ContextMenuItem> adapter, int itemId, int position, boolean isChecked, int[] viewCoordinates) {
|
||||||
|
mapActivity.dismissSettingsScreens();
|
||||||
ConfigureProfileFragment.showInstance(mapActivity.getSupportFragmentManager());
|
ConfigureProfileFragment.showInstance(mapActivity.getSupportFragmentManager());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,14 +8,12 @@ import android.support.v4.view.MenuItemCompat;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import net.osmand.PlatformUtil;
|
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.activities.OsmandActionBarActivity;
|
import net.osmand.plus.activities.OsmandActionBarActivity;
|
||||||
|
|
||||||
public class EditProfileActivity extends OsmandActionBarActivity {
|
public class EditProfileActivity extends OsmandActionBarActivity {
|
||||||
|
|
||||||
public static final int DELETE_ID = 1010;
|
public static final int DELETE_ID = 1010;
|
||||||
public static final String EDIT_PROFILE_FRAGMENT_TAG = "editProfileFragment";
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
@ -27,7 +25,7 @@ public class EditProfileActivity extends OsmandActionBarActivity {
|
||||||
EditProfileFragment editProfileFragment = new EditProfileFragment();
|
EditProfileFragment editProfileFragment = new EditProfileFragment();
|
||||||
editProfileFragment.setArguments(getIntent().getExtras());
|
editProfileFragment.setArguments(getIntent().getExtras());
|
||||||
getSupportFragmentManager().beginTransaction().add(android.R.id.content,
|
getSupportFragmentManager().beginTransaction().add(android.R.id.content,
|
||||||
editProfileFragment, EDIT_PROFILE_FRAGMENT_TAG).commit();
|
editProfileFragment, EditProfileFragment.TAG).commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +51,7 @@ public class EditProfileActivity extends OsmandActionBarActivity {
|
||||||
return true;
|
return true;
|
||||||
case DELETE_ID:
|
case DELETE_ID:
|
||||||
((EditProfileFragment) getSupportFragmentManager().findFragmentByTag(
|
((EditProfileFragment) getSupportFragmentManager().findFragmentByTag(
|
||||||
EDIT_PROFILE_FRAGMENT_TAG)).onDeleteProfileClick();
|
EditProfileFragment.TAG)).onDeleteProfileClick();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -63,7 +61,7 @@ public class EditProfileActivity extends OsmandActionBarActivity {
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
final EditProfileFragment epf = (EditProfileFragment) getSupportFragmentManager()
|
final EditProfileFragment epf = (EditProfileFragment) getSupportFragmentManager()
|
||||||
.findFragmentByTag(EDIT_PROFILE_FRAGMENT_TAG);
|
.findFragmentByTag(EditProfileFragment.TAG);
|
||||||
if (epf.onBackPressedAllowed()) {
|
if (epf.onBackPressedAllowed()) {
|
||||||
super.onBackPressed();
|
super.onBackPressed();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,15 +1,5 @@
|
||||||
package net.osmand.plus.profiles;
|
package net.osmand.plus.profiles;
|
||||||
|
|
||||||
import static net.osmand.plus.activities.SettingsNavigationActivity.INTENT_SKIP_DIALOG;
|
|
||||||
import static net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.DIALOG_TYPE;
|
|
||||||
import static net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.SELECTED_KEY;
|
|
||||||
import static net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.TYPE_BASE_APP_PROFILE;
|
|
||||||
import static net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.TYPE_ICON;
|
|
||||||
import static net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.TYPE_NAV_PROFILE;
|
|
||||||
import static net.osmand.plus.profiles.SettingsProfileFragment.IS_NEW_PROFILE;
|
|
||||||
import static net.osmand.plus.profiles.SettingsProfileFragment.IS_USER_PROFILE;
|
|
||||||
import static net.osmand.plus.profiles.SettingsProfileFragment.PROFILE_STRING_KEY;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
@ -22,17 +12,20 @@ import android.os.Build.VERSION_CODES;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.design.widget.AppBarLayout;
|
||||||
|
import android.support.v4.app.FragmentActivity;
|
||||||
|
import android.support.v4.app.FragmentManager;
|
||||||
|
import android.support.v4.view.ViewCompat;
|
||||||
import android.support.v7.app.AlertDialog;
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.support.v7.app.AlertDialog.Builder;
|
import android.support.v7.app.AlertDialog.Builder;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
|
import android.view.ContextThemeWrapper;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
|
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
@ -46,10 +39,7 @@ import android.widget.ListPopupWindow;
|
||||||
import android.widget.ScrollView;
|
import android.widget.ScrollView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Map.Entry;
|
|
||||||
import net.osmand.AndroidUtils;
|
import net.osmand.AndroidUtils;
|
||||||
import net.osmand.PlatformUtil;
|
import net.osmand.PlatformUtil;
|
||||||
import net.osmand.plus.ApplicationMode;
|
import net.osmand.plus.ApplicationMode;
|
||||||
|
@ -57,21 +47,41 @@ import net.osmand.plus.ApplicationMode.ProfileIconColors;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.activities.OsmandActionBarActivity;
|
|
||||||
import net.osmand.plus.activities.SettingsNavigationActivity;
|
|
||||||
import net.osmand.plus.base.BaseOsmAndFragment;
|
import net.osmand.plus.base.BaseOsmAndFragment;
|
||||||
|
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||||
import net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.SelectProfileListener;
|
import net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.SelectProfileListener;
|
||||||
import net.osmand.plus.routing.RouteProvider.RouteService;
|
import net.osmand.plus.routing.RouteProvider.RouteService;
|
||||||
|
import net.osmand.plus.settings.ConfigureProfileFragment;
|
||||||
import net.osmand.plus.widgets.OsmandTextFieldBoxes;
|
import net.osmand.plus.widgets.OsmandTextFieldBoxes;
|
||||||
import net.osmand.router.GeneralRouter;
|
import net.osmand.router.GeneralRouter;
|
||||||
import net.osmand.util.Algorithms;
|
import net.osmand.util.Algorithms;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import studio.carbonylgroup.textfieldboxes.ExtendedEditText;
|
import studio.carbonylgroup.textfieldboxes.ExtendedEditText;
|
||||||
|
|
||||||
|
import static net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.DIALOG_TYPE;
|
||||||
|
import static net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.SELECTED_KEY;
|
||||||
|
import static net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.TYPE_BASE_APP_PROFILE;
|
||||||
|
import static net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.TYPE_ICON;
|
||||||
|
import static net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.TYPE_NAV_PROFILE;
|
||||||
|
import static net.osmand.plus.profiles.SettingsProfileFragment.IS_NEW_PROFILE;
|
||||||
|
import static net.osmand.plus.profiles.SettingsProfileFragment.IS_USER_PROFILE;
|
||||||
|
import static net.osmand.plus.profiles.SettingsProfileFragment.PROFILE_STRING_KEY;
|
||||||
|
|
||||||
public class EditProfileFragment extends BaseOsmAndFragment {
|
public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
|
|
||||||
private static final Log LOG = PlatformUtil.getLog(EditProfileFragment.class);
|
private static final Log LOG = PlatformUtil.getLog(EditProfileFragment.class);
|
||||||
|
|
||||||
|
public static final String TAG = EditProfileFragment.class.getSimpleName();
|
||||||
|
|
||||||
|
public static final String OPEN_CONFIG_PROFILE = "openConfigProfile";
|
||||||
|
public static final String OPEN_SETTINGS = "openSettings";
|
||||||
public static final String OPEN_CONFIG_ON_MAP = "openConfigOnMap";
|
public static final String OPEN_CONFIG_ON_MAP = "openConfigOnMap";
|
||||||
public static final String MAP_CONFIG = "openMapConfigMenu";
|
public static final String MAP_CONFIG = "openMapConfigMenu";
|
||||||
public static final String NAV_CONFIG = "openNavConfigMenu";
|
public static final String NAV_CONFIG = "openNavConfigMenu";
|
||||||
|
@ -96,6 +106,7 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
private SelectProfileListener iconIdListener = null;
|
private SelectProfileListener iconIdListener = null;
|
||||||
private SelectProfileListener baseTypeListener = null;
|
private SelectProfileListener baseTypeListener = null;
|
||||||
|
|
||||||
|
private TextView toolbarTitle;
|
||||||
private ImageView profileIcon;
|
private ImageView profileIcon;
|
||||||
private LinearLayout profileIconBtn;
|
private LinearLayout profileIconBtn;
|
||||||
private ImageView colorSample;
|
private ImageView colorSample;
|
||||||
|
@ -107,9 +118,7 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
private FrameLayout selectNavTypeBtn;
|
private FrameLayout selectNavTypeBtn;
|
||||||
private Button cancelBtn;
|
private Button cancelBtn;
|
||||||
private Button saveButton;
|
private Button saveButton;
|
||||||
private View mapConfigBtn;
|
private View profileConfigBtn;
|
||||||
private View screenConfigBtn;
|
|
||||||
private View navConfigBtn;
|
|
||||||
private LinearLayout buttonsLayout;
|
private LinearLayout buttonsLayout;
|
||||||
private FrameLayout clickBlockLayout;
|
private FrameLayout clickBlockLayout;
|
||||||
private LinearLayout typeSelectionBtn;
|
private LinearLayout typeSelectionBtn;
|
||||||
|
@ -139,9 +148,15 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||||
@Nullable Bundle savedInstanceState) {
|
@Nullable Bundle savedInstanceState) {
|
||||||
final EditProfileActivity activity = (EditProfileActivity) getActivity();
|
final FragmentActivity activity = getActivity();
|
||||||
final View view = inflater.inflate(R.layout.fragment_selected_profile, container, false);
|
|
||||||
|
|
||||||
|
int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
|
||||||
|
Context themedContext = new ContextThemeWrapper(getContext(), themeRes);
|
||||||
|
final View view = inflater.cloneInContext(themedContext).inflate(R.layout.fragment_selected_profile, container, false);
|
||||||
|
|
||||||
|
setupToolbar(view);
|
||||||
|
|
||||||
|
toolbarTitle = view.findViewById(R.id.toolbar_title);
|
||||||
profileIcon = view.findViewById(R.id.profile_icon_img);
|
profileIcon = view.findViewById(R.id.profile_icon_img);
|
||||||
profileIconBtn = view.findViewById(R.id.select_icon_button);
|
profileIconBtn = view.findViewById(R.id.select_icon_button);
|
||||||
colorSample = view.findViewById(R.id.color_sample_img);
|
colorSample = view.findViewById(R.id.color_sample_img);
|
||||||
|
@ -153,9 +168,7 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
selectNavTypeBtn = view.findViewById(R.id.select_nav_type_btn);
|
selectNavTypeBtn = view.findViewById(R.id.select_nav_type_btn);
|
||||||
cancelBtn = view.findViewById(R.id.cancel_button);
|
cancelBtn = view.findViewById(R.id.cancel_button);
|
||||||
saveButton = view.findViewById(R.id.save_profile_btn);
|
saveButton = view.findViewById(R.id.save_profile_btn);
|
||||||
mapConfigBtn = view.findViewById(R.id.map_config_btn);
|
profileConfigBtn = view.findViewById(R.id.profile_config_btn);
|
||||||
screenConfigBtn = view.findViewById(R.id.screen_config_btn);
|
|
||||||
navConfigBtn = view.findViewById(R.id.nav_settings_btn);
|
|
||||||
buttonsLayout = view.findViewById(R.id.buttons_layout);
|
buttonsLayout = view.findViewById(R.id.buttons_layout);
|
||||||
clickBlockLayout = view.findViewById(R.id.click_block_layout);
|
clickBlockLayout = view.findViewById(R.id.click_block_layout);
|
||||||
typeSelectionBtn = view.findViewById(R.id.type_selection_button);
|
typeSelectionBtn = view.findViewById(R.id.type_selection_button);
|
||||||
|
@ -242,11 +255,7 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
}
|
}
|
||||||
profileNameEt.clearFocus();
|
profileNameEt.clearFocus();
|
||||||
|
|
||||||
if (getActivity() != null
|
updateToolbar(title);
|
||||||
&& ((EditProfileActivity) getActivity()).getSupportActionBar() != null) {
|
|
||||||
((EditProfileActivity) getActivity()).getSupportActionBar().setTitle(title);
|
|
||||||
((EditProfileActivity) getActivity()).getSupportActionBar().setElevation(5.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
int iconColor = profile.iconColor.getColor(nightMode);
|
int iconColor = profile.iconColor.getColor(nightMode);
|
||||||
|
|
||||||
|
@ -264,15 +273,10 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterTextChanged(Editable s) {
|
public void afterTextChanged(Editable s) {
|
||||||
if (getActivity() instanceof OsmandActionBarActivity) {
|
|
||||||
ActionBar actionBar = ((OsmandActionBarActivity) getActivity())
|
|
||||||
.getSupportActionBar();
|
|
||||||
if (actionBar != null) {
|
|
||||||
actionBar.setTitle(s.toString());
|
|
||||||
profile.userProfileTitle = s.toString();
|
profile.userProfileTitle = s.toString();
|
||||||
isCancelAllowed = false;
|
isCancelAllowed = false;
|
||||||
}
|
|
||||||
}
|
updateToolbar(s.toString());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -358,7 +362,7 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
mapConfigBtn.setOnClickListener(new OnClickListener() {
|
profileConfigBtn.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (isDataChanged) {
|
if (isDataChanged) {
|
||||||
|
@ -366,43 +370,18 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
} else if (getSettings() != null) {
|
} else if (getSettings() != null) {
|
||||||
activateMode(mode);
|
activateMode(mode);
|
||||||
getSettings().APPLICATION_MODE.set(mode);
|
getSettings().APPLICATION_MODE.set(mode);
|
||||||
Intent i = new Intent(getActivity(), MapActivity.class);
|
|
||||||
i.putExtra(OPEN_CONFIG_ON_MAP, MAP_CONFIG);
|
|
||||||
i.putExtra(SELECTED_ITEM, profile.stringKey);
|
|
||||||
startActivity(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
screenConfigBtn.setOnClickListener(new OnClickListener() {
|
if (activity instanceof EditProfileActivity) {
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
if (isDataChanged) {
|
|
||||||
needSaveDialog();
|
|
||||||
} else if (getSettings() != null) {
|
|
||||||
activateMode(mode);
|
|
||||||
getSettings().APPLICATION_MODE.set(mode);
|
|
||||||
Intent i = new Intent(getActivity(), MapActivity.class);
|
Intent i = new Intent(getActivity(), MapActivity.class);
|
||||||
i.putExtra(OPEN_CONFIG_ON_MAP, SCREEN_CONFIG);
|
i.putExtra(OPEN_SETTINGS, OPEN_CONFIG_PROFILE);
|
||||||
i.putExtra(SELECTED_ITEM, profile.stringKey);
|
i.putExtra(SELECTED_ITEM, profile.stringKey);
|
||||||
startActivity(i);
|
startActivity(i);
|
||||||
|
} else {
|
||||||
|
FragmentManager fragmentManager = getFragmentManager();
|
||||||
|
if (fragmentManager != null) {
|
||||||
|
ConfigureProfileFragment.showInstance(fragmentManager);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
navConfigBtn.setOnClickListener(new OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
if (isDataChanged) {
|
|
||||||
needSaveDialog();
|
|
||||||
} else if (getSettings() != null) {
|
|
||||||
activateMode(mode);
|
|
||||||
getSettings().APPLICATION_MODE.set(mode);
|
|
||||||
Intent i = new Intent(getActivity(), SettingsNavigationActivity.class);
|
|
||||||
i.putExtra(INTENT_SKIP_DIALOG, true);
|
|
||||||
i.putExtra(OPEN_CONFIG_ON_MAP, NAV_CONFIG);
|
|
||||||
i.putExtra(SELECTED_ITEM, profile.stringKey);
|
|
||||||
startActivity(i);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -450,13 +429,13 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final float d = getResources().getDisplayMetrics().density;
|
||||||
view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
|
view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onGlobalLayout() {
|
public void onGlobalLayout() {
|
||||||
int marginShow = 66;
|
int marginShow = 66;
|
||||||
int marginHide = 0;
|
int marginHide = 0;
|
||||||
|
|
||||||
float d = getResources().getDisplayMetrics().density;
|
|
||||||
Rect r = new Rect();
|
Rect r = new Rect();
|
||||||
view.getWindowVisibleDisplayFrame(r);
|
view.getWindowVisibleDisplayFrame(r);
|
||||||
int screenHeight = view.getRootView().getHeight();
|
int screenHeight = view.getRootView().getHeight();
|
||||||
|
@ -483,7 +462,12 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean onBackPressedAllowed() {
|
@Override
|
||||||
|
public int getStatusBarColorId() {
|
||||||
|
return nightMode ? R.color.status_bar_color_dark : R.color.status_bar_color_light;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean onBackPressedAllowed() {
|
||||||
return isCancelAllowed;
|
return isCancelAllowed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -567,6 +551,54 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setupToolbar(View view) {
|
||||||
|
FragmentActivity activity = getActivity();
|
||||||
|
AppBarLayout appBar = (AppBarLayout) view.findViewById(R.id.appbar);
|
||||||
|
|
||||||
|
if ((activity instanceof EditProfileActivity)) {
|
||||||
|
EditProfileActivity editProfileActivity = (EditProfileActivity) activity;
|
||||||
|
if (editProfileActivity.getSupportActionBar() != null) {
|
||||||
|
editProfileActivity.getSupportActionBar().setElevation(5.0f);
|
||||||
|
}
|
||||||
|
AndroidUiHelper.updateVisibility(appBar, false);
|
||||||
|
} else {
|
||||||
|
setHasOptionsMenu(true);
|
||||||
|
AndroidUtils.addStatusBarPadding21v(activity, view);
|
||||||
|
ViewCompat.setElevation(appBar, 5.0f);
|
||||||
|
|
||||||
|
View closeButton = view.findViewById(R.id.close_button);
|
||||||
|
closeButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
FragmentActivity fragmentActivity = getActivity();
|
||||||
|
if (fragmentActivity != null) {
|
||||||
|
fragmentActivity.onBackPressed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
View deleteBtn = view.findViewById(R.id.delete_button);
|
||||||
|
deleteBtn.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
onDeleteProfileClick();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateToolbar(String title) {
|
||||||
|
FragmentActivity activity = getActivity();
|
||||||
|
if (activity instanceof EditProfileActivity) {
|
||||||
|
EditProfileActivity editProfileActivity = (EditProfileActivity) activity;
|
||||||
|
if (editProfileActivity.getSupportActionBar() != null) {
|
||||||
|
editProfileActivity.getSupportActionBar().setTitle(title);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
toolbarTitle.setText(title);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setupBaseProfileView(String stringKey) {
|
private void setupBaseProfileView(String stringKey) {
|
||||||
for (ApplicationMode am : ApplicationMode.getDefaultValues()) {
|
for (ApplicationMode am : ApplicationMode.getDefaultValues()) {
|
||||||
if (am.getStringKey().equals(stringKey)) {
|
if (am.getStringKey().equals(stringKey)) {
|
||||||
|
@ -671,7 +703,7 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
bld.show();
|
bld.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
void confirmCancelDialog(final Activity activity) {
|
public void confirmCancelDialog(final Activity activity) {
|
||||||
AlertDialog.Builder bld = new Builder(activity);
|
AlertDialog.Builder bld = new Builder(activity);
|
||||||
bld.setTitle(R.string.shared_string_dismiss);
|
bld.setTitle(R.string.shared_string_dismiss);
|
||||||
bld.setMessage(R.string.exit_without_saving);
|
bld.setMessage(R.string.exit_without_saving);
|
||||||
|
@ -699,12 +731,15 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
ApplicationMode
|
OsmandApplication app = getMyApplication();
|
||||||
.deleteCustomMode(mode, getMyApplication());
|
if (app != null) {
|
||||||
|
ApplicationMode.deleteCustomMode(mode, app);
|
||||||
|
app.getSettings().APPLICATION_MODE.set(ApplicationMode.DEFAULT);
|
||||||
|
}
|
||||||
|
|
||||||
if (getActivity() != null) {
|
if (getActivity() != null) {
|
||||||
getActivity().onBackPressed();
|
getActivity().onBackPressed();
|
||||||
}
|
}
|
||||||
getSettings().APPLICATION_MODE.set(ApplicationMode.DEFAULT);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
bld.setNegativeButton(R.string.shared_string_dismiss, null);
|
bld.setNegativeButton(R.string.shared_string_dismiss, null);
|
||||||
|
@ -726,6 +761,26 @@ public class EditProfileFragment extends BaseOsmAndFragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean showInstance(FragmentManager fragmentManager, boolean newProfile, boolean userProfile, String profileKey) {
|
||||||
|
try {
|
||||||
|
Bundle args = new Bundle();
|
||||||
|
args.putBoolean(IS_NEW_PROFILE, newProfile);
|
||||||
|
args.putBoolean(IS_USER_PROFILE, userProfile);
|
||||||
|
args.putString(PROFILE_STRING_KEY, profileKey);
|
||||||
|
|
||||||
|
EditProfileFragment editProfileFragment = new EditProfileFragment();
|
||||||
|
editProfileFragment.setArguments(args);
|
||||||
|
|
||||||
|
fragmentManager.beginTransaction()
|
||||||
|
.replace(R.id.fragmentContainer, editProfileFragment, TAG)
|
||||||
|
.addToBackStack(TAG)
|
||||||
|
.commit();
|
||||||
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static List<RoutingProfileDataObject> getRoutingProfiles(OsmandApplication context) {
|
static List<RoutingProfileDataObject> getRoutingProfiles(OsmandApplication context) {
|
||||||
List<RoutingProfileDataObject> profilesObjects = new ArrayList<>();
|
List<RoutingProfileDataObject> profilesObjects = new ArrayList<>();
|
||||||
profilesObjects.add(new RoutingProfileDataObject(
|
profilesObjects.add(new RoutingProfileDataObject(
|
||||||
|
|
|
@ -7,16 +7,13 @@ import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v7.widget.SwitchCompat;
|
import android.support.v4.app.FragmentActivity;
|
||||||
|
import android.support.v4.app.FragmentManager;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.widget.Button;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
import net.osmand.PlatformUtil;
|
import net.osmand.PlatformUtil;
|
||||||
import net.osmand.plus.ApplicationMode;
|
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.base.MenuBottomSheetDialogFragment;
|
import net.osmand.plus.base.MenuBottomSheetDialogFragment;
|
||||||
|
@ -217,20 +214,29 @@ public class SelectProfileBottomSheetDialogFragment extends MenuBottomSheetDialo
|
||||||
|
|
||||||
|
|
||||||
private void getListener() {
|
private void getListener() {
|
||||||
if (getActivity() != null && getActivity() instanceof EditProfileActivity) {
|
FragmentActivity activity = getActivity();
|
||||||
EditProfileFragment f = (EditProfileFragment) getActivity().getSupportFragmentManager()
|
if (activity != null) {
|
||||||
.findFragmentByTag(EditProfileActivity.EDIT_PROFILE_FRAGMENT_TAG);
|
FragmentManager fragmentManager = activity.getSupportFragmentManager();
|
||||||
if (type.equals(TYPE_BASE_APP_PROFILE)) {
|
if (fragmentManager != null) {
|
||||||
listener = f.getBaseProfileListener();
|
EditProfileFragment editProfileFragment = (EditProfileFragment) fragmentManager.findFragmentByTag(EditProfileFragment.TAG);
|
||||||
} else if (type.equals(TYPE_NAV_PROFILE)) {
|
SettingsProfileFragment settingsProfileFragment = (SettingsProfileFragment) fragmentManager.findFragmentByTag(SettingsProfileFragment.TAG);
|
||||||
listener = f.getNavProfileListener();
|
|
||||||
} else if (type.equals(TYPE_ICON)) {
|
if (editProfileFragment != null) {
|
||||||
listener = f.getIconListener();
|
switch (type) {
|
||||||
|
case TYPE_BASE_APP_PROFILE:
|
||||||
|
listener = editProfileFragment.getBaseProfileListener();
|
||||||
|
break;
|
||||||
|
case TYPE_NAV_PROFILE:
|
||||||
|
listener = editProfileFragment.getNavProfileListener();
|
||||||
|
break;
|
||||||
|
case TYPE_ICON:
|
||||||
|
listener = editProfileFragment.getIconListener();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (settingsProfileFragment != null) {
|
||||||
|
listener = settingsProfileFragment.getBaseProfileListener();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (getActivity() != null && getActivity() instanceof SettingsProfileActivity) {
|
|
||||||
SettingsProfileFragment f = (SettingsProfileFragment) getActivity().getSupportFragmentManager()
|
|
||||||
.findFragmentByTag(SettingsProfileActivity.SETTINGS_PROFILE_FRAGMENT_TAG);
|
|
||||||
listener = f.getBaseProfileListener();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,12 @@ package net.osmand.plus.profiles;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.activities.OsmandActionBarActivity;
|
import net.osmand.plus.activities.OsmandActionBarActivity;
|
||||||
|
|
||||||
public class SettingsProfileActivity extends OsmandActionBarActivity {
|
public class SettingsProfileActivity extends OsmandActionBarActivity {
|
||||||
|
|
||||||
public static final String SETTINGS_PROFILE_FRAGMENT_TAG = "settingsProfileFragment";
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
getMyApplication().applyTheme(this);
|
getMyApplication().applyTheme(this);
|
||||||
|
@ -20,7 +19,7 @@ public class SettingsProfileActivity extends OsmandActionBarActivity {
|
||||||
SettingsProfileFragment profileFragment = new SettingsProfileFragment();
|
SettingsProfileFragment profileFragment = new SettingsProfileFragment();
|
||||||
profileFragment.setArguments(getIntent().getExtras());
|
profileFragment.setArguments(getIntent().getExtras());
|
||||||
getSupportFragmentManager().beginTransaction()
|
getSupportFragmentManager().beginTransaction()
|
||||||
.add(android.R.id.content, profileFragment, SETTINGS_PROFILE_FRAGMENT_TAG).commit();
|
.add(android.R.id.content, profileFragment, SettingsProfileFragment.TAG).commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,21 +10,32 @@ import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.support.design.widget.AppBarLayout;
|
||||||
|
import android.support.v4.app.FragmentActivity;
|
||||||
|
import android.support.v4.app.FragmentManager;
|
||||||
|
import android.support.v4.view.ViewCompat;
|
||||||
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
import android.support.v7.widget.RecyclerView;
|
import android.support.v7.widget.RecyclerView;
|
||||||
|
import android.view.ContextThemeWrapper;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import net.osmand.AndroidUtils;
|
||||||
import net.osmand.PlatformUtil;
|
import net.osmand.PlatformUtil;
|
||||||
import net.osmand.plus.ApplicationMode;
|
import net.osmand.plus.ApplicationMode;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.base.BaseOsmAndFragment;
|
import net.osmand.plus.base.BaseOsmAndFragment;
|
||||||
|
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||||
import net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.SelectProfileListener;
|
import net.osmand.plus.profiles.SelectProfileBottomSheetDialogFragment.SelectProfileListener;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
@ -34,21 +45,22 @@ public class SettingsProfileFragment extends BaseOsmAndFragment
|
||||||
|
|
||||||
private static final Log LOG = PlatformUtil.getLog(SettingsProfileFragment.class);
|
private static final Log LOG = PlatformUtil.getLog(SettingsProfileFragment.class);
|
||||||
|
|
||||||
|
public static final String TAG = "SettingsProfileFragment";
|
||||||
|
|
||||||
public static final String PROFILE_STRING_KEY = "string_key";
|
public static final String PROFILE_STRING_KEY = "string_key";
|
||||||
public static final String IS_NEW_PROFILE = "new_profile";
|
public static final String IS_NEW_PROFILE = "new_profile";
|
||||||
public static final String IS_USER_PROFILE = "user_profile";
|
public static final String IS_USER_PROFILE = "user_profile";
|
||||||
|
|
||||||
|
|
||||||
private ConfigureProfileMenuAdapter adapter;
|
private ConfigureProfileMenuAdapter adapter;
|
||||||
private RecyclerView recyclerView;
|
private SelectProfileListener typeListener = null;
|
||||||
private LinearLayout addNewProfileBtn;
|
|
||||||
|
|
||||||
SelectProfileListener typeListener = null;
|
|
||||||
|
|
||||||
private List<ApplicationMode> allAppModes;
|
private List<ApplicationMode> allAppModes;
|
||||||
private Set<ApplicationMode> availableAppModes;
|
private Set<ApplicationMode> availableAppModes;
|
||||||
private List<ProfileDataObject> baseProfiles;
|
private List<ProfileDataObject> baseProfiles;
|
||||||
|
|
||||||
|
private boolean nightMode;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -63,10 +75,36 @@ public class SettingsProfileFragment extends BaseOsmAndFragment
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||||
@Nullable Bundle savedInstanceState) {
|
@Nullable Bundle savedInstanceState) {
|
||||||
|
nightMode = !requireSettings().isLightContent();
|
||||||
|
|
||||||
View view = inflater.inflate(R.layout.profiles_list_fragment, container, false);
|
int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
|
||||||
recyclerView = view.findViewById(R.id.profiles_list);
|
Context themedContext = new ContextThemeWrapper(getContext(), themeRes);
|
||||||
addNewProfileBtn = view.findViewById(R.id.add_profile_btn);
|
View view = inflater.cloneInContext(themedContext).inflate(R.layout.profiles_list_fragment, container, false);
|
||||||
|
|
||||||
|
AppBarLayout appBar = (AppBarLayout) view.findViewById(R.id.appbar);
|
||||||
|
if (!(getActivity() instanceof SettingsProfileActivity)) {
|
||||||
|
AndroidUtils.addStatusBarPadding21v(getContext(), view);
|
||||||
|
ViewCompat.setElevation(appBar, 5.0f);
|
||||||
|
|
||||||
|
TextView toolbarTitle = (TextView) view.findViewById(R.id.toolbar_title);
|
||||||
|
toolbarTitle.setText(R.string.application_profiles);
|
||||||
|
|
||||||
|
View closeButton = view.findViewById(R.id.close_button);
|
||||||
|
closeButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
MapActivity mapActivity = (MapActivity) getActivity();
|
||||||
|
if (mapActivity != null) {
|
||||||
|
mapActivity.onBackPressed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
AndroidUiHelper.updateVisibility(appBar, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
RecyclerView recyclerView = view.findViewById(R.id.profiles_list);
|
||||||
|
LinearLayout addNewProfileBtn = view.findViewById(R.id.add_profile_btn);
|
||||||
|
|
||||||
addNewProfileBtn.setOnClickListener(new OnClickListener() {
|
addNewProfileBtn.setOnClickListener(new OnClickListener() {
|
||||||
|
|
||||||
|
@ -102,16 +140,32 @@ public class SettingsProfileFragment extends BaseOsmAndFragment
|
||||||
adapter.updateItemsList(allAppModes, new LinkedHashSet<>(ApplicationMode.values(getMyApplication())));
|
adapter.updateItemsList(allAppModes, new LinkedHashSet<>(ApplicationMode.values(getMyApplication())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getStatusBarColorId() {
|
||||||
|
return nightMode ? R.color.status_bar_color_dark : R.color.status_bar_color_light;
|
||||||
|
}
|
||||||
|
|
||||||
SelectProfileListener getBaseProfileListener() {
|
SelectProfileListener getBaseProfileListener() {
|
||||||
if (typeListener == null) {
|
if (typeListener == null) {
|
||||||
typeListener = new SelectProfileListener() {
|
typeListener = new SelectProfileListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSelectedType(int pos, String stringRes) {
|
public void onSelectedType(int pos, String stringRes) {
|
||||||
|
FragmentActivity activity = getActivity();
|
||||||
|
if (activity != null) {
|
||||||
|
if (activity instanceof SettingsProfileActivity) {
|
||||||
Intent intent = new Intent(getActivity(), EditProfileActivity.class);
|
Intent intent = new Intent(getActivity(), EditProfileActivity.class);
|
||||||
intent.putExtra(IS_NEW_PROFILE, true);
|
intent.putExtra(IS_NEW_PROFILE, true);
|
||||||
intent.putExtra(IS_USER_PROFILE, true);
|
intent.putExtra(IS_USER_PROFILE, true);
|
||||||
intent.putExtra(PROFILE_STRING_KEY, baseProfiles.get(pos).getStringKey());
|
intent.putExtra(PROFILE_STRING_KEY, baseProfiles.get(pos).getStringKey());
|
||||||
startActivity(intent);
|
activity.startActivity(intent);
|
||||||
|
} else {
|
||||||
|
FragmentManager fragmentManager = activity.getSupportFragmentManager();
|
||||||
|
if (fragmentManager != null) {
|
||||||
|
String profileKey = baseProfiles.get(pos).getStringKey();
|
||||||
|
EditProfileFragment.showInstance(fragmentManager, true, true, profileKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -131,17 +185,28 @@ public class SettingsProfileFragment extends BaseOsmAndFragment
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onProfilePressed(ApplicationMode item) {
|
public void onProfilePressed(ApplicationMode item) {
|
||||||
|
FragmentActivity activity = getActivity();
|
||||||
|
if (activity != null) {
|
||||||
|
if (activity instanceof SettingsProfileActivity) {
|
||||||
Intent intent = new Intent(getActivity(), EditProfileActivity.class);
|
Intent intent = new Intent(getActivity(), EditProfileActivity.class);
|
||||||
intent.putExtra(PROFILE_STRING_KEY, item.getStringKey());
|
intent.putExtra(PROFILE_STRING_KEY, item.getStringKey());
|
||||||
if (item.isCustomProfile()) {
|
if (item.isCustomProfile()) {
|
||||||
intent.putExtra(IS_USER_PROFILE, true);
|
intent.putExtra(IS_USER_PROFILE, true);
|
||||||
}
|
}
|
||||||
startActivity(intent);
|
activity.startActivity(intent);
|
||||||
|
} else {
|
||||||
|
FragmentManager fragmentManager = activity.getSupportFragmentManager();
|
||||||
|
if (fragmentManager != null) {
|
||||||
|
String profileKey = item.getStringKey();
|
||||||
|
EditProfileFragment.showInstance(fragmentManager, false, item.isCustomProfile(), profileKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onProfileSelected(ApplicationMode item, boolean isChecked) {
|
public void onProfileSelected(ApplicationMode item, boolean isChecked) {
|
||||||
if(isChecked) {
|
if (isChecked) {
|
||||||
availableAppModes.add(item);
|
availableAppModes.add(item);
|
||||||
} else {
|
} else {
|
||||||
availableAppModes.remove(item);
|
availableAppModes.remove(item);
|
||||||
|
|
|
@ -43,6 +43,7 @@ import java.util.List;
|
||||||
|
|
||||||
import static net.osmand.plus.profiles.EditProfileFragment.MAP_CONFIG;
|
import static net.osmand.plus.profiles.EditProfileFragment.MAP_CONFIG;
|
||||||
import static net.osmand.plus.profiles.EditProfileFragment.OPEN_CONFIG_ON_MAP;
|
import static net.osmand.plus.profiles.EditProfileFragment.OPEN_CONFIG_ON_MAP;
|
||||||
|
import static net.osmand.plus.profiles.EditProfileFragment.SCREEN_CONFIG;
|
||||||
import static net.osmand.plus.profiles.EditProfileFragment.SELECTED_ITEM;
|
import static net.osmand.plus.profiles.EditProfileFragment.SELECTED_ITEM;
|
||||||
|
|
||||||
public class ConfigureProfileFragment extends BaseSettingsFragment {
|
public class ConfigureProfileFragment extends BaseSettingsFragment {
|
||||||
|
@ -53,6 +54,7 @@ public class ConfigureProfileFragment extends BaseSettingsFragment {
|
||||||
|
|
||||||
private static final String PLUGIN_SETTINGS = "plugin_settings";
|
private static final String PLUGIN_SETTINGS = "plugin_settings";
|
||||||
private static final String CONFIGURE_MAP = "configure_map";
|
private static final String CONFIGURE_MAP = "configure_map";
|
||||||
|
private static final String CONFIGURE_SCREEN = "configure_screen";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getFragmentTag() {
|
protected String getFragmentTag() {
|
||||||
|
@ -181,6 +183,7 @@ public class ConfigureProfileFragment extends BaseSettingsFragment {
|
||||||
|
|
||||||
setupNavigationSettingsPref();
|
setupNavigationSettingsPref();
|
||||||
setupConfigureMapPref();
|
setupConfigureMapPref();
|
||||||
|
setupConfigureScreenPref();
|
||||||
|
|
||||||
PreferenceCategory pluginSettings = (PreferenceCategory) findPreference(PLUGIN_SETTINGS);
|
PreferenceCategory pluginSettings = (PreferenceCategory) findPreference(PLUGIN_SETTINGS);
|
||||||
pluginSettings.setIconSpaceReserved(false);
|
pluginSettings.setIconSpaceReserved(false);
|
||||||
|
@ -209,6 +212,20 @@ public class ConfigureProfileFragment extends BaseSettingsFragment {
|
||||||
configureMap.setIntent(intent);
|
configureMap.setIntent(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setupConfigureScreenPref() {
|
||||||
|
Context ctx = getContext();
|
||||||
|
if (ctx == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Preference configureMap = findPreference(CONFIGURE_SCREEN);
|
||||||
|
configureMap.setIcon(getContentIcon(R.drawable.ic_configure_screen_dark));
|
||||||
|
|
||||||
|
Intent intent = new Intent(ctx, MapActivity.class);
|
||||||
|
intent.putExtra(OPEN_CONFIG_ON_MAP, SCREEN_CONFIG);
|
||||||
|
intent.putExtra(SELECTED_ITEM, getSelectedAppMode().getStringKey());
|
||||||
|
configureMap.setIntent(intent);
|
||||||
|
}
|
||||||
|
|
||||||
private void setupConnectedAppsPref(PreferenceCategory preferenceCategory) {
|
private void setupConnectedAppsPref(PreferenceCategory preferenceCategory) {
|
||||||
OsmandApplication app = getMyApplication();
|
OsmandApplication app = getMyApplication();
|
||||||
if (app == null) {
|
if (app == null) {
|
||||||
|
@ -267,7 +284,9 @@ public class ConfigureProfileFragment extends BaseSettingsFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
if (CONFIGURE_MAP.equals(preference.getKey())) {
|
String prefId = preference.getKey();
|
||||||
|
|
||||||
|
if (CONFIGURE_MAP.equals(prefId) || CONFIGURE_SCREEN.equals(prefId)) {
|
||||||
FragmentActivity activity = getActivity();
|
FragmentActivity activity = getActivity();
|
||||||
if (activity != null) {
|
if (activity != null) {
|
||||||
try {
|
try {
|
||||||
|
@ -297,7 +316,6 @@ public class ConfigureProfileFragment extends BaseSettingsFragment {
|
||||||
if ((plugin.isActive() || !plugin.needsInstallation())) {
|
if ((plugin.isActive() || !plugin.needsInstallation())) {
|
||||||
if (OsmandPlugin.enablePlugin(getActivity(), app, plugin, (Boolean) newValue)) {
|
if (OsmandPlugin.enablePlugin(getActivity(), app, plugin, (Boolean) newValue)) {
|
||||||
preference.setIcon(getPluginIcon(plugin));
|
preference.setIcon(getPluginIcon(plugin));
|
||||||
updatePreference(preference);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else if (plugin.needsInstallation() && preference.getIntent() != null) {
|
} else if (plugin.needsInstallation() && preference.getIntent() != null) {
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package net.osmand.plus.settings;
|
package net.osmand.plus.settings;
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.LayerDrawable;
|
import android.graphics.drawable.LayerDrawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
@ -14,7 +13,7 @@ import net.osmand.AndroidUtils;
|
||||||
import net.osmand.plus.ApplicationMode;
|
import net.osmand.plus.ApplicationMode;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.UiUtilities;
|
import net.osmand.plus.UiUtilities;
|
||||||
import net.osmand.plus.profiles.SettingsProfileActivity;
|
import net.osmand.plus.profiles.SettingsProfileFragment;
|
||||||
|
|
||||||
public class MainSettingsFragment extends BaseSettingsFragment {
|
public class MainSettingsFragment extends BaseSettingsFragment {
|
||||||
|
|
||||||
|
@ -89,7 +88,7 @@ public class MainSettingsFragment extends BaseSettingsFragment {
|
||||||
private void setupManageProfilesPref() {
|
private void setupManageProfilesPref() {
|
||||||
Preference manageProfiles = findPreference("manage_profiles");
|
Preference manageProfiles = findPreference("manage_profiles");
|
||||||
manageProfiles.setIcon(getIcon(R.drawable.ic_action_manage_profiles));
|
manageProfiles.setIcon(getIcon(R.drawable.ic_action_manage_profiles));
|
||||||
manageProfiles.setIntent(new Intent(getActivity(), SettingsProfileActivity.class));
|
manageProfiles.setFragment(SettingsProfileFragment.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupConfigureProfilePref() {
|
private void setupConfigureProfilePref() {
|
||||||
|
@ -111,7 +110,8 @@ public class MainSettingsFragment extends BaseSettingsFragment {
|
||||||
fragmentManager.beginTransaction()
|
fragmentManager.beginTransaction()
|
||||||
.replace(R.id.fragmentContainer, MainSettingsFragment, TAG)
|
.replace(R.id.fragmentContainer, MainSettingsFragment, TAG)
|
||||||
.addToBackStack(TAG)
|
.addToBackStack(TAG)
|
||||||
.commitAllowingStateLoss();
|
.commit();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue