diff --git a/app/build.gradle b/app/build.gradle index 2e6eed1..45cbc91 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -123,7 +123,6 @@ dependencies { implementation "joda-time:joda-time:2.10.6" implementation "org.jsoup:jsoup:1.13.1" implementation "com.airbnb.android:lottie:3.7.0" - implementation "com.ibm.icu:icu4j:64.2" testImplementation 'junit:junit:4.13.1' testImplementation 'androidx.test:core:1.3.0' diff --git a/app/src/main/java/net/ambitious/android/sharebookmarks/data/local/item/ItemDao.kt b/app/src/main/java/net/ambitious/android/sharebookmarks/data/local/item/ItemDao.kt index a1a2836..c6bb132 100644 --- a/app/src/main/java/net/ambitious/android/sharebookmarks/data/local/item/ItemDao.kt +++ b/app/src/main/java/net/ambitious/android/sharebookmarks/data/local/item/ItemDao.kt @@ -23,8 +23,12 @@ interface ItemDao { @Query("SELECT * FROM items WHERE parent_id = :parentId AND active = 1 ORDER BY `order`, upserted DESC") suspend fun getItems(parentId: Long): List - @Query("SELECT * FROM items WHERE url IS NOT NULL AND active = 1 AND (name LIKE :textH OR name LIKE :textK OR name LIKE :textKH OR name LIKE :textHKH) ORDER BY upserted DESC") - suspend fun getSearchItems(textH: String, textK: String, textKH: String, textHKH: String): List + @Query("SELECT * FROM items WHERE url IS NOT NULL AND active = 1 AND (name LIKE :textH OR name LIKE :textK OR name LIKE :textKH) ORDER BY upserted DESC") + suspend fun getSearchItems( + textH: String, + textK: String, + textKH: String + ): List @Query("SELECT * FROM items WHERE url IS NULL AND id != :selfId AND active = 1 AND owner_type IN (0, 1) ORDER BY `order`") suspend fun getFolderItems(selfId: Long): List diff --git a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/faq/FaqActivity.kt b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/faq/FaqActivity.kt index eb3acaa..ee7b0ee 100644 --- a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/faq/FaqActivity.kt +++ b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/faq/FaqActivity.kt @@ -54,7 +54,7 @@ class FaqActivity : BaseActivity(), FaqListAdapter.FaqClickListener { override fun onInquiryClick() { finish() startActivity(Intent(this, InquiryActivity::class.java)) - overridePendingTransition(R.anim.fade_in_top, android.R.anim.fade_out) + overridePendingTransition(android.R.anim.fade_in, R.anim.fade_in_top) } override fun finish() { diff --git a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/home/HomeActivity.kt b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/home/HomeActivity.kt index 7b03d79..7d35bcc 100644 --- a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/home/HomeActivity.kt +++ b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/home/HomeActivity.kt @@ -20,6 +20,7 @@ import androidx.appcompat.widget.SearchView import androidx.core.app.AppLaunchChecker import androidx.core.content.ContextCompat import androidx.core.view.GravityCompat +import androidx.drawerlayout.widget.DrawerLayout import androidx.fragment.app.FragmentContainerView import androidx.navigation.findNavController import androidx.navigation.fragment.findNavController @@ -287,7 +288,7 @@ class HomeActivity : BaseActivity(), OnNavigationItemSelectedListener, NotificationActivity::class.java ) ) - overridePendingTransition(R.anim.slide_in_left, R.anim.slide_in_right) + overridePendingTransition(android.R.anim.fade_in, R.anim.slide_in_left) }, 110) } R.id.menu_login -> { @@ -330,7 +331,7 @@ class HomeActivity : BaseActivity(), OnNavigationItemSelectedListener, analyticsUtils.logMenuTap("other") Handler(Looper.getMainLooper()).postDelayed({ forceUpdateActivityResult.launch(Intent(this@HomeActivity, OtherActivity::class.java)) - overridePendingTransition(R.anim.slide_in_left, R.anim.slide_in_right) + overridePendingTransition(android.R.anim.fade_in, R.anim.slide_in_left) }, 110) } R.id.menu_app_rating -> { @@ -360,14 +361,14 @@ class HomeActivity : BaseActivity(), OnNavigationItemSelectedListener, SettingActivity::class.java ) ) - overridePendingTransition(R.anim.slide_in_left, R.anim.slide_in_right) + overridePendingTransition(android.R.anim.fade_in, R.anim.slide_in_left) }, 110) } R.id.menu_how_to_use -> { analyticsUtils.logMenuTap("how to use") Handler(Looper.getMainLooper()).postDelayed({ startActivity(UsageActivity.createIntent(this@HomeActivity)) - overridePendingTransition(R.anim.slide_in_left, R.anim.slide_in_right) + overridePendingTransition(android.R.anim.fade_in, R.anim.slide_in_left) }, 110) } } @@ -484,6 +485,18 @@ class HomeActivity : BaseActivity(), OnNavigationItemSelectedListener, View.GONE } } + + binding.drawerLayout.addDrawerListener(object : DrawerLayout.DrawerListener { + override fun onDrawerSlide(drawerView: View, slideOffset: Float) {} + + override fun onDrawerOpened(drawerView: View) {} + + override fun onDrawerClosed(drawerView: View) {} + + override fun onDrawerStateChanged(newState: Int) { + closeSearch() + } + }) } private fun errorSnackbar() { diff --git a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/home/HomeViewModel.kt b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/home/HomeViewModel.kt index 6235cb2..ee593f0 100644 --- a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/home/HomeViewModel.kt +++ b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/home/HomeViewModel.kt @@ -6,7 +6,6 @@ import android.widget.ImageView import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.bumptech.glide.Glide -import com.ibm.icu.text.Transliterator import net.ambitious.android.sharebookmarks.data.local.item.Item import net.ambitious.android.sharebookmarks.data.local.item.ItemDao import net.ambitious.android.sharebookmarks.data.remote.etc.EtcApi @@ -69,9 +68,6 @@ class HomeViewModel( private val _breadcrumbsList = arrayListOf>() - private val transFH = Transliterator.getInstance("Fullwidth-Halfwidth") - private val transHK = Transliterator.getInstance("Hiragana-Katakana") - fun setInitialParentId(parentId: Long?) { _parentId = parentId ?: 0L } @@ -278,9 +274,8 @@ class HomeViewModel( } else { itemDao.getSearchItems( "%$text%", - "%${transHK.transliterate(text)}%", - "%${transFH.transliterate(text)}%", - "%${transFH.transliterate(transHK.transliterate(text))}%", + "%${OperationUtils.hiraganaToKatakana(text)}%", + "%${OperationUtils.kanaZenToHan(text)}%" ) } ) diff --git a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/notification/NotificationActivity.kt b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/notification/NotificationActivity.kt index 3ca212b..466d1bc 100644 --- a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/notification/NotificationActivity.kt +++ b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/notification/NotificationActivity.kt @@ -49,7 +49,7 @@ class NotificationActivity : BaseActivity(), NotificationListAdapter.OnNotificat override fun finish() { super.finish() - overridePendingTransition(R.anim.slide_out_right, R.anim.slide_out_left) + overridePendingTransition(R.anim.slide_out_right, android.R.anim.fade_out) } override fun onRowClick(url: String) { diff --git a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/others/OtherActivity.kt b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/others/OtherActivity.kt index c34f86d..1c2221c 100644 --- a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/others/OtherActivity.kt +++ b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/others/OtherActivity.kt @@ -55,7 +55,7 @@ class OtherActivity : BaseActivity() { override fun finish() { super.finish() - overridePendingTransition(R.anim.slide_out_right, R.anim.slide_out_left) + overridePendingTransition(R.anim.slide_out_right, android.R.anim.fade_out) } fun termsOfUseShow() = true.apply { @@ -65,7 +65,12 @@ class OtherActivity : BaseActivity() { setHomeAsUpIndicator(R.drawable.ic_clear_white) } supportFragmentManager.beginTransaction() - .setCustomAnimations(R.anim.fade_in_top, android.R.anim.fade_out, android.R.anim.fade_in, R.anim.fade_out_bottom_fragment) + .setCustomAnimations( + android.R.anim.fade_in, + R.anim.fade_in_top, + android.R.anim.fade_in, + R.anim.fade_out_bottom_fragment + ) .replace(R.id.nav_host_fragment, DetailFragment.newInstance(true)) .addToBackStack(null) .commit() @@ -78,7 +83,12 @@ class OtherActivity : BaseActivity() { setHomeAsUpIndicator(R.drawable.ic_clear_white) } supportFragmentManager.beginTransaction() - .setCustomAnimations(R.anim.fade_in_top, android.R.anim.fade_out, android.R.anim.fade_in, R.anim.fade_out_bottom_fragment) + .setCustomAnimations( + android.R.anim.fade_in, + R.anim.fade_in_top, + android.R.anim.fade_in, + R.anim.fade_out_bottom_fragment + ) .replace(R.id.nav_host_fragment, DetailFragment.newInstance(false)) .addToBackStack(null) .commit() diff --git a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/others/OtherFragment.kt b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/others/OtherFragment.kt index 9ea2751..308ffe6 100644 --- a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/others/OtherFragment.kt +++ b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/others/OtherFragment.kt @@ -57,7 +57,7 @@ class OtherFragment : PreferenceFragmentCompat() { preferenceScreen.findPreference(QUESTIONS)?.setOnPreferenceClickListener { analyticsUtils.logOtherTap("Other", "inquiry") startActivity(Intent(context, FaqActivity::class.java)) - activity?.overridePendingTransition(R.anim.fade_in_top, android.R.anim.fade_out) + activity?.overridePendingTransition(android.R.anim.fade_in, R.anim.fade_in_top) true } } diff --git a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/setting/SettingActivity.kt b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/setting/SettingActivity.kt index 8e2833b..a6d9150 100644 --- a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/setting/SettingActivity.kt +++ b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/setting/SettingActivity.kt @@ -15,6 +15,6 @@ class SettingActivity : BaseActivity() { override fun finish() { super.finish() - overridePendingTransition(R.anim.slide_out_right, R.anim.slide_out_left) + overridePendingTransition(R.anim.slide_out_right, android.R.anim.fade_out) } } \ No newline at end of file diff --git a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/usage/UsageActivity.kt b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/usage/UsageActivity.kt index ca33114..e97257d 100644 --- a/app/src/main/java/net/ambitious/android/sharebookmarks/ui/usage/UsageActivity.kt +++ b/app/src/main/java/net/ambitious/android/sharebookmarks/ui/usage/UsageActivity.kt @@ -43,7 +43,7 @@ class UsageActivity : BaseActivity() { if (fromDialog) { overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out) } else { - overridePendingTransition(R.anim.slide_out_right, R.anim.slide_out_left) + overridePendingTransition(R.anim.slide_out_right, android.R.anim.fade_out) } } diff --git a/app/src/main/java/net/ambitious/android/sharebookmarks/util/OperationUtils.kt b/app/src/main/java/net/ambitious/android/sharebookmarks/util/OperationUtils.kt index 367b753..a7aae3d 100644 --- a/app/src/main/java/net/ambitious/android/sharebookmarks/util/OperationUtils.kt +++ b/app/src/main/java/net/ambitious/android/sharebookmarks/util/OperationUtils.kt @@ -102,6 +102,47 @@ object OperationUtils { return contactList } + fun hiraganaToKatakana(str: String) = + str.map { + if (it.code in 0x3041..0x3093) { + it + 0x60 + } else { + it + } + }.joinToString("") + + fun kanaZenToHan(str: String) = + hiraganaToKatakana(str) + .map { + if (it.code in ZEN[0].code..ZEN.last().code) { + HAN[it.code - ZEN[0].code] + } else { + it + } + }.joinToString("") + + private val ZEN = listOf( + 'ァ', 'ア', 'ィ', 'イ', 'ゥ', + 'ウ', 'ェ', 'エ', 'ォ', 'オ', 'カ', 'ガ', 'キ', 'ギ', 'ク', 'グ', 'ケ', 'ゲ', + 'コ', 'ゴ', 'サ', 'ザ', 'シ', 'ジ', 'ス', 'ズ', 'セ', 'ゼ', 'ソ', 'ゾ', 'タ', + 'ダ', 'チ', 'ヂ', 'ッ', 'ツ', 'ヅ', 'テ', 'デ', 'ト', 'ド', 'ナ', 'ニ', 'ヌ', + 'ネ', 'ノ', 'ハ', 'バ', 'パ', 'ヒ', 'ビ', 'ピ', 'フ', 'ブ', 'プ', 'ヘ', 'ベ', + 'ペ', 'ホ', 'ボ', 'ポ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ャ', 'ヤ', 'ュ', 'ユ', + 'ョ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ヮ', 'ワ', 'ヰ', 'ヱ', 'ヲ', 'ン', + 'ヴ', 'ヵ', 'ヶ' + ) + + private val HAN = listOf( + "ァ", "ア", "ィ", "イ", "ゥ", + "ウ", "ェ", "エ", "ォ", "オ", "カ", "ガ", "キ", "ギ", "ク", "グ", "ケ", + "ゲ", "コ", "ゴ", "サ", "ザ", "シ", "ジ", "ス", "ズ", "セ", "ゼ", "ソ", + "ゾ", "タ", "ダ", "チ", "ヂ", "ッ", "ツ", "ヅ", "テ", "デ", "ト", "ド", + "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "バ", "パ", "ヒ", "ビ", "ピ", "フ", + "ブ", "プ", "ヘ", "ベ", "ペ", "ホ", "ボ", "ポ", "マ", "ミ", "ム", "メ", + "モ", "ャ", "ヤ", "ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", + "ワ", "イ", "エ", "ヲ", "ン", "ヴ", "カ", "ケ" + ) + private fun getUserImage(contentResolver: ContentResolver, contactId: Long) = Contacts.openContactPhotoInputStream( contentResolver, diff --git a/app/src/main/res/anim/fade_in_top.xml b/app/src/main/res/anim/fade_in_top.xml index ded4032..e6aee3f 100644 --- a/app/src/main/res/anim/fade_in_top.xml +++ b/app/src/main/res/anim/fade_in_top.xml @@ -1,9 +1,5 @@ - + android:duration="@android:integer/config_shortAnimTime"/> \ No newline at end of file diff --git a/app/src/main/res/anim/fade_out_bottom.xml b/app/src/main/res/anim/fade_out_bottom.xml index 10da340..7270eb5 100644 --- a/app/src/main/res/anim/fade_out_bottom.xml +++ b/app/src/main/res/anim/fade_out_bottom.xml @@ -1,9 +1,9 @@ + android:duration="@android:integer/config_shortAnimTime"/> + android:duration="@android:integer/config_shortAnimTime" /> \ No newline at end of file diff --git a/app/src/main/res/anim/fade_out_bottom_fragment.xml b/app/src/main/res/anim/fade_out_bottom_fragment.xml index b3634f4..0da44c0 100644 --- a/app/src/main/res/anim/fade_out_bottom_fragment.xml +++ b/app/src/main/res/anim/fade_out_bottom_fragment.xml @@ -1,9 +1,9 @@ + android:duration="@android:integer/config_shortAnimTime"/> + android:duration="@android:integer/config_shortAnimTime" /> \ No newline at end of file diff --git a/app/src/main/res/anim/slide_in_left.xml b/app/src/main/res/anim/slide_in_left.xml index 2e5314b..5f8627f 100644 --- a/app/src/main/res/anim/slide_in_left.xml +++ b/app/src/main/res/anim/slide_in_left.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/anim/slide_in_right.xml b/app/src/main/res/anim/slide_in_right.xml deleted file mode 100644 index 8c2ffa5..0000000 --- a/app/src/main/res/anim/slide_in_right.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/anim/slide_out_left.xml b/app/src/main/res/anim/slide_out_left.xml deleted file mode 100644 index 18d44ac..0000000 --- a/app/src/main/res/anim/slide_out_left.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/app/src/main/res/anim/slide_out_right.xml b/app/src/main/res/anim/slide_out_right.xml index 28abfa3..3f7c6d7 100644 --- a/app/src/main/res/anim/slide_out_right.xml +++ b/app/src/main/res/anim/slide_out_right.xml @@ -1,5 +1,5 @@ + android:duration="@android:integer/config_shortAnimTime"/> \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 8f32bd6..a0f14f1 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -140,7 +140,7 @@ 全データ更新を行います この機能は緊急用です。\n管理者より案内がない場合は使用をお控えください。\n\n端末のデータを全て削除し、サーバーから全データを取得しますか? 理解のうえで実行 - 読み込みに失敗しました。\n通信化環境をご確認ください。 + 読み込みに失敗しました。\nWi-Fi やモバイル通信の状況をご確認下さい。 このアプリがあれば、いつも使っているレシピもお気に入りのサイトも画像付きで自由に保存してシェア(共有)できます! diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 921198e..5c1d233 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -140,7 +140,7 @@ Update all data This feature is for emergency use only.\nPlease refrain from using it unless you are informed by the administrator.\n\nDo you want to delete all data on the device and get all data from the server? Execute with understanding - Failed to load.\nPlease check your communication environment. + Failed to load.\nPlease check the status of your Wi-Fi and mobile communications. With this app, you\'re free to save and share both your regular recipes and your favorite sites, complete with images! diff --git a/app/src/test/java/net/ambitious/android/sharebookmarks/util/OperationUtilsUnitTest.kt b/app/src/test/java/net/ambitious/android/sharebookmarks/util/OperationUtilsUnitTest.kt index 7572eda..cbfdadd 100644 --- a/app/src/test/java/net/ambitious/android/sharebookmarks/util/OperationUtilsUnitTest.kt +++ b/app/src/test/java/net/ambitious/android/sharebookmarks/util/OperationUtilsUnitTest.kt @@ -32,8 +32,8 @@ class OperationUtilsUnitTest { fun createThumbnailUrlTest() { // favicon 取得 URL 生成 assertThat( - OperationUtils.createThumbnailUrl("https://bvlion-app.firebaseapp.com"), - `is`("${Const.GOOGLE_FAVICON_URL}bvlion-app.firebaseapp.com") + OperationUtils.createThumbnailUrl("https://bvlion-app.firebaseapp.com"), + `is`("${Const.GOOGLE_FAVICON_URL}bvlion-app.firebaseapp.com") ) // null @@ -54,8 +54,8 @@ class OperationUtilsUnitTest { runBlocking { // OGP 取得 assertThat( - OperationUtils.getOgpImage("https://www.ambitious-i.net", etcApi), - `is`("https://www.ambitious-i.net/img/main.jpg") + OperationUtils.getOgpImage("https://www.ambitious-i.net", etcApi), + `is`("https://www.ambitious-i.net/img/main.jpg") ) // URL 形式でない diff --git a/app/src/test/java/net/ambitious/android/sharebookmarks/util/StringConvertTest.kt b/app/src/test/java/net/ambitious/android/sharebookmarks/util/StringConvertTest.kt new file mode 100644 index 0000000..5090f2e --- /dev/null +++ b/app/src/test/java/net/ambitious/android/sharebookmarks/util/StringConvertTest.kt @@ -0,0 +1,62 @@ +package net.ambitious.android.sharebookmarks.util + +import androidx.arch.core.executor.testing.InstantTaskExecutorRule +import org.hamcrest.MatcherAssert +import org.hamcrest.core.Is.`is` +import org.junit.Rule +import org.junit.Test +import org.junit.rules.TestRule + +class StringConvertTest { + @get:Rule + val rule: TestRule = InstantTaskExecutorRule() + + @Test + fun hiraganaToKatakanaTest() { + MatcherAssert.assertThat( + OperationUtils.hiraganaToKatakana("ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞ"), + `is`("ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾ") + ) + + MatcherAssert.assertThat( + OperationUtils.hiraganaToKatakana("ただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽ"), + `is`("タダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポ") + ) + + MatcherAssert.assertThat( + OperationUtils.hiraganaToKatakana("まみむめもゃやゅゆょよらりるれろゎわをん"), + `is`("マミムメモャヤュユョヨラリルレロヮワヲン") + ) + } + + @Test + fun hiraganaToKatakanaHanTest() { + MatcherAssert.assertThat( + OperationUtils.kanaZenToHan("ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞ"), + `is`("ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾ") + ) + + MatcherAssert.assertThat( + OperationUtils.kanaZenToHan("ただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽ"), + `is`("タダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポ") + ) + + MatcherAssert.assertThat( + OperationUtils.kanaZenToHan("まみむめもゃやゅゆょよらりるれろゎわをん"), + `is`("マミムメモャヤュユョヨラリルレロワワヲン") + ) + } + + @Test + fun mixTest() { + MatcherAssert.assertThat( + OperationUtils.hiraganaToKatakana("テストてすとテスト"), + `is`("テストテストテスト") + ) + + MatcherAssert.assertThat( + OperationUtils.kanaZenToHan("テストてすとテスト"), + `is`("テストテストテスト") + ) + } +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 9f9d243..296985b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,11 @@ apply from: 'dependencies/ext.gradle' buildscript { - ext.kotlin_version = '1.5.0' + ext.kotlin_version = '1.5.10' ext.navigation_version = '2.3.5' ext.room_version = '2.3.0' ext.analytics_version = '19.0.0' - ext.crashlytics_version = '18.0.0' + ext.crashlytics_version = '18.0.1' ext.ads_version = '20.1.0' ext.remote_config_version = '21.0.0' ext.messaging_version = '22.0.0' @@ -26,7 +26,7 @@ buildscript { classpath 'com.android.tools.build:gradle:4.2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.8' - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.6.1' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.0' classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4' } }