Skip to content

Commit

Permalink
fix: null ETIP IDs for ETIP trackers
Browse files Browse the repository at this point in the history
  • Loading branch information
Hamza417 committed Feb 7, 2025
1 parent 8a8e236 commit 8682281
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 10 deletions.
5 changes: 5 additions & 0 deletions app/src/main/java/app/simple/inure/constants/Warnings.kt
Original file line number Diff line number Diff line change
Expand Up @@ -101,5 +101,10 @@ object Warnings {
const val DEVELOPMENT_FEATURES_WARNING = "0x013: Using development features may cause unexpected behaviors in the app, use these toggles at your own discretion. " +
"These features are experimental and may also be removed from the app in future."

/**
* ETIP ID is null, this shouldn't have happened. Please report this issue to the developer
*/
const val ETIP_ID_NULL = "0x014: ETIP ID is not available."

const val UNIDENTIFIED_ERROR = "0x000788: unidentified error occurred"
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import androidx.core.net.toUri
import app.simple.inure.R
import app.simple.inure.constants.BundleConstants
import app.simple.inure.constants.Misc
import app.simple.inure.constants.Warnings
import app.simple.inure.decorations.corners.DynamicCornerLinearLayout
import app.simple.inure.decorations.ripple.DynamicRippleImageButton
import app.simple.inure.decorations.typeface.TypeFaceTextView
Expand Down Expand Up @@ -133,6 +134,7 @@ class TrackerInfo : ScopedFragment() {
title.text = tracker?.componentName?.substringAfterLast(".")
packageId.text = tracker?.componentName
trackerName.text = tracker?.name

if (tracker?.isETIP == true) {
etipContainer.visibility = View.VISIBLE
etipContainer.backgroundTintList = ColorStateList.valueOf(AppearancePreferences.getAccentColor())
Expand All @@ -141,11 +143,14 @@ class TrackerInfo : ScopedFragment() {
(ETIP_PAGE_ADDRESS + tracker?._ETIP_ID)
.toUri()
.openInBrowser(requireContext())
} else {
showWarning(Warnings.ETIP_ID_NULL, goBack = false)
}
}
} else {
etipContainer.visibility = View.GONE
}

date.apply {
val text = getString(R.string.created_on, tracker?.creationDate
?.toLong() // Convert to long, probably a timestamp in format yyyy-MM-dd
Expand Down
27 changes: 17 additions & 10 deletions app/src/main/java/app/simple/inure/util/TrackerUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ object TrackerUtils {
private val _ETIP_Signatures = hashMapOf<String, Boolean>()

fun getTrackerSignatures(): List<String> {
initETIPSignatures()

with(getETIPTrackerSignatures()) {
this.forEach {
_ETIP_Signatures[it] = true
Expand Down Expand Up @@ -126,16 +128,21 @@ object TrackerUtils {
}

fun getTrackersData(): ArrayList<Tracker> {
initETIPSignatures() // Since this function will always run in background thread, it's safe to call this here
val uniqueTrackers = hashSetOf<String>()
initETIPSignatures()

val uniqueTrackers = hashMapOf<String, Tracker>()
val finalTrackers = arrayListOf<Tracker>()

(getFinalTrackersData() + getETIPTrackersData()).forEach { tracker ->
if (uniqueTrackers.add(tracker.codeSignature)) {
finalTrackers.add(tracker)
}
getFinalTrackersData().forEach { tracker ->
uniqueTrackers[tracker.codeSignature] = tracker
}

getETIPTrackersData().forEach { tracker ->
uniqueTrackers[tracker.codeSignature] = tracker
}

finalTrackers.addAll(uniqueTrackers.values)

return finalTrackers
}

Expand Down Expand Up @@ -278,7 +285,7 @@ object TrackerUtils {
}

tracker1.isActivity = true
tracker1.isETIP = isETIPTracker(tracker1.codeSignature)
tracker1.isETIP = isETIPTracker(tracker.codeSignature)
if (tracker1.isETIP) {
tracker1._ETIP_ID = tracker._ETIP_ID
}
Expand Down Expand Up @@ -317,7 +324,7 @@ object TrackerUtils {
}

tracker1.isService = true
tracker1.isETIP = isETIPTracker(tracker1.codeSignature)
tracker1.isETIP = isETIPTracker(tracker.codeSignature)
if (tracker1.isETIP) {
tracker1._ETIP_ID = tracker._ETIP_ID
}
Expand Down Expand Up @@ -356,7 +363,7 @@ object TrackerUtils {
}

tracker1.isReceiver = true
tracker1.isETIP = isETIPTracker(tracker1.codeSignature)
tracker1.isETIP = isETIPTracker(tracker.codeSignature)
if (tracker1.isETIP) {
tracker1._ETIP_ID = tracker._ETIP_ID
}
Expand Down Expand Up @@ -395,7 +402,7 @@ object TrackerUtils {
}

tracker1.isProvider = true
tracker1.isETIP = isETIPTracker(tracker1.codeSignature)
tracker1.isETIP = isETIPTracker(tracker.codeSignature)
if (tracker1.isETIP) {
tracker1._ETIP_ID = tracker._ETIP_ID
}
Expand Down

0 comments on commit 8682281

Please sign in to comment.