From 5970d09df0eb754399dd0a6b20942f8135c4ba66 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Thu, 29 Sep 2022 15:18:01 +0300 Subject: [PATCH 01/25] Refactor: Extract on result action functions for jetpack remote install --- .../ui/JetpackRemoteInstallFragment.kt | 67 ++++++++++++------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/JetpackRemoteInstallFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/JetpackRemoteInstallFragment.kt index 8f3172cd8cc7..a2ad1702973f 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/JetpackRemoteInstallFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/JetpackRemoteInstallFragment.kt @@ -7,6 +7,7 @@ import android.os.Bundle import android.view.View import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider import org.wordpress.android.R @@ -14,6 +15,7 @@ import org.wordpress.android.WordPress import org.wordpress.android.databinding.JetpackRemoteInstallFragmentBinding import org.wordpress.android.fluxc.model.SiteModel import org.wordpress.android.login.LoginMode +import org.wordpress.android.ui.JetpackRemoteInstallViewModel.JetpackResultActionData import org.wordpress.android.ui.JetpackRemoteInstallViewModel.JetpackResultActionData.Action.CONNECT import org.wordpress.android.ui.JetpackRemoteInstallViewModel.JetpackResultActionData.Action.LOGIN import org.wordpress.android.ui.JetpackRemoteInstallViewModel.JetpackResultActionData.Action.MANUAL_INSTALL @@ -54,36 +56,53 @@ class JetpackRemoteInstallFragment : Fragment(R.layout.jetpack_remote_install_fr viewModel.liveActionOnResult.observe(viewLifecycleOwner, Observer { result -> if (result != null) { when (result.action) { - MANUAL_INSTALL -> { - JetpackConnectionWebViewActivity.startManualFlow( - activity, - source, - result.site, - result.loggedIn - ) - activity.finish() - } - LOGIN -> { - val loginIntent = Intent(activity, LoginActivity::class.java) - LoginMode.JETPACK_STATS.putInto(loginIntent) - loginIntent.putExtra(LoginActivity.ARG_JETPACK_CONNECT_SOURCE, source) - startActivityForResult(loginIntent, JETPACK_LOGIN) - } - CONNECT -> { - JetpackConnectionWebViewActivity.startJetpackConnectionFlow( - activity, - source, - result.site, - result.loggedIn - ) - activity.finish() - } + MANUAL_INSTALL -> onManualInstallResultAction(activity, source, result) + LOGIN -> onLoginResultAction(activity, source) + CONNECT -> onConnectResultAction(activity, source, result) } } }) } } + private fun onManualInstallResultAction( + activity: FragmentActivity, + source: JetpackConnectionSource, + result: JetpackResultActionData + ) { + JetpackConnectionWebViewActivity.startManualFlow( + activity, + source, + result.site, + result.loggedIn + ) + activity.finish() + } + + private fun onLoginResultAction( + activity: FragmentActivity, + source: JetpackConnectionSource + ) { + val loginIntent = Intent(activity, LoginActivity::class.java) + LoginMode.JETPACK_STATS.putInto(loginIntent) + loginIntent.putExtra(LoginActivity.ARG_JETPACK_CONNECT_SOURCE, source) + startActivityForResult(loginIntent, JETPACK_LOGIN) + } + + private fun onConnectResultAction( + activity: FragmentActivity, + source: JetpackConnectionSource, + result: JetpackResultActionData + ) { + JetpackConnectionWebViewActivity.startJetpackConnectionFlow( + activity, + source, + result.site, + result.loggedIn + ) + activity.finish() + } + private fun JetpackRemoteInstallFragmentBinding.initLiveViewStateObserver() { viewModel.liveViewState.observe(viewLifecycleOwner, Observer { viewState -> if (viewState != null) { From 103b90ccd3664c3295c772d2fcb4b119fc3750cd Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Thu, 29 Sep 2022 15:48:57 +0300 Subject: [PATCH 02/25] Analysis: Suppress on/start activity (for) result deprecated warnings Warning Messages: - "'onActivityResult(Int, Int, Intent?): Unit' is deprecated. Deprecated in Java" - "'onActivityResult(Int, Int, Intent?): Unit' is deprecated. Overrides deprecated member in 'androidx.activity.ComponentActivity'. Deprecated in Java" - "'startActivityForResult(Intent!, Int): Unit' is deprecated. Deprecated in Java" - "'showPhotoPickerForResult(Activity!, MediaBrowserType, SiteModel?, Int?): Unit' is deprecated. Deprecated in Java" - "'handleMediaPickerResultForStories(Intent, Activity?, SiteModel?, PagePostCreationSourcesDetail): Boolean' is deprecated. Use rather the other handle method and the live data navigation." This deprecated warnings are suppressed, that is, instead them being resolved, since a resolution would require a proper migration. Explanation: "This method is deprecated. This method has been deprecated in favor of using the Activity Result API which brings increased type safety via an ActivityResultContract and the prebuilt contracts for common intents available in androidx.activity.result.contract.ActivityResultContracts, provides hooks for testing, and allow receiving results in separate, testable classes independent from your activity. Use registerForActivityResult with the appropriate ActivityResultContract and handling the result in the callback." For more info see: - androidx.fragment.app.Fragment.onActivityResult (Docs): https://developer.android.com/reference/androidx/fragment/app/ Fragment#onActivityResult(int,int,android.content.Intent) - androidx.fragment.app.Fragment.startActivityForResult (Docs): https://developer.android.com/reference/androidx/fragment/app/ Fragment#startActivityForResult(android.content.Intent,int) - androidx.fragment.app.FragmentActivity.onActivityResult (Docs): https://developer.android.com/reference/androidx/fragment/app/ FragmentActivity#onActivityResult(int,int,android.content.Intent) - androidx.activity.ComponentActivity.startActivityForResult (Docs): https://developer.android.com/reference/androidx/activity/ ComponentActivity#startActivityForResult(android.content.Intent,int) --- .../org/wordpress/android/ui/JetpackRemoteInstallFragment.kt | 2 ++ .../android/ui/activitylog/detail/ActivityLogDetailActivity.kt | 1 + .../android/ui/activitylog/list/ActivityLogListActivity.kt | 1 + .../wordpress/android/ui/domains/DomainsDashboardFragment.kt | 1 + .../src/main/java/org/wordpress/android/ui/main/MeActivity.kt | 1 + .../src/main/java/org/wordpress/android/ui/main/MeFragment.kt | 1 + .../wordpress/android/ui/mediapicker/MediaPickerActivity.kt | 2 ++ .../java/org/wordpress/android/ui/mysite/MySiteFragment.kt | 1 + .../org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt | 2 +- .../android/ui/notifications/NotificationsListFragmentPage.kt | 1 + .../main/java/org/wordpress/android/ui/pages/PagesFragment.kt | 1 + .../wordpress/android/ui/photopicker/MediaPickerLauncher.kt | 3 +++ .../java/org/wordpress/android/ui/posts/PostsListActivity.kt | 1 + .../wordpress/android/ui/reader/ReaderPostDetailFragment.kt | 1 + .../android/ui/reader/discover/ReaderDiscoverFragment.kt | 1 + .../org/wordpress/android/ui/stories/StoryComposerActivity.kt | 2 +- 16 files changed, 20 insertions(+), 2 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/JetpackRemoteInstallFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/JetpackRemoteInstallFragment.kt index a2ad1702973f..fb3e1818db2e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/JetpackRemoteInstallFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/JetpackRemoteInstallFragment.kt @@ -79,6 +79,7 @@ class JetpackRemoteInstallFragment : Fragment(R.layout.jetpack_remote_install_fr activity.finish() } + @Suppress("DEPRECATION") private fun onLoginResultAction( activity: FragmentActivity, source: JetpackConnectionSource @@ -130,6 +131,7 @@ class JetpackRemoteInstallFragment : Fragment(R.layout.jetpack_remote_install_fr }) } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == JETPACK_LOGIN && resultCode == Activity.RESULT_OK) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/activitylog/detail/ActivityLogDetailActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/activitylog/detail/ActivityLogDetailActivity.kt index 999d114c7ff7..b335bf03d456 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/activitylog/detail/ActivityLogDetailActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/activitylog/detail/ActivityLogDetailActivity.kt @@ -31,6 +31,7 @@ class ActivityLogDetailActivity : LocaleAwareActivity() { return super.onOptionsItemSelected(item) } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when (requestCode) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/activitylog/list/ActivityLogListActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/activitylog/list/ActivityLogListActivity.kt index d3b5f8932763..8f79176304f9 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/activitylog/list/ActivityLogListActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/activitylog/list/ActivityLogListActivity.kt @@ -95,6 +95,7 @@ class ActivityLogListActivity : LocaleAwareActivity(), ScrollableViewInitialized return super.onOptionsItemSelected(item) } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when (requestCode) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainsDashboardFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainsDashboardFragment.kt index 8e02c8c87140..b3c55fd8a0c8 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainsDashboardFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainsDashboardFragment.kt @@ -71,6 +71,7 @@ class DomainsDashboardFragment : Fragment(R.layout.domains_dashboard_fragment) { ) } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (resultCode == RESULT_OK && requestCode == DOMAIN_REGISTRATION) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MeActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/MeActivity.kt index edc9cef63052..6d5aba826d31 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/MeActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MeActivity.kt @@ -24,6 +24,7 @@ class MeActivity : LocaleAwareActivity() { return super.onOptionsItemSelected(item) } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when (requestCode) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt index 610bc5e6a10f..fd8aee94aa4a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt @@ -449,6 +449,7 @@ class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener { disconnectProgressDialog = null } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerActivity.kt index 5a9616978646..e46daa1373e1 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerActivity.kt @@ -173,6 +173,7 @@ class MediaPickerActivity : LocaleAwareActivity(), MediaPickerListener { return super.onOptionsItemSelected(item) } + @Suppress("DEPRECATION") override fun onActivityResult( requestCode: Int, resultCode: Int, @@ -307,6 +308,7 @@ class MediaPickerActivity : LocaleAwareActivity(), MediaPickerListener { finish() } + @Suppress("DEPRECATION") override fun onIconClicked(action: MediaPickerAction) { when (action) { is OpenSystemPicker -> { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteFragment.kt index 4ead4088bd4d..963e21faa963 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteFragment.kt @@ -313,6 +313,7 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment), binding?.viewPager?.getCurrentFragment()?.onNegativeClicked(instanceTag) } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) /* Add brief delay before passing result to nested (view pager) tab fragments to give them time to get created. diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt index 5e7ec4cc5beb..3d3988fd7dfb 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt @@ -448,7 +448,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment), binding = null } - @Suppress("ReturnCount", "LongMethod", "ComplexMethod") + @Suppress("DEPRECATION", "ReturnCount", "LongMethod", "ComplexMethod") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (data == null) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragmentPage.kt b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragmentPage.kt index 0c8dc432ae59..03048f7087af 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragmentPage.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragmentPage.kt @@ -97,6 +97,7 @@ class NotificationsListFragmentPage : ViewPagerFragment(R.layout.notifications_l } } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (requestCode == RequestCodes.NOTE_DETAIL) { shouldRefreshNotifications = false diff --git a/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt index 640861dca3ae..e382c473ffb2 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt @@ -137,6 +137,7 @@ class PagesFragment : Fragment(R.layout.pages_fragment), ScrollableViewInitializ binding = null } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (requestCode == RequestCodes.EDIT_POST && resultCode == Activity.RESULT_OK && data != null) { if (EditPostActivity.checkToRestart(data)) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/photopicker/MediaPickerLauncher.kt b/WordPress/src/main/java/org/wordpress/android/ui/photopicker/MediaPickerLauncher.kt index 0624cf575cbf..608e14800ee1 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/photopicker/MediaPickerLauncher.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/photopicker/MediaPickerLauncher.kt @@ -73,6 +73,7 @@ class MediaPickerLauncher @Inject constructor( activity.startActivityForResult(intent, RequestCodes.PHOTO_PICKER) } + @Suppress("DEPRECATION") fun showSiteIconPicker( fragment: Fragment, site: SiteModel? @@ -127,6 +128,7 @@ class MediaPickerLauncher @Inject constructor( showStoriesPhotoPickerForResult(activity, site) } + @Suppress("DEPRECATION") fun showStoriesPhotoPickerForResult( activity: Activity, site: SiteModel? @@ -134,6 +136,7 @@ class MediaPickerLauncher @Inject constructor( ActivityLauncher.showPhotoPickerForResult(activity, WP_STORIES_MEDIA_PICKER, site, null) } + @Suppress("DEPRECATION") fun showGravatarPicker(fragment: Fragment) { val mediaPickerSetup = MediaPickerSetup( primaryDataSource = DEVICE, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsListActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsListActivity.kt index 35a31af3a47c..3410c54ed20a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsListActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsListActivity.kt @@ -456,6 +456,7 @@ class PostsListActivity : LocaleAwareActivity(), postListCreateMenuViewModel.onResume() } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt index 61d9f68fb86d..62aa2864c228 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt @@ -1257,6 +1257,7 @@ class ReaderPostDetailFragment : ViewPagerFragment(), } } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when (requestCode) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/discover/ReaderDiscoverFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/discover/ReaderDiscoverFragment.kt index 85dcc62696c9..5f8b56521b31 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/discover/ReaderDiscoverFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/discover/ReaderDiscoverFragment.kt @@ -221,6 +221,7 @@ class ReaderDiscoverFragment : ViewPagerFragment(R.layout.reader_discover_fragme return binding?.recyclerView } + @Suppress("DEPRECATION") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == RequestCodes.SITE_PICKER && resultCode == Activity.RESULT_OK && data != null) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerActivity.kt index ff4489a19f9d..22b23653a8c8 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerActivity.kt @@ -297,7 +297,7 @@ class StoryComposerActivity : ComposeLoopFrameActivity(), viewModel.writeToBundle(outState) } - @Suppress("NestedBlockDepth") + @Suppress("DEPRECATION", "NestedBlockDepth") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { viewModel.onStoryComposerAnalyticsSessionStartTimeReset() super.onActivityResult(requestCode, resultCode, data) From 542ace1d56d3a6accb29c7fdf2ebe7c16cab46d3 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Thu, 29 Sep 2022 16:58:45 +0300 Subject: [PATCH 03/25] Analysis: Resolve from html deprecated warnings Warning Message: "'fromHtml(String!): Spanned!' is deprecated. Deprecated in Java" Replacing 'Html.fromHtml(html)' with the 'HtmlCompat.fromHtml (html, HtmlCompat.FROM_HTML_MODE_LEGACY)' compat related version is the recommended action to resolve this kind of deprecated warnings. --- .../models/ReaderPostDiscoverData.java | 4 ++-- .../android/ui/AppLogViewerActivity.java | 4 ++-- .../login/LoginProloguePageFragment.kt | 20 ++++++++++++------- ...ernameChangerFullScreenDialogFragment.java | 6 ++---- ...UsernameChangerFullScreenDialogFragment.kt | 7 ++++--- .../ui/comments/CommentDetailFragment.java | 4 ++-- .../DomainRegistrationDetailsFragment.kt | 7 ++++--- .../ui/mediapicker/MediaPickerFragment.kt | 9 +++++---- .../NotificationsListFragment.kt | 7 ++++--- .../notifications/adapters/NotesAdapter.java | 2 +- .../blocks/CommentUserNoteBlock.java | 7 +++++-- .../ui/photopicker/PhotoPickerFragment.kt | 4 ++-- .../ui/plugins/PluginDetailActivity.java | 10 ++++++---- .../ui/prefs/SiteSettingsInterface.java | 9 ++++++--- .../ui/reader/ReaderPostListFragment.java | 16 ++++++++++----- .../ui/reader/utils/ReaderXPostUtils.java | 4 ++-- .../ui/stats/StatsConnectJetpackActivity.kt | 7 ++++--- .../stockmedia/StockMediaPickerActivity.java | 7 +++++-- .../android/util/WPPermissionUtils.java | 4 ++-- .../util/analytics/AnalyticsUtils.java | 7 +++++-- .../util/image/getters/WPCustomImageGetter.kt | 2 +- 21 files changed, 88 insertions(+), 59 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/models/ReaderPostDiscoverData.java b/WordPress/src/main/java/org/wordpress/android/models/ReaderPostDiscoverData.java index 56556a679e93..d6b7d472813b 100644 --- a/WordPress/src/main/java/org/wordpress/android/models/ReaderPostDiscoverData.java +++ b/WordPress/src/main/java/org/wordpress/android/models/ReaderPostDiscoverData.java @@ -1,11 +1,11 @@ package org.wordpress.android.models; import android.content.Context; -import android.text.Html; import android.text.Spanned; import android.text.TextUtils; import androidx.annotation.NonNull; +import androidx.core.text.HtmlCompat; import org.json.JSONArray; import org.json.JSONObject; @@ -183,7 +183,7 @@ public Spanned getAttributionHtml() { html = ""; } - mAttributionHtml = Html.fromHtml(html); + mAttributionHtml = HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY); } return mAttributionHtml; } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/AppLogViewerActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/AppLogViewerActivity.java index 0f22ee131c2b..a9110642bda7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/AppLogViewerActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/AppLogViewerActivity.java @@ -5,7 +5,6 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; -import android.text.Html; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -18,6 +17,7 @@ import androidx.appcompat.app.ActionBar; import androidx.appcompat.widget.Toolbar; +import androidx.core.text.HtmlCompat; import org.wordpress.android.R; import org.wordpress.android.util.AppLog; @@ -96,7 +96,7 @@ public View getView(int position, View convertView, ViewGroup parent) { holder.mTxtLineNumber.setVisibility(View.GONE); } - holder.mTxtLogEntry.setText(Html.fromHtml(mEntries.get(position))); + holder.mTxtLogEntry.setText(HtmlCompat.fromHtml(mEntries.get(position), HtmlCompat.FROM_HTML_MODE_LEGACY)); return convertView; } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginProloguePageFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginProloguePageFragment.kt index 2ebc8c896a2f..46818fbf5aa6 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginProloguePageFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginProloguePageFragment.kt @@ -1,13 +1,13 @@ package org.wordpress.android.ui.accounts.login import android.os.Bundle -import android.text.Html import android.view.LayoutInflater import android.view.View import android.widget.EditText import android.widget.TextView import androidx.annotation.LayoutRes import androidx.annotation.StringRes +import androidx.core.text.HtmlCompat import androidx.fragment.app.Fragment import org.wordpress.android.R import org.wordpress.android.databinding.LoginIntroTemplateViewBinding @@ -83,12 +83,18 @@ class LoginProloguePageFragment : Fragment(R.layout.login_intro_template_view) { // format text from HTML to show bold on third prologue screen if (promoLayoutId == R.layout.login_prologue_third) { - view.findViewById(R.id.text_one).text = Html.fromHtml(getString( - R.string.login_prologue_third_subtitle_one)) - view.findViewById(R.id.text_two).text = Html.fromHtml(getString( - R.string.login_prologue_third_subtitle_two)) - view.findViewById(R.id.text_three).text = Html.fromHtml(getString( - R.string.login_prologue_third_subtitle_three)) + view.findViewById(R.id.text_one).text = HtmlCompat.fromHtml( + getString(R.string.login_prologue_third_subtitle_one), + HtmlCompat.FROM_HTML_MODE_LEGACY + ) + view.findViewById(R.id.text_two).text = HtmlCompat.fromHtml( + getString(R.string.login_prologue_third_subtitle_two), + HtmlCompat.FROM_HTML_MODE_LEGACY + ) + view.findViewById(R.id.text_three).text = HtmlCompat.fromHtml( + getString(R.string.login_prologue_third_subtitle_three), + HtmlCompat.FROM_HTML_MODE_LEGACY + ) } } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/BaseUsernameChangerFullScreenDialogFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/BaseUsernameChangerFullScreenDialogFragment.java index d11ea8ef83da..fe42b57b488a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/BaseUsernameChangerFullScreenDialogFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/BaseUsernameChangerFullScreenDialogFragment.java @@ -3,7 +3,6 @@ import android.os.Bundle; import android.os.Handler; import android.text.Editable; -import android.text.Html; import android.text.Spanned; import android.text.SpannedString; import android.text.TextUtils; @@ -17,6 +16,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; +import androidx.core.text.HtmlCompat; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; @@ -381,9 +381,7 @@ public void onUsernameSuggestionsFetched(OnUsernameSuggestionsFetched event) { mUsernameSuggestionInput, "" ); - mUsernameView.setError(Html.fromHtml( - error - )); + mUsernameView.setError(HtmlCompat.fromHtml(error, HtmlCompat.FROM_HTML_MODE_LEGACY)); } else { populateUsernameSuggestions(event.suggestions); } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/UsernameChangerFullScreenDialogFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/UsernameChangerFullScreenDialogFragment.kt index add2d476a2f1..4f75adad43ea 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/UsernameChangerFullScreenDialogFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/UsernameChangerFullScreenDialogFragment.kt @@ -1,8 +1,8 @@ package org.wordpress.android.ui.accounts.signup import android.os.Bundle -import android.text.Html import android.text.Spanned +import androidx.core.text.HtmlCompat import org.wordpress.android.R import org.wordpress.android.analytics.AnalyticsTracker.Stat.SIGNUP_SOCIAL_EPILOGUE_USERNAME_SUGGESTIONS_FAILED import org.wordpress.android.ui.FullScreenDialogFragment.FullScreenDialogController @@ -13,7 +13,7 @@ import org.wordpress.android.ui.FullScreenDialogFragment.FullScreenDialogControl class UsernameChangerFullScreenDialogFragment : BaseUsernameChangerFullScreenDialogFragment() { override fun getSuggestionsFailedStat() = SIGNUP_SOCIAL_EPILOGUE_USERNAME_SUGGESTIONS_FAILED override fun canHeaderTextLiveUpdate() = true - override fun getHeaderText(username: String?, display: String?): Spanned = Html.fromHtml( + override fun getHeaderText(username: String?, display: String?): Spanned = HtmlCompat.fromHtml( String.format( getString(R.string.username_changer_header), "", @@ -22,7 +22,8 @@ class UsernameChangerFullScreenDialogFragment : BaseUsernameChangerFullScreenDia "", display, "" - ) + ), + HtmlCompat.FROM_HTML_MODE_LEGACY ) override fun getTrackEventSource() = SOURCE diff --git a/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentDetailFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentDetailFragment.java index a2e1664e066c..b88e3b40e060 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentDetailFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentDetailFragment.java @@ -8,7 +8,6 @@ import android.content.Intent; import android.os.Bundle; import android.text.Editable; -import android.text.Html; import android.text.TextUtils; import android.text.TextWatcher; import android.view.HapticFeedbackConstants; @@ -27,6 +26,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.core.content.res.ResourcesCompat; +import androidx.core.text.HtmlCompat; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; @@ -825,7 +825,7 @@ private void setPostTitle(TextView txtTitle, String postTitle, boolean isHyperli + ">" + postTitle.trim() + ""; - txtTitle.setText(Html.fromHtml(html)); + txtTitle.setText(HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY)); } else { String text = getString(R.string.on) + " " + postTitle.trim(); txtTitle.setText(text); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt index c7b57b8c62d2..0861061e3827 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt @@ -5,7 +5,6 @@ import android.app.ProgressDialog import android.content.Context import android.os.Bundle import android.text.Editable -import android.text.Html import android.text.TextUtils import android.text.TextWatcher import android.text.method.LinkMovementMethod @@ -13,6 +12,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.EditText +import androidx.core.text.HtmlCompat import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider @@ -164,12 +164,13 @@ class DomainRegistrationDetailsFragment : Fragment() { // make link to ToS clickable private fun DomainRegistrationDetailsFragmentBinding.setupTosLink() { - tosExplanation.text = Html.fromHtml( + tosExplanation.text = HtmlCompat.fromHtml( String.format( resources.getString(R.string.domain_registration_privacy_protection_tos), "", "" - ) + ), + HtmlCompat.FROM_HTML_MODE_LEGACY ) tosExplanation.movementMethod = LinkMovementMethod.getInstance() tosExplanation.setOnClickListener { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerFragment.kt index 5c4ec4302d32..88ddbe37b6e1 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerFragment.kt @@ -7,7 +7,6 @@ import android.content.Intent.ACTION_OPEN_DOCUMENT import android.net.Uri import android.os.Bundle import android.os.Parcelable -import android.text.Html import android.view.LayoutInflater import android.view.Menu import android.view.MenuInflater @@ -19,6 +18,7 @@ import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog.Builder import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.SearchView +import androidx.core.text.HtmlCompat import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider @@ -426,7 +426,7 @@ class MediaPickerFragment : Fragment() { private fun MediaPickerFragmentBinding.setupSoftAskView(uiModel: SoftAskViewUiModel) { when (uiModel) { is SoftAskViewUiModel.Visible -> { - softAskView.title.text = Html.fromHtml(uiModel.label) + softAskView.title.text = HtmlCompat.fromHtml(uiModel.label, HtmlCompat.FROM_HTML_MODE_LEGACY) softAskView.button.setText(uiModel.allowId.stringRes) softAskView.button.setOnClickListener { if (uiModel.isAlwaysDenied) { @@ -460,11 +460,12 @@ class MediaPickerFragment : Fragment() { actionableEmptyView.title.text = uiHelpers.getTextOfUiString(requireContext(), uiModel.title) actionableEmptyView.subtitle.applyOrHide(uiModel.htmlSubtitle) { htmlSubtitle -> - actionableEmptyView.subtitle.text = Html.fromHtml( + actionableEmptyView.subtitle.text = HtmlCompat.fromHtml( uiHelpers.getTextOfUiString( requireContext(), htmlSubtitle - ).toString() + ).toString(), + HtmlCompat.FROM_HTML_MODE_LEGACY ) actionableEmptyView.subtitle.movementMethod = WPLinkMovementMethod.getInstance() } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt index ab2a33f11aae..ea18ea7d7d7a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt @@ -4,13 +4,13 @@ import android.app.Activity import android.content.Intent import android.os.Bundle import android.os.Parcelable -import android.text.Html import android.text.TextUtils import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View import androidx.appcompat.app.AppCompatActivity +import androidx.core.text.HtmlCompat import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentPagerAdapter @@ -108,8 +108,9 @@ class NotificationsListFragment : Fragment(R.layout.notifications_list_fragment) viewPager.pageMargin = resources.getDimensionPixelSize(R.dimen.margin_extra_large) tabLayout.setupWithViewPager(viewPager) - jetpackTermsAndConditions.text = Html.fromHtml( - String.format(resources.getString(R.string.jetpack_connection_terms_and_conditions), "", "") + jetpackTermsAndConditions.text = HtmlCompat.fromHtml( + String.format(resources.getString(R.string.jetpack_connection_terms_and_conditions), "", ""), + HtmlCompat.FROM_HTML_MODE_LEGACY ) jetpackTermsAndConditions.setOnClickListener { WPWebViewActivity.openURL(requireContext(), WPUrlUtils.buildTermsOfServiceUrl(context)) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/adapters/NotesAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/notifications/adapters/NotesAdapter.java index 89457cb3e014..e3fad0d6cecf 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/adapters/NotesAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/adapters/NotesAdapter.java @@ -253,7 +253,7 @@ public void onBindViewHolder(NoteViewHolder noteViewHolder, int position) { // Subject is stored in db as html to preserve text formatting Spanned noteSubjectSpanned = note.getFormattedSubject(mNotificationsUtilsWrapper); - // Trim the '\n\n' added by Html.fromHtml() + // Trim the '\n\n' added by HtmlCompat.fromHtml(...) noteSubjectSpanned = (Spanned) noteSubjectSpanned.subSequence(0, TextUtils.getTrimmedLength(noteSubjectSpanned)); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/blocks/CommentUserNoteBlock.java b/WordPress/src/main/java/org/wordpress/android/ui/notifications/blocks/CommentUserNoteBlock.java index 579ee085100f..ea1a1b3907c0 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/blocks/CommentUserNoteBlock.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/blocks/CommentUserNoteBlock.java @@ -2,7 +2,6 @@ import android.annotation.SuppressLint; import android.content.Context; -import android.text.Html; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.TextUtils; @@ -11,6 +10,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.core.text.HtmlCompat; import androidx.core.view.ViewCompat; import org.wordpress.android.R; @@ -85,7 +85,10 @@ public View configureView(View view) { private void setUserName() { mNoteBlockHolder.mNameTextView.setText( - Html.fromHtml("" + getNoteText().toString() + "") + HtmlCompat.fromHtml( + "" + getNoteText().toString() + "", + HtmlCompat.FROM_HTML_MODE_LEGACY + ) ); } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.kt index 55fdb5d6b6c6..7e926150c8e3 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.kt @@ -4,12 +4,12 @@ import android.Manifest.permission import android.net.Uri import android.os.Bundle import android.os.Parcelable -import android.text.Html import android.view.View import android.widget.PopupMenu import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog.Builder import androidx.appcompat.app.AppCompatActivity +import androidx.core.text.HtmlCompat import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider @@ -194,7 +194,7 @@ class PhotoPickerFragment : Fragment(R.layout.photo_picker_fragment) { private fun PhotoPickerFragmentBinding.setupSoftAskView(uiModel: SoftAskViewUiModel) { when (uiModel) { is SoftAskViewUiModel.Visible -> { - softAskView.title.text = Html.fromHtml(uiModel.label) + softAskView.title.text = HtmlCompat.fromHtml(uiModel.label, HtmlCompat.FROM_HTML_MODE_LEGACY) softAskView.button.setText(uiModel.allowId.stringRes) softAskView.button.setOnClickListener { if (uiModel.isAlwaysDenied) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/plugins/PluginDetailActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/plugins/PluginDetailActivity.java index 656973841b2e..f218343e1467 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/plugins/PluginDetailActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/plugins/PluginDetailActivity.java @@ -7,7 +7,6 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; -import android.text.Html; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; @@ -30,6 +29,7 @@ import androidx.appcompat.widget.SwitchCompat; import androidx.appcompat.widget.Toolbar; import androidx.cardview.widget.CardView; +import androidx.core.text.HtmlCompat; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentTransaction; @@ -572,7 +572,8 @@ private void refreshViews() { } mByLineTextView.setMovementMethod(WPLinkMovementMethod.getInstance()); if (!TextUtils.isEmpty(mPlugin.getAuthorAsHtml())) { - mByLineTextView.setText(Html.fromHtml(mPlugin.getAuthorAsHtml())); + //noinspection ConstantConditions + mByLineTextView.setText(HtmlCompat.fromHtml(mPlugin.getAuthorAsHtml(), HtmlCompat.FROM_HTML_MODE_LEGACY)); } else { String authorName = mPlugin.getAuthorName(); String authorUrl = mPlugin.getAuthorUrl(); @@ -582,7 +583,7 @@ private void refreshViews() { String authorLink = "" + authorName + ""; String byline = String.format(getString(R.string.plugin_byline), authorLink); mByLineTextView.setMovementMethod(WPLinkMovementMethod.getInstance()); - mByLineTextView.setText(Html.fromHtml(byline)); + mByLineTextView.setText(HtmlCompat.fromHtml(byline, HtmlCompat.FROM_HTML_MODE_LEGACY)); } } @@ -603,7 +604,8 @@ private void setCollapsibleHtmlText(@NonNull TextView textView, @Nullable String if (!TextUtils.isEmpty(htmlText)) { textView.setTextColor(ContextExtensionsKt.getColorFromAttribute(this, R.attr.colorOnSurface)); textView.setMovementMethod(WPLinkMovementMethod.getInstance()); - textView.setText(Html.fromHtml(htmlText)); + //noinspection ConstantConditions + textView.setText(HtmlCompat.fromHtml(htmlText, HtmlCompat.FROM_HTML_MODE_LEGACY)); } else { textView.setTextColor( ContextExtensionsKt.getColorStateListFromAttribute(this, R.attr.wpColorOnSurfaceMedium)); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java index c0ca164b3374..7abbf136f9da 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java @@ -3,12 +3,12 @@ import android.content.Context; import android.database.Cursor; import android.os.Handler; -import android.text.Html; import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.collection.SparseArrayCompat; +import androidx.core.text.HtmlCompat; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -285,7 +285,10 @@ public int getPrivacy() { SparseArrayCompat categoryNames = new SparseArrayCompat<>(); if (mSettings.categories != null && mSettings.categories.length > 0) { for (CategoryModel model : mSettings.categories) { - categoryNames.put(model.id, Html.fromHtml(model.name).toString()); + categoryNames.put( + model.id, + HtmlCompat.fromHtml(model.name, HtmlCompat.FROM_HTML_MODE_LEGACY).toString() + ); } } @@ -299,7 +302,7 @@ public int getDefaultCategory() { public @NonNull String getDefaultCategoryForDisplay() { for (CategoryModel model : getCategories()) { if (model != null && model.id == getDefaultCategory()) { - return Html.fromHtml(model.name).toString(); + return HtmlCompat.fromHtml(model.name, HtmlCompat.FROM_HTML_MODE_LEGACY).toString(); } } diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostListFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostListFragment.java index cbb647793e97..b6cd424bb2a9 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostListFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostListFragment.java @@ -5,7 +5,6 @@ import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.text.Html; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.TextUtils; @@ -26,6 +25,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.SearchView; import androidx.core.content.ContextCompat; +import androidx.core.text.HtmlCompat; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.RecyclerView; @@ -1793,7 +1793,9 @@ private void setEmptyTitleDescriptionAndButton(@NonNull String title, String des mActionableEmptyView.subtitle.setVisibility(View.VISIBLE); if (description.contains("<") && description.contains(">")) { - mActionableEmptyView.subtitle.setText(Html.fromHtml(description)); + mActionableEmptyView.subtitle.setText( + HtmlCompat.fromHtml(description, HtmlCompat.FROM_HTML_MODE_LEGACY) + ); } else { mActionableEmptyView.subtitle.setText(description); } @@ -2666,9 +2668,13 @@ public void onFollowTapped(View view, String blogName, final long blogId, final : blogName; if (blogId > 0) { - WPSnackbar.make(getSnackbarParent(), Html.fromHtml(getString(R.string.reader_followed_blog_notifications, - "", blog, "")), Snackbar.LENGTH_LONG) - .setAction(getString(R.string.reader_followed_blog_notifications_action), + WPSnackbar.make(getSnackbarParent(), + HtmlCompat.fromHtml( + getString(R.string.reader_followed_blog_notifications, "", blog, ""), + HtmlCompat.FROM_HTML_MODE_LEGACY + ), + Snackbar.LENGTH_LONG + ).setAction(getString(R.string.reader_followed_blog_notifications_action), new View.OnClickListener() { @Override public void onClick(View view) { mReaderTracker.trackBlog( diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/utils/ReaderXPostUtils.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/utils/ReaderXPostUtils.java index 4c43cea1690f..719ec117d8d7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/utils/ReaderXPostUtils.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/utils/ReaderXPostUtils.java @@ -1,10 +1,10 @@ package org.wordpress.android.ui.reader.utils; import android.net.Uri; -import android.text.Html; import android.text.Spanned; import androidx.annotation.NonNull; +import androidx.core.text.HtmlCompat; import org.wordpress.android.models.ReaderPost; @@ -45,7 +45,7 @@ public static Spanned getXPostSubtitleHtml(@NonNull ReaderPost post) { "" + getFromSiteName(post) + "", "" + getToSiteName(post) + ""); - return Html.fromHtml(subtitle); + return HtmlCompat.fromHtml(subtitle, HtmlCompat.FROM_HTML_MODE_LEGACY); } // origin site name can be extracted from the excerpt, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsConnectJetpackActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsConnectJetpackActivity.kt index 705319319d56..3d4d30ed1910 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsConnectJetpackActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/StatsConnectJetpackActivity.kt @@ -1,9 +1,9 @@ package org.wordpress.android.ui.stats import android.os.Bundle -import android.text.Html import android.text.TextUtils import android.view.MenuItem +import androidx.core.text.HtmlCompat import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode.MAIN import org.wordpress.android.R.string @@ -80,8 +80,9 @@ class StatsConnectJetpackActivity : LocaleAwareActivity() { jetpackFaq.setOnClickListener { WPWebViewActivity.openURL(this@StatsConnectJetpackActivity, FAQ_URL) } - jetpackTermsAndConditions.text = Html.fromHtml( - String.format(resources.getString(string.jetpack_connection_terms_and_conditions), "", "") + jetpackTermsAndConditions.text = HtmlCompat.fromHtml( + String.format(resources.getString(string.jetpack_connection_terms_and_conditions), "", ""), + HtmlCompat.FROM_HTML_MODE_LEGACY ) jetpackTermsAndConditions.setOnClickListener { WPWebViewActivity.openURL( diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stockmedia/StockMediaPickerActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/stockmedia/StockMediaPickerActivity.java index 98529b38fbce..cbffe240c14e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stockmedia/StockMediaPickerActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/stockmedia/StockMediaPickerActivity.java @@ -4,7 +4,6 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; -import android.text.Html; import android.text.Spanned; import android.text.TextUtils; import android.view.MenuItem; @@ -20,6 +19,7 @@ import androidx.appcompat.app.ActionBar; import androidx.appcompat.widget.SearchView; import androidx.appcompat.widget.Toolbar; +import androidx.core.text.HtmlCompat; import androidx.fragment.app.FragmentManager; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -318,7 +318,10 @@ private void showEmptyView(boolean show) { if (isEmpty) { actionableEmptyView.title.setText(R.string.stock_media_picker_initial_empty_text); String link = "Pexels"; - Spanned html = Html.fromHtml(getString(R.string.stock_media_picker_initial_empty_subtext, link)); + Spanned html = HtmlCompat.fromHtml( + getString(R.string.stock_media_picker_initial_empty_subtext, link), + HtmlCompat.FROM_HTML_MODE_LEGACY + ); actionableEmptyView.subtitle.setText(html); actionableEmptyView.getSubtitle().setMovementMethod(WPLinkMovementMethod.getInstance()); actionableEmptyView.subtitle.setVisibility(View.VISIBLE); diff --git a/WordPress/src/main/java/org/wordpress/android/util/WPPermissionUtils.java b/WordPress/src/main/java/org/wordpress/android/util/WPPermissionUtils.java index ac605924c766..99544ddb1f6c 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/WPPermissionUtils.java +++ b/WordPress/src/main/java/org/wordpress/android/util/WPPermissionUtils.java @@ -8,12 +8,12 @@ import android.content.pm.PackageManager; import android.net.Uri; import android.provider.Settings; -import android.text.Html; import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; +import androidx.core.text.HtmlCompat; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -199,7 +199,7 @@ public static void showPermissionAlwaysDeniedDialog(@NonNull final Activity acti AlertDialog.Builder builder = new MaterialAlertDialogBuilder(activity) .setTitle(activity.getString(R.string.permissions_denied_title)) - .setMessage(Html.fromHtml(message)) + .setMessage(HtmlCompat.fromHtml(message, HtmlCompat.FROM_HTML_MODE_LEGACY)) .setPositiveButton(R.string.button_edit_permissions, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { diff --git a/WordPress/src/main/java/org/wordpress/android/util/analytics/AnalyticsUtils.java b/WordPress/src/main/java/org/wordpress/android/util/analytics/AnalyticsUtils.java index a47889f19a80..eeba510c2273 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/analytics/AnalyticsUtils.java +++ b/WordPress/src/main/java/org/wordpress/android/util/analytics/AnalyticsUtils.java @@ -5,13 +5,13 @@ import android.content.SharedPreferences; import android.net.Uri; import android.preference.PreferenceManager; -import android.text.Html; import android.text.TextUtils; import android.webkit.MimeTypeMap; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; +import androidx.core.text.HtmlCompat; import org.json.JSONException; import org.json.JSONObject; @@ -220,7 +220,10 @@ public static void refreshMetadataNewUser(String username, String email) { } public static int getWordCount(String content) { - String text = Html.fromHtml(content.replaceAll("]*>", "")).toString(); + String text = HtmlCompat.fromHtml( + content.replaceAll("]*>", ""), + HtmlCompat.FROM_HTML_MODE_LEGACY + ).toString(); return text.split("\\s+").length; } diff --git a/WordPress/src/main/java/org/wordpress/android/util/image/getters/WPCustomImageGetter.kt b/WordPress/src/main/java/org/wordpress/android/util/image/getters/WPCustomImageGetter.kt index 21987769b34a..ef3d9be26528 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/image/getters/WPCustomImageGetter.kt +++ b/WordPress/src/main/java/org/wordpress/android/util/image/getters/WPCustomImageGetter.kt @@ -15,7 +15,7 @@ import java.lang.ref.WeakReference import javax.inject.Inject /** - * ImageGetter for Html.fromHtml(). Retrieves images for HTML img tags using Glide library. + * ImageGetter for HtmlCompat.fromHtml(...). Retrieves images for HTML img tags using Glide library. * * * See {@link android.text.Html} for more details. From 7ddf2f631312ebf1043fa4dbba1c101f91c0d0b6 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Thu, 29 Sep 2022 17:23:27 +0300 Subject: [PATCH 04/25] Analysis: Suppress set/get target fragment deprecated warnings Warning Messages: - "'setTargetFragment(Fragment?, Int): Unit' is deprecated. Deprecated in Java" - "'getter for targetFragment: Fragment?' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of them being resolved, since a resolution would require a proper migration. Explanation: - "Instead of using a target fragment to pass results, the fragment requesting a result should use FragmentManager.setFragmentResultListener (String, LifecycleOwner, FragmentResultListener) to register a FragmentResultListener with a requestKey using its parent fragment manager. The fragment delivering a result should then call FragmentManager.setFragmentResult(String, Bundle) using the same requestKey. Consider using setArguments to pass the requestKey if you need to support dynamic request keys." - "Instead of using a target fragment to pass results, use FragmentManager.setFragmentResult(String, Bundle) to deliver results to FragmentResultListener instances registered by other fragments via FragmentManager.setFragmentResultListener(String, LifecycleOwner, FragmentResultListener)." For more info see: - android.app.Fragment.setTargetFragment (Docs): https://developer.android.com/reference/android/app/ Fragment#setTargetFragment(android.app.Fragment,%20int) - android.app.Fragment.getTargetFragment (Docs): https://developer.android.com/reference/android/app/ Fragment#getTargetFragment() --- .../android/ui/PrivateAtCookieRefreshProgressDialog.kt | 2 ++ .../org/wordpress/android/ui/TextInputDialogFragment.java | 5 ++++- .../android/ui/domains/DomainRegistrationDetailsFragment.kt | 6 ++++-- .../wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt | 2 +- .../android/ui/people/PeopleInviteDialogFragment.kt | 2 ++ .../android/ui/people/RoleSelectDialogFragment.java | 2 ++ .../org/wordpress/android/ui/prefs/MyProfileFragment.java | 1 + 7 files changed, 16 insertions(+), 4 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/PrivateAtCookieRefreshProgressDialog.kt b/WordPress/src/main/java/org/wordpress/android/ui/PrivateAtCookieRefreshProgressDialog.kt index 3bee5b1d83f6..deb4d58b38b0 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/PrivateAtCookieRefreshProgressDialog.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/PrivateAtCookieRefreshProgressDialog.kt @@ -25,6 +25,7 @@ class PrivateAtCookieRefreshProgressDialog : DialogFragment() { return dialog != null && dialog!!.isShowing } + @Suppress("DEPRECATION") override fun onCancel(dialog: DialogInterface) { super.onCancel(dialog) if (targetFragment is PrivateAtCookieProgressDialogOnDismissListener) { @@ -41,6 +42,7 @@ class PrivateAtCookieRefreshProgressDialog : DialogFragment() { showIfNecessary(fragmentManager, null) } + @Suppress("DEPRECATION") fun showIfNecessary(fragmentManager: FragmentManager?, targetFragment: Fragment?) { fragmentManager?.let { val thisFragment = fragmentManager.findFragmentByTag(TAG) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/TextInputDialogFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/TextInputDialogFragment.java index 135372a6ce5f..f10a16a997e4 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/TextInputDialogFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/TextInputDialogFragment.java @@ -52,6 +52,7 @@ public static TextInputDialogFragment newInstance(String title, } @Override + @SuppressWarnings("deprecation") public Dialog onCreateDialog(Bundle savedInstanceState) { LayoutInflater layoutInflater = LayoutInflater.from(getActivity()); //noinspection InflateParams @@ -112,7 +113,9 @@ public Dialog onCreateDialog(Bundle savedInstanceState) { return alertDialog; } - @Override public void onDismiss(@NonNull DialogInterface dialog) { + @Override + @SuppressWarnings("deprecation") + public void onDismiss(@NonNull DialogInterface dialog) { super.onDismiss(dialog); if (getTargetFragment() instanceof Callback) { ((Callback) getTargetFragment()).onTextInputDialogDismissed(callbackId); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt index 0861061e3827..4daa31c27e4e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt @@ -373,12 +373,14 @@ class DomainRegistrationDetailsFragment : Fragment() { ) } + @Suppress("DEPRECATION") private fun showStatePicker(states: List) { val dialogFragment = StatePickerDialogFragment.newInstance(states.toCollection(ArrayList())) dialogFragment.setTargetFragment(this, 0) dialogFragment.show(requireFragmentManager(), StatePickerDialogFragment.TAG) } + @Suppress("DEPRECATION") private fun showCountryPicker(countries: List) { val dialogFragment = CountryPickerDialogFragment.newInstance( countries.toCollection( @@ -460,7 +462,7 @@ class DomainRegistrationDetailsFragment : Fragment() { as ArrayList } - @Suppress("UseCheckOrError") + @Suppress("DEPRECATION", "UseCheckOrError") override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { if (targetFragment == null) { throw IllegalStateException("StatePickerDialogFragment is missing a targetFragment ") @@ -511,7 +513,7 @@ class DomainRegistrationDetailsFragment : Fragment() { as ArrayList } - @Suppress("UseCheckOrError") + @Suppress("DEPRECATION", "UseCheckOrError") override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { if (targetFragment == null) { throw IllegalStateException("CountryPickerDialogFragment is missing a targetFragment ") diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt index 3d3988fd7dfb..3c6c8c74ebed 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt @@ -197,7 +197,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment), } } - @Suppress("LongMethod") + @Suppress("DEPRECATION", "LongMethod") private fun MySiteTabFragmentBinding.setupObservers() { viewModel.uiModel.observe(viewLifecycleOwner, { uiModel -> hideRefreshIndicatorIfNeeded() diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleInviteDialogFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleInviteDialogFragment.kt index 972dca0ffa4d..677cae993179 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleInviteDialogFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleInviteDialogFragment.kt @@ -36,6 +36,7 @@ class PeopleInviteDialogFragment : DialogFragment() { (requireActivity().applicationContext as WordPress).component().inject(this) } + @Suppress("DEPRECATION") override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { viewModel = ViewModelProvider( targetFragment as ViewModelStoreOwner, viewModelFactory @@ -78,6 +79,7 @@ class PeopleInviteDialogFragment : DialogFragment() { @JvmStatic @JvmOverloads + @Suppress("DEPRECATION") fun newInstance( fragment: Fragment, dialogMode: DialogMode, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/RoleSelectDialogFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/people/RoleSelectDialogFragment.java index e7d6c4bdf029..335ed42f5d87 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/people/RoleSelectDialogFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/people/RoleSelectDialogFragment.java @@ -34,6 +34,7 @@ public void onCreate(Bundle savedInstanceState) { } @Override + @SuppressWarnings("deprecation") public Dialog onCreateDialog(Bundle savedInstanceState) { SiteModel site = (SiteModel) getArguments().getSerializable(WordPress.SITE); final List inviteRoles = RoleUtils.getInviteRoles(mSiteStore, site, mContextProvider.getContext()); @@ -59,6 +60,7 @@ public Dialog onCreateDialog(Bundle savedInstanceState) { return builder.create(); } + @SuppressWarnings("deprecation") public static void show(T parentFragment, int requestCode, @NonNull SiteModel site) { RoleSelectDialogFragment roleChangeDialogFragment = new RoleSelectDialogFragment(); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/MyProfileFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/MyProfileFragment.java index 6c2c4945699e..72529eb9c4cc 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/MyProfileFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/MyProfileFragment.java @@ -139,6 +139,7 @@ private void updateLabel(WPTextView textView, String text) { } // helper method to create onClickListener to avoid code duplication + @SuppressWarnings("deprecation") private View.OnClickListener createOnClickListener(final String dialogTitle, final String hint, final WPTextView textView, From 6e32c33ccf1257205eff2df33f03838439438567 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Thu, 29 Sep 2022 17:54:11 +0300 Subject: [PATCH 05/25] Analysis: Suppress on activity created deprecated warnings Warning Message: "'onActivityCreated(Bundle?): Unit' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. Explanation: "Use onViewCreated(View, Bundle) for code touching the view created by onCreateView and onCreate(Bundle) for other initialization. To get a callback specifically when a Fragment activity's Activity.onCreate(Bundle) is called, register a androidx.lifecycle.LifecycleObserver on the Activity's Lifecycle in onAttach(Context), removing it when it receives the Lifecycle.State.CREATED callback." For more info see: - androidx.fragment.app.Fragment.onActivityCreated (Docs): https://developer.android.com/reference/androidx/fragment/app/ Fragment#onActivityCreated(android.os.Bundle) --- .../android/ui/accounts/login/LoginPrologueFragment.kt | 1 + .../org/wordpress/android/ui/ShareIntentReceiverFragment.java | 4 +++- .../android/ui/activitylog/list/ActivityLogListFragment.kt | 1 + .../android/ui/history/HistoryDetailContainerFragment.java | 1 + .../android/ui/jetpack/scan/details/ThreatDetailsFragment.kt | 1 + .../ui/notifications/NotificationsDetailListFragment.kt | 1 + .../android/ui/notifications/NotificationsListFragment.kt | 1 + .../android/ui/notifications/NotificationsListFragmentPage.kt | 1 + .../org/wordpress/android/ui/plugins/PluginListFragment.java | 1 + .../wordpress/android/ui/posts/EditPostSettingsFragment.java | 1 + .../android/ui/publicize/PublicizeWebViewFragment.java | 1 + .../org/wordpress/android/ui/reader/ReaderBlogFragment.java | 1 + .../wordpress/android/ui/reader/ReaderPostListFragment.java | 4 +++- .../org/wordpress/android/ui/reader/ReaderTagFragment.java | 1 + .../ui/sitecreation/previews/SiteCreationPreviewFragment.kt | 1 + .../android/ui/stats/refresh/StatsViewAllFragment.kt | 1 + .../org/wordpress/android/ui/themes/ThemeBrowserFragment.java | 1 + .../android/ui/accounts/login/LoginPrologueFragment.kt | 1 + 18 files changed, 22 insertions(+), 2 deletions(-) diff --git a/WordPress/src/jetpack/java/org/wordpress/android/ui/accounts/login/LoginPrologueFragment.kt b/WordPress/src/jetpack/java/org/wordpress/android/ui/accounts/login/LoginPrologueFragment.kt index da5c7141fa01..8d03e1001fad 100644 --- a/WordPress/src/jetpack/java/org/wordpress/android/ui/accounts/login/LoginPrologueFragment.kt +++ b/WordPress/src/jetpack/java/org/wordpress/android/ui/accounts/login/LoginPrologueFragment.kt @@ -79,6 +79,7 @@ class LoginPrologueFragment : Fragment(R.layout.jetpack_login_prologue_screen) { viewModel.onFragmentResume() } + @Suppress("DEPRECATION") override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) // important for accessibility - talkback diff --git a/WordPress/src/main/java/org/wordpress/android/ui/ShareIntentReceiverFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/ShareIntentReceiverFragment.java index 2f118bbde556..b762991027a1 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/ShareIntentReceiverFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/ShareIntentReceiverFragment.java @@ -66,7 +66,9 @@ public void onAttach(Context context) { } } - @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { + @Override + @SuppressWarnings("deprecation") + public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // important for accessibility - talkback getActivity().setTitle(R.string.share_intent_screen_title); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/activitylog/list/ActivityLogListFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/activitylog/list/ActivityLogListFragment.kt index 3e1cd47335ef..9de18064c487 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/activitylog/list/ActivityLogListFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/activitylog/list/ActivityLogListFragment.kt @@ -107,6 +107,7 @@ class ActivityLogListFragment : Fragment(R.layout.activity_log_list_fragment) { } } + @Suppress("DEPRECATION") override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) with(requireActivity()) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/history/HistoryDetailContainerFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/history/HistoryDetailContainerFragment.java index a5e3129894b3..ee0b274f0f28 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/history/HistoryDetailContainerFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/history/HistoryDetailContainerFragment.java @@ -207,6 +207,7 @@ private ArrayList mapRevisionModelsToRevisions(@Nullable final List Date: Thu, 29 Sep 2022 18:07:15 +0300 Subject: [PATCH 06/25] Analysis: Suppress fragment pager adapter deprecated warnings Warning Message: "'FragmentPagerAdapter' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. You will also notice that I didn't suppressed the deprecated warning both, on the file level and closer to the deprecation itself. I will be doing the file level suppression on the 'ProgressDialog', which is yet to be suppressed. Explanation: - "Use FragmentPagerAdapter(FragmentManager, int) with BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT" - This class is deprecated. Switch to androidx.viewpager2.widget.ViewPager2 and use androidx.viewpager2.adapter.FragmentStateAdapter instead. For more info see: - androidx.fragment.app.FragmentPagerAdapter (Docs): https://developer.android.com/reference/androidx/fragment/app/ FragmentPagerAdapter --- .../android/ui/notifications/NotificationsListFragment.kt | 3 +++ .../main/java/org/wordpress/android/ui/pages/PagesFragment.kt | 1 + .../java/org/wordpress/android/ui/posts/PostsPagerAdapter.kt | 3 +++ .../android/ui/reader/subfilter/SubfilterPageFragment.kt | 3 +++ 4 files changed, 10 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt index 2e1e5bc8df26..68f986576c2e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.notifications import android.app.Activity @@ -201,6 +203,7 @@ class NotificationsListFragment : Fragment(R.layout.notifications_list_fragment) } } + @Suppress("DEPRECATION") private class NotificationsFragmentAdapter( fragmentManager: FragmentManager, private val titles: List diff --git a/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt index e382c473ffb2..61b1d53936c4 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt @@ -577,6 +577,7 @@ class PagesFragment : Fragment(R.layout.pages_fragment), ScrollableViewInitializ } } +@Suppress("DEPRECATION") class PagesPagerAdapter(val context: Context, val fm: FragmentManager) : FragmentPagerAdapter( fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsPagerAdapter.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsPagerAdapter.kt index 49368e9b51fd..efc49af11b30 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsPagerAdapter.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsPagerAdapter.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.posts import android.view.ViewGroup @@ -7,6 +9,7 @@ import org.wordpress.android.WordPress import org.wordpress.android.fluxc.model.SiteModel import java.lang.ref.WeakReference +@Suppress("DEPRECATION") class PostsPagerAdapter( private val pages: List, private val site: SiteModel, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/subfilter/SubfilterPageFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/subfilter/SubfilterPageFragment.kt index 1f8356090f53..e6730590e798 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/subfilter/SubfilterPageFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/subfilter/SubfilterPageFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.reader.subfilter import android.content.Context @@ -133,6 +135,7 @@ class SubfilterPageFragment : DaggerFragment() { } } +@Suppress("DEPRECATION") class SubfilterPagerAdapter( val context: Context, val fm: FragmentManager, From a1de9eb9aa55de319bc909432415e291ffcaa38d Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Fri, 30 Sep 2022 18:02:11 +0300 Subject: [PATCH 07/25] Analysis: Suppress progress dialog deprecated warnings Warning Messages: - "'ProgressDialog' is deprecated. Deprecated in Java" - "'constructor ProgressDialog(Context!)' is deprecated. Deprecated in Java" - "'show(Context!, CharSequence!, CharSequence!, Boolean): ProgressDialog!' is deprecated. Deprecated in Java" - "'show(Context!, CharSequence!, CharSequence!, Boolean, Boolean): ProgressDialog!' is deprecated. Deprecated in Java" - "'setter for isIndeterminate: Boolean' is deprecated. Deprecated in Java" - "'setMessage(CharSequence!): Unit' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. You will also notice that I suppressed the deprecated warning both, on the file level and closer to the deprecation itself. In addition to that, you will notice that I suppressed the deprecated warning for other such warnings, like 'StringEscapeUtils' and 'PhotoPickerActivity'. I did that because suppressing on the file level was necessary due to the 'android.app.ProgressDialog' import that can't be suppressed any other way. But, when doing so, every deprecated warning is suppressed as well. At which point the deprecated information is lost. This way, adding first the '@Suppress("DEPRECATION")' closer to source and then adding it on the file level makes sure that this information is not lost, at least for the existing code. Explanation: "This class was deprecated in API level 26. ProgressDialog is a modal dialog, which prevents the user from interacting with the app. Instead of using this class, you should use a progress indicator like ProgressBar, which can be embedded in your app's UI. Alternatively, you can use a notification to inform the user of the task's progress." Docs: https://developer.android.com/reference/android/app/ProgressDialog --- .../ui/PrivateAtCookieRefreshProgressDialog.kt | 3 +++ .../signup/SettingsUsernameChangerFragment.kt | 5 ++++- .../android/ui/comments/EditCommentActivity.java | 1 + .../domains/DomainRegistrationDetailsFragment.kt | 6 +++++- .../org/wordpress/android/ui/main/MeFragment.kt | 16 +++++++++++----- .../wordpress/android/ui/pages/PagesFragment.kt | 4 +++- .../android/ui/posts/PostsListActivity.kt | 4 +++- .../android/ui/posts/ProgressDialogHelper.kt | 3 +++ .../accountsettings/AccountSettingsFragment.kt | 5 ++++- .../categories/detail/CategoryDetailFragment.kt | 5 ++++- .../android/ui/stories/StoryComposerActivity.kt | 4 +++- 11 files changed, 44 insertions(+), 12 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/PrivateAtCookieRefreshProgressDialog.kt b/WordPress/src/main/java/org/wordpress/android/ui/PrivateAtCookieRefreshProgressDialog.kt index deb4d58b38b0..81895d5cf8ea 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/PrivateAtCookieRefreshProgressDialog.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/PrivateAtCookieRefreshProgressDialog.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui import android.app.Dialog @@ -10,6 +12,7 @@ import androidx.fragment.app.FragmentManager import org.wordpress.android.R class PrivateAtCookieRefreshProgressDialog : DialogFragment() { + @Suppress("DEPRECATION") override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val dialogMessage = activity?.getString(R.string.media_accessing_progress) return ProgressDialog.show( diff --git a/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/SettingsUsernameChangerFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/SettingsUsernameChangerFragment.kt index 78a32b7d6194..0845fc972c8e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/SettingsUsernameChangerFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/SettingsUsernameChangerFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.accounts.signup import android.app.ProgressDialog @@ -33,7 +35,7 @@ import org.wordpress.android.widgets.WPDialogSnackbar */ class SettingsUsernameChangerFragment : BaseUsernameChangerFullScreenDialogFragment() { private lateinit var dialogController: FullScreenDialogController - private var progressDialog: ProgressDialog? = null + @Suppress("DEPRECATION") private var progressDialog: ProgressDialog? = null override fun getSuggestionsFailedStat() = ACCOUNT_SETTINGS_CHANGE_USERNAME_SUGGESTIONS_FAILED override fun canHeaderTextLiveUpdate() = false @@ -154,6 +156,7 @@ class SettingsUsernameChangerFragment : BaseUsernameChangerFullScreenDialogFragm } } + @Suppress("DEPRECATION") fun showProgress() { if (progressDialog == null || progressDialog?.window == null || progressDialog?.isShowing == false) { progressDialog = ProgressDialog(context).apply { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/comments/EditCommentActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/comments/EditCommentActivity.java index 26e9a0ee6daf..83a59cc8fbf2 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/comments/EditCommentActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/comments/EditCommentActivity.java @@ -246,6 +246,7 @@ private boolean isCommentEdited() { } @Override + @SuppressWarnings("deprecation") protected Dialog onCreateDialog(int id) { if (id == ID_DIALOG_SAVING) { ProgressDialog savingDialog = new ProgressDialog(this); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt index 4daa31c27e4e..469981f9647d 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/domains/DomainRegistrationDetailsFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.domains import android.app.Dialog @@ -65,7 +67,7 @@ class DomainRegistrationDetailsFragment : Fragment() { private lateinit var viewModel: DomainRegistrationDetailsViewModel private lateinit var mainViewModel: DomainRegistrationMainViewModel - private var loadingProgressDialog: ProgressDialog? = null + @Suppress("DEPRECATION") private var loadingProgressDialog: ProgressDialog? = null private var binding: DomainRegistrationDetailsFragmentBinding? = null override fun onCreate(savedInstanceState: Bundle?) { @@ -278,6 +280,7 @@ class DomainRegistrationDetailsFragment : Fragment() { } // Something else, will just show a Toast with an error message } affectedInputFields?.forEach { + @Suppress("DEPRECATION") showFieldError(it, StringEscapeUtils.unescapeHtml4(error?.message)) } affectedInputFields?.firstOrNull { it.requestFocus() } @@ -418,6 +421,7 @@ class DomainRegistrationDetailsFragment : Fragment() { } } + @Suppress("DEPRECATION") private fun showDomainRegistrationProgressDialog() { if (loadingProgressDialog == null) { loadingProgressDialog = ProgressDialog(context) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt index fd8aee94aa4a..dc25fec55bdd 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.main import android.app.Activity @@ -54,8 +56,7 @@ import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFra import org.wordpress.android.ui.notifications.utils.NotificationsUtils import org.wordpress.android.ui.photopicker.MediaPickerConstants import org.wordpress.android.ui.photopicker.MediaPickerLauncher -import org.wordpress.android.ui.photopicker.PhotoPickerActivity.PhotoPickerMediaSource -import org.wordpress.android.ui.photopicker.PhotoPickerActivity.PhotoPickerMediaSource.ANDROID_CAMERA +import org.wordpress.android.ui.photopicker.PhotoPickerActivity import org.wordpress.android.ui.utils.UiString.UiStringText import org.wordpress.android.util.AppLog import org.wordpress.android.util.AppLog.T.MAIN @@ -82,7 +83,7 @@ import javax.inject.Inject @AndroidEntryPoint class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener { - private var disconnectProgressDialog: ProgressDialog? = null + @Suppress("DEPRECATION") private var disconnectProgressDialog: ProgressDialog? = null private var isUpdatingGravatar = false private var binding: MeFragmentBinding? = null @@ -433,6 +434,7 @@ class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener { NotificationsUtils.cancelAllNotifications(requireActivity()) } + @Suppress("DEPRECATION") private fun showDisconnectDialog() { disconnectProgressDialog = ProgressDialog.show( requireContext(), @@ -468,10 +470,14 @@ class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener { ) return } - val source = PhotoPickerMediaSource.fromString( + val source = PhotoPickerActivity.PhotoPickerMediaSource.fromString( data.getStringExtra(MediaPickerConstants.EXTRA_MEDIA_SOURCE) ) - val stat = if (source == ANDROID_CAMERA) ME_GRAVATAR_SHOT_NEW else ME_GRAVATAR_GALLERY_PICKED + val stat = if (source == PhotoPickerActivity.PhotoPickerMediaSource.ANDROID_CAMERA) { + ME_GRAVATAR_SHOT_NEW + } else { + ME_GRAVATAR_GALLERY_PICKED + } AnalyticsTracker.track(stat) val imageUri = Uri.parse(mediaUriStringsArray[0]) if (imageUri != null) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt index 61b1d53936c4..accf0ef165e2 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.pages import android.annotation.SuppressLint @@ -91,7 +93,7 @@ class PagesFragment : Fragment(R.layout.pages_fragment), ScrollableViewInitializ @Inject lateinit var uploadActionUseCase: UploadActionUseCase @Inject lateinit var uploadUtilsWrapper: UploadUtilsWrapper - private var progressDialog: ProgressDialog? = null + @Suppress("DEPRECATION") private var progressDialog: ProgressDialog? = null private var restorePreviousSearch = false diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsListActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsListActivity.kt index 3410c54ed20a..0a0dc034052e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsListActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/PostsListActivity.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.posts import android.app.Activity @@ -105,7 +107,7 @@ class PostsListActivity : LocaleAwareActivity(), private var restorePreviousSearch = false - private var progressDialog: ProgressDialog? = null + @Suppress("DEPRECATION") private var progressDialog: ProgressDialog? = null private var onPageChangeListener: OnPageChangeListener = object : OnPageChangeListener { override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {} diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/ProgressDialogHelper.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/ProgressDialogHelper.kt index e65b66a0d56a..e2a2fb5c0e5c 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/ProgressDialogHelper.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/ProgressDialogHelper.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.posts import android.app.ProgressDialog @@ -22,6 +24,7 @@ class ProgressDialogHelper @Inject constructor() { * * @return The resulting dialog with its (eventually) modified state. Can be {@code null} */ + @Suppress("DEPRECATION") fun updateProgressDialogState( context: Context, dialog: ProgressDialog?, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/accountsettings/AccountSettingsFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/prefs/accountsettings/AccountSettingsFragment.kt index 8bdc8383c718..edb84b282217 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/accountsettings/AccountSettingsFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/accountsettings/AccountSettingsFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.prefs.accountsettings import android.app.ProgressDialog @@ -67,7 +69,7 @@ class AccountSettingsFragment : PreferenceFragmentLifeCycleOwner(), private lateinit var primarySitePreference: DetailListPreference private lateinit var webAddressPreference: EditTextPreferenceWithValidation private lateinit var changePasswordPreference: EditTextPreferenceWithValidation - private var changePasswordProgressDialog: ProgressDialog? = null + @Suppress("DEPRECATION") private var changePasswordProgressDialog: ProgressDialog? = null private var emailSnackbar: Snackbar? = null @Deprecated("Deprecated") @@ -318,6 +320,7 @@ class AccountSettingsFragment : PreferenceFragmentLifeCycleOwner(), changePasswordProgressDialog?.show() } + @Suppress("DEPRECATION") private fun createChangePasswordDialogIfNull() { if (changePasswordProgressDialog == null) { changePasswordProgressDialog = ProgressDialog(activity).apply { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/categories/detail/CategoryDetailFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/prefs/categories/detail/CategoryDetailFragment.kt index 7ff85042dc37..ab23893720ea 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/categories/detail/CategoryDetailFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/categories/detail/CategoryDetailFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.prefs.categories.detail import android.app.ProgressDialog @@ -32,7 +34,7 @@ class CategoryDetailFragment : Fragment(R.layout.category_detail_fragment) { private lateinit var categoryAdapter: ParentCategorySpinnerAdapter private var spinnerTouched: Boolean = false - private var progressDialog: ProgressDialog? = null + @Suppress("DEPRECATION") private var progressDialog: ProgressDialog? = null override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -146,6 +148,7 @@ class CategoryDetailFragment : Fragment(R.layout.category_detail_fragment) { categoryAdapter.replaceItems(categoryLevels) } + @Suppress("DEPRECATION") private fun showProgressDialog(@StringRes messageId: Int) { progressDialog = ProgressDialog(requireContext()) progressDialog?.apply { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerActivity.kt index 22b23653a8c8..7c075b1659b7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stories/StoryComposerActivity.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.stories import android.app.Activity @@ -123,7 +125,7 @@ class StoryComposerActivity : ComposeLoopFrameActivity(), private lateinit var viewModel: StoryComposerViewModel - private var addingMediaToEditorProgressDialog: ProgressDialog? = null + @Suppress("DEPRECATION") private var addingMediaToEditorProgressDialog: ProgressDialog? = null private val frameIdsToRemove = ArrayList() override fun getSite() = site From 28bcef782d4541de127d0cfb1662669cc07cfb6e Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 13:08:55 +0300 Subject: [PATCH 08/25] Analysis: Suppress comments detail activity deprecated warnings Warning Message: "'CommentsDetailActivity' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. Explanation: See KDoc on 'CommentsDetailActivity' class. "Comments are being refactored as part of Comments Unification project. If you are adding any features or modifying this class, please ping develric or klymyam" --- .../ui/comments/unified/CommentDetailsActivityContract.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/comments/unified/CommentDetailsActivityContract.kt b/WordPress/src/main/java/org/wordpress/android/ui/comments/unified/CommentDetailsActivityContract.kt index a0283afb1097..603c511023db 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/comments/unified/CommentDetailsActivityContract.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/comments/unified/CommentDetailsActivityContract.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.comments.unified import android.app.Activity @@ -13,6 +15,7 @@ import org.wordpress.android.ui.comments.unified.CommentDetailsActivityContract. class CommentDetailsActivityContract : ActivityResultContract() { + @Suppress("DEPRECATION") override fun createIntent(context: Context, input: CommentDetailsActivityRequest): Intent { val detailIntent = Intent(context, CommentsDetailActivity::class.java) detailIntent.putExtra(CommentsDetailActivity.COMMENT_ID_EXTRA, input.commentId) From 11e6f278ab4326e627287cd0b65d32e95e2d1413 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 13:42:50 +0300 Subject: [PATCH 09/25] Analysis: Resolve on navigation (re) selected deprecated warnings Warning Messages: - "'LabelVisibilityMode' is deprecated. Deprecated in Java" - "'OnNavigationItemSelectedListener' is deprecated. Deprecated in Java" - "'setOnNavigationItemSelectedListener (BottomNavigationView.OnNavigationItemSelectedListener?): Unit' is deprecated. Deprecated in Java" - "'OnNavigationItemReselectedListener' is deprecated. Deprecated in Java" - "'setOnNavigationItemReselectedListener (BottomNavigationView.OnNavigationItemReselectedListener?): Unit' is deprecated. Deprecated in Java" Replacing the deprecated code with the 'NavigationBarView' related version is the recommended action to resolve this kind of deprecated warnings. More more info see: - LabelVisibilityMode (Docs): https://developer.android.com/reference/com/google/android/material/ bottomnavigation/LabelVisibilityMode - BottomNavigationView.OnNavigationItemSelectedListener (Docs): https://developer.android.com/reference/com/google/android/material/ bottomnavigation/BottomNavigationView.OnNavigationItemSelectedListener - BottomNavigationView.OnNavigationItemReselectedListener (Docs): https://developer.android.com/reference/com/google/android/material/ bottomnavigation/BottomNavigationView.OnNavigationItemReselectedListener --- .../android/ui/main/WPMainNavigationView.kt | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt index f02573018a7d..e9fcbf9a543d 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt @@ -1,6 +1,5 @@ package org.wordpress.android.ui.main -import android.annotation.SuppressLint import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater @@ -17,9 +16,9 @@ import androidx.fragment.app.FragmentManager import com.google.android.material.bottomnavigation.BottomNavigationItemView import com.google.android.material.bottomnavigation.BottomNavigationMenuView import com.google.android.material.bottomnavigation.BottomNavigationView -import com.google.android.material.bottomnavigation.BottomNavigationView.OnNavigationItemReselectedListener -import com.google.android.material.bottomnavigation.BottomNavigationView.OnNavigationItemSelectedListener -import com.google.android.material.bottomnavigation.LabelVisibilityMode +import com.google.android.material.navigation.NavigationBarView +import com.google.android.material.navigation.NavigationBarView.OnItemReselectedListener +import com.google.android.material.navigation.NavigationBarView.OnItemSelectedListener import org.wordpress.android.BuildConfig import org.wordpress.android.R import org.wordpress.android.ui.main.WPMainActivity.OnScrollToTopListener @@ -45,7 +44,7 @@ class WPMainNavigationView @JvmOverloads constructor( attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : BottomNavigationView(context, attrs, defStyleAttr), - OnNavigationItemSelectedListener, OnNavigationItemReselectedListener { + OnItemSelectedListener, OnItemReselectedListener { private lateinit var navAdapter: NavAdapter private lateinit var fragmentManager: FragmentManager private lateinit var pageListener: OnPageListener @@ -110,14 +109,13 @@ class WPMainNavigationView @JvmOverloads constructor( menu.removeItem(R.id.nav_reader) } - @SuppressLint("WrongConstant") private fun disableShiftMode() { - labelVisibilityMode = LabelVisibilityMode.LABEL_VISIBILITY_LABELED + labelVisibilityMode = NavigationBarView.LABEL_VISIBILITY_LABELED } private fun assignNavigationListeners(assign: Boolean) { - setOnNavigationItemSelectedListener(if (assign) this else null) - setOnNavigationItemReselectedListener(if (assign) this else null) + setOnItemSelectedListener(if (assign) this else null) + setOnItemReselectedListener(if (assign) this else null) } override fun onNavigationItemSelected(item: MenuItem): Boolean { From 567e63e0ad3d4487859eb0b9b339ce528384a70e Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 14:02:37 +0300 Subject: [PATCH 10/25] Analysis: Suppress exo player utils deprecated warnings Warning Messages: - "'ExtractorMediaSource' is deprecated. Deprecated in Java" - "'DefaultHttpDataSourceFactory' is deprecated. Deprecated in Java" - "'getter for defaultRequestProperties: HttpDataSource.RequestProperties' is deprecated. Deprecated in Java" - "'createMediaSource(Uri): DashMediaSource' is deprecated. Deprecated in Java" - "'createMediaSource(Uri): SsMediaSource' is deprecated. Deprecated in Java" - "'createMediaSource(Uri): HlsMediaSource' is deprecated. Deprecated in Java" - "'Factory' is deprecated. Deprecated in Java" - "'createMediaSource(Uri): ExtractorMediaSource' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. For more info see: - Exoplayer Developer Guide (Docs): https://exoplayer.dev --- .../java/org/wordpress/android/ui/media/ExoPlayerUtils.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/media/ExoPlayerUtils.kt b/WordPress/src/main/java/org/wordpress/android/ui/media/ExoPlayerUtils.kt index 8c0f0ee5fa11..d5f80ab6123b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/media/ExoPlayerUtils.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/media/ExoPlayerUtils.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.media import android.content.Context @@ -22,8 +24,8 @@ import org.wordpress.android.ui.utils.AuthenticationUtils import javax.inject.Inject @Reusable -class ExoPlayerUtils -@Inject constructor( +@Suppress("DEPRECATION") +class ExoPlayerUtils @Inject constructor( private val authenticationUtils: AuthenticationUtils, private val appContext: Context ) { From 4a037bef101a0e61d2bf69387285a0455a430aa6 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 14:10:23 +0300 Subject: [PATCH 11/25] Analysis: Suppress request permissions deprecated warnings Warning Message: "'requestPermissions(Array<(out) String!>, Int): Unit' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. For more info see: - androidx.fragment.app.Fragment.requestPermissions (Docs): https://developer.android.com/reference/androidx/fragment/app/ Fragment#requestPermissions(java.lang.String[],int) --- .../org/wordpress/android/ui/mediapicker/MediaPickerFragment.kt | 2 ++ .../org/wordpress/android/ui/photopicker/PhotoPickerFragment.kt | 2 ++ 2 files changed, 4 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerFragment.kt index 88ddbe37b6e1..a0c9462a796e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerFragment.kt @@ -618,6 +618,7 @@ class MediaPickerFragment : Fragment() { viewModel.checkStoragePermission(isStoragePermissionAlwaysDenied) } + @Suppress("DEPRECATION") private fun requestStoragePermission() { val permissions = arrayOf(permission.WRITE_EXTERNAL_STORAGE, permission.READ_EXTERNAL_STORAGE) requestPermissions( @@ -625,6 +626,7 @@ class MediaPickerFragment : Fragment() { ) } + @Suppress("DEPRECATION") private fun requestCameraPermission() { // in addition to CAMERA permission we also need a storage permission, to store media from the camera val permissions = arrayOf( diff --git a/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.kt index 7e926150c8e3..c0a52b9e784f 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/photopicker/PhotoPickerFragment.kt @@ -408,6 +408,7 @@ class PhotoPickerFragment : Fragment(R.layout.photo_picker_fragment) { viewModel.checkStoragePermission(isStoragePermissionAlwaysDenied) } + @Suppress("DEPRECATION") private fun requestStoragePermission() { val permissions = arrayOf(permission.WRITE_EXTERNAL_STORAGE) requestPermissions( @@ -415,6 +416,7 @@ class PhotoPickerFragment : Fragment(R.layout.photo_picker_fragment) { ) } + @Suppress("DEPRECATION") private fun requestCameraPermission() { // in addition to CAMERA permission we also need a storage permission, to store media from the camera val permissions = arrayOf( From f1e9bcd4ea0053bef7b21828c2d90df48d77d2f4 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 15:18:22 +0300 Subject: [PATCH 12/25] Analysis: Suppress get external storage public dir deprecated warnings Warning Message: "'getExternalStoragePublicDirectory(String!): File!' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. For more info see: - android.os.Environment.getExternalStoragePublicDirectory (Docs): https://developer.android.com/reference/android/os/ Environment#getExternalStoragePublicDirectory(java.lang.String) --- .../wordpress/android/ui/mediapicker/loader/DeviceMediaLoader.kt | 1 + .../src/main/java/org/wordpress/android/util/WPMediaUtils.java | 1 + 2 files changed, 2 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/DeviceMediaLoader.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/DeviceMediaLoader.kt index b48904ed4314..518ef5a0d159 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/DeviceMediaLoader.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/loader/DeviceMediaLoader.kt @@ -119,6 +119,7 @@ class DeviceMediaLoader ) } + @Suppress("DEPRECATION") fun loadDocuments(filter: String?, pageSize: Int, limitDate: Long? = null): DeviceMediaList { val storagePublicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) val nextPage = (storagePublicDirectory?.listFiles() ?: arrayOf()).filter { diff --git a/WordPress/src/main/java/org/wordpress/android/util/WPMediaUtils.java b/WordPress/src/main/java/org/wordpress/android/util/WPMediaUtils.java index baa7b54bdcac..40bcf329a9b1 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/WPMediaUtils.java +++ b/WordPress/src/main/java/org/wordpress/android/util/WPMediaUtils.java @@ -389,6 +389,7 @@ private static Intent prepareLaunchCamera(Context context, String applicationId, } } + @SuppressWarnings("deprecation") private static Intent getLaunchCameraIntent(Context context, String applicationId, LaunchCameraCallback callback) throws IOException { File externalStoragePublicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); From 7159db448c0ab5985353cffbb63cd0adbeac4215 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 15:31:03 +0300 Subject: [PATCH 13/25] Analysis: Suppress photo picker activity deprecated warnings Warning Message: "'PhotoPickerActivity' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. Explanation: See Javadoc on 'PhotoPickerActivity' class. "This class is being refactored, if you implement any change, please also update {@link org.wordpress.android.ui.mediapicker. MediaPickerActivity}" --- .../ui/accounts/signup/SignupEpilogueFragment.java | 8 +++++--- .../wordpress/android/ui/mysite/MySiteViewModel.kt | 14 +++++++++----- .../android/ui/mysite/tabs/MySiteTabFragment.kt | 6 ++++-- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/SignupEpilogueFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/SignupEpilogueFragment.java index 0893a662a1c5..f735de1e8fe0 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/SignupEpilogueFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/accounts/signup/SignupEpilogueFragment.java @@ -65,7 +65,6 @@ import org.wordpress.android.ui.photopicker.MediaPickerConstants; import org.wordpress.android.ui.photopicker.MediaPickerLauncher; import org.wordpress.android.ui.photopicker.PhotoPickerActivity; -import org.wordpress.android.ui.photopicker.PhotoPickerActivity.PhotoPickerMediaSource; import org.wordpress.android.ui.prefs.AppPrefsWrapper; import org.wordpress.android.ui.reader.services.update.ReaderUpdateLogic; import org.wordpress.android.ui.reader.services.update.ReaderUpdateServiceStarter; @@ -365,6 +364,7 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) { } @Override + @SuppressWarnings("deprecation") public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -378,8 +378,10 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { data.getStringArrayExtra(MediaPickerConstants.EXTRA_MEDIA_URIS); if (mediaUriStringsArray != null && mediaUriStringsArray.length > 0) { - PhotoPickerMediaSource source = PhotoPickerMediaSource.fromString( - data.getStringExtra(MediaPickerConstants.EXTRA_MEDIA_SOURCE)); + PhotoPickerActivity.PhotoPickerMediaSource source = + PhotoPickerActivity.PhotoPickerMediaSource.fromString( + data.getStringExtra(MediaPickerConstants.EXTRA_MEDIA_SOURCE) + ); AnalyticsTracker.Stat stat = source == PhotoPickerActivity.PhotoPickerMediaSource.ANDROID_CAMERA ? SIGNUP_EMAIL_EPILOGUE_GRAVATAR_SHOT_NEW diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteViewModel.kt index 9fd8aad7945e..0865b1b05416 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteViewModel.kt @@ -1,4 +1,4 @@ -@file:Suppress("MaximumLineLength") +@file:Suppress("DEPRECATION", "MaximumLineLength") package org.wordpress.android.ui.mysite @@ -83,8 +83,7 @@ import org.wordpress.android.ui.mysite.items.SiteItemsTracker import org.wordpress.android.ui.mysite.items.listitem.ListItemAction import org.wordpress.android.ui.mysite.tabs.MySiteTabType import org.wordpress.android.ui.pages.SnackbarMessageHolder -import org.wordpress.android.ui.photopicker.PhotoPickerActivity.PhotoPickerMediaSource -import org.wordpress.android.ui.photopicker.PhotoPickerActivity.PhotoPickerMediaSource.ANDROID_CAMERA +import org.wordpress.android.ui.photopicker.PhotoPickerActivity import org.wordpress.android.ui.posts.BasicDialogViewModel.DialogInteraction import org.wordpress.android.ui.posts.BasicDialogViewModel.DialogInteraction.Dismissed import org.wordpress.android.ui.posts.BasicDialogViewModel.DialogInteraction.Negative @@ -963,8 +962,13 @@ class MySiteViewModel @Inject constructor( quickStartTracker.track(Stat.QUICK_START_REMOVE_DIALOG_NEGATIVE_TAPPED) } - fun handleTakenSiteIcon(iconUrl: String?, source: PhotoPickerMediaSource?) { - val stat = if (source == ANDROID_CAMERA) Stat.MY_SITE_ICON_SHOT_NEW else Stat.MY_SITE_ICON_GALLERY_PICKED + @Suppress("DEPRECATION") + fun handleTakenSiteIcon(iconUrl: String?, source: PhotoPickerActivity.PhotoPickerMediaSource?) { + val stat = if (source == PhotoPickerActivity.PhotoPickerMediaSource.ANDROID_CAMERA) { + Stat.MY_SITE_ICON_SHOT_NEW + } else { + Stat.MY_SITE_ICON_GALLERY_PICKED + } analyticsTrackerWrapper.track(stat) val imageUri = Uri.parse(iconUrl)?.let { UriWrapper(it) } if (imageUri != null) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt index 3c6c8c74ebed..67ecb0aa0d9c 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteTabFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.mysite.tabs import android.app.Activity @@ -48,7 +50,7 @@ import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFra import org.wordpress.android.ui.pages.SnackbarMessageHolder import org.wordpress.android.ui.photopicker.MediaPickerConstants import org.wordpress.android.ui.photopicker.MediaPickerLauncher -import org.wordpress.android.ui.photopicker.PhotoPickerActivity.PhotoPickerMediaSource +import org.wordpress.android.ui.photopicker.PhotoPickerActivity import org.wordpress.android.ui.posts.BasicDialogViewModel import org.wordpress.android.ui.posts.BasicDialogViewModel.BasicDialogModel import org.wordpress.android.ui.posts.EditPostActivity.EXTRA_IS_LANDING_EDITOR_OPENED_FOR_NEW_SITE @@ -472,7 +474,7 @@ class MySiteTabFragment : Fragment(R.layout.my_site_tab_fragment), MediaPickerConstants.EXTRA_MEDIA_URIS ) ?: return - val source = PhotoPickerMediaSource.fromString( + val source = PhotoPickerActivity.PhotoPickerMediaSource.fromString( data.getStringExtra(MediaPickerConstants.EXTRA_MEDIA_SOURCE) ) val iconUrl = mediaUriStringsArray.getOrNull(0) ?: return From 954bfaed48bf535db4825f90f9e73ff77ebac26f Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 15:46:45 +0300 Subject: [PATCH 14/25] Analysis: Suppress async task deprecated warnings Warning Messages: - "'AsyncTask' is deprecated. Deprecated in Java" - "'THREAD_POOL_EXECUTOR: Executor!' is deprecated. Deprecated in Java" - "'constructor AsyncTask()' is deprecated. Deprecated in Java" - "'executeOnExecutor(Executor!, vararg Void!): AsyncTask?>!' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. You will also notice that I suppressed the deprecated warning both, on the file level and closer to the deprecation itself. In addition to that, you will notice that I suppressed the deprecated warning for other such warnings, like 'GeneratedNoteBlock'. I did that because suppressing on the file level was necessary due to the 'android.os.AsyncTask' import that can't be suppressed any other way. But, when doing so, every deprecated warning is suppressed as well. At which point the deprecated information is lost. This way, adding first the '@Suppress ("DEPRECATION")' closer to source and then adding it on the file level makes sure that this information is not lost, at least for the existing code. Explanation: "This class was deprecated in API level 30. Use the standard java.util.concurrent or Kotlin concurrency utilities instead." --- .../android/ui/comments/CommentsDetailActivity.java | 1 + .../org/wordpress/android/ui/main/SitePickerAdapter.java | 2 ++ .../ui/notifications/NotificationsDetailListFragment.kt | 5 +++++ .../android/ui/notifications/adapters/NotesAdapter.java | 2 ++ .../android/ui/posts/services/AztecVideoLoader.java | 1 + .../ui/publicize/adapters/PublicizeServiceAdapter.java | 2 ++ .../android/ui/reader/adapters/ReaderBlogAdapter.java | 2 ++ .../android/ui/reader/adapters/ReaderCommentAdapter.java | 2 ++ .../android/ui/reader/adapters/ReaderPostAdapter.java | 2 ++ .../android/ui/reader/adapters/ReaderTagAdapter.java | 2 ++ .../android/ui/reader/views/ReaderLikingUsersView.java | 1 + .../org/wordpress/android/ui/uploads/PostUploadHandler.java | 2 ++ 12 files changed, 24 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentsDetailActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentsDetailActivity.java index d7f410e1690d..cd37f943beb6 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentsDetailActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/comments/CommentsDetailActivity.java @@ -198,6 +198,7 @@ public void onCommentChanged(OnCommentChanged event) { } } + @SuppressWarnings("deprecation") private void loadDataInViewPager() { if (mIsLoadingComments) { AppLog.w(AppLog.T.COMMENTS, "load comments task already active"); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/SitePickerAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/main/SitePickerAdapter.java index 168564e0aad9..811b5c82e795 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/SitePickerAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/SitePickerAdapter.java @@ -654,6 +654,7 @@ Set setVisibilityForSelectedSites(boolean makeVisible) { return changeSet; } + @SuppressWarnings("deprecation") void loadSites() { new LoadSitesTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } @@ -710,6 +711,7 @@ public List getBlogsForCurrentView() { /* * AsyncTask which loads sites from database and populates the adapter */ + @SuppressWarnings("deprecation") @SuppressLint("StaticFieldLeak") private class LoadSitesTask extends AsyncTask { @Override diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsDetailListFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsDetailListFragment.kt index 736d8e5b4477..d0c98246df8e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsDetailListFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsDetailListFragment.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + /** * One fragment to rule them all (Notes, that is) */ @@ -186,6 +188,7 @@ class NotificationsDetailListFragment : ListFragment(), NotificationFragment { super.onSaveInstanceState(outState) } + @Suppress("DEPRECATION") private fun reloadNoteBlocks() { LoadNoteBlocksTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR) } @@ -314,6 +317,7 @@ class NotificationsDetailListFragment : ListFragment(), NotificationFragment { // Loop through the 'body' items in this note, and create blocks for each. // TODO replace this inner async task with a coroutine + @Suppress("DEPRECATION") @SuppressLint("StaticFieldLeak") private inner class LoadNoteBlocksTask : AsyncTask?>() { private var mIsBadgeView = false @@ -495,6 +499,7 @@ class NotificationsDetailListFragment : ListFragment(), NotificationFragment { return hasRangeOfTypePost && hasRangeOfTypeSite } + @Suppress("DEPRECATION") private fun buildGeneratedLinkBlock( onNoteBlockTextClickListener: OnNoteBlockTextClickListener, pingbackUrl: String?, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/adapters/NotesAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/notifications/adapters/NotesAdapter.java index e3fad0d6cecf..e4943c10d23b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/adapters/NotesAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/adapters/NotesAdapter.java @@ -349,12 +349,14 @@ public void cancelReloadNotesTask() { } } + @SuppressWarnings("deprecation") public void reloadNotesFromDBAsync() { cancelReloadNotesTask(); mReloadNotesFromDBTask = new ReloadNotesFromDBTask(); mReloadNotesFromDBTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } + @SuppressWarnings("deprecation") @SuppressLint("StaticFieldLeak") private class ReloadNotesFromDBTask extends AsyncTask> { @Override diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/services/AztecVideoLoader.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/services/AztecVideoLoader.java index c4ce120743ac..0b7cc7a13cfb 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/services/AztecVideoLoader.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/services/AztecVideoLoader.java @@ -47,6 +47,7 @@ public void loadVideoThumbnail(final String url, final Html.VideoThumbnailGetter new LoadAztecVideoTask(mContext, mAuthenticationUtils, url, maxWidth, callbacks).execute(); } + @SuppressWarnings("deprecation") private static class LoadAztecVideoTask extends AsyncTask { final String mUrl; final int mMaxWidth; diff --git a/WordPress/src/main/java/org/wordpress/android/ui/publicize/adapters/PublicizeServiceAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/publicize/adapters/PublicizeServiceAdapter.java index 68f7944afb4a..b2346a0aada4 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/publicize/adapters/PublicizeServiceAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/publicize/adapters/PublicizeServiceAdapter.java @@ -72,6 +72,7 @@ public void setOnServiceClickListener(OnServiceClickListener listener) { mServiceClickListener = listener; } + @SuppressWarnings("deprecation") public void refresh() { if (!mIsTaskRunning) { new LoadServicesTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); @@ -173,6 +174,7 @@ class SharingViewHolder extends RecyclerView.ViewHolder { } } + @SuppressWarnings("deprecation") @SuppressLint("StaticFieldLeak") private class LoadServicesTask extends AsyncTask { private final PublicizeServiceList mTmpServices = new PublicizeServiceList(); diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderBlogAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderBlogAdapter.java index 425d22ce2f73..b5a13fd86dec 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderBlogAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderBlogAdapter.java @@ -90,6 +90,7 @@ public void setBlogClickListener(BlogClickListener listener) { mClickListener = listener; } + @SuppressWarnings("deprecation") public void refresh() { if (mIsTaskRunning) { AppLog.w(T.READER, "load blogs task is already running"); @@ -263,6 +264,7 @@ private void toggleFollow(Context context, ReaderFollowButton followButton, Read } } + @SuppressWarnings("deprecation") @SuppressLint("StaticFieldLeak") private class LoadBlogsTask extends AsyncTask { private ReaderBlogList mTmpFollowedBlogs; diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderCommentAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderCommentAdapter.java index 37c65ead466d..c307f6552667 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderCommentAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderCommentAdapter.java @@ -232,6 +232,7 @@ public int getItemViewType(int position) { return position == 0 ? VIEW_TYPE_HEADER : VIEW_TYPE_COMMENT; } + @SuppressWarnings("deprecation") public void refreshComments() { if (mIsTaskRunning) { AppLog.w(T.READER, "reader comment adapter > Load comments task already running"); @@ -658,6 +659,7 @@ public void setAnimateLikeCommentId(long commentId) { */ private boolean mIsTaskRunning = false; + @SuppressWarnings("deprecation") @SuppressLint("StaticFieldLeak") private class LoadCommentsTask extends AsyncTask { private ReaderCommentList mTmpComments; diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderPostAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderPostAdapter.java index 9afd6bf19778..26042cec2044 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderPostAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderPostAdapter.java @@ -633,6 +633,7 @@ public void reload() { loadPosts(); } + @SuppressWarnings("deprecation") private void loadPosts() { if (mIsTaskRunning) { AppLog.w(AppLog.T.READER, "reader posts task already running"); @@ -748,6 +749,7 @@ public void removeGapMarker() { */ private boolean mIsTaskRunning = false; + @SuppressWarnings("deprecation") @SuppressLint("StaticFieldLeak") private class LoadPostsTask extends AsyncTask { private ReaderPostList mAllPosts; diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderTagAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderTagAdapter.java index a5c37fea604b..1ae006a4d7d7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderTagAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderTagAdapter.java @@ -66,6 +66,7 @@ private Context getContext() { return mWeakContext.get(); } + @SuppressWarnings("deprecation") public void refresh() { if (mIsTaskRunning) { AppLog.w(T.READER, "tag task is already running"); @@ -153,6 +154,7 @@ class TagViewHolder extends RecyclerView.ViewHolder { */ private boolean mIsTaskRunning = false; + @SuppressWarnings("deprecation") @SuppressLint("StaticFieldLeak") private class LoadTagsTask extends AsyncTask { @Override diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderLikingUsersView.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderLikingUsersView.java index 6f302ca73185..d8a025242a6c 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderLikingUsersView.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderLikingUsersView.java @@ -109,6 +109,7 @@ private void showLikingAvatars(final ArrayList avatarUrls) { } } + @SuppressWarnings("deprecation") private static class LoadAvatarsTask extends AsyncTask> { private final WeakReference mViewReference; private final long mCurrentUserId; diff --git a/WordPress/src/main/java/org/wordpress/android/ui/uploads/PostUploadHandler.java b/WordPress/src/main/java/org/wordpress/android/ui/uploads/PostUploadHandler.java index bb8ef52576a1..7d4fca080732 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/uploads/PostUploadHandler.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/uploads/PostUploadHandler.java @@ -168,6 +168,7 @@ static boolean hasPendingOrInProgressPostUploads() { return sCurrentUploadingPost != null || !sQueuedPostsList.isEmpty(); } + @SuppressWarnings("deprecation") private void uploadNextPost() { synchronized (sQueuedPostsList) { if (mCurrentTask == null) { // make sure nothing is running @@ -197,6 +198,7 @@ private enum UploadPostTaskResult { PUSH_POST_DISPATCHED, ERROR, NOTHING_TO_UPLOAD, AUTO_SAVE_OR_UPDATE_DRAFT } + @SuppressWarnings("deprecation") @SuppressLint("StaticFieldLeak") private class UploadPostTask extends AsyncTask { private Context mContext; From 538e46c0a9586b9305f0eb920f473f41d317c4b2 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 15:57:28 +0300 Subject: [PATCH 15/25] Analysis: Suppress glide deprecated warnings Warning Messages: - "'BaseTarget' is deprecated. Deprecated in Java" - "'ViewTarget' is deprecated. Deprecated in Java" - "'getter for opacity: Int' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. For more info see: - Glide Guide (Docs): https://bumptech.github.io/glide --- .../android/ui/posts/services/AztecImageLoader.kt | 6 ++++-- .../java/org/wordpress/android/util/image/ImageManager.kt | 5 +++++ .../util/image/getters/WPRemoteResourceViewTarget.kt | 4 ++++ .../android/ui/posts/services/AztecImageLoaderTest.kt | 8 +++++--- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/services/AztecImageLoader.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/services/AztecImageLoader.kt index 37c19f8382a8..d063777ffcf2 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/services/AztecImageLoader.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/services/AztecImageLoader.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.posts.services import android.content.Context @@ -33,7 +35,7 @@ class AztecImageLoader( private val imageManager: ImageManager, private val loadingInProgress: Drawable ) : Html.ImageGetter { - private val targets = ArrayList>>() + @Suppress("DEPRECATION") private val targets = ArrayList>>() private val mRequestsInProgress = ArrayList() override fun loadImage(url: String, callbacks: Html.ImageGetter.Callbacks, maxWidth: Int) { @@ -43,7 +45,7 @@ class AztecImageLoader( override fun loadImage(url: String, callbacks: Html.ImageGetter.Callbacks, maxSize: Int, minWidth: Int) { mRequestsInProgress.add(url) - val target = object : BaseTarget() { + @Suppress("DEPRECATION") val target = object : BaseTarget() { override fun onLoadStarted(placeholder: Drawable?) { callbacks.onImageLoading(loadingInProgress) } diff --git a/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt b/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt index 07eee23c813e..49b5e86d2f6c 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt +++ b/WordPress/src/main/java/org/wordpress/android/util/image/ImageManager.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.util.image import android.app.Activity @@ -438,6 +440,7 @@ class ImageManager @Inject constructor( * Use this method with caution and only when you necessarily need it(in other words, don't use it * when you need to load an image into an ImageView). */ + @Suppress("DEPRECATION") fun loadIntoCustomTarget(viewTarget: ViewTarget, imageType: ImageType, imgUrl: String) { val context = WordPress.getContext() if (!context.isAvailable()) return @@ -455,6 +458,7 @@ class ImageManager @Inject constructor( * Use this method with caution and only when you necessarily need it(in other words, don't use it * when you need to load an image into an ImageView). */ + @Suppress("DEPRECATION") fun loadAsBitmapIntoCustomTarget( context: Context, target: BaseTarget, @@ -485,6 +489,7 @@ class ImageManager @Inject constructor( * Cancel any pending requests and free any resources that may have been * loaded for the view. */ + @Suppress("DEPRECATION") fun cancelRequest(context: Context, target: BaseTarget?) { GlideApp.with(context).clear(target) } diff --git a/WordPress/src/main/java/org/wordpress/android/util/image/getters/WPRemoteResourceViewTarget.kt b/WordPress/src/main/java/org/wordpress/android/util/image/getters/WPRemoteResourceViewTarget.kt index cf7e8e9a56a3..4845f7d36f61 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/image/getters/WPRemoteResourceViewTarget.kt +++ b/WordPress/src/main/java/org/wordpress/android/util/image/getters/WPRemoteResourceViewTarget.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.util.image.getters import android.annotation.SuppressLint @@ -25,6 +27,7 @@ import org.wordpress.android.util.ImageUtils * It clears the View's Request when the View is detached from its Window and restarts the Request when the View is * re-attached from its Window. */ +@Suppress("DEPRECATION") internal class WPRemoteResourceViewTarget( view: TextView, private val maxSize: Int @@ -114,6 +117,7 @@ internal class WPRemoteResourceViewTarget( drawable?.colorFilter = colorFilter } + @Suppress("DEPRECATION") override fun getOpacity(): Int { return drawable?.opacity ?: PixelFormat.UNKNOWN } diff --git a/WordPress/src/test/java/org/wordpress/android/ui/posts/services/AztecImageLoaderTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/posts/services/AztecImageLoaderTest.kt index 865592859342..09d0ada7e4b7 100644 --- a/WordPress/src/test/java/org/wordpress/android/ui/posts/services/AztecImageLoaderTest.kt +++ b/WordPress/src/test/java/org/wordpress/android/ui/posts/services/AztecImageLoaderTest.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.posts.services import android.content.Context @@ -83,7 +85,7 @@ class AztecImageLoaderTest { whenever(imageManager.loadAsBitmapIntoCustomTarget(any(), any(), any(), any())) .thenAnswer { invocation -> run { - @Suppress("UNCHECKED_CAST") + @Suppress("DEPRECATION", "UNCHECKED_CAST") (invocation.arguments[1] as BaseTarget).onLoadFailed(mock(Drawable::class.java)) } } @@ -93,7 +95,7 @@ class AztecImageLoaderTest { whenever(imageManager.loadAsBitmapIntoCustomTarget(any(), any(), any(), any())) .thenAnswer { invocation -> run { - @Suppress("UNCHECKED_CAST") + @Suppress("DEPRECATION", "UNCHECKED_CAST") (invocation.arguments[1] as BaseTarget).onResourceReady(bitmap, null) } } @@ -103,7 +105,7 @@ class AztecImageLoaderTest { whenever(imageManager.loadAsBitmapIntoCustomTarget(any(), any(), any(), any())) .thenAnswer { invocation -> run { - @Suppress("UNCHECKED_CAST") + @Suppress("DEPRECATION", "UNCHECKED_CAST") (invocation.arguments[1] as BaseTarget).onLoadStarted(mock(Drawable::class.java)) } } From 897977a2dac84ffed576f789c58d02a4c95176fd Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 16:00:32 +0300 Subject: [PATCH 16/25] Analysis: Replace java with kotlin suppresion for deprication --- .../android/ui/prefs/PreferenceFragmentLifeCycleOwner.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/PreferenceFragmentLifeCycleOwner.kt b/WordPress/src/main/java/org/wordpress/android/ui/prefs/PreferenceFragmentLifeCycleOwner.kt index 02f537ee4c49..a6f56acc3e68 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/PreferenceFragmentLifeCycleOwner.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/PreferenceFragmentLifeCycleOwner.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.ui.prefs import android.os.Bundle @@ -21,7 +23,7 @@ import androidx.lifecycle.coroutineScope * which supports the use of lifecycleCoroutineScope for observing Live data or Flows. * https://developer.android.com/topic/libraries/architecture/lifecycle#implementing-lco */ -@SuppressWarnings("deprecation") +@Suppress("DEPRECATION") open class PreferenceFragmentLifeCycleOwner : PreferenceFragment(), LifecycleOwner { private lateinit var lifecycleRegistry: LifecycleRegistry From 8c76d9e19118d6288256aab7f06598fa8dbe044a Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 16:04:24 +0300 Subject: [PATCH 17/25] Analysis: Suppress allow scanning by media scanner deprecated warning Warning Message: "'allowScanningByMediaScanner(): Unit' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. For more info see: - android.app.DownloadManager.Request.allowScanningByMediaScanner (Doc): https://developer.android.com/reference/android/app/ DownloadManager.Request#allowScanningByMediaScanner() --- .../org/wordpress/android/ui/reader/ReaderFileDownloadManager.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderFileDownloadManager.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderFileDownloadManager.kt index 7e04bc2f173e..ff6586dc5466 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderFileDownloadManager.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderFileDownloadManager.kt @@ -23,6 +23,7 @@ class ReaderFileDownloadManager } } + @Suppress("DEPRECATION") fun downloadFile(fileUrl: String) { val request = downloadManager.buildRequest(fileUrl) From a5b8e332aaa79f2bc99ad48e7d57abffab35e29e Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 16:09:19 +0300 Subject: [PATCH 18/25] Analysis: Suppress window manager display/insets deprecated warnings Warning Messages: - "'getter for systemWindowInsetTop: Int' is deprecated. Deprecated in Java" - "'consumeSystemWindowInsets(): WindowInsetsCompat' is deprecated. Deprecated in Java" - "'getter for defaultDisplay: Display!' is deprecated. Deprecated in Java" - "'getSize(Point!): Unit' is deprecated. Deprecated in Java" - "'setter for systemUiVisibility: Int' is deprecated. Deprecated in Java" - "'getter for systemUiVisibility: Int' is deprecated. Deprecated in Java" - "'SYSTEM_UI_FLAG_LIGHT_STATUS_BAR: Int' is deprecated. Deprecated in Java" - "'SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR: Int' is deprecated. Deprecated in Java" - "'SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN: Int' is deprecated. Deprecated in Java" - "'SYSTEM_UI_FLAG_LAYOUT_STABLE: Int' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. For more info see: - android.view.WindowInsets.getSystemWindowInsetTop (Docs): https://developer.android.com/reference/android/view/ WindowInsets#getSystemWindowInsetTop() - android.view.WindowInsets.consumeSystemWindowInsets (Docs): https://developer.android.com/reference/android/view/ WindowInsets#consumeSystemWindowInsets() - android.view.WindowManager.getDefaultDisplay (Docs): https://developer.android.com/reference/android/view/ WindowManager#getDefaultDisplay() - android.view.Display#getSize (Docs): https://developer.android.com/reference/android/view/ Display#getSize(android.graphics.Point) - android.view.View.setSystemUiVisibility (Docs): https://developer.android.com/reference/android/view/ View#setSystemUiVisibility(int) - android.view.View.getSystemUiVisibility (Docs): https://developer.android.com/reference/android/view/ View#getSystemUiVisibility() --- .../wordpress/android/ui/reader/ReaderPostDetailFragment.kt | 1 + .../src/main/java/org/wordpress/android/ui/utils/UiHelpers.kt | 1 + .../org/wordpress/android/util/extensions/DialogExtensions.kt | 1 + .../org/wordpress/android/util/extensions/WindowExtensions.kt | 3 +++ 4 files changed, 6 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt index 62aa2864c228..2560836fd34d 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt @@ -339,6 +339,7 @@ class ReaderPostDetailFragment : ViewPagerFragment(), } } + @Suppress("DEPRECATION") private fun initAppBar(view: View) { appBar = view.findViewById(R.id.appbar_with_collapsing_toolbar_layout) toolBar = appBar.findViewById(R.id.toolbar_main) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/utils/UiHelpers.kt b/WordPress/src/main/java/org/wordpress/android/ui/utils/UiHelpers.kt index e58abf9572a9..583a3b49c7cc 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/utils/UiHelpers.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/utils/UiHelpers.kt @@ -98,6 +98,7 @@ class UiHelpers @Inject constructor() { } companion object { + @Suppress("DEPRECATION") fun adjustDialogSize(dialog: Dialog) { val window = requireNotNull(dialog.window) val size = Point() diff --git a/WordPress/src/main/java/org/wordpress/android/util/extensions/DialogExtensions.kt b/WordPress/src/main/java/org/wordpress/android/util/extensions/DialogExtensions.kt index 426cfba50c0e..ce5292c67b5d 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/extensions/DialogExtensions.kt +++ b/WordPress/src/main/java/org/wordpress/android/util/extensions/DialogExtensions.kt @@ -16,6 +16,7 @@ fun Dialog.getPreferenceDialogContainerView(): View? { return view } +@Suppress("DEPRECATION") fun Dialog.setStatusBarAsSurfaceColor() { window?.apply { statusBarColor = context.getColorFromAttribute(attr.colorSurface) diff --git a/WordPress/src/main/java/org/wordpress/android/util/extensions/WindowExtensions.kt b/WordPress/src/main/java/org/wordpress/android/util/extensions/WindowExtensions.kt index 7f97e9989b67..b6dcc7dfd70f 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/extensions/WindowExtensions.kt +++ b/WordPress/src/main/java/org/wordpress/android/util/extensions/WindowExtensions.kt @@ -10,6 +10,7 @@ import android.view.Window import androidx.core.content.ContextCompat import org.wordpress.android.R +@Suppress("DEPRECATION") fun Window.setLightStatusBar(showInLightMode: Boolean) { if (isLightTheme()) { decorView.systemUiVisibility = decorView.systemUiVisibility.let { @@ -22,6 +23,7 @@ fun Window.setLightStatusBar(showInLightMode: Boolean) { } } +@Suppress("DEPRECATION") fun Window.setLightNavigationBar(showInLightMode: Boolean, applyDefaultColors: Boolean = false) { if (isLightTheme() && VERSION.SDK_INT >= VERSION_CODES.O) { decorView.systemUiVisibility = decorView.systemUiVisibility.let { @@ -41,6 +43,7 @@ fun Window.setLightNavigationBar(showInLightMode: Boolean, applyDefaultColors: B } } +@Suppress("DEPRECATION") fun Window.showFullScreen() { decorView.systemUiVisibility = decorView.systemUiVisibility.let { it or SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or SYSTEM_UI_FLAG_LAYOUT_STABLE From 75db65bced75dfbd53b0c34797eafa4e4024f6b9 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 16:27:35 +0300 Subject: [PATCH 19/25] Analysis: Suppress fragment manager deprecated warnings Warning Messages: - "'getter for fragmentManager: FragmentManager?' is deprecated Deprecated in Java" - "'requireFragmentManager(): FragmentManager' is deprecated. Deprecated in Java" - "'constructor FragmentPagerAdapter(FragmentManager)' is deprecated. Deprecated in Java" - "'show(FragmentManager!, String!): Unit' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. You will also notice that I suppressed the deprecated warning both, on the file level and closer to the deprecation itself. In addition to that, you will notice that I suppressed the deprecated warning for other such warnings, like 'DialogFragment'. I did that because suppressing on the file level was necessary due to the 'android.app.FragmentManager' import that can't be suppressed any other way. But, when doing so, every deprecated warning is suppressed as well. At which point the deprecated information is lost. This way, adding first the '@Suppress ("DEPRECATION")' closer to source and then adding it on the file level makes sure that this information is not lost, at least for the existing code. For more info see: - androidx.fragment.app.Fragment.getFragmentManager (Docs): https://developer.android.com/reference/androidx/fragment/app/ Fragment#getFragmentManager() - androidx.fragment.app.Fragment#.requireFragmentManager (Docs): https://developer.android.com/reference/androidx/fragment/app/ Fragment#requireFragmentManager() --- .../wordpress/android/ui/reader/ReaderPostDetailFragment.kt | 3 ++- .../widget/configuration/StatsWidgetConfigureFragment.kt | 1 + .../widget/minified/StatsMinifiedWidgetConfigureFragment.kt | 1 + .../java/org/wordpress/android/widgets/AppRatingDialog.kt | 5 +++++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt index 2560836fd34d..872601ff767d 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt @@ -1399,7 +1399,7 @@ class ReaderPostDetailFragment : ViewPagerFragment(), viewModel.onShowPost(blogId = blogId, postId = postId) } - @Suppress("unused") + @Suppress("unused", "DEPRECATION") @Subscribe(threadMode = ThreadMode.MAIN) fun onPrivateAtomicCookieFetched(event: OnPrivateAtomicCookieFetched) { if (!isAdded) { @@ -1461,6 +1461,7 @@ class ReaderPostDetailFragment : ViewPagerFragment(), return false } + @Suppress("DEPRECATION") private fun ReaderPostDetailFragment.showPostInWebView(post: ReaderPost) { readerWebView.setIsPrivatePost(post.isPrivate) readerWebView.setBlogSchemeIsHttps(UrlUtils.isHttps(post.blogUrl)) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/configuration/StatsWidgetConfigureFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/configuration/StatsWidgetConfigureFragment.kt index 724c01b847b5..720899cf30b1 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/configuration/StatsWidgetConfigureFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/configuration/StatsWidgetConfigureFragment.kt @@ -71,6 +71,7 @@ class StatsWidgetConfigureFragment : DaggerFragment() { return inflater.inflate(R.layout.stats_widget_configure_fragment, container, false) } + @Suppress("DEPRECATION") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val nonNullActivity = requireActivity() diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/minified/StatsMinifiedWidgetConfigureFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/minified/StatsMinifiedWidgetConfigureFragment.kt index bf21fa91db5e..5dc875b43391 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/minified/StatsMinifiedWidgetConfigureFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/minified/StatsMinifiedWidgetConfigureFragment.kt @@ -39,6 +39,7 @@ class StatsMinifiedWidgetConfigureFragment : DaggerFragment(R.layout.stats_widge private lateinit var colorSelectionViewModel: StatsColorSelectionViewModel private lateinit var dataTypeSelectionViewModel: StatsDataTypeSelectionViewModel + @Suppress("DEPRECATION") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val nonNullActivity = requireActivity() diff --git a/WordPress/src/main/java/org/wordpress/android/widgets/AppRatingDialog.kt b/WordPress/src/main/java/org/wordpress/android/widgets/AppRatingDialog.kt index 0f49af56c8a3..062c1d9e90b4 100644 --- a/WordPress/src/main/java/org/wordpress/android/widgets/AppRatingDialog.kt +++ b/WordPress/src/main/java/org/wordpress/android/widgets/AppRatingDialog.kt @@ -1,3 +1,5 @@ +@file:Suppress("DEPRECATION") + package org.wordpress.android.widgets import android.app.Dialog @@ -70,6 +72,7 @@ object AppRatingDialog { * Show the rate dialog if the criteria is satisfied. * @return true if shown, false otherwise. */ + @Suppress("DEPRECATION") fun showRateDialogIfNeeded(fragmentManger: FragmentManager): Boolean { return if (shouldShowRateDialog()) { showRateDialog(fragmentManger) @@ -104,6 +107,7 @@ object AppRatingDialog { } } + @Suppress("DEPRECATION") private fun showRateDialog(fragmentManger: FragmentManager) { var dialog = fragmentManger.findFragmentByTag(AppRatingDialog.TAG_APP_RATING_PROMPT_DIALOG) if (dialog == null) { @@ -113,6 +117,7 @@ object AppRatingDialog { } } + @Suppress("DEPRECATION") class AppRatingDialog : DialogFragment() { companion object { internal const val TAG_APP_RATING_PROMPT_DIALOG = "TAG_APP_RATING_PROMPT_DIALOG" From 7ee8cb30fdac64c7e098a6972bda3fe4e3932178 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 16:36:11 +0300 Subject: [PATCH 20/25] Analysis: Resolve handler deprecated warnings Warning Message: "'constructor Handler()' is deprecated. Deprecated in Java" Specifying the `Lopper` explicitly, using 'Looper.getMainLooper()' is the recommended action to resolve this kind of deprecated warnings. Explanation: "This constructor is deprecated. Implicitly choosing a Looper during Handler construction can lead to bugs where operations are silently lost (if the Handler is not expecting new tasks and quits), crashes (if a handler is sometimes created on a thread without a Looper active), or race conditions, where the thread a handler is associated with is not what the author anticipated. Instead, use an Executor or specify the Looper explicitly, using Looper#getMainLooper, {link android.view.View#getHandler}, or similar. If the implicit thread local behavior is required for compatibility, use new Handler(Looper.myLooper()) to make it clear to readers." Docs: https://developer.android.com/reference/android/os/ Handler#Handler() --- .../android/ui/sitecreation/misc/SearchInputWithHeader.kt | 3 ++- .../android/viewmodel/plugins/PluginBrowserViewModel.kt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/misc/SearchInputWithHeader.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/misc/SearchInputWithHeader.kt index b100c5ce2d78..3f60ac1f9ea8 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/misc/SearchInputWithHeader.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/misc/SearchInputWithHeader.kt @@ -2,6 +2,7 @@ package org.wordpress.android.ui.sitecreation.misc import android.content.Context import android.os.Handler +import android.os.Looper import android.text.Editable import android.text.TextWatcher import android.view.View @@ -20,7 +21,7 @@ class SearchInputWithHeader(private val uiHelpers: UiHelpers, rootView: View, on private val progressBar = rootView.findViewById(R.id.progress_bar) private val clearAllLayout = rootView.findViewById(R.id.clear_all_layout) private val divider = rootView.findViewById(R.id.divider) - private val showKeyboardHandler = Handler() + private val showKeyboardHandler = Handler(Looper.getMainLooper()) var onTextChanged: ((String) -> Unit)? = null diff --git a/WordPress/src/main/java/org/wordpress/android/viewmodel/plugins/PluginBrowserViewModel.kt b/WordPress/src/main/java/org/wordpress/android/viewmodel/plugins/PluginBrowserViewModel.kt index 5ee34eb67943..b1cc8b494bcc 100644 --- a/WordPress/src/main/java/org/wordpress/android/viewmodel/plugins/PluginBrowserViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/viewmodel/plugins/PluginBrowserViewModel.kt @@ -2,6 +2,7 @@ package org.wordpress.android.viewmodel.plugins import android.os.Bundle import android.os.Handler +import android.os.Looper import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -57,7 +58,7 @@ class PluginBrowserViewModel @Inject constructor( private var isStarted = false - private val handler = Handler() + private val handler = Handler(Looper.getMainLooper()) private val _featuredPluginsLiveData = MutableLiveData() private val _popularPluginsLiveData = MutableLiveData() From bff920f3e565a2860df1c95615d434c5132c5999 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 16:39:56 +0300 Subject: [PATCH 21/25] Analysis: Suppress set bound in parent deprecated warnings Warning Message: "'setBoundsInParent(Rect!): Unit' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. For more info see: - android.view.accessibility.AccessibilityNodeInfo.setBoundsInParent: https://developer.android.com/reference/android/view/accessibility/ AccessibilityNodeInfo#setBoundsInParent(android.graphics.Rect) --- .../ui/stats/refresh/utils/BarChartAccessibilityHelper.kt | 1 + .../ui/stats/refresh/utils/LineChartAccessibilityHelper.kt | 1 + 2 files changed, 2 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/utils/BarChartAccessibilityHelper.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/utils/BarChartAccessibilityHelper.kt index 87ba94edda20..5e558312ac11 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/utils/BarChartAccessibilityHelper.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/utils/BarChartAccessibilityHelper.kt @@ -59,6 +59,7 @@ class BarChartAccessibilityHelper( return false } + @Suppress("DEPRECATION") override fun onPopulateNodeForVirtualView( virtualViewId: Int, node: AccessibilityNodeInfoCompat diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/utils/LineChartAccessibilityHelper.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/utils/LineChartAccessibilityHelper.kt index 7a0a0baba7e1..2031b4edcd0f 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/utils/LineChartAccessibilityHelper.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/utils/LineChartAccessibilityHelper.kt @@ -61,6 +61,7 @@ class LineChartAccessibilityHelper( return false } + @Suppress("DEPRECATION") override fun onPopulateNodeForVirtualView( virtualViewId: Int, node: AccessibilityNodeInfoCompat From 3751b8fd5b676d97ddab3c02cd1e73d7cf265d2c Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 17:04:19 +0300 Subject: [PATCH 22/25] Analysis: Suppress signature deprecated warnings Warning Messages: - "'GET_SIGNATURES: Int' is deprecated. Deprecated in Java" - "'signatures: Array<(out) Signature!>!' is deprecated. Deprecated in Java" These deprecated warnings are suppressed, that is, instead of being resolved, since a resolution would require a proper migration. For more info see: - android.content.pm.PackageManager.GET_SIGNATURES (Docs): https://developer.android.com/reference/android/content/pm/ PackageManager#GET_SIGNATURES - android.content.pm.PackageInfo.signatures (Docs): https://developer.android.com/reference/android/content/pm/ PackageInfo#signatures --- .../java/org/wordpress/android/util/signature/SignatureUtils.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/util/signature/SignatureUtils.kt b/WordPress/src/main/java/org/wordpress/android/util/signature/SignatureUtils.kt index 9d89c47e93c9..50567cef6841 100644 --- a/WordPress/src/main/java/org/wordpress/android/util/signature/SignatureUtils.kt +++ b/WordPress/src/main/java/org/wordpress/android/util/signature/SignatureUtils.kt @@ -9,7 +9,7 @@ import java.security.MessageDigest import javax.inject.Inject class SignatureUtils @Inject constructor() { - @Suppress("SwallowedException") + @Suppress("DEPRECATION", "SwallowedException") fun getSignatureHash(ctxt: Context, packageName: String): String { val md: MessageDigest = MessageDigest.getInstance("SHA-256") val sig: Signature = try { From a3be18f24ecf743800b54d106405ba62807fcfd9 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 17:25:30 +0300 Subject: [PATCH 23/25] Analysis: Resolve lifecycle registry mark state deprecated warning Warning Messages: "'markState(Lifecycle.State): Unit' is deprecated. Deprecated in Java" Replacing the deprecated 'markState(...)' with the 'currentState' related version is the recommended action to resolve this kind of deprecated warnings. For more info see: - androidx.lifecycle.LifecycleRegistry.markState (Docs): https://developer.android.com/reference/androidx/lifecycle/ LifecycleRegistry#markState(androidx.lifecycle.Lifecycle.State) - androidx.lifecycle.LifecycleRegistry.setCurrentState (Docs): https://developer.android.com/reference/androidx/lifecycle/ LifecycleRegistry#setCurrentState(androidx.lifecycle.Lifecycle.State) --- .../org/wordpress/android/viewmodel/posts/PostListViewModel.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/viewmodel/posts/PostListViewModel.kt b/WordPress/src/main/java/org/wordpress/android/viewmodel/posts/PostListViewModel.kt index 9686ed38c962..6f9751477216 100644 --- a/WordPress/src/main/java/org/wordpress/android/viewmodel/posts/PostListViewModel.kt +++ b/WordPress/src/main/java/org/wordpress/android/viewmodel/posts/PostListViewModel.kt @@ -267,7 +267,7 @@ class PostListViewModel @Inject constructor( connectionStatus.observe(lifecycleOwner, Observer { retryOnConnectionAvailableAfterRefreshError() }) - lifecycleOwner.lifecycleRegistry.markState(Lifecycle.State.CREATED) + lifecycleOwner.lifecycleRegistry.currentState = Lifecycle.State.CREATED } fun search(query: String?, delay: Long = SEARCH_DELAY_MS) { From 2f57fdc0c7e2acc2794fbb5e3d93bba5f15122ae Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 17:32:41 +0300 Subject: [PATCH 24/25] Analysis: Resolve nested web view get action masked deprecated warning Warning Messages: "'getActionMasked(MotionEvent!): Int' is deprecated. Deprecated in Java" Replacing the usage of 'MotionEventCompat' to get the action masked, by calling get action marked directly is the recommended action to resolve this kind of deprecated warnings. PS: It seems every method within 'MotionEventCompat' is now deprecated and pointing to using 'MotionEvent' directly instead as this will be removed in a future release. For more info see: - androidx.core.view.MotionEventCompat.getActionMasked (Docs): https://developer.android.com/reference/androidx/core/view/ MotionEventCompat#getActionMasked(android.view.MotionEvent) --- .../java/org/wordpress/android/widgets/NestedWebView.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/widgets/NestedWebView.kt b/WordPress/src/main/java/org/wordpress/android/widgets/NestedWebView.kt index 9b59670205e8..78aee846f684 100644 --- a/WordPress/src/main/java/org/wordpress/android/widgets/NestedWebView.kt +++ b/WordPress/src/main/java/org/wordpress/android/widgets/NestedWebView.kt @@ -5,7 +5,6 @@ import android.annotation.SuppressLint import android.content.Context import android.util.AttributeSet import android.view.MotionEvent -import androidx.core.view.MotionEventCompat import androidx.core.view.NestedScrollingChild3 import androidx.core.view.NestedScrollingChildHelper import androidx.core.view.ViewCompat @@ -35,13 +34,12 @@ class NestedWebView @JvmOverloads constructor( override fun onTouchEvent(ev: MotionEvent): Boolean { var returnValue = false val event = MotionEvent.obtain(ev) - val action = MotionEventCompat.getActionMasked(event) - if (action == MotionEvent.ACTION_DOWN) { + if (event.actionMasked == MotionEvent.ACTION_DOWN) { nestedOffsetY = 0 } val eventY = event.y.toInt() event.offsetLocation(0f, nestedOffsetY.toFloat()) - when (action) { + when (event.actionMasked) { MotionEvent.ACTION_MOVE -> { var totalScrollOffset = 0 var deltaY = lastY - eventY From 7811dd138074056d0363c5644752d2b883cb6678 Mon Sep 17 00:00:00 2001 From: Petros Paraskevopoulos Date: Mon, 3 Oct 2022 18:01:06 +0300 Subject: [PATCH 25/25] Analysis: Resolve detekt warnings by manually updating the baseline After resolving some of the compile related deprecated warnings, some Detekt baseline related warnings needed to be removed and suppressed closer to source because the lines on those classes got changed. Also, a few new Detekt violations appeared, like the new 'LongMethod' violation on the 'MeFragment' class for the 'onActivityResult(...)' function. Within this commit, those got suppressed as well so that Detekt completes successfully without any new issues. --- .../main/java/org/wordpress/android/ui/main/MeFragment.kt | 2 +- .../wordpress/android/ui/mediapicker/MediaPickerActivity.kt | 2 +- .../widget/configuration/StatsWidgetConfigureFragment.kt | 2 +- .../widget/minified/StatsMinifiedWidgetConfigureFragment.kt | 2 +- config/detekt/baseline.xml | 5 ----- 5 files changed, 4 insertions(+), 9 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt index dc25fec55bdd..fe9919b7bfb8 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt @@ -451,7 +451,7 @@ class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener { disconnectProgressDialog = null } - @Suppress("DEPRECATION") + @Suppress("DEPRECATION", "LongMethod", "NestedBlockDepth") override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerActivity.kt index e46daa1373e1..aed46bb692e2 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/mediapicker/MediaPickerActivity.kt @@ -173,7 +173,7 @@ class MediaPickerActivity : LocaleAwareActivity(), MediaPickerListener { return super.onOptionsItemSelected(item) } - @Suppress("DEPRECATION") + @Suppress("DEPRECATION", "LongMethod", "NestedBlockDepth") override fun onActivityResult( requestCode: Int, resultCode: Int, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/configuration/StatsWidgetConfigureFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/configuration/StatsWidgetConfigureFragment.kt index 720899cf30b1..2982e58206ff 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/configuration/StatsWidgetConfigureFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/configuration/StatsWidgetConfigureFragment.kt @@ -71,7 +71,7 @@ class StatsWidgetConfigureFragment : DaggerFragment() { return inflater.inflate(R.layout.stats_widget_configure_fragment, container, false) } - @Suppress("DEPRECATION") + @Suppress("DEPRECATION", "LongMethod") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val nonNullActivity = requireActivity() diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/minified/StatsMinifiedWidgetConfigureFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/minified/StatsMinifiedWidgetConfigureFragment.kt index 5dc875b43391..f1f11ee6bc2a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/minified/StatsMinifiedWidgetConfigureFragment.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/widget/minified/StatsMinifiedWidgetConfigureFragment.kt @@ -39,7 +39,7 @@ class StatsMinifiedWidgetConfigureFragment : DaggerFragment(R.layout.stats_widge private lateinit var colorSelectionViewModel: StatsColorSelectionViewModel private lateinit var dataTypeSelectionViewModel: StatsDataTypeSelectionViewModel - @Suppress("DEPRECATION") + @Suppress("DEPRECATION", "LongMethod") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val nonNullActivity = requireActivity() diff --git a/config/detekt/baseline.xml b/config/detekt/baseline.xml index 85c990ff9b7e..365a7029b8f5 100644 --- a/config/detekt/baseline.xml +++ b/config/detekt/baseline.xml @@ -72,7 +72,6 @@ LongMethod:BarChartViewHolder.kt$BarChartViewHolder$private fun BarChart.draw( item: BarChartItem, labelStart: TextView, labelEnd: TextView ): BarCount LongMethod:ClicksUseCase.kt$ClicksUseCase$override fun buildUiModel(domainModel: ClicksModel, uiState: SelectedClicksGroup): List<BlockListItem> LongMethod:HomepageSettingsDialog.kt$HomepageSettingsDialog$override fun onCreateDialog(savedInstanceState: Bundle?): Dialog - LongMethod:MediaPickerActivity.kt$MediaPickerActivity$override fun onActivityResult( requestCode: Int, resultCode: Int, data: Intent? ) LongMethod:MediaPickerFragment.kt$MediaPickerFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?) LongMethod:MediaPickerViewModel.kt$MediaPickerViewModel$private fun buildUiModel( domainModel: DomainModel?, selectedIds: List<Identifier>?, softAskRequest: SoftAskRequest?, isSearching: Boolean? ): PhotoListUiModel LongMethod:PhotoPickerFragment.kt$PhotoPickerFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?) @@ -80,8 +79,6 @@ LongMethod:PublishSettingsFragment.kt$PublishSettingsFragment$override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? LongMethod:ReferrersUseCase.kt$ReferrersUseCase$override fun buildUiModel(domainModel: ReferrersModel, uiState: SelectedGroup): List<BlockListItem> LongMethod:SearchListViewModel.kt$SearchListViewModel$private fun PageModel.toPageItem(areActionsEnabled: Boolean): PageItem - LongMethod:StatsMinifiedWidgetConfigureFragment.kt$StatsMinifiedWidgetConfigureFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?) - LongMethod:StatsWidgetConfigureFragment.kt$StatsWidgetConfigureFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?) LongMethod:SuggestionActivity.kt$SuggestionActivity$private fun initializeActivity(siteModel: SiteModel, suggestionType: SuggestionType) LoopWithTooManyJumpStatements:RemoveMediaUseCase.kt$RemoveMediaUseCase$for (mediaId in mediaIds) { if (!TextUtils.isEmpty(mediaId)) { // make sure the MediaModel exists val mediaModel = try { mediaStore.getMediaWithLocalId(Integer.valueOf(mediaId)) ?: continue } catch (e: NumberFormatException) { AppLog.e(AppLog.T.MEDIA, "Invalid media id: $mediaId") continue } // also make sure it's not being uploaded anywhere else (maybe on some other Post, // simultaneously) if (mediaModel.uploadState != null && mediaUtils.isLocalFile(mediaModel.uploadState.toLowerCase(Locale.ROOT)) && !uploadService.isPendingOrInProgressMediaUpload(mediaModel)) { dispatcher.dispatch(MediaActionBuilder.newRemoveMediaAction(mediaModel)) } } } MagicNumber:ActivityViewHolder.kt$ActivityViewHolder$3 @@ -178,8 +175,6 @@ NestedBlockDepth:AllTimeWidgetListViewModel.kt$AllTimeWidgetListViewModel$fun onDataSetChanged(onError: (appWidgetId: Int) -> Unit) NestedBlockDepth:CreatePageListItemActionsUseCase.kt$CreatePageListItemActionsUseCase$fun setupPageActions( listType: PageListType, uploadUiState: PostUploadUiState, siteModel: SiteModel, remoteId: Long ): Set<Action> NestedBlockDepth:LoadStoryFromStoriesPrefsUseCase.kt$LoadStoryFromStoriesPrefsUseCase$private fun loadOrReCreateStoryFromStoriesPrefs(site: SiteModel, mediaIds: ArrayList<String>): ReCreateStoryResult - NestedBlockDepth:MeFragment.kt$MeFragment$override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) - NestedBlockDepth:MediaPickerActivity.kt$MediaPickerActivity$override fun onActivityResult( requestCode: Int, resultCode: Int, data: Intent? ) NestedBlockDepth:PublicizeErrorDialogFragment.kt$PublicizeErrorDialogFragment$override fun onCreateDialog(savedInstanceState: Bundle?): Dialog NestedBlockDepth:PublishNotificationReceiverViewModel.kt$PublishNotificationReceiverViewModel$fun loadNotification(notificationId: Int): NotificationUiModel? NestedBlockDepth:ReaderDiscoverLogic.kt$ReaderDiscoverLogic$private fun createSimplifiedRecommendedBlogsCardJson(originalCardJson: JSONObject): JSONObject