Skip to content

Commit

Permalink
Fixed RestrictedApi and MagicNumber lint errors, removed deprecated m…
Browse files Browse the repository at this point in the history
…ethod and improved code
  • Loading branch information
MohitMaliDeveloper committed Feb 3, 2023
1 parent 711c719 commit 44a8892
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 33 deletions.
@@ -1,6 +1,6 @@
/*
* Kiwix Android
* Copyright (c) 2023 Kiwix <android.kiwix.org>
* Copyright (c) 2020 Kiwix <android.kiwix.org>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
Expand Down
Expand Up @@ -18,34 +18,35 @@

package org.kiwix.kiwixmobile.core.utils.dialog

import android.annotation.SuppressLint
import android.app.Activity
import android.app.Dialog
import android.content.ClipData
import android.content.ClipboardManager
import android.graphics.Color
import android.text.Html
import android.view.Gravity
import android.view.ViewGroup.LayoutParams
import android.widget.FrameLayout
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.extensions.getAttribute
import java.net.URL
import javax.inject.Inject

@Suppress("MagicNumber")
class AlertDialogShower @Inject constructor(private val activity: Activity) :
DialogShower {
private val externalLinkLeftMargin = 0
private val externalLinkRightMargin = 0
private val externalLinkTopMargin = 10
private val externalLinkBottomMargin = 0
companion object {
const val externalLinkLeftMargin = 10
const val externalLinkRightMargin = 10
const val externalLinkTopMargin = 10
const val externalLinkBottomMargin = 0
}

override fun show(dialog: KiwixDialog, vararg clickListeners: () -> Unit, url: URL?) =
create(dialog, *clickListeners, url = url).show()

@SuppressLint("RestrictedApi")
override fun create(dialog: KiwixDialog, vararg clickListeners: () -> Unit, url: URL?): Dialog {
return AlertDialog.Builder(activity)
.apply {
Expand All @@ -70,38 +71,45 @@ class AlertDialogShower @Inject constructor(private val activity: Activity) :
}
}
url?.let {
val textView = TextView(activity.baseContext)
textView.setPadding(5, 5, 5, 5)
textView.gravity = Gravity.CENTER
textView.setLinkTextColor(Color.BLUE)
textView.setOnLongClickListener {
val clipboard =
ContextCompat.getSystemService(activity.baseContext, ClipboardManager::class.java)
val clip = ClipData.newPlainText("External Url", "$url")
clipboard?.setPrimaryClip(clip)
Toast.makeText(
activity.baseContext,
R.string.external_link_copied_message,
Toast.LENGTH_SHORT
).show()
true
}
textView.text = Html.fromHtml("</br><a href=$url> <b>$url</b>")
val frameLayout = FrameLayout(activity.baseContext)

setView(
textView,
externalLinkLeftMargin,
externalLinkTopMargin,
externalLinkRightMargin,
externalLinkBottomMargin
)
val textView = TextView(activity.baseContext).apply {
layoutParams = getFrameLayoutParams()
gravity = Gravity.CENTER
setLinkTextColor(activity.getAttribute(R.attr.colorPrimary))
setOnLongClickListener {
val clipboard =
ContextCompat.getSystemService(activity.baseContext, ClipboardManager::class.java)
val clip = ClipData.newPlainText("External Url", "$url")
clipboard?.setPrimaryClip(clip)
Toast.makeText(
activity.baseContext,
R.string.external_link_copied_message,
Toast.LENGTH_SHORT
).show()
true
}
text = Html.fromHtml("</br><a href=$url> <b>$url</b>")
}
frameLayout.addView(textView)
setView(frameLayout)
}
dialog.getView?.let { setView(it()) }
setCancelable(dialog.cancelable)
}
.create()
}

private fun getFrameLayoutParams() = FrameLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT
).apply {
topMargin = externalLinkTopMargin
bottomMargin = externalLinkBottomMargin
leftMargin = externalLinkLeftMargin
rightMargin = externalLinkRightMargin
}

private fun bodyArguments(dialog: KiwixDialog) =
if (dialog is HasBodyFormatArgs) dialog.args.toTypedArray()
else emptyArray()
Expand Down

0 comments on commit 44a8892

Please sign in to comment.