diff --git a/android/app/src/main/java/app/organicmaps/DownloadResourcesLegacyActivity.java b/android/app/src/main/java/app/organicmaps/DownloadResourcesLegacyActivity.java index f4d0b34977..9388ef68e0 100644 --- a/android/app/src/main/java/app/organicmaps/DownloadResourcesLegacyActivity.java +++ b/android/app/src/main/java/app/organicmaps/DownloadResourcesLegacyActivity.java @@ -12,8 +12,6 @@ import android.widget.Button; import android.widget.CheckBox; import android.widget.TextView; -import androidx.activity.result.ActivityResultLauncher; -import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.CallSuper; import androidx.annotation.Keep; import androidx.annotation.NonNull; @@ -24,7 +22,6 @@ import androidx.annotation.StyleRes; import app.organicmaps.base.BaseMwmFragmentActivity; import app.organicmaps.downloader.CountryItem; import app.organicmaps.downloader.MapManager; -import app.organicmaps.intent.Factory; import app.organicmaps.location.LocationHelper; import app.organicmaps.location.LocationListener; import app.organicmaps.util.Config; diff --git a/android/app/src/main/java/app/organicmaps/MwmActivity.java b/android/app/src/main/java/app/organicmaps/MwmActivity.java index 2a9ce30a18..b681206c69 100644 --- a/android/app/src/main/java/app/organicmaps/MwmActivity.java +++ b/android/app/src/main/java/app/organicmaps/MwmActivity.java @@ -31,7 +31,6 @@ import androidx.annotation.StyleRes; import androidx.annotation.UiThread; import androidx.appcompat.widget.Toolbar; import androidx.core.app.ActivityCompat; -import androidx.core.content.IntentCompat; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import androidx.fragment.app.Fragment; diff --git a/android/app/src/main/java/app/organicmaps/SplashActivity.java b/android/app/src/main/java/app/organicmaps/SplashActivity.java index 7414472498..f46babb906 100644 --- a/android/app/src/main/java/app/organicmaps/SplashActivity.java +++ b/android/app/src/main/java/app/organicmaps/SplashActivity.java @@ -3,7 +3,6 @@ package app.organicmaps; import static android.Manifest.permission.ACCESS_COARSE_LOCATION; import static android.Manifest.permission.ACCESS_FINE_LOCATION; -import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -16,10 +15,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.appcompat.app.AppCompatActivity; -import androidx.core.content.IntentCompat; import app.organicmaps.display.DisplayManager; -import app.organicmaps.intent.Factory; import app.organicmaps.location.LocationHelper; import app.organicmaps.util.Config; import app.organicmaps.util.LocationUtils; diff --git a/android/app/src/main/java/app/organicmaps/base/BaseMwmFragmentActivity.java b/android/app/src/main/java/app/organicmaps/base/BaseMwmFragmentActivity.java index 5b73baa6c0..640b8a5d9e 100644 --- a/android/app/src/main/java/app/organicmaps/base/BaseMwmFragmentActivity.java +++ b/android/app/src/main/java/app/organicmaps/base/BaseMwmFragmentActivity.java @@ -13,7 +13,6 @@ import androidx.annotation.Nullable; import androidx.annotation.StyleRes; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; -import androidx.core.content.IntentCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentFactory; import androidx.fragment.app.FragmentManager; diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksSharingHelper.java b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksSharingHelper.java index f2f90f8727..3271022b25 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksSharingHelper.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksSharingHelper.java @@ -15,7 +15,6 @@ import app.organicmaps.util.log.Logger; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.util.ArrayList; -import java.util.Collections; import java.util.List; diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/ChooseBookmarkCategoryAdapter.java b/android/app/src/main/java/app/organicmaps/bookmarks/ChooseBookmarkCategoryAdapter.java index 526b608e52..b630894a79 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/ChooseBookmarkCategoryAdapter.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/ChooseBookmarkCategoryAdapter.java @@ -55,19 +55,14 @@ public class ChooseBookmarkCategoryAdapter extends BaseBookmarkCategoryAdapter { + if (mListener == null) + return; - if (holder.getItemViewType() == VIEW_TYPE_ADD_NEW) - mListener.onCategoryCreate(); - else - mListener.onCategorySet(holder.getBindingAdapterPosition()); - } + if (holder.getItemViewType() == VIEW_TYPE_ADD_NEW) + mListener.onCategoryCreate(); + else + mListener.onCategorySet(holder.getBindingAdapterPosition()); }); return holder; diff --git a/android/app/src/main/java/app/organicmaps/downloader/BottomPanel.java b/android/app/src/main/java/app/organicmaps/downloader/BottomPanel.java index f9f68978b3..99d3e3cc64 100644 --- a/android/app/src/main/java/app/organicmaps/downloader/BottomPanel.java +++ b/android/app/src/main/java/app/organicmaps/downloader/BottomPanel.java @@ -48,15 +48,10 @@ class BottomPanel mFragment = fragment; mFab = frame.findViewById(R.id.fab); - mFab.setOnClickListener(new View.OnClickListener() - { - @Override - public void onClick(View v) - { - if (mFragment.getAdapter() != null ) - mFragment.getAdapter().setAvailableMapsMode(); - update(); - } + mFab.setOnClickListener(v -> { + if (mFragment.getAdapter() != null ) + mFragment.getAdapter().setAvailableMapsMode(); + update(); }); mButton = frame.findViewById(R.id.action); diff --git a/android/app/src/main/java/app/organicmaps/downloader/DownloaderAdapter.java b/android/app/src/main/java/app/organicmaps/downloader/DownloaderAdapter.java index c26d909a32..5400789adb 100644 --- a/android/app/src/main/java/app/organicmaps/downloader/DownloaderAdapter.java +++ b/android/app/src/main/java/app/organicmaps/downloader/DownloaderAdapter.java @@ -436,21 +436,7 @@ class DownloaderAdapter extends RecyclerView.Adapter processClick(true)).setOnCancelClickListener(v -> MapManager.nativeCancel(mItem.id)); mName = frame.findViewById(R.id.name); mSubtitle = frame.findViewById(R.id.subtitle); diff --git a/android/app/src/main/java/app/organicmaps/downloader/MapManager.java b/android/app/src/main/java/app/organicmaps/downloader/MapManager.java index 96f92ed2b7..8348d5ef6d 100644 --- a/android/app/src/main/java/app/organicmaps/downloader/MapManager.java +++ b/android/app/src/main/java/app/organicmaps/downloader/MapManager.java @@ -205,29 +205,19 @@ public final class MapManager public static boolean warn3gAndDownload(Activity activity, final String countryId, @Nullable final Runnable onAcceptListener) { - return warnOn3g(activity, countryId, new Runnable() - { - @Override - public void run() - { - if (onAcceptListener != null) - onAcceptListener.run(); - nativeDownload(countryId); - } + return warnOn3g(activity, countryId, () -> { + if (onAcceptListener != null) + onAcceptListener.run(); + nativeDownload(countryId); }); } static boolean warn3gAndRetry(Activity activity, final String countryId, @Nullable final Runnable onAcceptListener) { - return warnOn3g(activity, countryId, new Runnable() - { - @Override - public void run() - { - if (onAcceptListener != null) - onAcceptListener.run(); - nativeRetry(countryId); - } + return warnOn3g(activity, countryId, () -> { + if (onAcceptListener != null) + onAcceptListener.run(); + nativeRetry(countryId); }); } diff --git a/android/app/src/main/java/app/organicmaps/downloader/OnmapDownloader.java b/android/app/src/main/java/app/organicmaps/downloader/OnmapDownloader.java index 6a3c72a162..7af329f644 100644 --- a/android/app/src/main/java/app/organicmaps/downloader/OnmapDownloader.java +++ b/android/app/src/main/java/app/organicmaps/downloader/OnmapDownloader.java @@ -196,17 +196,12 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener mProgress = controls.findViewById(R.id.wheel_downloader_progress); mButton = controls.findViewById(R.id.downloader_button); - mProgress.setOnClickListener(new View.OnClickListener() - { - @Override - public void onClick(View v) - { - if (mCurrentCountry == null) - return; + mProgress.setOnClickListener(v -> { + if (mCurrentCountry == null) + return; - MapManager.nativeCancel(mCurrentCountry.id); - setAutodownloadLocked(true); - } + MapManager.nativeCancel(mCurrentCountry.id); + setAutodownloadLocked(true); }); mButton.setOnClickListener(v -> MapManager.warnOn3g(mActivity, mCurrentCountry == null ? null : mCurrentCountry.id, () -> { diff --git a/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java b/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java index f251b6aada..befd6cf8a6 100644 --- a/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java +++ b/android/app/src/main/java/app/organicmaps/editor/EditorFragment.java @@ -362,27 +362,22 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe return; } showAdditionalNames(true); - UiUtils.waitLayout(mNamesView, new ViewTreeObserver.OnGlobalLayoutListener() - { - @Override - public void onGlobalLayout() - { - LinearLayoutManager lm = (LinearLayoutManager) mNamesView.getLayoutManager(); - int position = args.getInt(LAST_INDEX_OF_NAMES_ARRAY); + UiUtils.waitLayout(mNamesView, () -> { + LinearLayoutManager lm = (LinearLayoutManager) mNamesView.getLayoutManager(); + int position = args.getInt(LAST_INDEX_OF_NAMES_ARRAY); - View nameItem = lm.findViewByPosition(position); + View nameItem = lm.findViewByPosition(position); - int cvNameTop = mCardName.getTop(); - int nameItemTop = nameItem.getTop(); + int cvNameTop = mCardName.getTop(); + int nameItemTop = nameItem.getTop(); - view.scrollTo(0, cvNameTop + nameItemTop); + view.scrollTo(0, cvNameTop + nameItemTop); - // TODO(mgsergio): Uncomment if focus and keyboard are required. - // TODO(mgsergio): Keyboard doesn't want to hide. Only pressing back button works. - // View nameItemInput = nameItem.findViewById(R.id.input); - // nameItemInput.requestFocus(); - // InputUtils.showKeyboard(nameItemInput); - } + // TODO(mgsergio): Uncomment if focus and keyboard are required. + // TODO(mgsergio): Keyboard doesn't want to hide. Only pressing back button works. + // View nameItemInput = nameItem.findViewById(R.id.input); + // nameItemInput.requestFocus(); + // InputUtils.showKeyboard(nameItemInput); }); } diff --git a/android/app/src/main/java/app/organicmaps/editor/LanguagesFragment.java b/android/app/src/main/java/app/organicmaps/editor/LanguagesFragment.java index 3ccef61760..ff9c315e2d 100644 --- a/android/app/src/main/java/app/organicmaps/editor/LanguagesFragment.java +++ b/android/app/src/main/java/app/organicmaps/editor/LanguagesFragment.java @@ -38,18 +38,14 @@ public class LanguagesFragment extends BaseMwmRecyclerFragment languages.add(lang); } - Collections.sort(languages, new Comparator() - { - @Override - public int compare(Language lhs, Language rhs) { - // Default name can be changed, but it should be last in list of names. - if (lhs.isDefaultLang() && !rhs.isDefaultLang()) - return 1; - if (!lhs.isDefaultLang() && rhs.isDefaultLang()) - return -1; + Collections.sort(languages, (lhs, rhs) -> { + // Default name can be changed, but it should be last in list of names. + if (lhs.isDefaultLang() && !rhs.isDefaultLang()) + return 1; + if (!lhs.isDefaultLang() && rhs.isDefaultLang()) + return -1; - return lhs.name.compareTo(rhs.name); - } + return lhs.name.compareTo(rhs.name); }); return new LanguagesAdapter(this, languages.toArray(new Language[languages.size()])); diff --git a/android/app/src/main/java/app/organicmaps/editor/MultilanguageAdapter.java b/android/app/src/main/java/app/organicmaps/editor/MultilanguageAdapter.java index bb00a413e1..e4c2753da9 100644 --- a/android/app/src/main/java/app/organicmaps/editor/MultilanguageAdapter.java +++ b/android/app/src/main/java/app/organicmaps/editor/MultilanguageAdapter.java @@ -112,18 +112,13 @@ public class MultilanguageAdapter extends RecyclerView.Adapter { + // TODO(mgsergio): Implement item deletion. + // int position = getAdapterPosition(); + // mHostFragment.removeLocalizedName(position + 1); + // mNames.remove(position); + // notifyItemRemoved(position); + }); } } } diff --git a/android/app/src/main/java/app/organicmaps/editor/SimpleTimetableAdapter.java b/android/app/src/main/java/app/organicmaps/editor/SimpleTimetableAdapter.java index 9742811c1d..6677659c3e 100644 --- a/android/app/src/main/java/app/organicmaps/editor/SimpleTimetableAdapter.java +++ b/android/app/src/main/java/app/organicmaps/editor/SimpleTimetableAdapter.java @@ -337,14 +337,7 @@ class SimpleTimetableAdapter extends RecyclerView.Adapter checkBox.toggle()); ((TextView) day.findViewById(R.id.tv__day)).setText(TimeFormatUtils.formatShortWeekday(dayIndex)); } @@ -374,14 +367,7 @@ class SimpleTimetableAdapter extends RecyclerView.Adapter addTimetable()); } @Override diff --git a/android/app/src/main/java/app/organicmaps/editor/StreetAdapter.java b/android/app/src/main/java/app/organicmaps/editor/StreetAdapter.java index bb2da1fdf3..cede9477e7 100644 --- a/android/app/src/main/java/app/organicmaps/editor/StreetAdapter.java +++ b/android/app/src/main/java/app/organicmaps/editor/StreetAdapter.java @@ -97,14 +97,9 @@ public class StreetAdapter extends RecyclerView.Adapter { + selected.toggle(); + StreetViewHolder.this.onClick(selected); }); } diff --git a/android/app/src/main/java/app/organicmaps/routing/BaseRoutingErrorDialogFragment.java b/android/app/src/main/java/app/organicmaps/routing/BaseRoutingErrorDialogFragment.java index acbcca97bd..0620768d4e 100644 --- a/android/app/src/main/java/app/organicmaps/routing/BaseRoutingErrorDialogFragment.java +++ b/android/app/src/main/java/app/organicmaps/routing/BaseRoutingErrorDialogFragment.java @@ -71,14 +71,9 @@ abstract class BaseRoutingErrorDialogFragment extends BaseMwmDialogFragment super.onStart(); AlertDialog dlg = (AlertDialog) getDialog(); - dlg.getButton(DialogInterface.BUTTON_NEGATIVE).setOnClickListener(new View.OnClickListener() - { - @Override - public void onClick(View v) - { - mCancelled = true; - dismiss(); - } + dlg.getButton(DialogInterface.BUTTON_NEGATIVE).setOnClickListener(v -> { + mCancelled = true; + dismiss(); }); } @@ -133,16 +128,11 @@ abstract class BaseRoutingErrorDialogFragment extends BaseMwmDialogFragment listView.setAdapter(buildAdapter()); listView.setChildDivider(new ColorDrawable(getResources().getColor(android.R.color.transparent))); - UiUtils.waitLayout(listView, new ViewTreeObserver.OnGlobalLayoutListener() - { - @Override - public void onGlobalLayout() - { - final int width = listView.getWidth(); - final int indicatorWidth = UiUtils.dimen(requireContext(), R.dimen.margin_quadruple); - listView.setIndicatorBounds(width - indicatorWidth, width); - listView.setIndicatorBoundsRelative(width - indicatorWidth, width); - } + UiUtils.waitLayout(listView, () -> { + final int width = listView.getWidth(); + final int indicatorWidth = UiUtils.dimen(requireContext(), R.dimen.margin_quadruple); + listView.setIndicatorBounds(width - indicatorWidth, width); + listView.setIndicatorBoundsRelative(width - indicatorWidth, width); }); return countriesView; diff --git a/android/app/src/main/java/app/organicmaps/routing/RoutingPlanInplaceController.java b/android/app/src/main/java/app/organicmaps/routing/RoutingPlanInplaceController.java index efd4d3cb9d..a6f8db5c81 100644 --- a/android/app/src/main/java/app/organicmaps/routing/RoutingPlanInplaceController.java +++ b/android/app/src/main/java/app/organicmaps/routing/RoutingPlanInplaceController.java @@ -37,14 +37,9 @@ public class RoutingPlanInplaceController extends RoutingPlanController if (show) UiUtils.show(getFrame()); - mAnimator = animateFrame(show, new Runnable() - { - @Override - public void run() - { - if (!show) - UiUtils.hide(getFrame()); - } + mAnimator = animateFrame(show, () -> { + if (!show) + UiUtils.hide(getFrame()); }); } @@ -71,14 +66,7 @@ public class RoutingPlanInplaceController extends RoutingPlanController ValueAnimator animator = ValueAnimator.ofFloat(show ? -getFrame().getHeight() : 0, show ? 0 : -getFrame().getHeight()); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() - { - @Override - public void onAnimationUpdate(ValueAnimator animation) - { - getFrame().setTranslationY((Float) animation.getAnimatedValue()); - } - }); + animator.addUpdateListener(animation -> getFrame().setTranslationY((Float) animation.getAnimatedValue())); animator.addListener(new UiUtils.SimpleAnimatorListener() { @Override diff --git a/android/app/src/main/java/app/organicmaps/search/SearchHistoryAdapter.java b/android/app/src/main/java/app/organicmaps/search/SearchHistoryAdapter.java index 68b4a0442a..72c795ae6c 100644 --- a/android/app/src/main/java/app/organicmaps/search/SearchHistoryAdapter.java +++ b/android/app/src/main/java/app/organicmaps/search/SearchHistoryAdapter.java @@ -57,27 +57,17 @@ class SearchHistoryAdapter extends RecyclerView.Adapter { + 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(new View.OnClickListener() - { - @Override - public void onClick(View v) - { - RoutingController.get().onPoiSelected(LocationHelper.from(viewGroup.getContext()).getMyPosition()); - mSearchToolbarController.onUpClick(); - } + res.mText.setOnClickListener(v -> { + RoutingController.get().onPoiSelected(LocationHelper.from(viewGroup.getContext()).getMyPosition()); + mSearchToolbarController.onUpClick(); }); break; diff --git a/android/app/src/main/java/app/organicmaps/util/HttpClient.java b/android/app/src/main/java/app/organicmaps/util/HttpClient.java index 469198fd19..ff1e6f4a10 100644 --- a/android/app/src/main/java/app/organicmaps/util/HttpClient.java +++ b/android/app/src/main/java/app/organicmaps/util/HttpClient.java @@ -113,15 +113,10 @@ public final class HttpClient if (p.data != null) { connection.setFixedLengthStreamingMode(p.data.length); - final OutputStream os = connection.getOutputStream(); - try + try (OutputStream os = connection.getOutputStream()) { os.write(p.data); } - finally - { - os.close(); - } Logger.d(TAG, "Sent " + p.httpMethod + " with content of size " + p.data.length); } else diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/BookmarkColorDialogFragment.java b/android/app/src/main/java/app/organicmaps/widget/placepage/BookmarkColorDialogFragment.java index d11992cb4d..beea1296b0 100644 --- a/android/app/src/main/java/app/organicmaps/widget/placepage/BookmarkColorDialogFragment.java +++ b/android/app/src/main/java/app/organicmaps/widget/placepage/BookmarkColorDialogFragment.java @@ -62,15 +62,10 @@ public class BookmarkColorDialogFragment extends BaseMwmDialogFragment @SuppressLint("InflateParams") final GridView gView = (GridView) LayoutInflater.from(requireActivity()).inflate(R.layout.fragment_color_grid, null); gView.setAdapter(adapter); - gView.setOnItemClickListener(new AdapterView.OnItemClickListener() - { - @Override - public void onItemClick(AdapterView arg0, View who, int pos, long id) - { - if (mColorSetListener != null) - mColorSetListener.onBookmarkColorSet(pos); - dismiss(); - } + gView.setOnItemClickListener((arg0, who, pos, id) -> { + if (mColorSetListener != null) + mColorSetListener.onBookmarkColorSet(pos); + dismiss(); }); return gView; diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/DirectionFragment.java b/android/app/src/main/java/app/organicmaps/widget/placepage/DirectionFragment.java index b07ed6494a..4af10196cb 100644 --- a/android/app/src/main/java/app/organicmaps/widget/placepage/DirectionFragment.java +++ b/android/app/src/main/java/app/organicmaps/widget/placepage/DirectionFragment.java @@ -71,14 +71,10 @@ public class DirectionFragment extends BaseMwmDialogFragment mTvSubtitle = root.findViewById(R.id.tv__subtitle); mTvDistance = root.findViewById(R.id.tv__straight_distance); - UiUtils.waitLayout(mTvTitle, new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() - { - final int height = mTvTitle.getHeight(); - final int lineHeight = mTvTitle.getLineHeight(); - mTvTitle.setMaxLines(height / lineHeight); - } + UiUtils.waitLayout(mTvTitle, () -> { + final int height = mTvTitle.getHeight(); + final int lineHeight = mTvTitle.getLineHeight(); + mTvTitle.setMaxLines(height / lineHeight); }); }