Format all C++ and Java code via clang-format

Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
This commit is contained in:
Konstantin Pastbin
2025-08-17 14:32:37 +07:00
parent 9f0290c0ec
commit bfffa1fff4
2169 changed files with 56441 additions and 64188 deletions

View File

@@ -150,14 +150,12 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
switch (item.newStatus)
{
case CountryItem.STATUS_DONE:
mAreResourcesDownloaded = true;
showMap();
return;
case CountryItem.STATUS_DONE:
mAreResourcesDownloaded = true;
showMap();
return;
case CountryItem.STATUS_FAILED:
MapManager.showError(DownloadResourcesLegacyActivity.this, item, null);
return;
case CountryItem.STATUS_FAILED: MapManager.showError(DownloadResourcesLegacyActivity.this, item, null); return;
}
}
}

View File

@@ -163,24 +163,24 @@ public class MapFragment extends BaseMwmFragment implements View.OnTouchListener
int pointerIndex = event.getActionIndex();
switch (action)
{
case MotionEvent.ACTION_POINTER_UP -> action = Map.NATIVE_ACTION_UP;
case MotionEvent.ACTION_UP ->
{
action = Map.NATIVE_ACTION_UP;
pointerIndex = 0;
}
case MotionEvent.ACTION_POINTER_DOWN -> action = Map.NATIVE_ACTION_DOWN;
case MotionEvent.ACTION_DOWN ->
{
action = Map.NATIVE_ACTION_DOWN;
pointerIndex = 0;
}
case MotionEvent.ACTION_MOVE ->
{
action = Map.NATIVE_ACTION_MOVE;
pointerIndex = Map.INVALID_POINTER_MASK;
}
case MotionEvent.ACTION_CANCEL -> action = Map.NATIVE_ACTION_CANCEL;
case MotionEvent.ACTION_POINTER_UP -> action = Map.NATIVE_ACTION_UP;
case MotionEvent.ACTION_UP ->
{
action = Map.NATIVE_ACTION_UP;
pointerIndex = 0;
}
case MotionEvent.ACTION_POINTER_DOWN -> action = Map.NATIVE_ACTION_DOWN;
case MotionEvent.ACTION_DOWN ->
{
action = Map.NATIVE_ACTION_DOWN;
pointerIndex = 0;
}
case MotionEvent.ACTION_MOVE ->
{
action = Map.NATIVE_ACTION_MOVE;
pointerIndex = Map.INVALID_POINTER_MASK;
}
case MotionEvent.ACTION_CANCEL -> action = Map.NATIVE_ACTION_CANCEL;
}
Map.onTouch(action, event, pointerIndex);
return true;

View File

@@ -683,29 +683,29 @@ public class MwmActivity extends BaseMwmFragmentActivity
mPointChooser.findViewById(R.id.done).setOnClickListener(v -> {
switch (ChoosePositionMode.get())
{
case Api:
final Intent apiResult = new Intent();
final double[] center = Framework.nativeGetScreenRectCenter();
apiResult.putExtra(Const.EXTRA_POINT_LAT, center[0]);
apiResult.putExtra(Const.EXTRA_POINT_LON, center[1]);
apiResult.putExtra(Const.EXTRA_ZOOM_LEVEL, Framework.nativeGetDrawScale());
setResult(Activity.RESULT_OK, apiResult);
finish();
break;
case Editor:
if (Framework.nativeIsDownloadedMapAtScreenCenter())
startActivity(new Intent(MwmActivity.this, FeatureCategoryActivity.class));
else
{
dismissAlertDialog();
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
.setTitle(R.string.message_invalid_feature_position)
.setPositiveButton(R.string.ok, null)
.setOnDismissListener(dialog -> mAlertDialog = null)
.show();
}
break;
case None: throw new IllegalStateException("Unexpected Framework.nativeGetChoosePositionMode()");
case Api:
final Intent apiResult = new Intent();
final double[] center = Framework.nativeGetScreenRectCenter();
apiResult.putExtra(Const.EXTRA_POINT_LAT, center[0]);
apiResult.putExtra(Const.EXTRA_POINT_LON, center[1]);
apiResult.putExtra(Const.EXTRA_ZOOM_LEVEL, Framework.nativeGetDrawScale());
setResult(Activity.RESULT_OK, apiResult);
finish();
break;
case Editor:
if (Framework.nativeIsDownloadedMapAtScreenCenter())
startActivity(new Intent(MwmActivity.this, FeatureCategoryActivity.class));
else
{
dismissAlertDialog();
mAlertDialog = new MaterialAlertDialogBuilder(this, R.style.MwmTheme_AlertDialog)
.setTitle(R.string.message_invalid_feature_position)
.setPositiveButton(R.string.ok, null)
.setOnDismissListener(dialog -> mAlertDialog = null)
.show();
}
break;
case None: throw new IllegalStateException("Unexpected Framework.nativeGetChoosePositionMode()");
}
closePositionChooser();
});
@@ -972,24 +972,24 @@ public class MwmActivity extends BaseMwmFragmentActivity
{
switch (button)
{
case zoomIn -> Map.zoomIn();
case zoomOut -> Map.zoomOut();
case myPosition ->
{
Logger.i(LOCATION_TAG, "The location button pressed");
// Calls onMyPositionModeChanged(mode + 1).
LocationState.nativeSwitchToNextMode();
}
case toggleMapLayer -> toggleMapLayerBottomSheet();
case bookmarks -> showBookmarks();
case search -> showSearch("");
case menu ->
{
closeFloatingPanels();
showBottomSheet(MAIN_MENU_ID);
}
case help -> showHelp();
case trackRecordingStatus -> showTrackSaveDialog();
case zoomIn -> Map.zoomIn();
case zoomOut -> Map.zoomOut();
case myPosition ->
{
Logger.i(LOCATION_TAG, "The location button pressed");
// Calls onMyPositionModeChanged(mode + 1).
LocationState.nativeSwitchToNextMode();
}
case toggleMapLayer -> toggleMapLayerBottomSheet();
case bookmarks -> showBookmarks();
case search -> showSearch("");
case menu ->
{
closeFloatingPanels();
showBottomSheet(MAIN_MENU_ID);
}
case help -> showHelp();
case trackRecordingStatus -> showTrackSaveDialog();
}
}
@@ -2429,18 +2429,18 @@ public class MwmActivity extends BaseMwmFragmentActivity
{
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_DOWN: Map.zoomOut(); return true;
case KeyEvent.KEYCODE_DPAD_UP: Map.zoomIn(); return true;
case KeyEvent.KEYCODE_ESCAPE:
final Intent currIntent = getIntent();
final String backUrl = Framework.nativeGetParsedBackUrl();
if (TextUtils.isEmpty(backUrl) || (currIntent != null && Factory.isStartedForApiResult(currIntent)))
{
finish();
return true;
}
return super.onKeyUp(keyCode, event);
default: return super.onKeyUp(keyCode, event);
case KeyEvent.KEYCODE_DPAD_DOWN: Map.zoomOut(); return true;
case KeyEvent.KEYCODE_DPAD_UP: Map.zoomIn(); return true;
case KeyEvent.KEYCODE_ESCAPE:
final Intent currIntent = getIntent();
final String backUrl = Framework.nativeGetParsedBackUrl();
if (TextUtils.isEmpty(backUrl) || (currIntent != null && Factory.isStartedForApiResult(currIntent)))
{
finish();
return true;
}
return super.onKeyUp(keyCode, event);
default: return super.onKeyUp(keyCode, event);
}
}

View File

@@ -62,39 +62,39 @@ public class LocalBackupManager implements BookmarkManager.BookmarksSharingListe
ErrorCode errorCode = null;
switch (result.getCode())
{
case BookmarkSharingResult.SUCCESS ->
{
if (!saveBackup(result))
{
Logger.e(TAG, "Failed to save backup. See system log above");
errorCode = ErrorCode.FILE_ERROR;
}
else
{
Logger.i(TAG, "Backup was created and saved successfully");
}
}
case BookmarkSharingResult.EMPTY_CATEGORY ->
{
errorCode = ErrorCode.EMPTY_CATEGORY;
Logger.e(TAG, "Failed to create backup. Category is empty");
}
case BookmarkSharingResult.ARCHIVE_ERROR ->
{
errorCode = ErrorCode.ARCHIVE_ERROR;
Logger.e(TAG, "Failed to create archive of bookmarks");
}
case BookmarkSharingResult.FILE_ERROR ->
case BookmarkSharingResult.SUCCESS ->
{
if (!saveBackup(result))
{
Logger.e(TAG, "Failed to save backup. See system log above");
errorCode = ErrorCode.FILE_ERROR;
Logger.e(TAG, "Failed create file for archive");
}
default ->
else
{
errorCode = ErrorCode.UNSUPPORTED;
Logger.e(TAG, "Failed to create backup. Unknown error");
Logger.i(TAG, "Backup was created and saved successfully");
}
}
case BookmarkSharingResult.EMPTY_CATEGORY ->
{
errorCode = ErrorCode.EMPTY_CATEGORY;
Logger.e(TAG, "Failed to create backup. Category is empty");
}
case BookmarkSharingResult.ARCHIVE_ERROR ->
{
errorCode = ErrorCode.ARCHIVE_ERROR;
Logger.e(TAG, "Failed to create archive of bookmarks");
}
case BookmarkSharingResult.FILE_ERROR ->
{
errorCode = ErrorCode.FILE_ERROR;
Logger.e(TAG, "Failed create file for archive");
}
default ->
{
errorCode = ErrorCode.UNSUPPORTED;
Logger.e(TAG, "Failed to create backup. Unknown error");
}
}
ErrorCode finalErrorCode = errorCode;
UiThread.run(() -> {

View File

@@ -66,47 +66,47 @@ public class BookmarkCategoriesAdapter extends BaseBookmarkCategoryAdapter<Recyc
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
switch (viewType)
{
case TYPE_ACTION_HEADER ->
{
View header = inflater.inflate(R.layout.item_bookmark_group_list_header, parent, false);
return new HeaderViewHolder(header);
}
case TYPE_CATEGORY_ITEM ->
{
View view = inflater.inflate(R.layout.item_bookmark_category, parent, false);
final CategoryViewHolder holder = new CategoryViewHolder(view);
view.setOnClickListener(new CategoryItemClickListener(holder));
view.setOnLongClickListener(new LongClickListener(holder));
return holder;
}
case TYPE_ACTION_ADD ->
{
View item = inflater.inflate(R.layout.item_bookmark_button, parent, false);
item.setOnClickListener(v -> {
if (mCategoryListCallback != null)
mCategoryListCallback.onAddButtonClick();
});
return new Holders.GeneralViewHolder(item);
}
case TYPE_ACTION_IMPORT ->
{
View item = inflater.inflate(R.layout.item_bookmark_button, parent, false);
item.setOnClickListener(v -> {
if (mCategoryListCallback != null)
mCategoryListCallback.onImportButtonClick();
});
return new Holders.GeneralViewHolder(item);
}
case TYPE_ACTION_EXPORT_ALL_AS_KMZ ->
{
View item = inflater.inflate(R.layout.item_bookmark_button, parent, false);
item.setOnClickListener(v -> {
if (mCategoryListCallback != null)
mCategoryListCallback.onExportButtonClick();
});
return new Holders.GeneralViewHolder(item);
}
default -> throw new AssertionError("Invalid item type: " + viewType);
case TYPE_ACTION_HEADER ->
{
View header = inflater.inflate(R.layout.item_bookmark_group_list_header, parent, false);
return new HeaderViewHolder(header);
}
case TYPE_CATEGORY_ITEM ->
{
View view = inflater.inflate(R.layout.item_bookmark_category, parent, false);
final CategoryViewHolder holder = new CategoryViewHolder(view);
view.setOnClickListener(new CategoryItemClickListener(holder));
view.setOnLongClickListener(new LongClickListener(holder));
return holder;
}
case TYPE_ACTION_ADD ->
{
View item = inflater.inflate(R.layout.item_bookmark_button, parent, false);
item.setOnClickListener(v -> {
if (mCategoryListCallback != null)
mCategoryListCallback.onAddButtonClick();
});
return new Holders.GeneralViewHolder(item);
}
case TYPE_ACTION_IMPORT ->
{
View item = inflater.inflate(R.layout.item_bookmark_button, parent, false);
item.setOnClickListener(v -> {
if (mCategoryListCallback != null)
mCategoryListCallback.onImportButtonClick();
});
return new Holders.GeneralViewHolder(item);
}
case TYPE_ACTION_EXPORT_ALL_AS_KMZ ->
{
View item = inflater.inflate(R.layout.item_bookmark_button, parent, false);
item.setOnClickListener(v -> {
if (mCategoryListCallback != null)
mCategoryListCallback.onExportButtonClick();
});
return new Holders.GeneralViewHolder(item);
}
default -> throw new AssertionError("Invalid item type: " + viewType);
}
}
@@ -116,44 +116,44 @@ public class BookmarkCategoriesAdapter extends BaseBookmarkCategoryAdapter<Recyc
int type = getItemViewType(position);
switch (type)
{
case TYPE_ACTION_HEADER ->
{
HeaderViewHolder headerViewHolder = (HeaderViewHolder) holder;
headerViewHolder.setAction(mMassOperationAction, BookmarkManager.INSTANCE.areAllCategoriesInvisible());
headerViewHolder.getText().setText(R.string.bookmark_lists);
}
case TYPE_CATEGORY_ITEM ->
{
final BookmarkCategory category = getCategoryByPosition(toCategoryPosition(position));
CategoryViewHolder categoryHolder = (CategoryViewHolder) holder;
categoryHolder.setEntity(category);
categoryHolder.setName(category.getName());
categoryHolder.setSize();
categoryHolder.setVisibilityState(category.isVisible());
ToggleVisibilityClickListener visibilityListener = new ToggleVisibilityClickListener(categoryHolder);
categoryHolder.setVisibilityListener(visibilityListener);
CategoryItemMoreClickListener moreClickListener = new CategoryItemMoreClickListener(categoryHolder);
categoryHolder.setMoreButtonClickListener(moreClickListener);
}
case TYPE_ACTION_ADD ->
{
Holders.GeneralViewHolder generalViewHolder = (Holders.GeneralViewHolder) holder;
generalViewHolder.getImage().setImageResource(R.drawable.ic_add_list);
generalViewHolder.getText().setText(R.string.bookmarks_create_new_group);
}
case TYPE_ACTION_IMPORT ->
{
Holders.GeneralViewHolder generalViewHolder = (Holders.GeneralViewHolder) holder;
generalViewHolder.getImage().setImageResource(R.drawable.ic_import);
generalViewHolder.getText().setText(R.string.bookmarks_import);
}
case TYPE_ACTION_EXPORT_ALL_AS_KMZ ->
{
Holders.GeneralViewHolder generalViewHolder = (Holders.GeneralViewHolder) holder;
generalViewHolder.getImage().setImageResource(R.drawable.ic_export);
generalViewHolder.getText().setText(R.string.bookmarks_export);
}
default -> throw new AssertionError("Invalid item type: " + type);
case TYPE_ACTION_HEADER ->
{
HeaderViewHolder headerViewHolder = (HeaderViewHolder) holder;
headerViewHolder.setAction(mMassOperationAction, BookmarkManager.INSTANCE.areAllCategoriesInvisible());
headerViewHolder.getText().setText(R.string.bookmark_lists);
}
case TYPE_CATEGORY_ITEM ->
{
final BookmarkCategory category = getCategoryByPosition(toCategoryPosition(position));
CategoryViewHolder categoryHolder = (CategoryViewHolder) holder;
categoryHolder.setEntity(category);
categoryHolder.setName(category.getName());
categoryHolder.setSize();
categoryHolder.setVisibilityState(category.isVisible());
ToggleVisibilityClickListener visibilityListener = new ToggleVisibilityClickListener(categoryHolder);
categoryHolder.setVisibilityListener(visibilityListener);
CategoryItemMoreClickListener moreClickListener = new CategoryItemMoreClickListener(categoryHolder);
categoryHolder.setMoreButtonClickListener(moreClickListener);
}
case TYPE_ACTION_ADD ->
{
Holders.GeneralViewHolder generalViewHolder = (Holders.GeneralViewHolder) holder;
generalViewHolder.getImage().setImageResource(R.drawable.ic_add_list);
generalViewHolder.getText().setText(R.string.bookmarks_create_new_group);
}
case TYPE_ACTION_IMPORT ->
{
Holders.GeneralViewHolder generalViewHolder = (Holders.GeneralViewHolder) holder;
generalViewHolder.getImage().setImageResource(R.drawable.ic_import);
generalViewHolder.getText().setText(R.string.bookmarks_import);
}
case TYPE_ACTION_EXPORT_ALL_AS_KMZ ->
{
Holders.GeneralViewHolder generalViewHolder = (Holders.GeneralViewHolder) holder;
generalViewHolder.getImage().setImageResource(R.drawable.ic_export);
generalViewHolder.getText().setText(R.string.bookmarks_export);
}
default -> throw new AssertionError("Invalid item type: " + type);
}
}

View File

@@ -442,37 +442,37 @@ public class BookmarkListAdapter extends RecyclerView.Adapter<Holders.BaseBookma
Holders.BaseBookmarkHolder holder = null;
switch (viewType)
{
case TYPE_TRACK:
Holders.TrackViewHolder trackHolder =
new Holders.TrackViewHolder(inflater.inflate(R.layout.item_track, parent, false));
trackHolder.setOnClickListener(mClickListener);
trackHolder.setOnLongClickListener(mLongClickListener);
trackHolder.setTrackIconClickListener(mIconClickListener);
trackHolder.setMoreButtonClickListener(mMoreClickListener);
holder = trackHolder;
break;
case TYPE_BOOKMARK:
Holders.BookmarkViewHolder bookmarkHolder =
new Holders.BookmarkViewHolder(inflater.inflate(R.layout.item_bookmark, parent, false));
bookmarkHolder.setOnClickListener(mClickListener);
bookmarkHolder.setOnLongClickListener(mLongClickListener);
holder = bookmarkHolder;
break;
case TYPE_SECTION:
MaterialTextView tv = (MaterialTextView) inflater.inflate(R.layout.item_category_title, parent, false);
holder = new Holders.SectionViewHolder(tv);
break;
case TYPE_DESC:
View desc = inflater.inflate(R.layout.item_category_description, parent, false);
MaterialTextView moreBtn = desc.findViewById(R.id.more_btn);
MaterialTextView text = desc.findViewById(R.id.text);
MaterialTextView title = desc.findViewById(R.id.title);
setMoreButtonVisibility(text, moreBtn);
holder = new Holders.DescriptionViewHolder(desc, mSectionsDataSource.getCategory());
text.setOnClickListener(v -> onMoreButtonClicked(text, moreBtn));
moreBtn.setOnClickListener(v -> onMoreButtonClicked(text, moreBtn));
title.setOnClickListener(v -> onMoreButtonClicked(text, moreBtn));
break;
case TYPE_TRACK:
Holders.TrackViewHolder trackHolder =
new Holders.TrackViewHolder(inflater.inflate(R.layout.item_track, parent, false));
trackHolder.setOnClickListener(mClickListener);
trackHolder.setOnLongClickListener(mLongClickListener);
trackHolder.setTrackIconClickListener(mIconClickListener);
trackHolder.setMoreButtonClickListener(mMoreClickListener);
holder = trackHolder;
break;
case TYPE_BOOKMARK:
Holders.BookmarkViewHolder bookmarkHolder =
new Holders.BookmarkViewHolder(inflater.inflate(R.layout.item_bookmark, parent, false));
bookmarkHolder.setOnClickListener(mClickListener);
bookmarkHolder.setOnLongClickListener(mLongClickListener);
holder = bookmarkHolder;
break;
case TYPE_SECTION:
MaterialTextView tv = (MaterialTextView) inflater.inflate(R.layout.item_category_title, parent, false);
holder = new Holders.SectionViewHolder(tv);
break;
case TYPE_DESC:
View desc = inflater.inflate(R.layout.item_category_description, parent, false);
MaterialTextView moreBtn = desc.findViewById(R.id.more_btn);
MaterialTextView text = desc.findViewById(R.id.text);
MaterialTextView title = desc.findViewById(R.id.title);
setMoreButtonVisibility(text, moreBtn);
holder = new Holders.DescriptionViewHolder(desc, mSectionsDataSource.getCategory());
text.setOnClickListener(v -> onMoreButtonClicked(text, moreBtn));
moreBtn.setOnClickListener(v -> onMoreButtonClicked(text, moreBtn));
title.setOnClickListener(v -> onMoreButtonClicked(text, moreBtn));
break;
}
if (holder == null)

View File

@@ -552,12 +552,12 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<ConcatAdapter
switch (adapter.getItemViewType(position))
{
case BookmarkListAdapter.TYPE_SECTION, BookmarkListAdapter.TYPE_DESC ->
{
return;
}
case BookmarkListAdapter.TYPE_BOOKMARK -> onBookmarkClicked(position, intent, adapter);
case BookmarkListAdapter.TYPE_TRACK -> onTrackClicked(position, intent, adapter);
case BookmarkListAdapter.TYPE_SECTION, BookmarkListAdapter.TYPE_DESC ->
{
return;
}
case BookmarkListAdapter.TYPE_BOOKMARK -> onBookmarkClicked(position, intent, adapter);
case BookmarkListAdapter.TYPE_TRACK -> onTrackClicked(position, intent, adapter);
}
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
@@ -622,22 +622,22 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<ConcatAdapter
switch (type)
{
case BookmarkListAdapter.TYPE_SECTION:
case BookmarkListAdapter.TYPE_DESC:
// Do nothing here?
break;
case BookmarkListAdapter.TYPE_SECTION:
case BookmarkListAdapter.TYPE_DESC:
// Do nothing here?
break;
case BookmarkListAdapter.TYPE_BOOKMARK:
final BookmarkInfo bookmark = (BookmarkInfo) adapter.getItem(mSelectedPosition);
MenuBottomSheetFragment.newInstance(BOOKMARKS_MENU_ID, bookmark.getName())
.show(getChildFragmentManager(), BOOKMARKS_MENU_ID);
break;
case BookmarkListAdapter.TYPE_BOOKMARK:
final BookmarkInfo bookmark = (BookmarkInfo) adapter.getItem(mSelectedPosition);
MenuBottomSheetFragment.newInstance(BOOKMARKS_MENU_ID, bookmark.getName())
.show(getChildFragmentManager(), BOOKMARKS_MENU_ID);
break;
case BookmarkListAdapter.TYPE_TRACK:
final Track track = (Track) adapter.getItem(mSelectedPosition);
MenuBottomSheetFragment.newInstance(TRACK_MENU_ID, track.getName())
.show(getChildFragmentManager(), TRACK_MENU_ID);
break;
case BookmarkListAdapter.TYPE_TRACK:
final Track track = (Track) adapter.getItem(mSelectedPosition);
MenuBottomSheetFragment.newInstance(TRACK_MENU_ID, track.getName())
.show(getChildFragmentManager(), TRACK_MENU_ID);
break;
}
}
@@ -844,19 +844,19 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<ConcatAdapter
{
switch (id)
{
case BOOKMARKS_MENU_ID ->
{
return getBookmarkMenuItems();
}
case TRACK_MENU_ID ->
{
final Track track = (Track) getBookmarkListAdapter().getItem(mSelectedPosition);
return getTrackMenuItems(track);
}
case OPTIONS_MENU_ID ->
{
return getOptionsMenuItems();
}
case BOOKMARKS_MENU_ID ->
{
return getBookmarkMenuItems();
}
case TRACK_MENU_ID ->
{
final Track track = (Track) getBookmarkListAdapter().getItem(mSelectedPosition);
return getTrackMenuItems(track);
}
case OPTIONS_MENU_ID ->
{
return getOptionsMenuItems();
}
}
return null;
}

View File

@@ -57,27 +57,27 @@ public enum BookmarksSharingHelper
switch (result.getCode())
{
case BookmarkSharingResult.SUCCESS ->
SharingUtils.shareBookmarkFile(context, launcher, result.getSharingPath(), result.getMimeType());
case BookmarkSharingResult.EMPTY_CATEGORY ->
new MaterialAlertDialogBuilder(context, R.style.MwmTheme_AlertDialog)
.setTitle(R.string.bookmarks_error_title_share_empty)
.setMessage(R.string.bookmarks_error_message_share_empty)
.setPositiveButton(R.string.ok, null)
.show();
case BookmarkSharingResult.ARCHIVE_ERROR, BookmarkSharingResult.FILE_ERROR ->
{
new MaterialAlertDialogBuilder(context, R.style.MwmTheme_AlertDialog)
.setTitle(R.string.dialog_routing_system_error)
.setMessage(R.string.bookmarks_error_message_share_general)
.setPositiveButton(R.string.ok, null)
.show();
List<String> names = new ArrayList<>();
for (long categoryId : result.getCategoriesIds())
names.add(BookmarkManager.INSTANCE.getCategoryById(categoryId).getName());
Logger.e(TAG, "Failed to share bookmark categories " + names + ", error code: " + result.getCode());
}
default -> throw new AssertionError("Unsupported bookmark sharing code: " + result.getCode());
case BookmarkSharingResult.SUCCESS ->
SharingUtils.shareBookmarkFile(context, launcher, result.getSharingPath(), result.getMimeType());
case BookmarkSharingResult.EMPTY_CATEGORY ->
new MaterialAlertDialogBuilder(context, R.style.MwmTheme_AlertDialog)
.setTitle(R.string.bookmarks_error_title_share_empty)
.setMessage(R.string.bookmarks_error_message_share_empty)
.setPositiveButton(R.string.ok, null)
.show();
case BookmarkSharingResult.ARCHIVE_ERROR, BookmarkSharingResult.FILE_ERROR ->
{
new MaterialAlertDialogBuilder(context, R.style.MwmTheme_AlertDialog)
.setTitle(R.string.dialog_routing_system_error)
.setMessage(R.string.bookmarks_error_message_share_general)
.setPositiveButton(R.string.ok, null)
.show();
List<String> names = new ArrayList<>();
for (long categoryId : result.getCategoriesIds())
names.add(BookmarkManager.INSTANCE.getCategoryById(categoryId).getName());
Logger.e(TAG, "Failed to share bookmark categories " + names + ", error code: " + result.getCode());
}
default -> throw new AssertionError("Unsupported bookmark sharing code: " + result.getCode());
}
}

View File

@@ -64,10 +64,10 @@ public class ChooseBookmarksSortingTypeFragment
{
switch (sortingType)
{
case BookmarkManager.SORT_BY_TYPE: return R.id.sort_by_type;
case BookmarkManager.SORT_BY_DISTANCE: return R.id.sort_by_distance;
case BookmarkManager.SORT_BY_TIME: return R.id.sort_by_time;
case BookmarkManager.SORT_BY_NAME: return R.id.sort_by_name;
case BookmarkManager.SORT_BY_TYPE: return R.id.sort_by_type;
case BookmarkManager.SORT_BY_DISTANCE: return R.id.sort_by_distance;
case BookmarkManager.SORT_BY_TIME: return R.id.sort_by_time;
case BookmarkManager.SORT_BY_NAME: return R.id.sort_by_name;
}
}
return R.id.sort_by_default;

View File

@@ -62,29 +62,29 @@ public final class SearchUiHelpers
CarColor color = Colors.DEFAULT;
switch (searchResult.description.openNow)
{
case SearchResult.OPEN_NOW_YES:
if (searchResult.description.minutesUntilClosed < 60) // less than 1 hour
{
final String time = searchResult.description.minutesUntilClosed + " " + carContext.getString(R.string.minute);
text = carContext.getString(R.string.closes_in, time);
color = Colors.OPENING_HOURS_CLOSES_SOON;
}
else
{
text = carContext.getString(R.string.editor_time_open);
color = Colors.OPENING_HOURS_OPEN;
}
break;
case SearchResult.OPEN_NOW_NO:
if (searchResult.description.minutesUntilOpen < 60) // less than 1 hour
{
final String time = searchResult.description.minutesUntilOpen + " " + carContext.getString(R.string.minute);
text = carContext.getString(R.string.opens_in, time);
}
else
text = carContext.getString(R.string.closed);
color = Colors.OPENING_HOURS_CLOSED;
break;
case SearchResult.OPEN_NOW_YES:
if (searchResult.description.minutesUntilClosed < 60) // less than 1 hour
{
final String time = searchResult.description.minutesUntilClosed + " " + carContext.getString(R.string.minute);
text = carContext.getString(R.string.closes_in, time);
color = Colors.OPENING_HOURS_CLOSES_SOON;
}
else
{
text = carContext.getString(R.string.editor_time_open);
color = Colors.OPENING_HOURS_OPEN;
}
break;
case SearchResult.OPEN_NOW_NO:
if (searchResult.description.minutesUntilOpen < 60) // less than 1 hour
{
final String time = searchResult.description.minutesUntilOpen + " " + carContext.getString(R.string.minute);
text = carContext.getString(R.string.opens_in, time);
}
else
text = carContext.getString(R.string.closed);
color = Colors.OPENING_HOURS_CLOSED;
break;
}
result.append(text);

View File

@@ -65,36 +65,36 @@ public final class IntentUtils
final ScreenManager screenManager = carContext.getCarService(ScreenManager.class);
switch (Framework.nativeParseAndSetApiUrl(uri.toString()))
{
case RequestType.INCORRECT: return;
case RequestType.MAP:
screenManager.popToRoot();
Map.executeMapApiRequest();
return;
case RequestType.SEARCH:
screenManager.popToRoot();
final ParsedSearchRequest request = Framework.nativeGetParsedSearchRequest();
final double[] latlon = Framework.nativeGetParsedCenterLatLon();
if (latlon != null)
{
Framework.nativeStopLocationFollow();
Framework.nativeSetViewportCenter(latlon[0], latlon[1], SEARCH_IN_VIEWPORT_ZOOM);
// We need to update viewport for search api manually because of drape engine
// will not notify subscribers when search activity is shown.
if (!request.mIsSearchOnMap)
Framework.nativeSetSearchViewport(latlon[0], latlon[1], SEARCH_IN_VIEWPORT_ZOOM);
}
final SearchScreen.Builder builder = new SearchScreen.Builder(carContext, surfaceRenderer);
builder.setQuery(request.mQuery);
if (request.mLocale != null)
builder.setLocale(request.mLocale);
case RequestType.INCORRECT: return;
case RequestType.MAP:
screenManager.popToRoot();
Map.executeMapApiRequest();
return;
case RequestType.SEARCH:
screenManager.popToRoot();
final ParsedSearchRequest request = Framework.nativeGetParsedSearchRequest();
final double[] latlon = Framework.nativeGetParsedCenterLatLon();
if (latlon != null)
{
Framework.nativeStopLocationFollow();
Framework.nativeSetViewportCenter(latlon[0], latlon[1], SEARCH_IN_VIEWPORT_ZOOM);
// We need to update viewport for search api manually because of drape engine
// will not notify subscribers when search activity is shown.
if (!request.mIsSearchOnMap)
Framework.nativeSetSearchViewport(latlon[0], latlon[1], SEARCH_IN_VIEWPORT_ZOOM);
}
final SearchScreen.Builder builder = new SearchScreen.Builder(carContext, surfaceRenderer);
builder.setQuery(request.mQuery);
if (request.mLocale != null)
builder.setLocale(request.mLocale);
screenManager.popToRoot();
screenManager.push(builder.build());
return;
case RequestType.ROUTE: Logger.e(TAG, "Route API is not supported by Android Auto: " + uri); return;
case RequestType.CROSSHAIR: Logger.e(TAG, "Crosshair API is not supported by Android Auto: " + uri); return;
case RequestType.MENU: Logger.e(TAG, "Menu API is not supported by Android Auto: " + uri); return;
case RequestType.SETTINGS: Logger.e(TAG, "Settings API is not supported by Android Auto: " + uri);
screenManager.popToRoot();
screenManager.push(builder.build());
return;
case RequestType.ROUTE: Logger.e(TAG, "Route API is not supported by Android Auto: " + uri); return;
case RequestType.CROSSHAIR: Logger.e(TAG, "Crosshair API is not supported by Android Auto: " + uri); return;
case RequestType.MENU: Logger.e(TAG, "Menu API is not supported by Android Auto: " + uri); return;
case RequestType.SETTINGS: Logger.e(TAG, "Settings API is not supported by Android Auto: " + uri);
}
}

View File

@@ -171,20 +171,20 @@ public final class UiHelpers
int drawableRes;
switch (locationMode)
{
case LocationState.PENDING_POSITION, LocationState.NOT_FOLLOW_NO_POSITION ->
drawableRes = R.drawable.ic_location_off;
case LocationState.NOT_FOLLOW -> drawableRes = R.drawable.ic_not_follow;
case LocationState.FOLLOW ->
{
drawableRes = R.drawable.ic_follow;
tintColor = Colors.LOCATION_TINT;
}
case LocationState.FOLLOW_AND_ROTATE ->
{
drawableRes = R.drawable.ic_follow_and_rotate;
tintColor = Colors.LOCATION_TINT;
}
default -> throw new IllegalArgumentException("Invalid button mode: " + locationMode);
case LocationState.PENDING_POSITION, LocationState.NOT_FOLLOW_NO_POSITION ->
drawableRes = R.drawable.ic_location_off;
case LocationState.NOT_FOLLOW -> drawableRes = R.drawable.ic_not_follow;
case LocationState.FOLLOW ->
{
drawableRes = R.drawable.ic_follow;
tintColor = Colors.LOCATION_TINT;
}
case LocationState.FOLLOW_AND_ROTATE ->
{
drawableRes = R.drawable.ic_follow_and_rotate;
tintColor = Colors.LOCATION_TINT;
}
default -> throw new IllegalArgumentException("Invalid button mode: " + locationMode);
}
final CarIcon icon =

View File

@@ -115,15 +115,15 @@ class BottomPanel
{
switch (status)
{
case STATUS_UPDATABLE ->
{
UpdateInfo info = MapManager.nativeGetUpdateInfo(root);
setUpdateAllState(info);
} // Special case for "Countries" node when no maps currently downloaded.
case STATUS_DOWNLOADABLE, STATUS_DONE, STATUS_PARTLY -> show = false;
case STATUS_PROGRESS, STATUS_APPLYING, STATUS_ENQUEUED -> setCancelState();
case STATUS_FAILED -> setRetryFailedStates();
default -> throw new IllegalArgumentException("Inappropriate status for \"" + root + "\": " + status);
case STATUS_UPDATABLE ->
{
UpdateInfo info = MapManager.nativeGetUpdateInfo(root);
setUpdateAllState(info);
} // Special case for "Countries" node when no maps currently downloaded.
case STATUS_DOWNLOADABLE, STATUS_DONE, STATUS_PARTLY -> show = false;
case STATUS_PROGRESS, STATUS_APPLYING, STATUS_ENQUEUED -> setCancelState();
case STATUS_FAILED -> setRetryFailedStates();
default -> throw new IllegalArgumentException("Inappropriate status for \"" + root + "\": " + status);
}
}
else
@@ -133,15 +133,15 @@ class BottomPanel
{
switch (status)
{
case STATUS_UPDATABLE ->
{
UpdateInfo info = MapManager.nativeGetUpdateInfo(root);
setUpdateAllState(info);
}
case STATUS_DONE -> show = false;
case STATUS_PROGRESS, STATUS_APPLYING, STATUS_ENQUEUED -> setCancelState();
case STATUS_FAILED -> setRetryFailedStates();
default -> setDownloadAllState();
case STATUS_UPDATABLE ->
{
UpdateInfo info = MapManager.nativeGetUpdateInfo(root);
setUpdateAllState(info);
}
case STATUS_DONE -> show = false;
case STATUS_PROGRESS, STATUS_APPLYING, STATUS_ENQUEUED -> setCancelState();
case STATUS_FAILED -> setRetryFailedStates();
default -> setDownloadAllState();
}
}
}

View File

@@ -70,9 +70,9 @@ public class CountrySuggestFragment extends BaseMwmFragment implements View.OnCl
switch (item.newStatus)
{
case CountryItem.STATUS_FAILED: updateViews(); return;
case CountryItem.STATUS_FAILED: updateViews(); return;
case CountryItem.STATUS_DONE: exitFragment(); return;
case CountryItem.STATUS_DONE: exitFragment(); return;
}
break;

View File

@@ -287,41 +287,41 @@ class DownloaderAdapter extends RecyclerView.Adapter<DownloaderAdapter.ViewHolde
ArrayList<MenuBottomSheetItem> items = new ArrayList<>();
switch (mSelectedItem.status)
{
case CountryItem.STATUS_DOWNLOADABLE: items.add(getDownloadMenuItem()); break;
case CountryItem.STATUS_DOWNLOADABLE: items.add(getDownloadMenuItem()); break;
case CountryItem.STATUS_UPDATABLE:
items.add(getUpdateMenuItem());
// Fallthrough
case CountryItem.STATUS_UPDATABLE:
items.add(getUpdateMenuItem());
// Fallthrough
case CountryItem.STATUS_DONE:
if (!mSelectedItem.isExpandable())
items.add(getExploreMenuItem());
case CountryItem.STATUS_DONE:
if (!mSelectedItem.isExpandable())
items.add(getExploreMenuItem());
appendDeleteMenuItem(items);
break;
case CountryItem.STATUS_FAILED:
items.add(getCancelMenuItem());
if (mSelectedItem.present)
{
appendDeleteMenuItem(items);
break;
items.add(getExploreMenuItem());
}
break;
case CountryItem.STATUS_FAILED:
items.add(getCancelMenuItem());
case CountryItem.STATUS_PROGRESS:
case CountryItem.STATUS_APPLYING:
case CountryItem.STATUS_ENQUEUED:
items.add(getCancelMenuItem());
if (mSelectedItem.present)
{
appendDeleteMenuItem(items);
items.add(getExploreMenuItem());
}
break;
if (mSelectedItem.present)
items.add(getExploreMenuItem());
break;
case CountryItem.STATUS_PROGRESS:
case CountryItem.STATUS_APPLYING:
case CountryItem.STATUS_ENQUEUED:
items.add(getCancelMenuItem());
if (mSelectedItem.present)
items.add(getExploreMenuItem());
break;
case CountryItem.STATUS_PARTLY:
items.add(getDownloadMenuItem());
appendDeleteMenuItem(items);
break;
case CountryItem.STATUS_PARTLY:
items.add(getDownloadMenuItem());
appendDeleteMenuItem(items);
break;
}
return items;
}
@@ -372,20 +372,20 @@ class DownloaderAdapter extends RecyclerView.Adapter<DownloaderAdapter.ViewHolde
{
switch (mItem.status)
{
case CountryItem.STATUS_DONE, CountryItem.STATUS_PROGRESS, CountryItem.STATUS_APPLYING,
CountryItem.STATUS_ENQUEUED ->
case CountryItem.STATUS_DONE, CountryItem.STATUS_PROGRESS, CountryItem.STATUS_APPLYING,
CountryItem.STATUS_ENQUEUED ->
processLongClick();
case CountryItem.STATUS_DOWNLOADABLE, CountryItem.STATUS_PARTLY ->
{
if (clickOnStatus)
onDownloadActionSelected(mItem, DownloaderAdapter.this);
else
processLongClick();
case CountryItem.STATUS_DOWNLOADABLE, CountryItem.STATUS_PARTLY ->
{
if (clickOnStatus)
onDownloadActionSelected(mItem, DownloaderAdapter.this);
else
processLongClick();
}
case CountryItem.STATUS_FAILED -> MapManager.warn3gAndRetry(mActivity, mItem.id, null);
case CountryItem.STATUS_UPDATABLE ->
MapManager.warnOn3gUpdate(mActivity, mItem.id, () -> MapManager.startUpdate(mItem.id));
default -> throw new IllegalArgumentException("Inappropriate item status: " + mItem.status);
}
case CountryItem.STATUS_FAILED -> MapManager.warn3gAndRetry(mActivity, mItem.id, null);
case CountryItem.STATUS_UPDATABLE ->
MapManager.warnOn3gUpdate(mActivity, mItem.id, () -> MapManager.startUpdate(mItem.id));
default -> throw new IllegalArgumentException("Inappropriate item status: " + mItem.status);
}
}
@@ -535,33 +535,33 @@ class DownloaderAdapter extends RecyclerView.Adapter<DownloaderAdapter.ViewHolde
{
switch (ci.category)
{
case CountryItem.CATEGORY_NEAR_ME ->
case CountryItem.CATEGORY_NEAR_ME ->
{
if (ci.category != prev)
{
if (ci.category != prev)
{
headerId = CountryItem.CATEGORY_NEAR_ME;
mItemsAndHeader.add(new GenericItem(mActivity.getString(R.string.downloader_near_me_subtitle)));
prev = ci.category;
}
}
case CountryItem.CATEGORY_DOWNLOADED ->
{
if (ci.category != prev)
{
headerId = CountryItem.CATEGORY_DOWNLOADED;
mItemsAndHeader.add(new GenericItem(mActivity.getString(R.string.downloader_downloaded_subtitle)));
prev = ci.category;
}
}
default ->
{
int prevHeader = headerId;
headerId = CountryItem.CATEGORY_AVAILABLE + ci.name.charAt(0);
if (headerId != prevHeader)
mItemsAndHeader.add(new GenericItem(StringUtils.toUpperCase(ci.name.substring(0, 1))));
headerId = CountryItem.CATEGORY_NEAR_ME;
mItemsAndHeader.add(new GenericItem(mActivity.getString(R.string.downloader_near_me_subtitle)));
prev = ci.category;
}
}
case CountryItem.CATEGORY_DOWNLOADED ->
{
if (ci.category != prev)
{
headerId = CountryItem.CATEGORY_DOWNLOADED;
mItemsAndHeader.add(new GenericItem(mActivity.getString(R.string.downloader_downloaded_subtitle)));
prev = ci.category;
}
}
default ->
{
int prevHeader = headerId;
headerId = CountryItem.CATEGORY_AVAILABLE + ci.name.charAt(0);
if (headerId != prevHeader)
mItemsAndHeader.add(new GenericItem(StringUtils.toUpperCase(ci.name.substring(0, 1))));
prev = ci.category;
}
}
ci.headerId = headerId;
}
mItemsAndHeader.add(new GenericItem(ci));

View File

@@ -24,8 +24,8 @@ import app.organicmaps.widget.PlaceholderView;
import java.util.ArrayList;
import java.util.List;
public class DownloaderFragment extends BaseMwmRecyclerFragment<DownloaderAdapter>
implements MenuBottomSheetFragment.MenuBottomSheetInterface
public class DownloaderFragment
extends BaseMwmRecyclerFragment<DownloaderAdapter> implements MenuBottomSheetFragment.MenuBottomSheetInterface
{
private DownloaderToolbarController mToolbarController;
@@ -153,7 +153,8 @@ public class DownloaderFragment extends BaseMwmRecyclerFragment<DownloaderAdapte
mBottomPanel = new BottomPanel(this, view);
mToolbarController = new DownloaderToolbarController(view, requireActivity(), this);
requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), mToolbarController.getBackPressedCallback());
requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(),
mToolbarController.getBackPressedCallback());
update();
}
@@ -195,7 +196,8 @@ public class DownloaderFragment extends BaseMwmRecyclerFragment<DownloaderAdapte
{
if (mAdapter == null)
mAdapter = new DownloaderAdapter(this);
requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), mAdapter.getBackPressedCallback());
requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(),
mAdapter.getBackPressedCallback());
return mAdapter;
}

View File

@@ -20,13 +20,13 @@ import androidx.recyclerview.widget.RecyclerView;
import app.organicmaps.R;
import app.organicmaps.base.BaseMwmFragment;
import app.organicmaps.dialog.EditTextDialogFragment;
import app.organicmaps.editor.data.TimeFormatUtils;
import app.organicmaps.sdk.Framework;
import app.organicmaps.sdk.bookmarks.data.Metadata;
import app.organicmaps.sdk.editor.Editor;
import app.organicmaps.sdk.editor.OpeningHours;
import app.organicmaps.sdk.editor.data.LocalizedName;
import app.organicmaps.sdk.editor.data.LocalizedStreet;
import app.organicmaps.editor.data.TimeFormatUtils;
import app.organicmaps.sdk.editor.data.Timetable;
import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.sdk.util.UiUtils;
@@ -623,11 +623,11 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
switch (Editor.nativeGetMapObjectStatus())
{
case Editor.CREATED -> mReset.setText(R.string.editor_remove_place_button);
case Editor.MODIFIED -> mReset.setText(R.string.editor_reset_edits_button);
case Editor.UNTOUCHED -> mReset.setText(R.string.editor_place_doesnt_exist);
case Editor.DELETED -> throw new IllegalStateException("Can't delete already deleted feature.");
case Editor.OBSOLETE -> throw new IllegalStateException("Obsolete objects cannot be reverted.");
case Editor.CREATED -> mReset.setText(R.string.editor_remove_place_button);
case Editor.MODIFIED -> mReset.setText(R.string.editor_reset_edits_button);
case Editor.UNTOUCHED -> mReset.setText(R.string.editor_place_doesnt_exist);
case Editor.DELETED -> throw new IllegalStateException("Can't delete already deleted feature.");
case Editor.OBSOLETE -> throw new IllegalStateException("Obsolete objects cannot be reverted.");
}
}
@@ -641,11 +641,11 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
switch (Editor.nativeGetMapObjectStatus())
{
case Editor.CREATED -> rollback(Editor.CREATED);
case Editor.MODIFIED -> rollback(Editor.MODIFIED);
case Editor.UNTOUCHED -> placeDoesntExist();
case Editor.DELETED -> throw new IllegalStateException("Can't delete already deleted feature.");
case Editor.OBSOLETE -> throw new IllegalStateException("Obsolete objects cannot be reverted.");
case Editor.CREATED -> rollback(Editor.CREATED);
case Editor.MODIFIED -> rollback(Editor.MODIFIED);
case Editor.UNTOUCHED -> placeDoesntExist();
case Editor.DELETED -> throw new IllegalStateException("Can't delete already deleted feature.");
case Editor.OBSOLETE -> throw new IllegalStateException("Obsolete objects cannot be reverted.");
}
}

View File

@@ -173,8 +173,8 @@ public class EditorHostFragment
{
switch (mMode)
{
case OPENING_HOURS, STREET, CUISINE, LANGUAGE, PHONE, SELF_SERVICE -> editMapObject();
default -> Utils.navigateToParent(requireActivity());
case OPENING_HOURS, STREET, CUISINE, LANGUAGE, PHONE, SELF_SERVICE -> editMapObject();
default -> Utils.navigateToParent(requireActivity());
}
return true;
}
@@ -283,57 +283,57 @@ public class EditorHostFragment
{
switch (mMode)
{
case OPENING_HOURS ->
{
final String timetables = ((TimetableContainerFragment) getChildFragmentManager().findFragmentByTag(
TimetableContainerFragment.class.getName()))
.getTimetable();
Editor.nativeSetOpeningHours(timetables);
editMapObject();
}
case STREET ->
setStreet(((StreetFragment) getChildFragmentManager().findFragmentByTag(StreetFragment.class.getName()))
.getStreet());
case CUISINE ->
{
String[] cuisines =
((CuisineFragment) getChildFragmentManager().findFragmentByTag(CuisineFragment.class.getName()))
.getCuisines();
Editor.nativeSetSelectedCuisines(cuisines);
editMapObject();
}
case SELF_SERVICE ->
setSelection(
Metadata.MetadataType.FMD_SELF_SERVICE,
((SelfServiceFragment) getChildFragmentManager().findFragmentByTag(SelfServiceFragment.class.getName()))
.getSelection());
case LANGUAGE -> editMapObject();
case MAP_OBJECT ->
{
if (!setEdits())
return;
case OPENING_HOURS ->
{
final String timetables = ((TimetableContainerFragment) getChildFragmentManager().findFragmentByTag(
TimetableContainerFragment.class.getName()))
.getTimetable();
Editor.nativeSetOpeningHours(timetables);
editMapObject();
}
case STREET ->
setStreet(
((StreetFragment) getChildFragmentManager().findFragmentByTag(StreetFragment.class.getName())).getStreet());
case CUISINE ->
{
String[] cuisines =
((CuisineFragment) getChildFragmentManager().findFragmentByTag(CuisineFragment.class.getName()))
.getCuisines();
Editor.nativeSetSelectedCuisines(cuisines);
editMapObject();
}
case SELF_SERVICE ->
setSelection(
Metadata.MetadataType.FMD_SELF_SERVICE,
((SelfServiceFragment) getChildFragmentManager().findFragmentByTag(SelfServiceFragment.class.getName()))
.getSelection());
case LANGUAGE -> editMapObject();
case MAP_OBJECT ->
{
if (!setEdits())
return;
// Save object edits
if (!MwmApplication.prefs(requireContext()).contains(NOOB_ALERT_SHOWN))
{
showNoobDialog();
}
else
{
saveNote();
saveMapObjectEdits();
}
}
case PHONE ->
// Save object edits
if (!MwmApplication.prefs(requireContext()).contains(NOOB_ALERT_SHOWN))
{
final String phone =
((PhoneFragment) getChildFragmentManager().findFragmentByTag(PhoneFragment.class.getName())).getPhone();
if (Editor.nativeIsPhoneValid(phone))
{
Editor.nativeSetPhone(phone);
editMapObject();
}
showNoobDialog();
}
else
{
saveNote();
saveMapObjectEdits();
}
}
case PHONE ->
{
final String phone =
((PhoneFragment) getChildFragmentManager().findFragmentByTag(PhoneFragment.class.getName())).getPhone();
if (Editor.nativeIsPhoneValid(phone))
{
Editor.nativeSetPhone(phone);
editMapObject();
}
}
}
}
}

View File

@@ -7,13 +7,11 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.textfield.TextInputEditText;
import app.organicmaps.R;
import app.organicmaps.sdk.editor.data.FeatureCategory;
import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.sdk.util.UiUtils;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textview.MaterialTextView;
public class FeatureCategoryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
@@ -59,17 +57,18 @@ public class FeatureCategoryAdapter extends RecyclerView.Adapter<RecyclerView.Vi
{
switch (viewType)
{
case TYPE_CATEGORY ->
{
return new FeatureViewHolder(
LayoutInflater.from(parent.getContext()).inflate(R.layout.item_feature_category, parent, false));
}
case TYPE_FOOTER ->
{
return new FooterViewHolder(
LayoutInflater.from(parent.getContext()).inflate(R.layout.item_feature_category_footer, parent, false), (FooterListener) mFragment);
}
default -> throw new IllegalArgumentException("Unsupported");
case TYPE_CATEGORY ->
{
return new FeatureViewHolder(
LayoutInflater.from(parent.getContext()).inflate(R.layout.item_feature_category, parent, false));
}
case TYPE_FOOTER ->
{
return new FooterViewHolder(
LayoutInflater.from(parent.getContext()).inflate(R.layout.item_feature_category_footer, parent, false),
(FooterListener) mFragment);
}
default -> throw new IllegalArgumentException("Unsupported");
}
}

View File

@@ -1,34 +1,35 @@
package app.organicmaps.editor;
import static app.organicmaps.sdk.util.Utils.getLocalizedFeatureType;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import app.organicmaps.MwmApplication;
import app.organicmaps.sdk.editor.Editor;
import app.organicmaps.sdk.editor.data.FeatureCategory;
import app.organicmaps.sdk.util.Language;
import app.organicmaps.sdk.editor.OsmOAuth;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import android.text.TextUtils;
import android.content.Intent;
import android.widget.Toast;
import app.organicmaps.sdk.Framework;
import app.organicmaps.R;
import app.organicmaps.base.BaseMwmRecyclerFragment;
import app.organicmaps.dialog.EditTextDialogFragment;
import app.organicmaps.sdk.Framework;
import app.organicmaps.sdk.editor.Editor;
import app.organicmaps.sdk.editor.OsmOAuth;
import app.organicmaps.sdk.editor.data.FeatureCategory;
import app.organicmaps.sdk.util.Language;
import app.organicmaps.util.Utils;
import app.organicmaps.widget.SearchToolbarController;
import app.organicmaps.widget.ToolbarController;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.util.Arrays;
import java.util.Comparator;
public class FeatureCategoryFragment extends BaseMwmRecyclerFragment<FeatureCategoryAdapter> implements FeatureCategoryAdapter.FooterListener
public class FeatureCategoryFragment
extends BaseMwmRecyclerFragment<FeatureCategoryAdapter> implements FeatureCategoryAdapter.FooterListener
{
private FeatureCategory mSelectedCategory;
protected ToolbarController mToolbarController;
@@ -58,8 +59,7 @@ public class FeatureCategoryFragment extends BaseMwmRecyclerFragment<FeatureCate
mSelectedCategory =
Utils.getParcelable(args, FeatureCategoryActivity.EXTRA_FEATURE_CATEGORY, FeatureCategory.class);
}
mToolbarController = new SearchToolbarController(view, requireActivity())
{
mToolbarController = new SearchToolbarController(view, requireActivity()) {
@Override
protected void onTextChanged(String query)
{
@@ -158,19 +158,21 @@ public class FeatureCategoryFragment extends BaseMwmRecyclerFragment<FeatureCate
private void showNoteConfirmationDialog(double lat, double lon, String noteText)
{
new MaterialAlertDialogBuilder(requireActivity(), R.style.MwmTheme_AlertDialog)
.setTitle(R.string.editor_share_to_all_dialog_title)
.setMessage(getString(R.string.editor_share_to_all_dialog_message_1)
+ " " + getString(R.string.editor_share_to_all_dialog_message_2))
.setPositiveButton(android.R.string.ok, (dlg, which) -> {
MwmApplication.prefs(requireContext().getApplicationContext()).edit()
.putBoolean(NOTE_CONFIRMATION_SHOWN, true)
.apply();
Editor.nativeCreateStandaloneNote(lat, lon, noteText);
mPendingNoteText = "";
Toast.makeText(requireContext(), R.string.osm_note_toast, Toast.LENGTH_SHORT).show();
requireActivity().finish();
})
.setNegativeButton(R.string.cancel, null)
.show();
.setTitle(R.string.editor_share_to_all_dialog_title)
.setMessage(getString(R.string.editor_share_to_all_dialog_message_1) + " "
+ getString(R.string.editor_share_to_all_dialog_message_2))
.setPositiveButton(android.R.string.ok,
(dlg, which) -> {
MwmApplication.prefs(requireContext().getApplicationContext())
.edit()
.putBoolean(NOTE_CONFIRMATION_SHOWN, true)
.apply();
Editor.nativeCreateStandaloneNote(lat, lon, noteText);
mPendingNoteText = "";
Toast.makeText(requireContext(), R.string.osm_note_toast, Toast.LENGTH_SHORT).show();
requireActivity().finish();
})
.setNegativeButton(R.string.cancel, null)
.show();
}
}

View File

@@ -13,9 +13,9 @@ import androidx.appcompat.widget.SwitchCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import app.organicmaps.R;
import app.organicmaps.editor.data.TimeFormatUtils;
import app.organicmaps.sdk.editor.OpeningHours;
import app.organicmaps.sdk.editor.data.HoursMinutes;
import app.organicmaps.editor.data.TimeFormatUtils;
import app.organicmaps.sdk.editor.data.Timespan;
import app.organicmaps.sdk.editor.data.Timetable;
import app.organicmaps.sdk.util.UiUtils;

View File

@@ -162,8 +162,8 @@ public class TimetableContainerFragment extends BaseMwmFragment implements Timet
switch (mMode)
{
case SIMPLE -> setMode(Mode.ADVANCED, filledTimetables);
case ADVANCED -> setMode(Mode.SIMPLE, filledTimetables);
case SIMPLE -> setMode(Mode.ADVANCED, filledTimetables);
case ADVANCED -> setMode(Mode.SIMPLE, filledTimetables);
}
}

View File

@@ -42,8 +42,8 @@ public class FaqFragment extends BaseMwmFragment
{
switch (which)
{
case 0 -> sendGeneralFeedback();
case 1 -> reportBug();
case 0 -> sendGeneralFeedback();
case 1 -> reportBug();
}
}
};

View File

@@ -78,67 +78,67 @@ public class Factory
switch (Framework.nativeParseAndSetApiUrl(uri.toString()))
{
case RequestType.INCORRECT: return false;
case RequestType.INCORRECT: return false;
case RequestType.MAP:
SearchEngine.INSTANCE.cancelInteractiveSearch();
Map.executeMapApiRequest();
return true;
case RequestType.MAP:
SearchEngine.INSTANCE.cancelInteractiveSearch();
Map.executeMapApiRequest();
return true;
case RequestType.ROUTE:
SearchEngine.INSTANCE.cancelInteractiveSearch();
final ParsedRoutingData data = Framework.nativeGetParsedRoutingData();
RoutingController.get().setRouterType(data.mRouterType);
final RoutePoint from = data.mPoints[0];
final RoutePoint to = data.mPoints[1];
RoutingController.get().prepare(
MapObject.createMapObject(FeatureId.EMPTY, MapObject.API_POINT, from.mName, "", from.mLat, from.mLon),
MapObject.createMapObject(FeatureId.EMPTY, MapObject.API_POINT, to.mName, "", to.mLat, to.mLon));
return true;
case RequestType.SEARCH:
case RequestType.ROUTE:
SearchEngine.INSTANCE.cancelInteractiveSearch();
final ParsedRoutingData data = Framework.nativeGetParsedRoutingData();
RoutingController.get().setRouterType(data.mRouterType);
final RoutePoint from = data.mPoints[0];
final RoutePoint to = data.mPoints[1];
RoutingController.get().prepare(
MapObject.createMapObject(FeatureId.EMPTY, MapObject.API_POINT, from.mName, "", from.mLat, from.mLon),
MapObject.createMapObject(FeatureId.EMPTY, MapObject.API_POINT, to.mName, "", to.mLat, to.mLon));
return true;
case RequestType.SEARCH:
{
SearchEngine.INSTANCE.cancelInteractiveSearch();
final ParsedSearchRequest request = Framework.nativeGetParsedSearchRequest();
final double[] latlon = Framework.nativeGetParsedCenterLatLon();
if (latlon != null)
{
SearchEngine.INSTANCE.cancelInteractiveSearch();
final ParsedSearchRequest request = Framework.nativeGetParsedSearchRequest();
final double[] latlon = Framework.nativeGetParsedCenterLatLon();
if (latlon != null)
{
Framework.nativeStopLocationFollow();
Framework.nativeSetViewportCenter(latlon[0], latlon[1], SEARCH_IN_VIEWPORT_ZOOM);
// We need to update viewport for search api manually because of drape engine
// will not notify subscribers when search activity is shown.
if (!request.mIsSearchOnMap)
Framework.nativeSetSearchViewport(latlon[0], latlon[1], SEARCH_IN_VIEWPORT_ZOOM);
}
SearchActivity.start(target, request.mQuery, request.mLocale, request.mIsSearchOnMap);
return true;
Framework.nativeStopLocationFollow();
Framework.nativeSetViewportCenter(latlon[0], latlon[1], SEARCH_IN_VIEWPORT_ZOOM);
// We need to update viewport for search api manually because of drape engine
// will not notify subscribers when search activity is shown.
if (!request.mIsSearchOnMap)
Framework.nativeSetSearchViewport(latlon[0], latlon[1], SEARCH_IN_VIEWPORT_ZOOM);
}
case RequestType.CROSSHAIR:
SearchActivity.start(target, request.mQuery, request.mLocale, request.mIsSearchOnMap);
return true;
}
case RequestType.CROSSHAIR:
{
SearchEngine.INSTANCE.cancelInteractiveSearch();
target.showPositionChooserForAPI(Framework.nativeGetParsedAppName());
final double[] latlon = Framework.nativeGetParsedCenterLatLon();
if (latlon != null)
{
SearchEngine.INSTANCE.cancelInteractiveSearch();
target.showPositionChooserForAPI(Framework.nativeGetParsedAppName());
final double[] latlon = Framework.nativeGetParsedCenterLatLon();
if (latlon != null)
{
Framework.nativeStopLocationFollow();
Framework.nativeSetViewportCenter(latlon[0], latlon[1], SEARCH_IN_VIEWPORT_ZOOM);
}
return true;
}
case RequestType.OAUTH2:
{
SearchEngine.INSTANCE.cancelInteractiveSearch();
final String oauth2code = Framework.nativeGetParsedOAuth2Code();
OsmLoginActivity.OAuth2Callback(target, oauth2code);
return true;
Framework.nativeStopLocationFollow();
Framework.nativeSetViewportCenter(latlon[0], latlon[1], SEARCH_IN_VIEWPORT_ZOOM);
}
// Menu and Settings url types should be implemented to support deeplinking.
case RequestType.MENU:
case RequestType.SETTINGS:
return true;
}
case RequestType.OAUTH2:
{
SearchEngine.INSTANCE.cancelInteractiveSearch();
final String oauth2code = Framework.nativeGetParsedOAuth2Code();
OsmLoginActivity.OAuth2Callback(target, oauth2code);
return true;
}
// Menu and Settings url types should be implemented to support deeplinking.
case RequestType.MENU:
case RequestType.SETTINGS:
}
return false;

View File

@@ -42,26 +42,26 @@ public class LayerBottomSheetItem
int buttonTextResource = R.string.layers_title;
switch (mode)
{
case OUTDOORS:
disabledResource = R.attr.outdoorsMenuDisabled;
enabledResource = R.attr.outdoorsMenuEnabled;
buttonTextResource = R.string.button_layer_outdoor;
break;
case SUBWAY:
disabledResource = R.attr.subwayMenuDisabled;
enabledResource = R.attr.subwayMenuEnabled;
buttonTextResource = R.string.subway;
break;
case ISOLINES:
disabledResource = R.attr.isoLinesMenuDisabled;
enabledResource = R.attr.isoLinesMenuEnabled;
buttonTextResource = R.string.button_layer_isolines;
break;
case TRAFFIC:
disabledResource = R.attr.trafficMenuDisabled;
enabledResource = R.attr.trafficMenuEnabled;
buttonTextResource = R.string.button_layer_traffic;
break;
case OUTDOORS:
disabledResource = R.attr.outdoorsMenuDisabled;
enabledResource = R.attr.outdoorsMenuEnabled;
buttonTextResource = R.string.button_layer_outdoor;
break;
case SUBWAY:
disabledResource = R.attr.subwayMenuDisabled;
enabledResource = R.attr.subwayMenuEnabled;
buttonTextResource = R.string.subway;
break;
case ISOLINES:
disabledResource = R.attr.isoLinesMenuDisabled;
enabledResource = R.attr.isoLinesMenuEnabled;
buttonTextResource = R.string.button_layer_isolines;
break;
case TRAFFIC:
disabledResource = R.attr.trafficMenuDisabled;
enabledResource = R.attr.trafficMenuEnabled;
buttonTextResource = R.string.button_layer_traffic;
break;
}
int disabled = ThemeUtils.getResource(mContext, disabledResource);
int enabled = ThemeUtils.getResource(mContext, enabledResource);

View File

@@ -230,21 +230,21 @@ public class MapButtonsController extends Fragment
return;
switch (button)
{
case zoom: UiUtils.showIf(show && Config.showZoomButtons(), buttonView); break;
case toggleMapLayer:
if (mToggleMapLayerButton != null)
UiUtils.showIf(show && !isInNavigationMode(), mToggleMapLayerButton);
break;
case myPosition:
if (mNavMyPosition != null)
mNavMyPosition.showButton(show);
break;
case search: mSearchWheel.show(show);
case bookmarks:
case menu: UiUtils.showIf(show, buttonView); break;
case trackRecordingStatus:
UiUtils.showIf(show, buttonView);
animateIconBlinking(show, (FloatingActionButton) buttonView);
case zoom: UiUtils.showIf(show && Config.showZoomButtons(), buttonView); break;
case toggleMapLayer:
if (mToggleMapLayerButton != null)
UiUtils.showIf(show && !isInNavigationMode(), mToggleMapLayerButton);
break;
case myPosition:
if (mNavMyPosition != null)
mNavMyPosition.showButton(show);
break;
case search: mSearchWheel.show(show);
case bookmarks:
case menu: UiUtils.showIf(show, buttonView); break;
case trackRecordingStatus:
UiUtils.showIf(show, buttonView);
animateIconBlinking(show, (FloatingActionButton) buttonView);
}
}

View File

@@ -11,14 +11,14 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.R;
import app.organicmaps.sdk.bookmarks.data.MapObject;
import app.organicmaps.sdk.routing.RouteMarkData;
import app.organicmaps.sdk.routing.RouteMarkType;
import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.sdk.util.UiUtils;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -63,26 +63,26 @@ public class ManageRouteAdapter extends RecyclerView.Adapter<ManageRouteAdapter.
switch (mRoutePoints.get(position).mPointType)
{
case Start: // Starting point.
if (mRoutePoints.get(position).mIsMyPosition)
iconId = R.drawable.ic_location_arrow_blue;
else
iconId = R.drawable.route_point_start;
break;
case Start: // Starting point.
if (mRoutePoints.get(position).mIsMyPosition)
iconId = R.drawable.ic_location_arrow_blue;
else
iconId = R.drawable.route_point_start;
break;
case Intermediate: // Intermediate stop.
TypedArray iconArray = mContext.getResources().obtainTypedArray(R.array.route_stop_icons);
iconId = iconArray.getResourceId(mRoutePoints.get(position).mIntermediateIndex, R.drawable.route_point_20);
iconArray.recycle();
break;
case Intermediate: // Intermediate stop.
TypedArray iconArray = mContext.getResources().obtainTypedArray(R.array.route_stop_icons);
iconId = iconArray.getResourceId(mRoutePoints.get(position).mIntermediateIndex, R.drawable.route_point_20);
iconArray.recycle();
break;
case Finish: // Destination point.
iconId = R.drawable.route_point_finish;
break;
case Finish: // Destination point.
iconId = R.drawable.route_point_finish;
break;
default: // Unknown route type.
iconId = R.drawable.warning_icon;
break;
default: // Unknown route type.
iconId = R.drawable.warning_icon;
break;
}
// Set icon widget.

View File

@@ -23,76 +23,76 @@ public class ResultCodesHelper
int cancelBtnResId = android.R.string.cancel;
switch (errorCode)
{
case ResultCodes.NO_POSITION:
if (!MwmApplication.from(context).getLocationHelper().isActive())
{
titleRes = R.string.dialog_routing_location_turn_on;
messages.add(resources.getString(R.string.dialog_routing_location_unknown_turn_on));
}
else
{
titleRes = R.string.dialog_routing_check_gps;
messages.add(resources.getString(R.string.dialog_routing_error_location_not_found));
messages.add(resources.getString(R.string.dialog_routing_location_turn_wifi));
}
break;
case ResultCodes.INCONSISTENT_MWM_ROUTE:
case ResultCodes.ROUTING_FILE_NOT_EXIST:
case ResultCodes.NO_POSITION:
if (!MwmApplication.from(context).getLocationHelper().isActive())
{
titleRes = R.string.dialog_routing_location_turn_on;
messages.add(resources.getString(R.string.dialog_routing_location_unknown_turn_on));
}
else
{
titleRes = R.string.dialog_routing_check_gps;
messages.add(resources.getString(R.string.dialog_routing_error_location_not_found));
messages.add(resources.getString(R.string.dialog_routing_location_turn_wifi));
}
break;
case ResultCodes.INCONSISTENT_MWM_ROUTE:
case ResultCodes.ROUTING_FILE_NOT_EXIST:
titleRes = R.string.routing_download_maps_along;
messages.add(resources.getString(R.string.routing_requires_all_map));
break;
case ResultCodes.START_POINT_NOT_FOUND:
titleRes = R.string.dialog_routing_change_start;
messages.add(resources.getString(R.string.dialog_routing_start_not_determined));
messages.add(resources.getString(R.string.dialog_routing_select_closer_start));
break;
case ResultCodes.END_POINT_NOT_FOUND:
titleRes = R.string.dialog_routing_change_end;
messages.add(resources.getString(R.string.dialog_routing_end_not_determined));
messages.add(resources.getString(R.string.dialog_routing_select_closer_end));
break;
case ResultCodes.INTERMEDIATE_POINT_NOT_FOUND:
titleRes = R.string.dialog_routing_change_intermediate;
messages.add(resources.getString(R.string.dialog_routing_intermediate_not_determined));
break;
case ResultCodes.DIFFERENT_MWM:
messages.add(resources.getString(R.string.routing_failed_cross_mwm_building));
break;
case ResultCodes.FILE_TOO_OLD:
titleRes = R.string.downloader_update_maps;
messages.add(resources.getString(R.string.downloader_mwm_migration_dialog));
break;
case ResultCodes.TRANSIT_ROUTE_NOT_FOUND_NO_NETWORK:
messages.add(resources.getString(R.string.transit_not_found));
break;
case ResultCodes.TRANSIT_ROUTE_NOT_FOUND_TOO_LONG_PEDESTRIAN:
titleRes = R.string.dialog_pedestrian_route_is_long_header;
messages.add(resources.getString(R.string.dialog_pedestrian_route_is_long_message));
cancelBtnResId = R.string.ok;
break;
case ResultCodes.ROUTE_NOT_FOUND:
case ResultCodes.ROUTE_NOT_FOUND_REDRESS_ROUTE_ERROR:
if (missingCount == 0)
{
titleRes = R.string.dialog_routing_unable_locate_route;
messages.add(resources.getString(R.string.dialog_routing_cant_build_route));
messages.add(resources.getString(R.string.dialog_routing_change_start_or_end));
}
else
{
titleRes = R.string.routing_download_maps_along;
messages.add(resources.getString(R.string.routing_requires_all_map));
break;
case ResultCodes.START_POINT_NOT_FOUND:
titleRes = R.string.dialog_routing_change_start;
messages.add(resources.getString(R.string.dialog_routing_start_not_determined));
messages.add(resources.getString(R.string.dialog_routing_select_closer_start));
break;
case ResultCodes.END_POINT_NOT_FOUND:
titleRes = R.string.dialog_routing_change_end;
messages.add(resources.getString(R.string.dialog_routing_end_not_determined));
messages.add(resources.getString(R.string.dialog_routing_select_closer_end));
break;
case ResultCodes.INTERMEDIATE_POINT_NOT_FOUND:
titleRes = R.string.dialog_routing_change_intermediate;
messages.add(resources.getString(R.string.dialog_routing_intermediate_not_determined));
break;
case ResultCodes.DIFFERENT_MWM:
messages.add(resources.getString(R.string.routing_failed_cross_mwm_building));
break;
case ResultCodes.FILE_TOO_OLD:
titleRes = R.string.downloader_update_maps;
messages.add(resources.getString(R.string.downloader_mwm_migration_dialog));
break;
case ResultCodes.TRANSIT_ROUTE_NOT_FOUND_NO_NETWORK:
messages.add(resources.getString(R.string.transit_not_found));
break;
case ResultCodes.TRANSIT_ROUTE_NOT_FOUND_TOO_LONG_PEDESTRIAN:
titleRes = R.string.dialog_pedestrian_route_is_long_header;
messages.add(resources.getString(R.string.dialog_pedestrian_route_is_long_message));
cancelBtnResId = R.string.ok;
break;
case ResultCodes.ROUTE_NOT_FOUND:
case ResultCodes.ROUTE_NOT_FOUND_REDRESS_ROUTE_ERROR:
if (missingCount == 0)
{
titleRes = R.string.dialog_routing_unable_locate_route;
messages.add(resources.getString(R.string.dialog_routing_cant_build_route));
messages.add(resources.getString(R.string.dialog_routing_change_start_or_end));
}
else
{
titleRes = R.string.routing_download_maps_along;
messages.add(resources.getString(R.string.routing_requires_all_map));
}
break;
case ResultCodes.INTERNAL_ERROR:
titleRes = R.string.dialog_routing_system_error;
messages.add(resources.getString(R.string.dialog_routing_application_error));
messages.add(resources.getString(R.string.dialog_routing_try_again));
break;
case ResultCodes.NEED_MORE_MAPS:
titleRes = R.string.dialog_routing_download_and_build_cross_route;
messages.add(resources.getString(R.string.dialog_routing_download_cross_route));
break;
}
break;
case ResultCodes.INTERNAL_ERROR:
titleRes = R.string.dialog_routing_system_error;
messages.add(resources.getString(R.string.dialog_routing_application_error));
messages.add(resources.getString(R.string.dialog_routing_try_again));
break;
case ResultCodes.NEED_MORE_MAPS:
titleRes = R.string.dialog_routing_download_and_build_cross_route;
messages.add(resources.getString(R.string.dialog_routing_download_cross_route));
break;
}
StringBuilder builder = new StringBuilder();

View File

@@ -119,10 +119,11 @@ final class RoutingBottomMenuController implements View.OnClickListener
private RoutingBottomMenuController(@NonNull Activity context, @NonNull View altitudeChartFrame,
@NonNull View timeElevationLine, @NonNull View transitFrame,
@NonNull MaterialTextView error, @NonNull Button start, @NonNull ImageView altitudeChart,
@NonNull MaterialTextView time, @NonNull MaterialTextView altitudeDifference,
@NonNull TextView timeVehicle, @Nullable MaterialTextView arrival,
@NonNull View actionFrame, @Nullable RoutingBottomMenuListener listener)
@NonNull MaterialTextView error, @NonNull Button start,
@NonNull ImageView altitudeChart, @NonNull MaterialTextView time,
@NonNull MaterialTextView altitudeDifference, @NonNull TextView timeVehicle,
@Nullable MaterialTextView arrival, @NonNull View actionFrame,
@Nullable RoutingBottomMenuListener listener)
{
mContext = context;
mAltitudeChartFrame = altitudeChartFrame;

View File

@@ -13,11 +13,11 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentFactory;
import androidx.fragment.app.FragmentManager;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.R;
import app.organicmaps.sdk.downloader.CountryItem;
import app.organicmaps.sdk.downloader.MapManager;
import app.organicmaps.sdk.util.UiUtils;
import com.google.android.material.textview.MaterialTextView;
public class RoutingErrorDialogFragment extends BaseRoutingErrorDialogFragment
{

View File

@@ -45,16 +45,16 @@ public class SensorHelper implements SensorEventListener
mLastAccuracy = event.accuracy;
switch (mLastAccuracy)
{
case SensorManager.SENSOR_STATUS_ACCURACY_HIGH: break;
case SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM:
for (SensorListener listener : mListeners)
listener.onCompassCalibrationRecommended();
break;
case SensorManager.SENSOR_STATUS_ACCURACY_LOW:
case SensorManager.SENSOR_STATUS_UNRELIABLE:
default:
for (SensorListener listener : mListeners)
listener.onCompassCalibrationRequired();
case SensorManager.SENSOR_STATUS_ACCURACY_HIGH: break;
case SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM:
for (SensorListener listener : mListeners)
listener.onCompassCalibrationRecommended();
break;
case SensorManager.SENSOR_STATUS_ACCURACY_LOW:
case SensorManager.SENSOR_STATUS_UNRELIABLE:
default:
for (SensorListener listener : mListeners)
listener.onCompassCalibrationRequired();
}
}

View File

@@ -34,10 +34,10 @@ public final class RoutePointInfo implements Parcelable
{
switch (markType)
{
case 0: mMarkType = RouteMarkType.Start; break;
case 1: mMarkType = RouteMarkType.Intermediate; break;
case 2: mMarkType = RouteMarkType.Finish; break;
default: throw new IllegalArgumentException("Mark type is not valid = " + markType);
case 0: mMarkType = RouteMarkType.Start; break;
case 1: mMarkType = RouteMarkType.Intermediate; break;
case 2: mMarkType = RouteMarkType.Finish; break;
default: throw new IllegalArgumentException("Mark type is not valid = " + markType);
}
mIntermediateIndex = intermediateIndex;

View File

@@ -28,13 +28,13 @@ public class LocationUtils
double correction = 0;
switch (displayOrientation)
{
case Surface.ROTATION_0 ->
{
return angle;
}
case Surface.ROTATION_90 -> correction = Math.PI / 2.0;
case Surface.ROTATION_180 -> correction = Math.PI;
case Surface.ROTATION_270 -> correction = (3.0 * Math.PI / 2.0);
case Surface.ROTATION_0 ->
{
return angle;
}
case Surface.ROTATION_90 -> correction = Math.PI / 2.0;
case Surface.ROTATION_180 -> correction = Math.PI;
case Surface.ROTATION_270 -> correction = (3.0 * Math.PI / 2.0);
}
return correctAngle(angle, correction);

View File

@@ -146,11 +146,11 @@ public final class Logger
{
switch (level)
{
case Log.VERBOSE: return 'V';
case Log.DEBUG: return 'D';
case Log.INFO: return 'I';
case Log.WARN: return 'W';
case Log.ERROR: return 'E';
case Log.VERBOSE: return 'V';
case Log.DEBUG: return 'D';
case Log.INFO: return 'I';
case Log.WARN: return 'W';
case Log.ERROR: return 'E';
}
assert false : "Unknown log level " + level;
return '_';

View File

@@ -149,39 +149,39 @@ class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.SearchDataViewHol
switch (result.description.openNow)
{
case SearchResult.OPEN_NOW_YES ->
case SearchResult.OPEN_NOW_YES ->
{
if (result.description.minutesUntilClosed < 60) // less than 1 hour
{
if (result.description.minutesUntilClosed < 60) // less than 1 hour
{
final String time = result.description.minutesUntilClosed + " " + resources.getString(R.string.minute);
final String string = resources.getString(R.string.closes_in, time);
final String time = result.description.minutesUntilClosed + " " + resources.getString(R.string.minute);
final String string = resources.getString(R.string.closes_in, time);
UiUtils.setTextAndShow(mOpen, string);
mOpen.setTextColor(ContextCompat.getColor(mSearchFragment.getContext(), R.color.base_yellow));
}
else
{
UiUtils.setTextAndShow(mOpen, resources.getString(R.string.editor_time_open));
mOpen.setTextColor(ContextCompat.getColor(mSearchFragment.getContext(), R.color.base_green));
}
UiUtils.setTextAndShow(mOpen, string);
mOpen.setTextColor(ContextCompat.getColor(mSearchFragment.getContext(), R.color.base_yellow));
}
case SearchResult.OPEN_NOW_NO ->
else
{
if (result.description.minutesUntilOpen < 60) // less than 1 hour
{
final String time = result.description.minutesUntilOpen + " " + resources.getString(R.string.minute);
final String string = resources.getString(R.string.opens_in, time);
UiUtils.setTextAndShow(mOpen, string);
mOpen.setTextColor(ContextCompat.getColor(mSearchFragment.getContext(), R.color.base_red));
}
else
{
UiUtils.setTextAndShow(mOpen, resources.getString(R.string.closed));
mOpen.setTextColor(ContextCompat.getColor(mSearchFragment.getContext(), R.color.base_red));
}
UiUtils.setTextAndShow(mOpen, resources.getString(R.string.editor_time_open));
mOpen.setTextColor(ContextCompat.getColor(mSearchFragment.getContext(), R.color.base_green));
}
default -> UiUtils.hide(mOpen);
}
case SearchResult.OPEN_NOW_NO ->
{
if (result.description.minutesUntilOpen < 60) // less than 1 hour
{
final String time = result.description.minutesUntilOpen + " " + resources.getString(R.string.minute);
final String string = resources.getString(R.string.opens_in, time);
UiUtils.setTextAndShow(mOpen, string);
mOpen.setTextColor(ContextCompat.getColor(mSearchFragment.getContext(), R.color.base_red));
}
else
{
UiUtils.setTextAndShow(mOpen, resources.getString(R.string.closed));
mOpen.setTextColor(ContextCompat.getColor(mSearchFragment.getContext(), R.color.base_red));
}
}
default -> UiUtils.hide(mOpen);
}
}

View File

@@ -49,32 +49,32 @@ class SearchHistoryAdapter extends RecyclerView.Adapter<SearchHistoryAdapter.Vie
switch (type)
{
case TYPE_ITEM:
res = new ViewHolder(
LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_search_recent, viewGroup, false));
res.mText.setOnClickListener(v -> mSearchToolbarController.setQuery(res.mText.getText()));
break;
case TYPE_ITEM:
res = new ViewHolder(
LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_search_recent, viewGroup, false));
res.mText.setOnClickListener(v -> mSearchToolbarController.setQuery(res.mText.getText()));
break;
case TYPE_CLEAR:
res = new ViewHolder(
LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_search_clear_history, viewGroup, false));
res.mText.setOnClickListener(v -> {
SearchRecents.clear();
notifyDataSetChanged();
});
break;
case TYPE_CLEAR:
res = new ViewHolder(
LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_search_clear_history, viewGroup, false));
res.mText.setOnClickListener(v -> {
SearchRecents.clear();
notifyDataSetChanged();
});
break;
case TYPE_MY_POSITION:
res = new ViewHolder(
LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_search_my_position, viewGroup, false));
res.mText.setOnClickListener(v -> {
RoutingController.get().onPoiSelected(
MwmApplication.from(viewGroup.getContext()).getLocationHelper().getMyPosition());
mSearchToolbarController.onUpClick();
});
break;
case TYPE_MY_POSITION:
res = new ViewHolder(
LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_search_my_position, viewGroup, false));
res.mText.setOnClickListener(v -> {
RoutingController.get().onPoiSelected(
MwmApplication.from(viewGroup.getContext()).getLocationHelper().getMyPosition());
mSearchToolbarController.onUpClick();
});
break;
default: throw new IllegalArgumentException("Unsupported ViewHolder type given");
default: throw new IllegalArgumentException("Unsupported ViewHolder type given");
}
Graphics.tint(res.mText);

View File

@@ -326,10 +326,10 @@ public class VoiceInstructionsSettingsFragment extends BaseXmlSettingsFragment
final String ttsLinkText = getString(R.string.prefs_languages_information_off_link);
final Spannable link = new SpannableString(ttsLinkText + "");
// Set link color.
link.setSpan(
new ForegroundColorSpan(ContextCompat.getColor(
requireContext(), UiUtils.getStyledResourceId(requireContext(), com.google.android.material.R.attr.colorSecondary))),
0, ttsLinkText.length(), 0);
link.setSpan(new ForegroundColorSpan(ContextCompat.getColor(
requireContext(),
UiUtils.getStyledResourceId(requireContext(), com.google.android.material.R.attr.colorSecondary))),
0, ttsLinkText.length(), 0);
ttsLangInfoLink.setSummary(link);
final String ttsInfoUrl = requireActivity().getString(R.string.tts_info_link);

View File

@@ -166,9 +166,9 @@ public class NavMenu
public void refreshTts()
{
mTts.setImageDrawable(TtsPlayer.isEnabled()
? Graphics.tint(mActivity, R.drawable.ic_voice_on, com.google.android.material.R.attr.colorSecondary)
: Graphics.tint(mActivity, R.drawable.ic_voice_off));
mTts.setImageDrawable(TtsPlayer.isEnabled() ? Graphics.tint(mActivity, R.drawable.ic_voice_on,
com.google.android.material.R.attr.colorSecondary)
: Graphics.tint(mActivity, R.drawable.ic_voice_off));
}
private void updateTime(int seconds)

View File

@@ -156,23 +156,23 @@ public class EditBookmarkFragment extends BaseMwmDialogFragment implements View.
switch (mType)
{
case TYPE_BOOKMARK ->
{
mBookmark = BookmarkManager.INSTANCE.getBookmarkInfo(id);
if (savedInstanceState != null && savedInstanceState.getParcelable(STATE_ICON) != null)
mIcon = savedInstanceState.getParcelable(STATE_ICON);
else if (mBookmark != null)
mIcon = mBookmark.getIcon();
refreshBookmark();
}
case TYPE_TRACK ->
{
mTrack = BookmarkManager.INSTANCE.getTrack(id);
mColor = mTrack.getColor();
if (savedInstanceState != null)
mColor = savedInstanceState.getInt(STATE_COLOR, mColor);
refreshTrack();
}
case TYPE_BOOKMARK ->
{
mBookmark = BookmarkManager.INSTANCE.getBookmarkInfo(id);
if (savedInstanceState != null && savedInstanceState.getParcelable(STATE_ICON) != null)
mIcon = savedInstanceState.getParcelable(STATE_ICON);
else if (mBookmark != null)
mIcon = mBookmark.getIcon();
refreshBookmark();
}
case TYPE_TRACK ->
{
mTrack = BookmarkManager.INSTANCE.getTrack(id);
mColor = mTrack.getColor();
if (savedInstanceState != null)
mColor = savedInstanceState.getInt(STATE_COLOR, mColor);
refreshTrack();
}
}
initToolbar(view);
}
@@ -210,16 +210,16 @@ public class EditBookmarkFragment extends BaseMwmDialogFragment implements View.
final ShapeableImageView imageView = toolbar.findViewById(R.id.save);
switch (mType)
{
case TYPE_BOOKMARK ->
{
imageView.setOnClickListener(v -> saveBookmark());
toolbar.setTitle(R.string.placepage_edit_bookmark_button);
}
case TYPE_TRACK ->
{
imageView.setOnClickListener(v -> saveTrack());
toolbar.setTitle(R.string.edit_track);
}
case TYPE_BOOKMARK ->
{
imageView.setOnClickListener(v -> saveBookmark());
toolbar.setTitle(R.string.placepage_edit_bookmark_button);
}
case TYPE_TRACK ->
{
imageView.setOnClickListener(v -> saveTrack());
toolbar.setTitle(R.string.edit_track);
}
}
UiUtils.showHomeUpButton(toolbar);
toolbar.setNavigationOnClickListener(v -> dismiss());
@@ -319,23 +319,23 @@ public class EditBookmarkFragment extends BaseMwmDialogFragment implements View.
dialogFragment.setArguments(args);
switch (mType)
{
case TYPE_BOOKMARK ->
dialogFragment.setOnColorSetListener(colorPos -> {
if (mIcon != null && mIcon.getColor() == colorPos)
return;
case TYPE_BOOKMARK ->
dialogFragment.setOnColorSetListener(colorPos -> {
if (mIcon != null && mIcon.getColor() == colorPos)
return;
mIcon = new Icon(colorPos, mIcon.getType());
refreshColorMarker();
});
case TYPE_TRACK ->
dialogFragment.setOnColorSetListener(colorPos -> {
int from = mTrack.getColor();
int to = PredefinedColors.getColor(colorPos);
if (from == to)
return;
mColor = to;
refreshTrackColor();
});
mIcon = new Icon(colorPos, mIcon.getType());
refreshColorMarker();
});
case TYPE_TRACK ->
dialogFragment.setOnColorSetListener(colorPos -> {
int from = mTrack.getColor();
int to = PredefinedColors.getColor(colorPos);
if (from == to)
return;
mColor = to;
refreshTrackColor();
});
}
dialogFragment.show(requireActivity().getSupportFragmentManager(), null);

View File

@@ -414,15 +414,15 @@ public class PlacePageController
{
switch (item)
{
case BOOKMARK_SAVE, BOOKMARK_DELETE -> onBookmarkBtnClicked();
case BACK -> onBackBtnClicked();
case ROUTE_FROM -> onRouteFromBtnClicked();
case ROUTE_TO -> onRouteToBtnClicked();
case ROUTE_ADD -> onRouteAddBtnClicked();
case ROUTE_REMOVE -> onRouteRemoveBtnClicked();
case ROUTE_AVOID_TOLL -> onAvoidTollBtnClicked();
case ROUTE_AVOID_UNPAVED -> onAvoidUnpavedBtnClicked();
case ROUTE_AVOID_FERRY -> onAvoidFerryBtnClicked();
case BOOKMARK_SAVE, BOOKMARK_DELETE -> onBookmarkBtnClicked();
case BACK -> onBackBtnClicked();
case ROUTE_FROM -> onRouteFromBtnClicked();
case ROUTE_TO -> onRouteToBtnClicked();
case ROUTE_ADD -> onRouteAddBtnClicked();
case ROUTE_REMOVE -> onRouteRemoveBtnClicked();
case ROUTE_AVOID_TOLL -> onAvoidTollBtnClicked();
case ROUTE_AVOID_UNPAVED -> onAvoidUnpavedBtnClicked();
case ROUTE_AVOID_FERRY -> onAvoidFerryBtnClicked();
}
}

View File

@@ -478,8 +478,9 @@ public class PlacePageView extends Fragment
MaterialTextView mTvAddPlace = mAddPlace.findViewById(R.id.tv__editor);
final int editPlaceButtonColor =
Editor.nativeShouldEnableEditPlace()
? ContextCompat.getColor(getContext(),
UiUtils.getStyledResourceId(getContext(), com.google.android.material.R.attr.colorSecondary))
? ContextCompat.getColor(
getContext(),
UiUtils.getStyledResourceId(getContext(), com.google.android.material.R.attr.colorSecondary))
: getResources().getColor(R.color.button_accent_text_disabled);
mTvEditPlace.setTextColor(editPlaceButtonColor);
mTvAddBusiness.setTextColor(editPlaceButtonColor);