diff --git a/build.gradle b/build.gradle index 143e57b76..9b278e044 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { dependencies { classpath "com.android.tools.build:gradle:$versions.androidGradlePlugin" - + classpath 'com.google.gms:google-services:4.3.10' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/config/quality/quality.gradle b/config/quality/quality.gradle index f7f6f45ec..4de8b67ff 100755 --- a/config/quality/quality.gradle +++ b/config/quality/quality.gradle @@ -11,7 +11,6 @@ */ apply plugin: 'checkstyle' -apply plugin: 'findbugs' apply plugin: 'pmd' dependencies { @@ -38,35 +37,6 @@ task checkstyle(type: Checkstyle, group: 'Verification', description: 'Runs code classpath = files() } -task findbugs(type: FindBugs, - group: 'Verification', - description: 'Inspect java bytecode for bugs', - dependsOn: ['compileDebugSources', 'compileReleaseSources']) { - - ignoreFailures = false - effort = "max" - reportLevel = "high" - excludeFilter = new File("$qualityConfigDir/findbugs/android-exclude-filter.xml") - classes = files("$project.rootDir/folioreader/build/intermediates/javac") - - source 'src' - include '**/*.java' - exclude '**/gen/**' - - reports { - xml.enabled = false - html.enabled = true - xml { - destination = file("$reportsDir/findbugs/findbugs.xml") - } - html { - destination = file("$reportsDir/findbugs/findbugs.html") - } - } - - classpath = files() -} - task pmd(type: Pmd, group: 'Verification', description: 'Inspect sourcecode for bugs') { ruleSetFiles = files("$qualityConfigDir/pmd/pmd-ruleset.xml") diff --git a/folioreader/AndroidManifest.xml b/folioreader/AndroidManifest.xml index 96e7be6ee..0ba6101f2 100644 --- a/folioreader/AndroidManifest.xml +++ b/folioreader/AndroidManifest.xml @@ -28,6 +28,7 @@ android:theme="@style/AppTheme.NoActionBar" /> diff --git a/folioreader/bintray/installv1.gradle b/folioreader/bintray/installv1.gradle deleted file mode 100644 index 039611584..000000000 --- a/folioreader/bintray/installv1.gradle +++ /dev/null @@ -1,42 +0,0 @@ -apply plugin: 'com.github.dcendents.android-maven' - -group = publishedGroupId // Maven Group ID for the artifact - -install { - repositories.mavenInstaller { - // This generates POM.xml with proper parameters - pom { - project { - packaging 'aar' - groupId publishedGroupId - artifactId artifact - - // Add your description here - name libraryName - description libraryDescription - url siteUrl - - // Set your license - licenses { - license { - name licenseName - url licenseUrl - } - } - developers { - developer { - id developerId - name developerName - email developerEmail - } - } - scm { - connection gitUrl - developerConnection gitUrl - url siteUrl - - } - } - } - } -} diff --git a/folioreader/build.gradle b/folioreader/build.gradle index f41712cc4..b189c5d17 100644 --- a/folioreader/build.gradle +++ b/folioreader/build.gradle @@ -1,6 +1,5 @@ apply plugin: 'com.android.library' apply from: '../config/quality/quality.gradle' -apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -76,7 +75,6 @@ android { } } -apply from: '../folioreader/bintray/installv1.gradle' dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') @@ -84,7 +82,7 @@ dependencies { implementation "androidx.constraintlayout:constraintlayout:$versions.constraintLayout" implementation "androidx.recyclerview:recyclerview:$versions.recyclerview" implementation "com.google.android.material:material:$versions.material" - testImplementation 'junit:junit:4.12' + testImplementation 'junit:junit:4.13.1' implementation 'org.slf4j:slf4j-android:1.7.25' implementation 'com.daimajia.swipelayout:library:1.2.0@aar' diff --git a/folioreader/res/layout/progress_dialog.xml b/folioreader/res/layout/progress_dialog.xml index 0d823fe0e..7f7d5ee62 100644 --- a/folioreader/res/layout/progress_dialog.xml +++ b/folioreader/res/layout/progress_dialog.xml @@ -14,7 +14,7 @@ android:id="@+id/loading" android:layout_width="wrap_content" android:layout_height="wrap_content" - style="?android:attr/android:progressBarStyle" /> + style="?android:attr/progressBarStyle" /> { + if (status != TextToSpeech.ERROR && mTextToSpeech!=null) { + mTextToSpeech.setLanguage(Locale.UK); + mTextToSpeech.setSpeechRate(0.70f); + } + if(mTextToSpeech!=null){ + mTextToSpeech.setOnUtteranceProgressListener( + new UtteranceProgressListener() { + @Override + public void onStart(String utteranceId) { + + } - mTextToSpeech.setOnUtteranceCompletedListener( - new TextToSpeech.OnUtteranceCompletedListener() { @Override - public void onUtteranceCompleted(String utteranceId) { - ((AppCompatActivity) context).runOnUiThread(new Runnable() { - @Override - public void run() { - if (mIsSpeaking) { - callbacks.highLightTTS(); - } + public void onDone(String utteranceId) { + ((AppCompatActivity) context).runOnUiThread(() -> { + if (mIsSpeaking) { + callbacks.highLightTTS(); } }); } + + @Override + public void onError(String utteranceId) { + + } }); } }); diff --git a/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivity.kt b/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivity.kt index 8df26fbe8..8a5bd9eff 100644 --- a/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivity.kt +++ b/folioreader/src/main/java/com/folioreader/ui/activity/FolioActivity.kt @@ -785,6 +785,7 @@ class FolioActivity : AppCompatActivity(), FolioActivityCallback, MediaControlle } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) if (requestCode == RequestCode.SEARCH.value) { Log.v(LOG_TAG, "-> onActivityResult -> " + RequestCode.SEARCH) @@ -815,11 +816,11 @@ class FolioActivity : AppCompatActivity(), FolioActivityCallback, MediaControlle val type = data.getStringExtra(TYPE) if (type == CHAPTER_SELECTED) { - goToChapter(data.getStringExtra(SELECTED_CHAPTER_POSITION)) + goToChapter(data.getStringExtra(SELECTED_CHAPTER_POSITION)!!) } else if (type == HIGHLIGHT_SELECTED) { val highlightImpl = data.getParcelableExtra(HIGHLIGHT_ITEM) - currentChapterIndex = highlightImpl.pageNumber + currentChapterIndex = highlightImpl!!.pageNumber mFolioPageViewPager!!.currentItem = currentChapterIndex val folioPageFragment = currentFragment ?: return folioPageFragment.scrollToHighlightId(highlightImpl.rangy) diff --git a/folioreader/src/main/java/com/folioreader/ui/activity/SearchActivity.kt b/folioreader/src/main/java/com/folioreader/ui/activity/SearchActivity.kt index 01cf904a5..59d3680d7 100644 --- a/folioreader/src/main/java/com/folioreader/ui/activity/SearchActivity.kt +++ b/folioreader/src/main/java/com/folioreader/ui/activity/SearchActivity.kt @@ -127,7 +127,7 @@ class SearchActivity : AppCompatActivity(), OnItemClickListener { } spineSize = intent.getIntExtra(BUNDLE_SPINE_SIZE, 0) - searchUri = intent.getParcelableExtra(BUNDLE_SEARCH_URI) + searchUri = intent.getParcelableExtra(BUNDLE_SEARCH_URI)!! searchAdapter = SearchAdapter(this) searchAdapter.onItemClickListener = this @@ -155,10 +155,11 @@ class SearchActivity : AppCompatActivity(), OnItemClickListener { } override fun onNewIntent(intent: Intent) { + super.onNewIntent(intent) Log.v(LOG_TAG, "-> onNewIntent") if (intent.hasExtra(BUNDLE_SEARCH_URI)) { - searchUri = intent.getParcelableExtra(BUNDLE_SEARCH_URI) + searchUri = intent.getParcelableExtra(BUNDLE_SEARCH_URI)!! } else { intent.putExtra(BUNDLE_SEARCH_URI, searchUri) intent.putExtra(BUNDLE_SPINE_SIZE, spineSize) @@ -173,7 +174,7 @@ class SearchActivity : AppCompatActivity(), OnItemClickListener { private fun handleSearch() { Log.v(LOG_TAG, "-> handleSearch") - val query: String = intent.getStringExtra(SearchManager.QUERY) + val query: String = intent.getStringExtra(SearchManager.QUERY)!! val newDataBundle = Bundle() newDataBundle.putString(ListViewType.KEY, ListViewType.PAGINATION_IN_PROGRESS_VIEW.toString()) newDataBundle.putParcelableArrayList("DATA", ArrayList()) @@ -288,9 +289,9 @@ class SearchActivity : AppCompatActivity(), OnItemClickListener { return true } - override fun onOptionsItemSelected(item: MenuItem?): Boolean { + override fun onOptionsItemSelected(item: MenuItem): Boolean { - val itemId = item?.itemId + val itemId = item.itemId if (itemId == R.id.itemSearch) { Log.v(LOG_TAG, "-> onOptionsItemSelected -> ${item.title}") diff --git a/folioreader/src/main/java/com/folioreader/ui/fragment/FolioPageFragment.kt b/folioreader/src/main/java/com/folioreader/ui/fragment/FolioPageFragment.kt index e597f84e9..644ecb4b3 100644 --- a/folioreader/src/main/java/com/folioreader/ui/fragment/FolioPageFragment.kt +++ b/folioreader/src/main/java/com/folioreader/ui/fragment/FolioPageFragment.kt @@ -375,9 +375,9 @@ class FolioPageFragment : Fragment(), mWebview!!.addJavascriptInterface(this, "Highlight") mWebview!!.addJavascriptInterface(this, "FolioPageFragment") - mWebview!!.addJavascriptInterface(webViewPager, "WebViewPager") - mWebview!!.addJavascriptInterface(loadingView, "LoadingView") - mWebview!!.addJavascriptInterface(mWebview, "FolioWebView") + mWebview!!.addJavascriptInterface(webViewPager!!, "WebViewPager") + mWebview!!.addJavascriptInterface(loadingView!!, "LoadingView") + mWebview!!.addJavascriptInterface(mWebview!!, "FolioWebView") mWebview!!.setScrollListener(object : FolioWebView.ScrollListener { override fun onScrollChange(percent: Int) { @@ -428,7 +428,7 @@ class FolioPageFragment : Fragment(), mWebview!!.loadUrl(callHighlightSearchLocator) } else if (isCurrentFragment) { - val cfi = lastReadLocator!!.locations.cfi + val cfi = lastReadLocator?.locations?.cfi mWebview!!.loadUrl(String.format(getString(R.string.callScrollToCfi), cfi)) } else { diff --git a/folioreader/src/main/java/com/folioreader/ui/view/FolioAppBarLayout.kt b/folioreader/src/main/java/com/folioreader/ui/view/FolioAppBarLayout.kt index d9c17483d..e30bf3513 100644 --- a/folioreader/src/main/java/com/folioreader/ui/view/FolioAppBarLayout.kt +++ b/folioreader/src/main/java/com/folioreader/ui/view/FolioAppBarLayout.kt @@ -17,8 +17,8 @@ class FolioAppBarLayout : AppBarLayout { var navigationBarHeight: Int = 0 var insets: Rect? = null - constructor(context: Context?) : super(context) - constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) { + constructor(context: Context) : super(context) + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { ViewCompat.setOnApplyWindowInsetsListener(this) { _, insets -> Log.v(LOG_TAG, "-> onApplyWindowInsets") diff --git a/folioreader/src/main/java/com/folioreader/ui/view/FolioSearchView.kt b/folioreader/src/main/java/com/folioreader/ui/view/FolioSearchView.kt index 706502956..9d213c58c 100644 --- a/folioreader/src/main/java/com/folioreader/ui/view/FolioSearchView.kt +++ b/folioreader/src/main/java/com/folioreader/ui/view/FolioSearchView.kt @@ -25,9 +25,9 @@ class FolioSearchView : SearchView { private lateinit var searchAutoComplete: SearchView.SearchAutoComplete - constructor(context: Context?) : super(context) - constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) - constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) + constructor(context: Context) : super(context) + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) fun init(componentName: ComponentName, config: Config) { Log.v(LOG_TAG, "-> init") diff --git a/folioreader/src/main/java/com/folioreader/ui/view/FolioWebView.kt b/folioreader/src/main/java/com/folioreader/ui/view/FolioWebView.kt index e6416d52f..0ef7ab902 100644 --- a/folioreader/src/main/java/com/folioreader/ui/view/FolioWebView.kt +++ b/folioreader/src/main/java/com/folioreader/ui/view/FolioWebView.kt @@ -156,13 +156,23 @@ class FolioWebView : WebView { private inner class HorizontalGestureListener : GestureDetector.SimpleOnGestureListener() { - override fun onScroll(e1: MotionEvent?, e2: MotionEvent?, distanceX: Float, distanceY: Float): Boolean { + override fun onScroll( + e1: MotionEvent?, + e2: MotionEvent?, + distanceX: Float, + distanceY: Float + ): Boolean { //Log.d(LOG_TAG, "-> onScroll -> e1 = " + e1 + ", e2 = " + e2 + ", distanceX = " + distanceX + ", distanceY = " + distanceY); lastScrollType = LastScrollType.USER return false } - override fun onFling(e1: MotionEvent?, e2: MotionEvent?, velocityX: Float, velocityY: Float): Boolean { + override fun onFling( + e1: MotionEvent?, + e2: MotionEvent?, + velocityX: Float, + velocityY: Float + ): Boolean { //Log.d(LOG_TAG, "-> onFling -> e1 = " + e1 + ", e2 = " + e2 + ", velocityX = " + velocityX + ", velocityY = " + velocityY); if (!webViewPager.isScrolling) { @@ -171,7 +181,7 @@ class FolioWebView : WebView { //Log.d(LOG_TAG, "-> onFling -> completing scroll"); uiHandler.postDelayed({ // Delayed to avoid inconsistency of scrolling in WebView - scrollTo(getScrollXPixelsForPage(webViewPager!!.currentItem), 0) + scrollTo(getScrollXPixelsForPage(webViewPager.currentItem), 0) }, 100) } @@ -190,7 +200,7 @@ class FolioWebView : WebView { @JavascriptInterface fun dismissPopupWindow(): Boolean { - Log.d(LOG_TAG, "-> dismissPopupWindow -> " + parentFragment.spineItem?.href) + Log.d(LOG_TAG, "-> dismissPopupWindow -> " + parentFragment.spineItem.href) val wasShowing = popupWindow.isShowing if (Looper.getMainLooper().thread == Thread.currentThread()) { popupWindow.dismiss() @@ -198,7 +208,7 @@ class FolioWebView : WebView { uiHandler.post { popupWindow.dismiss() } } selectionRect = Rect() - uiHandler.removeCallbacks(isScrollingRunnable) + isScrollingRunnable?.let { uiHandler.removeCallbacks(it) } isScrollingCheckDuration = 0 return wasShowing } @@ -212,13 +222,23 @@ class FolioWebView : WebView { private inner class VerticalGestureListener : GestureDetector.SimpleOnGestureListener() { - override fun onScroll(e1: MotionEvent?, e2: MotionEvent?, distanceX: Float, distanceY: Float): Boolean { + override fun onScroll( + e1: MotionEvent?, + e2: MotionEvent?, + distanceX: Float, + distanceY: Float + ): Boolean { //Log.v(LOG_TAG, "-> onScroll -> e1 = " + e1 + ", e2 = " + e2 + ", distanceX = " + distanceX + ", distanceY = " + distanceY); lastScrollType = LastScrollType.USER return false } - override fun onFling(e1: MotionEvent?, e2: MotionEvent?, velocityX: Float, velocityY: Float): Boolean { + override fun onFling( + e1: MotionEvent?, + e2: MotionEvent?, + velocityX: Float, + velocityY: Float + ): Boolean { //Log.v(LOG_TAG, "-> onFling -> e1 = " + e1 + ", e2 = " + e2 + ", velocityX = " + velocityX + ", velocityY = " + velocityY); lastScrollType = LastScrollType.USER return false @@ -227,7 +247,11 @@ class FolioWebView : WebView { constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet) : super(context, attrs) - constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) + constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) private fun init() { Log.v(LOG_TAG, "-> init") @@ -315,7 +339,8 @@ class FolioWebView : WebView { R.id.copySelection -> { Log.v(LOG_TAG, "-> onTextSelectionItemClicked -> copySelection -> $selectedText") UiUtil.copyToClipboard(context, selectedText) - Toast.makeText(context, context.getString(R.string.copied), Toast.LENGTH_SHORT).show() + Toast.makeText(context, context.getString(R.string.copied), Toast.LENGTH_SHORT) + .show() } R.id.shareSelection -> { Log.v(LOG_TAG, "-> onTextSelectionItemClicked -> shareSelection -> $selectedText") @@ -336,7 +361,10 @@ class FolioWebView : WebView { val bundle = Bundle() bundle.putString(Constants.SELECTED_WORD, selectedText?.trim()) dictionaryFragment.arguments = bundle - dictionaryFragment.show(parentFragment.fragmentManager!!, DictionaryFragment::class.java.name) + dictionaryFragment.show( + parentFragment.requireFragmentManager(), + DictionaryFragment::class.java.name + ) } private fun onHighlightColorItemsClicked(style: HighlightStyle, isAlreadyCreated: Boolean) { @@ -580,7 +608,8 @@ class FolioWebView : WebView { if (Build.VERSION.SDK_INT < 23) { val folioActivityRef: WeakReference = folioActivityCallback.activity - val mWindowManagerField = ReflectionUtils.findField(FolioActivity::class.java, "mWindowManager") + val mWindowManagerField = + ReflectionUtils.findField(FolioActivity::class.java, "mWindowManager") mWindowManagerField.isAccessible = true val mWindowManager = mWindowManagerField.get(folioActivityRef.get()) @@ -596,7 +625,8 @@ class FolioWebView : WebView { val config = AppUtil.getSavedConfig(context)!! for (view in mViews) { - val handleViewClass = Class.forName("com.android.org.chromium.content.browser.input.HandleView") + val handleViewClass = + Class.forName("com.android.org.chromium.content.browser.input.HandleView") if (handleViewClass.isInstance(view)) { val mDrawableField = ReflectionUtils.findField(handleViewClass, "mDrawable") @@ -608,7 +638,8 @@ class FolioWebView : WebView { } else { val folioActivityRef: WeakReference = folioActivityCallback.activity - val mWindowManagerField = ReflectionUtils.findField(FolioActivity::class.java, "mWindowManager") + val mWindowManagerField = + ReflectionUtils.findField(FolioActivity::class.java, "mWindowManager") mWindowManagerField.isAccessible = true val mWindowManager = mWindowManagerField.get(folioActivityRef.get()) @@ -624,7 +655,8 @@ class FolioWebView : WebView { val config = AppUtil.getSavedConfig(context)!! for (view in mViews) { - val popupDecorViewClass = Class.forName("android.widget.PopupWindow\$PopupDecorView") + val popupDecorViewClass = + Class.forName("android.widget.PopupWindow\$PopupDecorView") if (!popupDecorViewClass.isInstance(view)) continue @@ -636,7 +668,10 @@ class FolioWebView : WebView { //val pathClassLoader = PathClassLoader("/system/app/Chrome/Chrome.apk", ClassLoader.getSystemClassLoader()) val pathClassLoader = - PathClassLoader("/system/app/Chrome/Chrome.apk", folioActivityRef.get()?.classLoader) + PathClassLoader( + "/system/app/Chrome/Chrome.apk", + folioActivityRef.get()?.classLoader + ) val popupTouchHandleDrawableClass = Class.forName( "org.chromium.android_webview.PopupTouchHandleDrawable", @@ -646,7 +681,8 @@ class FolioWebView : WebView { //if (!popupTouchHandleDrawableClass.isInstance(mChildren[0])) // continue - val mDrawableField = ReflectionUtils.findField(popupTouchHandleDrawableClass, "mDrawable") + val mDrawableField = + ReflectionUtils.findField(popupTouchHandleDrawableClass, "mDrawable") mDrawableField.isAccessible = true val mDrawable = mDrawableField.get(mChildren[0]) as Drawable UiUtil.setColorIntToDrawable(config.themeColor, mDrawable) @@ -678,7 +714,7 @@ class FolioWebView : WebView { Log.i(LOG_TAG, "-> currentSelectionRect doesn't intersects viewportRect") uiHandler.post { popupWindow.dismiss() - uiHandler.removeCallbacks(isScrollingRunnable) + isScrollingRunnable?.let { uiHandler.removeCallbacks(it) } } return } @@ -770,7 +806,7 @@ class FolioWebView : WebView { oldScrollY = scrollY isScrollingRunnable = Runnable { - uiHandler.removeCallbacks(isScrollingRunnable) + isScrollingRunnable?.let { uiHandler.removeCallbacks(it) } val currentScrollX = scrollX val currentScrollY = scrollY val inTouchMode = lastTouchAction == MotionEvent.ACTION_DOWN || @@ -791,13 +827,23 @@ class FolioWebView : WebView { oldScrollY = currentScrollY isScrollingCheckDuration += IS_SCROLLING_CHECK_TIMER if (isScrollingCheckDuration < IS_SCROLLING_CHECK_MAX_DURATION && !destroyed) - uiHandler.postDelayed(isScrollingRunnable, IS_SCROLLING_CHECK_TIMER.toLong()) + isScrollingRunnable?.let { + uiHandler.postDelayed( + it, + IS_SCROLLING_CHECK_TIMER.toLong() + ) + } } } - uiHandler.removeCallbacks(isScrollingRunnable) + isScrollingRunnable?.let { uiHandler.removeCallbacks(it) } isScrollingCheckDuration = 0 if (!destroyed) - uiHandler.postDelayed(isScrollingRunnable, IS_SCROLLING_CHECK_TIMER.toLong()) + isScrollingRunnable?.let { + uiHandler.postDelayed( + it, + IS_SCROLLING_CHECK_TIMER.toLong() + ) + } } } diff --git a/folioreader/src/main/java/com/folioreader/util/AppUtil.kt b/folioreader/src/main/java/com/folioreader/util/AppUtil.kt index 9b7958f44..b569d7278 100644 --- a/folioreader/src/main/java/com/folioreader/util/AppUtil.kt +++ b/folioreader/src/main/java/com/folioreader/util/AppUtil.kt @@ -102,7 +102,7 @@ class AppUtil { obj.toString() ) } catch (e: JSONException) { - Log.e(LOG_TAG, e.message) + Log.e(LOG_TAG, e.message!!) } } @@ -115,7 +115,7 @@ class AppUtil { val jsonObject = JSONObject(json) return Config(jsonObject) } catch (e: JSONException) { - Log.e(LOG_TAG, e.message) + Log.e(LOG_TAG, e.message!!) return null } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 57054cde5..8a7cad02b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip diff --git a/sample/build.gradle b/sample/build.gradle index 54caa7c76..b33956ba3 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -20,6 +20,7 @@ android { buildTypes { release { minifyEnabled false + shrinkResources false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -27,6 +28,13 @@ android { dexOptions { javaMaxHeapSize "4G" } + compileOptions { + sourceCompatibility = "1.8" + targetCompatibility = "1.8" + } + kotlinOptions { + jvmTarget = '1.8' + } packagingOptions { exclude 'META-INF/ASL2.0' @@ -52,9 +60,9 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation "androidx.appcompat:appcompat:$versions.appcompat" implementation "androidx.constraintlayout:constraintlayout:$versions.constraintLayout" - testImplementation 'junit:junit:4.12' - androidTestImplementation "androidx.test.ext:junit:1.1.1" - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + testImplementation 'junit:junit:4.13.1' + androidTestImplementation "androidx.test.ext:junit:1.1.3" + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' implementation project(':folioreader') //implementation "com.folioreader:folioreader:$versions.folioreaderSdk" diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index 314c99e98..3367bb7ef 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -12,6 +12,7 @@ android:theme="@style/AppTheme"> diff --git a/versions.gradle b/versions.gradle index ec456b157..ffc5561bd 100644 --- a/versions.gradle +++ b/versions.gradle @@ -8,21 +8,21 @@ versions.projectVersionCode = 1 versions.projectVersionName = "1.0" versions.androidMinSdk = 21 -versions.androidCompileSdk = 28 -versions.androidTargetSdk = 28 +versions.androidCompileSdk = 31 +versions.androidTargetSdk = 31 -versions.androidGradlePlugin = "3.5.3" -versions.kotlin = "1.3.11" +versions.androidGradlePlugin = "7.2.1" +versions.kotlin = "1.6.10" -versions.appcompat = "1.1.0" -versions.constraintLayout = "1.1.3" -versions.recyclerview = "1.1.0" -versions.material = "1.0.0" +versions.appcompat = "1.2.0" +versions.constraintLayout = "2.1.4" +versions.recyclerview = "1.2.1" +versions.material = "1.6.1" versions.retrofit = "2.5.0" versions.jackson = "2.9.7" -versions.gson = "2.8.5" +versions.gson = "2.8.9" -versions.lifecycle = "2.1.0" +versions.lifecycle = "2.2.0" ext.versions = versions \ No newline at end of file