diff --git a/.circleci/config.yml b/.circleci/config.yml index 67f3829618a3..a485ac8305b0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,6 +1,6 @@ android_config: &android_config docker: - - image: circleci/android:api-27-alpha + - image: circleci/android:api-28-alpha environment: # kotlin.incremental=false and kotlin.compiler.execution.strategy=in-process are required due to an issue with the Kotlin compiler in # memory constrained environments: https://youtrack.jetbrains.com/issue/KT-15562 diff --git a/WordPress/build.gradle b/WordPress/build.gradle index 9526c61d5293..b3f4c2b382b1 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -29,6 +29,10 @@ android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompi android { useLibrary 'org.apache.http.legacy' + useLibrary 'android.test.runner' + + useLibrary 'android.test.base' + useLibrary 'android.test.mock' dexOptions { jumboMode = true @@ -36,7 +40,7 @@ android { dexInProcess = true } - compileSdkVersion 27 + compileSdkVersion 28 buildToolsVersion '28.0.3' defaultConfig { @@ -107,6 +111,11 @@ android { lintConfig file('lint.xml') baseline file("lint-baseline.xml") } + + packagingOptions { + // MPAndroidChart uses androidX - remove this line when we migrate everything to androidX + exclude 'META-INF/proguard/androidx-annotations.pro' + } } // allows us to use cool things like @Parcelize annotations @@ -127,17 +136,20 @@ dependencies { implementation 'com.google.code.gson:gson:2.6.2' implementation 'org.ccil.cowan.tagsoup:tagsoup:1.2.1' - implementation 'com.android.support:support-compat:27.1.1' - implementation 'com.android.support:support-core-ui:27.1.1' - implementation 'com.android.support:support-fragment:27.1.1' + implementation 'com.android.support:support-compat:28.0.0' + implementation 'com.android.support:support-core-ui:28.0.0' + implementation 'com.android.support:support-fragment:28.0.0' implementation 'com.android.support:multidex:1.0.2' - implementation 'com.android.support:appcompat-v7:27.1.1' - implementation 'com.android.support:cardview-v7:27.1.1' - implementation 'com.android.support:recyclerview-v7:27.1.1' - implementation 'com.android.support:design:27.1.1' - implementation 'com.android.support:percent:27.1.1' - implementation 'com.android.support:preference-v7:27.1.1' + implementation 'com.android.support:support-v4:28.0.0' + implementation 'com.android.support:exifinterface:28.0.0' + implementation'com.android.support:support-media-compat:28.0.0' + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.android.support:cardview-v7:28.0.0' + implementation 'com.android.support:recyclerview-v7:28.0.0' + implementation 'com.android.support:design:28.0.0' + implementation 'com.android.support:percent:28.0.0' + implementation 'com.android.support:preference-v7:28.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.2' diff --git a/WordPress/src/androidTest/java/org/wordpress/android/ui/screenshots/WPScreenshotTest.java b/WordPress/src/androidTest/java/org/wordpress/android/ui/screenshots/WPScreenshotTest.java index ae2462094c8e..c1620da6d705 100644 --- a/WordPress/src/androidTest/java/org/wordpress/android/ui/screenshots/WPScreenshotTest.java +++ b/WordPress/src/androidTest/java/org/wordpress/android/ui/screenshots/WPScreenshotTest.java @@ -3,7 +3,7 @@ import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import android.support.v7.widget.CardView; -import android.test.suitebuilder.annotation.LargeTest; +import android.support.test.filters.LargeTest; import org.junit.ClassRule; import org.junit.Rule; 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 0e793c3d3421..23856dbd94a5 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 @@ -65,8 +65,8 @@ class ActivityLogListFragment : Fragment() { log_list_view.setEmptyView(actionable_empty_view) log_list_view.addOnScrollListener(object : RecyclerView.OnScrollListener() { - override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) { - if (!recyclerView!!.canScrollVertically(1) && dy != 0) { + override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { + if (!recyclerView.canScrollVertically(1) && dy != 0) { viewModel.onScrolledToBottom() } } 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 7f2206980fb6..9ebc32da02ed 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,10 +1,10 @@ package org.wordpress.android.ui.main -import android.annotation.SuppressLint import android.content.Context import android.support.annotation.DrawableRes import android.support.annotation.IdRes import android.support.annotation.StringRes +import android.support.design.bottomnavigation.LabelVisibilityMode import android.support.design.internal.BottomNavigationItemView import android.support.design.internal.BottomNavigationMenuView import android.support.design.widget.BottomNavigationView @@ -27,8 +27,6 @@ import org.wordpress.android.ui.prefs.AppPrefs import org.wordpress.android.ui.reader.ReaderPostListFragment import org.wordpress.android.util.AniUtils import org.wordpress.android.util.AniUtils.Duration -import org.wordpress.android.util.AppLog -import org.wordpress.android.util.AppLog.T /* * Bottom navigation view and related adapter used by the main activity for the @@ -95,30 +93,8 @@ class WPMainNavigationView @JvmOverloads constructor( currentPosition = AppPrefs.getMainPageIndex() } - /* - * uses reflection to disable "shift mode" so the item are equal width - */ - @SuppressLint("RestrictedApi") private fun disableShiftMode() { - val menuView = getChildAt(0) as BottomNavigationMenuView - try { - menuView.javaClass.getDeclaredField("mShiftingMode").apply { - isAccessible = true - setBoolean(menuView, false) - isAccessible = false - } - for (i in 0 until menuView.childCount) { - (menuView.getChildAt(i) as BottomNavigationItemView).apply { - setShiftingMode(false) - // force the view to update - setChecked(itemData.isChecked) - } - } - } catch (e: NoSuchFieldException) { - AppLog.e(T.MAIN, "Unable to disable shift mode", e) - } catch (e: IllegalAccessException) { - AppLog.e(T.MAIN, "Unable to disable shift mode", e) - } + labelVisibilityMode = LabelVisibilityMode.LABEL_VISIBILITY_LABELED } private fun assignNavigationListeners(assign: Boolean) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/NewSiteCreationActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/NewSiteCreationActivity.kt index 6d61dd82bf89..4cfa6b43ae10 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/NewSiteCreationActivity.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/sitecreation/NewSiteCreationActivity.kt @@ -148,7 +148,7 @@ class NewSiteCreationActivity : AppCompatActivity(), } } - private fun slideInFragment(fragment: Fragment?, tag: String) { + private fun slideInFragment(fragment: Fragment, tag: String) { val fragmentTransaction = supportFragmentManager.beginTransaction() fragmentTransaction.replace(R.id.fragment_container, fragment, tag) if (supportFragmentManager.findFragmentById(R.id.fragment_container) != null) { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsListItemDecoration.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsListItemDecoration.kt index 30c221b80a94..910f3b0e7c32 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsListItemDecoration.kt +++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsListItemDecoration.kt @@ -6,10 +6,10 @@ import android.view.View data class StatsListItemDecoration(val horizontalSpacing: Int, val verticalSpacing: Int, val columnCount: Int) : RecyclerView.ItemDecoration() { - override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State?) { + override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) { super.getItemOffsets(outRect, view, parent, state) val isFirst = parent.getChildAdapterPosition(view) == 0 - val isLast = parent.getChildAdapterPosition(view) == parent.adapter.itemCount - 1 + val isLast = parent.adapter?.let { parent.getChildAdapterPosition(view) == it.itemCount - 1 } ?: false outRect.set( if (columnCount == 1) 2 * horizontalSpacing else horizontalSpacing, if (isFirst) 2 * verticalSpacing else verticalSpacing, diff --git a/WordPress/src/main/java/org/wordpress/android/ui/themes/ThemeBrowserAdapter.java b/WordPress/src/main/java/org/wordpress/android/ui/themes/ThemeBrowserAdapter.java index 121dd13a814b..773a3127489a 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/themes/ThemeBrowserAdapter.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/themes/ThemeBrowserAdapter.java @@ -162,12 +162,10 @@ private void configureCardView(ThemeViewHolder themeViewHolder, boolean isCurren themeViewHolder.mActiveView.setVisibility(View.VISIBLE); themeViewHolder.mCardView.setCardBackgroundColor(resources.getColor(R.color.blue_wordpress)); } else { - themeViewHolder.mDetailsView.setBackgroundColor(resources.getColor( - android.support.v7.cardview.R.color.cardview_light_background)); + themeViewHolder.mDetailsView.setBackgroundColor(resources.getColor(R.color.white)); themeViewHolder.mNameView.setTextColor(resources.getColor(R.color.black)); themeViewHolder.mActiveView.setVisibility(View.GONE); - themeViewHolder.mCardView.setCardBackgroundColor(resources.getColor( - android.support.v7.cardview.R.color.cardview_light_background)); + themeViewHolder.mCardView.setCardBackgroundColor(resources.getColor(R.color.white)); } } diff --git a/WordPress/src/main/res/layout-sw600dp/theme_grid_cardview_header.xml b/WordPress/src/main/res/layout-sw600dp/theme_grid_cardview_header.xml index e2245359cced..d55a92663f98 100644 --- a/WordPress/src/main/res/layout-sw600dp/theme_grid_cardview_header.xml +++ b/WordPress/src/main/res/layout-sw600dp/theme_grid_cardview_header.xml @@ -8,8 +8,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/theme_browser_cardview_margin_large" - android:layout_marginBottom="@dimen/cardview_default_radius" - card_view:cardCornerRadius="@dimen/cardview_default_radius" + android:layout_marginBottom="@dimen/default_cardview_radius" + card_view:cardCornerRadius="@dimen/default_cardview_radius" card_view:cardElevation="@dimen/card_elevation" android:layout_marginStart="@dimen/theme_browser_cardview_margin_large" android:layout_marginEnd="@dimen/theme_browser_cardview_margin_large"> diff --git a/WordPress/src/main/res/layout/edit_post_settings_fragment.xml b/WordPress/src/main/res/layout/edit_post_settings_fragment.xml index cc21a32517f4..3a73df47edb7 100644 --- a/WordPress/src/main/res/layout/edit_post_settings_fragment.xml +++ b/WordPress/src/main/res/layout/edit_post_settings_fragment.xml @@ -17,7 +17,7 @@ + card_view:cardCornerRadius="@dimen/default_cardview_radius"> @@ -75,7 +75,7 @@ style="@style/PostSettingsCardView" android:id="@+id/post_categories_and_tags_card" card_view:cardBackgroundColor="@color/white" - card_view:cardCornerRadius="@dimen/cardview_default_radius"> + card_view:cardCornerRadius="@dimen/default_cardview_radius"> @@ -122,7 +122,7 @@ android:id="@+id/post_featured_image_card_view" style="@style/PostSettingsCardView" card_view:cardBackgroundColor="@color/white" - card_view:cardCornerRadius="@dimen/cardview_default_radius"> + card_view:cardCornerRadius="@dimen/default_cardview_radius"> @@ -159,7 +159,7 @@ + card_view:cardCornerRadius="@dimen/default_cardview_radius"> diff --git a/WordPress/src/main/res/layout/login_epilogue_header.xml b/WordPress/src/main/res/layout/login_epilogue_header.xml index 8243cf4a2398..e2ff112b469c 100644 --- a/WordPress/src/main/res/layout/login_epilogue_header.xml +++ b/WordPress/src/main/res/layout/login_epilogue_header.xml @@ -29,7 +29,7 @@ app:cardBackgroundColor="@color/white" app:cardElevation="@dimen/card_elevation" app:cardUseCompatPadding="true" - app:cardCornerRadius="@dimen/cardview_default_radius"> + app:cardCornerRadius="@dimen/default_cardview_radius"> + card_view:cardCornerRadius="@dimen/default_cardview_radius"> @@ -221,7 +221,7 @@ android:id="@+id/plugin_card_site" style="@style/PluginCardView" card_view:cardBackgroundColor="@color/white" - card_view:cardCornerRadius="@dimen/cardview_default_radius"> + card_view:cardCornerRadius="@dimen/default_cardview_radius"> @@ -260,7 +260,7 @@ + card_view:cardCornerRadius="@dimen/default_cardview_radius"> @@ -319,7 +319,7 @@ style="@style/PluginCardView" android:id="@+id/plugin_wp_org_details_container" card_view:cardBackgroundColor="@color/white" - card_view:cardCornerRadius="@dimen/cardview_default_radius"> + card_view:cardCornerRadius="@dimen/default_cardview_radius"> diff --git a/WordPress/src/main/res/layout/plugin_ratings_cardview.xml b/WordPress/src/main/res/layout/plugin_ratings_cardview.xml index 50a372f288f8..bdc469d13912 100644 --- a/WordPress/src/main/res/layout/plugin_ratings_cardview.xml +++ b/WordPress/src/main/res/layout/plugin_ratings_cardview.xml @@ -5,7 +5,7 @@ xmlns:tools="http://schemas.android.com/tools" style="@style/PluginCardView" card_view:cardBackgroundColor="@color/white" - card_view:cardCornerRadius="@dimen/cardview_default_radius"> + card_view:cardCornerRadius="@dimen/default_cardview_radius"> + card_view:cardCornerRadius="@dimen/default_cardview_radius"> + card_view:cardCornerRadius="@dimen/default_cardview_radius"> + card_view:cardCornerRadius="@dimen/default_cardview_radius"> + card_view:cardCornerRadius="@dimen/default_cardview_radius"> + app:cardCornerRadius="@dimen/default_cardview_radius" > + app:cardCornerRadius="@dimen/default_cardview_radius" > + app:cardCornerRadius="@dimen/default_cardview_radius" > diff --git a/WordPress/src/main/res/layout/site_creation_category_screen.xml b/WordPress/src/main/res/layout/site_creation_category_screen.xml index a6121c8bb1b7..c5b2b047fe1b 100644 --- a/WordPress/src/main/res/layout/site_creation_category_screen.xml +++ b/WordPress/src/main/res/layout/site_creation_category_screen.xml @@ -58,7 +58,7 @@ android:focusable="true" android:foreground="?android:attr/selectableItemBackground" app:cardBackgroundColor="@color/white" - app:cardCornerRadius="@dimen/cardview_default_radius" + app:cardCornerRadius="@dimen/default_cardview_radius" app:cardElevation="@dimen/card_elevation"> + android:layout_margin="@dimen/default_cardview_radius"> diff --git a/WordPress/src/main/res/layout/theme_grid_item.xml b/WordPress/src/main/res/layout/theme_grid_item.xml index 40e66b5887db..5f47d46e97d2 100644 --- a/WordPress/src/main/res/layout/theme_grid_item.xml +++ b/WordPress/src/main/res/layout/theme_grid_item.xml @@ -10,7 +10,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/theme_browser_cardview_margin_large" - card_view:cardCornerRadius="@dimen/cardview_default_radius" + card_view:cardCornerRadius="@dimen/default_cardview_radius" card_view:cardElevation="@dimen/card_elevation" android:layout_marginStart="@dimen/theme_browser_cardview_margin_large" android:layout_marginEnd="@dimen/theme_browser_cardview_margin_large"> @@ -18,7 +18,7 @@ + android:layout_margin="@dimen/default_cardview_radius"> + android:layout_marginTop="@dimen/default_cardview_radius"> 20dp + 2dp + 2dp + 128dp 220dp diff --git a/libs/analytics/WordPressAnalytics/build.gradle b/libs/analytics/WordPressAnalytics/build.gradle index ab9ca5284200..74bccdb6d4df 100644 --- a/libs/analytics/WordPressAnalytics/build.gradle +++ b/libs/analytics/WordPressAnalytics/build.gradle @@ -26,7 +26,7 @@ dependencies { } android { - compileSdkVersion 27 + compileSdkVersion 28 buildToolsVersion "28.0.3" defaultConfig { diff --git a/libs/editor/WordPressEditor/build.gradle b/libs/editor/WordPressEditor/build.gradle index aebae4ecbe2b..cc86ca5b942a 100644 --- a/libs/editor/WordPressEditor/build.gradle +++ b/libs/editor/WordPressEditor/build.gradle @@ -30,7 +30,7 @@ apply from: 'https://gist.githubusercontent.com/hypest/e06f6097065728b6db7b7c462 apply from: 'https://gist.githubusercontent.com/hypest/f526fe0775dedce0ce0133f1400d22a4/raw/0008b271a0d28fc79957fd3c2a027f57e98f796a/wait-jitpack.gradle' android { - compileSdkVersion 27 + compileSdkVersion 28 buildToolsVersion '28.0.3' defaultConfig { @@ -58,9 +58,11 @@ android { } dependencies { - implementation 'com.android.support:appcompat-v7:27.1.1' - implementation 'com.android.support:support-v4:27.1.1' - implementation 'com.android.support:design:27.1.1' + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.android.support:animated-vector-drawable:28.0.0' + implementation 'com.android.support:gridlayout-v7:28.0.0' + implementation 'com.android.support:support-v4:28.0.0' + implementation 'com.android.support:design:28.0.0' implementation 'org.apache.commons:commons-lang3:3.5' implementation 'org.wordpress:utils:1.22' diff --git a/libs/login/WordPressLoginFlow/build.gradle b/libs/login/WordPressLoginFlow/build.gradle index 52086cba4d3c..9d6a5f848430 100644 --- a/libs/login/WordPressLoginFlow/build.gradle +++ b/libs/login/WordPressLoginFlow/build.gradle @@ -17,7 +17,7 @@ repositories { } android { - compileSdkVersion 27 + compileSdkVersion 28 buildToolsVersion "28.0.3" defaultConfig { @@ -35,8 +35,12 @@ dependencies { exclude group: "com.mcxiaoke.volley" } - implementation 'com.android.support:appcompat-v7:27.1.1' - implementation 'com.android.support:design:27.1.1' + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.android.support:animated-vector-drawable:28.0.0' + implementation 'com.android.support:support-media-compat:28.0.0' + implementation 'com.android.support:support-v13:28.0.0' + implementation 'com.android.support:gridlayout-v7:28.0.0' + implementation 'com.android.support:design:28.0.0' api 'com.google.android.gms:play-services-auth:15.0.1' diff --git a/libs/networking/WordPressNetworking/build.gradle b/libs/networking/WordPressNetworking/build.gradle index f43203cf6425..b23211cbb53e 100644 --- a/libs/networking/WordPressNetworking/build.gradle +++ b/libs/networking/WordPressNetworking/build.gradle @@ -18,7 +18,7 @@ apply plugin: 'com.android.library' apply plugin: 'maven' android { - compileSdkVersion 27 + compileSdkVersion 28 buildToolsVersion '28.0.3' defaultConfig { diff --git a/libs/utils/WordPressUtils/build.gradle b/libs/utils/WordPressUtils/build.gradle index 32ede13bd340..fbf37dfd730f 100644 --- a/libs/utils/WordPressUtils/build.gradle +++ b/libs/utils/WordPressUtils/build.gradle @@ -20,8 +20,8 @@ repositories { dependencies { implementation 'org.apache.commons:commons-text:1.1' implementation 'com.mcxiaoke.volley:library:1.0.18' - implementation 'com.android.support:design:27.1.1' - implementation 'com.android.support:recyclerview-v7:27.1.1' + implementation 'com.android.support:design:28.0.0' + implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'org.greenrobot:eventbus:3.0.0' lintChecks 'org.wordpress:lint:1.0.1' @@ -30,7 +30,7 @@ dependencies { android { useLibrary 'org.apache.http.legacy' - compileSdkVersion 27 + compileSdkVersion 28 buildToolsVersion '28.0.3' defaultConfig {