Make use of Kotlin's null safe operations to avoid NullPointerException in various places in the app. Use of the ContextCompat and ConfigurationCompat classes in different screens to safely access app configuration and resources in a backwards compatible way.
This commit is contained in:
parent
42e0fc74b0
commit
21c6b776af
7 changed files with 14 additions and 18 deletions
|
@ -9,6 +9,7 @@ import android.widget.LinearLayout
|
|||
import android.widget.TextView
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.os.ConfigurationCompat
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.recyclerview.widget.SortedList
|
||||
|
@ -72,7 +73,7 @@ class TransfersDetailsAdapter(private val context: Context) :
|
|||
private val timeFormat: SimpleDateFormat
|
||||
|
||||
init {
|
||||
val locale = context.resources.configuration.locale
|
||||
val locale = ConfigurationCompat.getLocales(context.resources.configuration)[0]
|
||||
dateFormat = SimpleDateFormat("dd MMM", locale)
|
||||
timeFormat = SimpleDateFormat("HH:mm:ss z", locale)
|
||||
}
|
||||
|
|
|
@ -16,7 +16,6 @@ import cy.agorise.bitsybitshareswallet.viewmodels.BalanceDetailViewModel
|
|||
import kotlinx.android.synthetic.main.fragment_balances.*
|
||||
|
||||
class BalancesFragment: Fragment() {
|
||||
private val TAG = this.javaClass.simpleName
|
||||
|
||||
private lateinit var mBalanceDetailViewModel: BalanceDetailViewModel
|
||||
|
||||
|
@ -49,7 +48,7 @@ class BalancesFragment: Fragment() {
|
|||
super.setUserVisibleHint(isVisibleToUser)
|
||||
if (isVisibleToUser) {
|
||||
// TODO find a better way to recreate the fragment, that does it only when the theme has been changed
|
||||
fragmentManager!!.beginTransaction().detach(this).attach(this).commit()
|
||||
fragmentManager?.beginTransaction()?.detach(this)?.attach(this)?.commit()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ import android.text.Html
|
|||
import android.text.method.LinkMovementMethod
|
||||
import android.view.*
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.os.ConfigurationCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
|
@ -48,7 +49,7 @@ class EReceiptFragment : Fragment() {
|
|||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
mLocale = resources.configuration.locale
|
||||
mLocale = ConfigurationCompat.getLocales(resources.configuration)[0]
|
||||
|
||||
val userId = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
.getString(Constants.KEY_CURRENT_ACCOUNT_ID, "") ?: ""
|
||||
|
@ -63,9 +64,9 @@ class EReceiptFragment : Fragment() {
|
|||
}
|
||||
|
||||
private fun bindTransferDetail(transferDetail: TransferDetail) {
|
||||
vPaymentDirection.setBackgroundColor(resources.getColor(
|
||||
context?.let { vPaymentDirection.setBackgroundColor(ContextCompat.getColor(it,
|
||||
if(transferDetail.direction) R.color.colorReceive else R.color.colorSend
|
||||
))
|
||||
))}
|
||||
|
||||
tvFrom.text = transferDetail.from ?: ""
|
||||
tvTo.text = transferDetail.to ?: ""
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.view.View
|
|||
import androidx.fragment.app.DialogFragment
|
||||
import android.widget.*
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.os.ConfigurationCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import androidx.lifecycle.Observer
|
||||
|
@ -92,7 +93,7 @@ class FilterOptionsDialog : DialogFragment() {
|
|||
private lateinit var mDatePickerHandler: DatePickerHandler
|
||||
|
||||
private var dateFormat: SimpleDateFormat = SimpleDateFormat("d/MMM/yyyy",
|
||||
Resources.getSystem().configuration.locale)
|
||||
ConfigurationCompat.getLocales(Resources.getSystem().configuration)[0])
|
||||
|
||||
private var startDate: Long = 0
|
||||
private var endDate: Long = 0
|
||||
|
|
|
@ -19,8 +19,6 @@ import cy.agorise.bitsybitshareswallet.database.entities.UserAccount
|
|||
import cy.agorise.bitsybitshareswallet.utils.Constants
|
||||
import cy.agorise.bitsybitshareswallet.viewmodels.UserAccountViewModel
|
||||
import kotlinx.android.synthetic.main.fragment_home.*
|
||||
import android.os.Build
|
||||
import android.content.res.ColorStateList
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
|
||||
|
||||
|
@ -112,10 +110,9 @@ class HomeFragment : Fragment() {
|
|||
|
||||
var icon = tabLayout.getTabAt(2)?.icon
|
||||
if (icon != null) {
|
||||
val colors: ColorStateList = if (Build.VERSION.SDK_INT >= 23) {
|
||||
resources.getColorStateList(R.color.tab_icon_selector, context?.theme)
|
||||
} else {
|
||||
resources.getColorStateList(R.color.tab_icon_selector)
|
||||
val colors = context?.let {context ->
|
||||
ContextCompat.getColorStateList(
|
||||
context, R.color.tab_icon_selector)
|
||||
}
|
||||
|
||||
icon = DrawableCompat.wrap(icon)
|
||||
|
|
|
@ -22,7 +22,7 @@ class NetWorthFragment: Fragment() {
|
|||
super.setUserVisibleHint(isVisibleToUser)
|
||||
if (isVisibleToUser) {
|
||||
// TODO find a better way to recreate the fragment, that does it only when the theme has been changed
|
||||
fragmentManager!!.beginTransaction().detach(this).attach(this).commit()
|
||||
fragmentManager?.beginTransaction()?.detach(this)?.attach(this)?.commit()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -325,10 +325,7 @@ class ReceiveTransactionFragment : ConnectedFragment() {
|
|||
}
|
||||
|
||||
/**
|
||||
* Updates the UI to show amount and account to send the payment
|
||||
*
|
||||
* @param total Total Amount in crypto to be paid
|
||||
* @param account Account to pay total
|
||||
* Updates the UI to show the amount and account to send the payment
|
||||
*/
|
||||
private fun updateAmountAddressUI(assetAmount: Long, assetSymbol: String, assetPrecision: Int, account: String) {
|
||||
val txtAmount: String = if (assetAmount == 0L) {
|
||||
|
|
Loading…
Reference in a new issue