Skip to content

Commit 4b9bde2

Browse files
committed
3.2.0 Release
3.2.0 upgrade library
1 parent 22ce12a commit 4b9bde2

File tree

23 files changed

+518
-263
lines changed

23 files changed

+518
-263
lines changed

app/app.iml

Lines changed: 125 additions & 97 deletions
Large diffs are not rendered by default.

app/build.gradle

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ android {
1515
applicationId "tech.stoneapp.secminhr.cavern"
1616
minSdkVersion 19
1717
targetSdkVersion 28
18-
versionCode 7
19-
versionName "3.1.2"
18+
versionCode 8
19+
versionName "3.2.0"
2020
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2121
vectorDrawables.useSupportLibrary = true
2222
multiDexEnabled true
@@ -49,56 +49,58 @@ android {
4949
}
5050
}
5151
buildToolsVersion = '28.0.3'
52+
configurations {
53+
all*.exclude group:'org.intellij.lang.annotations', module:"jetified-annotaions-13.0.jar"
54+
all*.exclude group:'org.intellij.lang.annotations', module:"jetified-annotations-java5-17.0.0.jar"
55+
all*.exclude group:'org.jetbrains.annotations', module:"jetified-annotations-13.0.jar"
56+
all*.exclude group:'org.jetbrains.annotations', module:"jetified-annotations-java5-17.0.0.jar"
57+
}
5258
}
53-
5459
dependencies {
60+
final def markwon_version = '3.1.0'
5561
implementation fileTree(dir: 'libs', include: ['*.jar'])
5662
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
57-
implementation 'androidx.appcompat:appcompat:1.0.2'
63+
implementation 'androidx.appcompat:appcompat:1.1.0'
5864
implementation 'com.google.android.material:material:1.0.0'
59-
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
65+
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta3'
6066
implementation 'androidx.multidex:multidex:2.0.1'
61-
implementation 'androidx.vectordrawable:vectordrawable:1.0.1'
67+
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
6268
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
6369
testImplementation 'junit:junit:4.12'
6470
testImplementation 'org.robolectric:robolectric:4.1'
6571
testImplementation "org.mockito:mockito-all:1.10.19"
6672
testImplementation "org.powermock:powermock-module-junit4:1.6.2"
6773
testImplementation "org.powermock:powermock-api-mockito:1.6.2"
68-
androidTestImplementation 'androidx.test:runner:1.1.1'
69-
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
70-
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
71-
implementation "android.arch.navigation:navigation-fragment-ktx:1.0.0"
72-
implementation "android.arch.navigation:navigation-ui-ktx:1.0.0"
73-
implementation 'androidx.core:core-ktx:1.0.2'
74+
androidTestImplementation 'androidx.test:runner:1.2.0'
75+
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
76+
implementation "androidx.lifecycle:lifecycle-extensions:2.1.0"
77+
implementation 'androidx.navigation:navigation-fragment-ktx:2.2.0-rc02'
78+
implementation 'androidx.navigation:navigation-ui-ktx:2.2.0-rc02'
79+
implementation 'androidx.core:core-ktx:1.1.0'
7480
implementation "androidx.paging:paging-runtime-ktx:2.1.0"
75-
implementation "ru.noties.markwon:core:3.0.0"
76-
implementation "ru.noties.markwon:ext-latex:3.0.0"
77-
implementation "ru.noties.markwon:ext-strikethrough:3.0.0"
78-
implementation "ru.noties.markwon:ext-tables:3.0.0"
79-
implementation "ru.noties.markwon:ext-tasklist:3.0.0"
80-
implementation "ru.noties.markwon:html:3.0.0"
81-
implementation "ru.noties.markwon:image-gif:3.0.0"
82-
implementation "ru.noties.markwon:image-okhttp:3.0.0"
83-
implementation "ru.noties.markwon:image-svg:3.0.0"
84-
implementation "ru.noties.markwon:recycler:3.0.0"
85-
implementation "ru.noties.markwon:recycler-table:3.0.0"
86-
implementation "ru.noties.markwon:syntax-highlight:3.0.0"
81+
82+
implementation "ru.noties.markwon:core:$markwon_version"
83+
implementation "ru.noties.markwon:ext-latex:$markwon_version"
84+
implementation "ru.noties.markwon:ext-strikethrough:$markwon_version"
85+
implementation "ru.noties.markwon:ext-tables:$markwon_version"
86+
implementation "ru.noties.markwon:ext-tasklist:$markwon_version"
87+
implementation "ru.noties.markwon:html:$markwon_version"
88+
implementation "ru.noties.markwon:image-gif:$markwon_version"
89+
implementation "ru.noties.markwon:image-okhttp:$markwon_version"
90+
implementation "ru.noties.markwon:recycler:$markwon_version"
91+
implementation "ru.noties.markwon:recycler-table:$markwon_version"
92+
implementation "ru.noties.markwon:syntax-highlight:$markwon_version"
93+
8794
implementation "ru.noties:prism4j:1.1.0"
88-
implementation 'com.google.firebase:firebase-core:17.0.0'
89-
implementation 'com.google.firebase:firebase-config:18.0.0'
95+
implementation 'com.google.firebase:firebase-core:17.2.1'
96+
implementation 'com.google.firebase:firebase-config:19.0.3'
9097
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
91-
implementation 'com.google.firebase:firebase-firestore:20.1.0'
92-
implementation 'com.google.firebase:firebase-messaging:19.0.1'
93-
implementation 'com.google.firebase:firebase-auth:18.0.0'
94-
implementation 'androidx.multidex:multidex:2.0.1'
98+
implementation 'com.google.firebase:firebase-firestore:21.2.1'
99+
implementation 'com.google.firebase:firebase-messaging:20.0.0'
100+
implementation 'com.google.firebase:firebase-auth:19.1.0'
95101
implementation 'com.squareup.picasso:picasso:2.71828'
96102
implementation "com.atlassian.commonmark:commonmark-ext-autolink:0.12.1"
97-
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
98-
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
99103
implementation 'androidx.recyclerview:recyclerview:1.0.0'
100-
implementation 'com.zzhoujay.richtext:richtext:3.0.8'
101-
implementation 'com.zzhoujay.glideimagegetter:glideimagegetter:1.0.5'
102104
implementation 'org.jsoup:jsoup:1.12.1'
103105
implementation "com.android.volley:volley:1.1.1"
104106
implementation project(":cavern")

app/src/main/java/tech/stoneapp/secminhr/cavern/CavernMarkdownTextView.kt

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import android.text.Spanned
77
import android.text.method.LinkMovementMethod
88
import android.util.AttributeSet
99
import android.util.Log
10-
import android.widget.TextView
11-
import androidx.annotation.RequiresApi
1210
import ru.noties.markwon.Markwon
1311
import ru.noties.markwon.ext.latex.JLatexMathPlugin
1412
import ru.noties.markwon.ext.strikethrough.StrikethroughPlugin
@@ -17,14 +15,15 @@ import ru.noties.markwon.ext.tasklist.TaskListPlugin
1715
import ru.noties.markwon.html.HtmlPlugin
1816
import ru.noties.markwon.image.AsyncDrawableSpan
1917
import ru.noties.markwon.image.ImagesPlugin
18+
import ru.noties.markwon.image.gif.GifPlugin
2019
import ru.noties.markwon.image.okhttp.OkHttpImagesPlugin
2120
import stoneapp.secminhr.cavern.api.results.Author
2221
import stoneapp.secminhr.cavern.cavernError.CavernError
2322
import tech.stoneapp.secminhr.cavern.articlecontent.AtUsernameSpan.AtUsernamePlugin
2423
import tech.stoneapp.secminhr.cavern.articlecontent.AtUsernameSpan.AtUsernameVisitor
2524
import tech.stoneapp.secminhr.cavern.articlecontent.markwonUtils.CavernPlugin
2625

27-
class CavernMarkdownTextView: TextView {
26+
class CavernMarkdownTextView: androidx.appcompat.widget.AppCompatTextView {
2827

2928
constructor(context: Context): super(context) {
3029
initialize()
@@ -37,12 +36,6 @@ class CavernMarkdownTextView: TextView {
3736
initialize()
3837
}
3938

40-
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
41-
constructor(context: Context, attrs: AttributeSet, defStyleArr: Int, defStyleRes: Int):
42-
super(context, attrs, defStyleArr, defStyleRes) {
43-
initialize()
44-
}
45-
4639
private var onUsernameClickedListeners: ((Author) -> Unit)? = null
4740
private var errorListeners: ((CavernError) -> Unit)? = null
4841

@@ -61,7 +54,6 @@ class CavernMarkdownTextView: TextView {
6154

6255
private fun initialize() {
6356
parser = markdownBasicBuilder()
64-
// RichText.initCacheDir(context)
6557
}
6658

6759
private fun markdownBasicBuilder(): Markwon.Builder =
@@ -71,6 +63,7 @@ class CavernMarkdownTextView: TextView {
7163
.usePlugin(TaskListPlugin.create(context))
7264
.usePlugin(HtmlPlugin.create())
7365
.usePlugin(ImagesPlugin.create(context))
66+
.usePlugin(GifPlugin.create(true))
7467
.usePlugin(OkHttpImagesPlugin.create())
7568
.usePlugin(JLatexMathPlugin.create(70f))
7669
.usePlugin(CavernPlugin(resources, context))
@@ -88,12 +81,6 @@ class CavernMarkdownTextView: TextView {
8881
}
8982
this.movementMethod = LinkMovementMethod.getInstance()
9083
parser.build().setMarkdown(this, text)
91-
// RichText.fromMarkdown(text)
92-
// .imageDownloader(DefaultImageDownloader())
93-
// .autoPlay(true)
94-
// .cache(CacheType.none)
95-
// .placeHolder(ImagePlaceHolder())
96-
// .into(this)
9784
}
9885

9986
override fun setText(text: CharSequence?, type: BufferType?) {
@@ -107,7 +94,6 @@ class CavernMarkdownTextView: TextView {
10794
if(text is Spanned) {
10895
val drawableSpans = (text as Spanned).getSpans(0, text.length -1, AsyncDrawableSpan::class.java)
10996
Log.e("CavernTextView", drawableSpans.toString())
110-
// Log.e("CavernTextView", drawableSpans[0].drawable.result.toString())
11197
val drawables = drawableSpans.map { it.drawable }
11298
Log.e("CavernTextView", drawables.size.toString())
11399
for(drawable in drawables) {

app/src/main/java/tech/stoneapp/secminhr/cavern/ImagePlaceHolder.kt

Lines changed: 0 additions & 29 deletions
This file was deleted.

app/src/main/java/tech/stoneapp/secminhr/cavern/accountInfo/bottomAuthorDialog/BottomAuthorDialog.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@ import android.widget.Toast
99
import androidx.databinding.ObservableField
1010
import androidx.lifecycle.Observer
1111
import androidx.lifecycle.ViewModelProviders
12+
import androidx.navigation.Navigation
1213
import com.google.android.material.bottomsheet.BottomSheetBehavior
1314
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
1415
import com.squareup.picasso.Picasso
1516
import kotlinx.android.synthetic.main.fragment_bottom_author_dialog.*
1617
import stoneapp.secminhr.cavern.cavernObject.Account
1718
import stoneapp.secminhr.cavern.cavernObject.Role
19+
import tech.stoneapp.secminhr.cavern.R
1820
import tech.stoneapp.secminhr.cavern.accountInfo.AccountInfoHolder
1921
import tech.stoneapp.secminhr.cavern.databinding.FragmentBottomAuthorDialogBinding
2022

@@ -54,6 +56,9 @@ class BottomAuthorDialog : BottomSheetDialogFragment, AccountInfoHolder {
5456
closeButton.setOnClickListener {
5557
this.dismiss()
5658
}
59+
viewArticleButton.setOnClickListener {
60+
Navigation.findNavController(it).navigate(R.id.navigation_article)
61+
}
5762
val behavior = BottomSheetBehavior.from(binding.root.parent as View)
5863
behavior.state = BottomSheetBehavior.STATE_EXPANDED
5964
}

app/src/main/java/tech/stoneapp/secminhr/cavern/accountInfo/user/UserFragment.kt

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import stoneapp.secminhr.cavern.cavernObject.Role
1313
import tech.stoneapp.secminhr.cavern.R
1414
import tech.stoneapp.secminhr.cavern.accountInfo.AccountInfoHolder
1515
import tech.stoneapp.secminhr.cavern.activity.LoggedUserModelHolder
16-
import tech.stoneapp.secminhr.cavern.databinding.FragmentBottomAuthorDialogBinding
16+
import tech.stoneapp.secminhr.cavern.databinding.FragmentAuthorBinding
1717

1818
class UserFragment : Fragment(), AccountInfoHolder {
1919

@@ -22,7 +22,7 @@ class UserFragment : Fragment(), AccountInfoHolder {
2222

2323
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
2424
savedInstanceState: Bundle?): View? {
25-
val binding = FragmentBottomAuthorDialogBinding.inflate(inflater)
25+
val binding = FragmentAuthorBinding.inflate(inflater)
2626
binding.holder = this
2727
return binding.root
2828
}
@@ -33,21 +33,17 @@ class UserFragment : Fragment(), AccountInfoHolder {
3333
val sharedViewModel = (activity as LoggedUserModelHolder).loggedUserModel
3434
account.set(sharedViewModel.user.get()!!)
3535
setHasOptionsMenu(true)
36-
loadingProgressBar.visibility = View.GONE
37-
mainContentLayout.visibility = View.VISIBLE
38-
closeButton.visibility = View.GONE
39-
viewArticleButton.visibility = View.GONE
4036
Picasso.get().load(account.get()!!.avatarLink).into(avatarImageView)
4137
}
4238

43-
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
44-
inflater?.inflate(R.menu.user_fragment_menu, menu)
39+
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
40+
inflater.inflate(R.menu.user_fragment_menu, menu)
4541
}
4642

47-
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
43+
override fun onOptionsItemSelected(item: MenuItem): Boolean {
4844
val selector:HashMap<Int, () -> Unit> = hashMapOf(R.id.logout_item to ::logout)
49-
selector[item?.itemId]?.invoke()
50-
return selector.keys.contains(item?.itemId)
45+
selector[item.itemId]?.invoke()
46+
return selector.keys.contains(item.itemId)
5147
}
5248

5349
private fun logout() {

app/src/main/java/tech/stoneapp/secminhr/cavern/articlecontent/ArticleContentFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,6 @@ class ArticleContentFragment : Fragment() {
127127

128128
private fun showUserDialog(username: String) {
129129
val bottomFragment = BottomAuthorDialog.newInstance(username)
130-
bottomFragment.show(fragmentManager, "Author")
130+
bottomFragment.show(fragmentManager!!, "Author")
131131
}
132132
}

app/src/main/java/tech/stoneapp/secminhr/cavern/articlecontent/AtUsernameSpan/AtUsernamePlugin.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package tech.stoneapp.secminhr.cavern.articlecontent.AtUsernameSpan
33
import ru.noties.markwon.AbstractMarkwonPlugin
44
import ru.noties.markwon.MarkwonVisitor
55

6+
67
class AtUsernamePlugin(val visitor: AtUsernameVisitor): AbstractMarkwonPlugin() {
78
override fun configureVisitor(builder: MarkwonVisitor.Builder) {
89
builder.on(AtUsernameNode::class.java, visitor)

app/src/main/java/tech/stoneapp/secminhr/cavern/articlecontent/fontTag/FontTagHandler.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import ru.noties.markwon.html.MarkwonHtmlRenderer
1010
import ru.noties.markwon.html.TagHandler
1111

1212
class FontTagHandler(val resource: Resources, val packageName: String): TagHandler() {
13+
1314
override fun handle(visitor: MarkwonVisitor, renderer: MarkwonHtmlRenderer, tag: HtmlTag) {
1415
if(tag.isBlock) {
1516
visitChildren(visitor, renderer, tag.asBlock)

app/src/main/java/tech/stoneapp/secminhr/cavern/articlecontent/markwonUtils/CavernGrammarLocator.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package tech.stoneapp.secminhr.cavern.articlecontent.markwonUtils
33
import ru.noties.prism4j.GrammarLocator
44
import ru.noties.prism4j.Prism4j
55

6+
67
class CavernGrammarLocator: GrammarLocator {
78

89
private val supportedLanguages = mutableSetOf(

0 commit comments

Comments
 (0)