diff --git a/app/src/main/java/app/simple/inure/adapters/viewers/AdapterActivities.kt b/app/src/main/java/app/simple/inure/adapters/viewers/AdapterActivities.kt index fdfb7c160..f97866b7d 100644 --- a/app/src/main/java/app/simple/inure/adapters/viewers/AdapterActivities.kt +++ b/app/src/main/java/app/simple/inure/adapters/viewers/AdapterActivities.kt @@ -15,6 +15,7 @@ import app.simple.inure.models.ActivityInfoModel import app.simple.inure.preferences.ConfigurationPreferences import app.simple.inure.util.ActivityUtils import app.simple.inure.util.AdapterUtils +import app.simple.inure.util.StringUtils.appendFlag import app.simple.inure.util.ViewUtils.gone import app.simple.inure.util.ViewUtils.visible @@ -32,35 +33,43 @@ class AdapterActivities(private val packageInfo: PackageInfo, private val activi holder.name.text = activities[holder.absoluteAdapterPosition].name.substring(activities[holder.absoluteAdapterPosition].name.lastIndexOf(".") + 1) holder.activityPackageID.text = activities[position].name holder.icon.loadIconFromActivityInfo(activities[position].activityInfo) - holder.status.text = holder.itemView.context.getString( - R.string.activity_status, - if (activities[position].exported) { - holder.itemView.context.getString(R.string.exported) - } else { - holder.itemView.context.getString(R.string.not_exported) - }, + val context = holder.itemView.context + val activity = activities[holder.absoluteAdapterPosition] - kotlin.runCatching { - if (ActivityUtils.isEnabled(holder.itemView.context, packageInfo.packageName, activities[position].name)) { - holder.itemView.context.getString(R.string.enabled) + holder.status.text = buildString { + appendFlag( + if (activity.exported) { + context.getString(R.string.exported) } else { - holder.itemView.context.getString(R.string.disabled) + context.getString(R.string.not_exported) } - }.getOrElse { - holder.itemView.context.getString(R.string.no_state) - } - ) - holder.status.append(activities[position].status) - holder.name.setTrackingIcon(activities[position].trackerId.isNullOrEmpty().not()) + ) - holder.launch.setOnClickListener { - activitiesCallbacks.onLaunchClicked(packageInfo.packageName, activities[holder.absoluteAdapterPosition].name) + appendFlag( + runCatching { + if (ActivityUtils.isEnabled(context, packageInfo.packageName, activity.name)) { + context.getString(R.string.enabled) + } else { + context.getString(R.string.disabled) + } + }.getOrElse { + context.getString(R.string.no_state) + } + ) + + appendFlag(activities[position].status) } - if (activities[position].exported) { + holder.name.setTrackingIcon(activity.trackerId.isNullOrEmpty().not()) + + holder.launch.setOnClickListener { + activitiesCallbacks.onLaunchClicked(packageInfo.packageName, activity.name) + } + + if (activity.exported) { kotlin.runCatching { - if (ActivityUtils.isEnabled(holder.itemView.context, packageInfo.packageName, activities[holder.absoluteAdapterPosition].name)) { + if (ActivityUtils.isEnabled(context, packageInfo.packageName, activity.name)) { holder.launch.visible(false) holder.divider.visible(false) } else { @@ -77,16 +86,17 @@ class AdapterActivities(private val packageInfo: PackageInfo, private val activi } holder.container.setOnClickListener { - activitiesCallbacks.onActivityClicked(activities[holder.absoluteAdapterPosition], activities[holder.absoluteAdapterPosition].name) + activitiesCallbacks.onActivityClicked(activity, activity.name) } holder.container.setOnLongClickListener { activitiesCallbacks .onActivityLongPressed( - activities[holder.absoluteAdapterPosition], + activity, packageInfo, it, - holder.absoluteAdapterPosition) + holder.absoluteAdapterPosition + ) true } @@ -103,7 +113,7 @@ class AdapterActivities(private val packageInfo: PackageInfo, private val activi return activities[position].name.hashCode().toLong() } - inner class Holder(itemView: View) : VerticalListViewHolder(itemView) { + class Holder(itemView: View) : VerticalListViewHolder(itemView) { val icon: AppIconImageView = itemView.findViewById(R.id.adapter_activity_icon) val name: TypeFaceTextView = itemView.findViewById(R.id.adapter_activity_name) val status: TypeFaceTextView = itemView.findViewById(R.id.adapter_activity_status) diff --git a/app/src/main/java/app/simple/inure/adapters/viewers/AdapterBoot.kt b/app/src/main/java/app/simple/inure/adapters/viewers/AdapterBoot.kt index 105130321..9406ed3db 100644 --- a/app/src/main/java/app/simple/inure/adapters/viewers/AdapterBoot.kt +++ b/app/src/main/java/app/simple/inure/adapters/viewers/AdapterBoot.kt @@ -15,6 +15,7 @@ import app.simple.inure.decorations.views.AppIconImageView import app.simple.inure.glide.util.ImageLoader.loadIconFromActivityInfo import app.simple.inure.preferences.ConfigurationPreferences import app.simple.inure.util.AdapterUtils +import app.simple.inure.util.StringUtils.appendFlag import app.simple.inure.util.ViewUtils.visible class AdapterBoot(private val resolveInfoList: ArrayList, val keyword: String) @@ -28,27 +29,37 @@ class AdapterBoot(private val resolveInfoList: ArrayList, val keywo } override fun onBindViewHolder(holder: Holder, position: Int) { + val context = holder.itemView.context + val resolveInfo = resolveInfoList[position] + val isEnabled = ReceiversUtils.isEnabled( - holder.itemView.context, resolveInfoList[position].activityInfo.packageName, resolveInfoList[position].activityInfo.name) - - holder.icon.loadIconFromActivityInfo(resolveInfoList[position].activityInfo) - holder.name.text = resolveInfoList[position].activityInfo.name.substring(resolveInfoList[position].activityInfo.name.lastIndexOf(".") + 1) - holder.packageId.text = resolveInfoList[position].activityInfo.name - holder.status.text = holder.itemView.context.getString( - R.string.activity_status, - - if (resolveInfoList[position].activityInfo.exported) { - holder.itemView.context.getString(R.string.exported) - } else { - holder.itemView.context.getString(R.string.not_exported) - }, - - if (isEnabled) { - holder.itemView.context.getString(R.string.enabled) - } else { - holder.itemView.context.getString(R.string.disabled) - } + context, + resolveInfo.activityInfo.packageName, + resolveInfo.activityInfo.name ) + + holder.icon.loadIconFromActivityInfo(resolveInfo.activityInfo) + holder.name.text = resolveInfo.activityInfo.name.substring(resolveInfo.activityInfo.name.lastIndexOf(".") + 1) + holder.packageId.text = resolveInfo.activityInfo.name + + holder.status.text = buildString { + appendFlag( + if (resolveInfo.activityInfo.exported) { + context.getString(R.string.exported) + } else { + context.getString(R.string.not_exported) + } + ) + + appendFlag( + if (isEnabled) { + context.getString(R.string.enabled) + } else { + context.getString(R.string.disabled) + } + ) + } + holder.switch.isChecked = isEnabled // holder.status.append(receivers[position].status) // holder.name.setTrackingIcon(receivers[position].trackerId.isNullOrEmpty().not()) @@ -88,7 +99,7 @@ class AdapterBoot(private val resolveInfoList: ArrayList, val keywo return resolveInfoList.size } - inner class Holder(itemView: View) : VerticalListViewHolder(itemView) { + class Holder(itemView: View) : VerticalListViewHolder(itemView) { val icon: AppIconImageView = itemView.findViewById(R.id.icon) val name: TypeFaceTextView = itemView.findViewById(R.id.name) val packageId: TypeFaceTextView = itemView.findViewById(R.id.id) diff --git a/app/src/main/java/app/simple/inure/adapters/viewers/AdapterProviders.kt b/app/src/main/java/app/simple/inure/adapters/viewers/AdapterProviders.kt index 866968494..c8014f990 100644 --- a/app/src/main/java/app/simple/inure/adapters/viewers/AdapterProviders.kt +++ b/app/src/main/java/app/simple/inure/adapters/viewers/AdapterProviders.kt @@ -14,6 +14,7 @@ import app.simple.inure.decorations.views.AppIconImageView import app.simple.inure.glide.util.ImageLoader.loadIconFromProviderInfo import app.simple.inure.models.ProviderInfoModel import app.simple.inure.util.AdapterUtils +import app.simple.inure.util.StringUtils.appendFlag class AdapterProviders(private val providers: MutableList, private val packageInfo: PackageInfo, val keyword: String) : RecyclerView.Adapter() { @@ -29,26 +30,34 @@ class AdapterProviders(private val providers: MutableList, pr holder.name.text = providers[position].name.substring(providers[position].name.lastIndexOf(".") + 1) holder.packageId.text = providers[position].name - holder.status.text = holder.itemView.context.getString( - R.string.activity_status, + val context = holder.itemView.context + val provider = providers[position] - if (providers[position].isExported) { - holder.itemView.context.getString(R.string.exported) + holder.status.text = buildString { + appendFlag( + if (provider.isExported) { + context.getString(R.string.exported) } else { - holder.itemView.context.getString(R.string.not_exported) - }, + context.getString(R.string.not_exported) + } + ) - kotlin.runCatching { - if (ProvidersUtils.isEnabled(holder.itemView.context, packageInfo.packageName, providers[position].name)) { - holder.itemView.context.getString(R.string.enabled) + appendFlag( + runCatching { + if (ProvidersUtils.isEnabled(context, packageInfo.packageName, provider.name)) { + context.getString(R.string.enabled) } else { - holder.itemView.context.getString(R.string.disabled) + context.getString(R.string.disabled) } }.getOrElse { - holder.itemView.context.getString(R.string.no_state) - }) - holder.status.append(providers[position].status) - holder.name.setTrackingIcon(providers[position].trackingId.isNullOrEmpty().not()) + context.getString(R.string.no_state) + } + ) + + appendFlag(provider.status) + } + + holder.name.setTrackingIcon(provider.trackingId.isNullOrEmpty().not()) holder.container.setOnLongClickListener { providersCallbacks @@ -76,7 +85,7 @@ class AdapterProviders(private val providers: MutableList, pr return providers.size } - inner class Holder(itemView: View) : VerticalListViewHolder(itemView) { + class Holder(itemView: View) : VerticalListViewHolder(itemView) { val icon: AppIconImageView = itemView.findViewById(R.id.adapter_providers_icon) val name: TypeFaceTextView = itemView.findViewById(R.id.adapter_providers_name) val packageId: TypeFaceTextView = itemView.findViewById(R.id.adapter_providers_package) diff --git a/app/src/main/java/app/simple/inure/adapters/viewers/AdapterReceivers.kt b/app/src/main/java/app/simple/inure/adapters/viewers/AdapterReceivers.kt index 0c359894a..2d2596c1e 100644 --- a/app/src/main/java/app/simple/inure/adapters/viewers/AdapterReceivers.kt +++ b/app/src/main/java/app/simple/inure/adapters/viewers/AdapterReceivers.kt @@ -14,6 +14,7 @@ import app.simple.inure.decorations.views.AppIconImageView import app.simple.inure.glide.util.ImageLoader.loadIconFromActivityInfo import app.simple.inure.models.ActivityInfoModel import app.simple.inure.util.AdapterUtils +import app.simple.inure.util.StringUtils.appendFlag class AdapterReceivers(private val receivers: MutableList, private val packageInfo: PackageInfo, val keyword: String) : RecyclerView.Adapter() { @@ -28,26 +29,35 @@ class AdapterReceivers(private val receivers: MutableList, pr holder.icon.loadIconFromActivityInfo(receivers[position].activityInfo) holder.name.text = receivers[position].name.substring(receivers[position].name.lastIndexOf(".") + 1) holder.packageId.text = receivers[position].name - holder.status.text = holder.itemView.context.getString( - R.string.activity_status, - if (receivers[position].exported) { - holder.itemView.context.getString(R.string.exported) + val context = holder.itemView.context + val receiver = receivers[position] + + holder.status.text = buildString { + appendFlag( + if (receiver.exported) { + context.getString(R.string.exported) } else { - holder.itemView.context.getString(R.string.not_exported) - }, + context.getString(R.string.not_exported) + } + ) - kotlin.runCatching { - if (ReceiversUtils.isEnabled(holder.itemView.context, packageInfo.packageName, receivers[position].name)) { - holder.itemView.context.getString(R.string.enabled) + appendFlag( + runCatching { + if (ReceiversUtils.isEnabled(context, packageInfo.packageName, receiver.name)) { + context.getString(R.string.enabled) } else { - holder.itemView.context.getString(R.string.disabled) + context.getString(R.string.disabled) } }.getOrElse { - holder.itemView.context.getString(R.string.no_state) - }) - holder.status.append(receivers[position].status) - holder.name.setTrackingIcon(receivers[position].trackerId.isNullOrEmpty().not()) + context.getString(R.string.no_state) + } + ) + + appendFlag(receiver.status) + } + + holder.name.setTrackingIcon(receiver.trackerId.isNullOrEmpty().not()) holder.container.setOnLongClickListener { receiversCallbacks @@ -75,7 +85,7 @@ class AdapterReceivers(private val receivers: MutableList, pr return receivers.size } - inner class Holder(itemView: View) : VerticalListViewHolder(itemView) { + class Holder(itemView: View) : VerticalListViewHolder(itemView) { val icon: AppIconImageView = itemView.findViewById(R.id.icon) val name: TypeFaceTextView = itemView.findViewById(R.id.name) val packageId: TypeFaceTextView = itemView.findViewById(R.id.process) diff --git a/app/src/main/java/app/simple/inure/adapters/viewers/AdapterServices.kt b/app/src/main/java/app/simple/inure/adapters/viewers/AdapterServices.kt index e86902461..2efd200d3 100644 --- a/app/src/main/java/app/simple/inure/adapters/viewers/AdapterServices.kt +++ b/app/src/main/java/app/simple/inure/adapters/viewers/AdapterServices.kt @@ -14,6 +14,7 @@ import app.simple.inure.decorations.views.AppIconImageView import app.simple.inure.glide.util.ImageLoader.loadIconFromServiceInfo import app.simple.inure.models.ServiceInfoModel import app.simple.inure.util.AdapterUtils +import app.simple.inure.util.StringUtils.appendFlag import com.bumptech.glide.Glide class AdapterServices(private val services: MutableList, private val packageInfo: PackageInfo, private val keyword: String) : RecyclerView.Adapter() { @@ -30,30 +31,32 @@ class AdapterServices(private val services: MutableList, priva holder.packageId.text = services[position].name holder.name.setTrackingIcon(services[position].trackerId.isNullOrEmpty().not()) - holder.status.text = kotlin.runCatching { - holder.itemView.context.getString( - R.string.activity_status, + val context = holder.itemView.context + val service = services[position] - if (services[position].isExported) { - holder.itemView.context.getString(R.string.exported) + holder.status.text = buildString { + appendFlag( + if (service.isExported) { + context.getString(R.string.exported) } else { - holder.itemView.context.getString(R.string.not_exported) - }, + context.getString(R.string.not_exported) + } + ) - kotlin.runCatching { - if (ServicesUtils.isEnabled(holder.itemView.context, packageInfo.packageName, services[position].name)) { - holder.itemView.context.getString(R.string.enabled) + appendFlag( + runCatching { + if (ServicesUtils.isEnabled(context, packageInfo.packageName, service.name)) { + context.getString(R.string.enabled) } else { - holder.itemView.context.getString(R.string.disabled) + context.getString(R.string.disabled) } }.getOrElse { - holder.itemView.context.getString(R.string.no_state) - }) - }.getOrElse { - it.message ?: holder.itemView.context.getString(R.string.error) - } + context.getString(R.string.no_state) + } + ) - holder.status.append(services[position].status) + appendFlag(service.status) + } holder.container.setOnLongClickListener { servicesCallbacks @@ -86,7 +89,7 @@ class AdapterServices(private val services: MutableList, priva Glide.with(holder.icon.context).clear(holder.icon) } - inner class Holder(itemView: View) : VerticalListViewHolder(itemView) { + class Holder(itemView: View) : VerticalListViewHolder(itemView) { val icon: AppIconImageView = itemView.findViewById(R.id.adapter_services_icon) val name: TypeFaceTextView = itemView.findViewById(R.id.adapter_services_name) val packageId: TypeFaceTextView = itemView.findViewById(R.id.adapter_services_package) diff --git a/app/src/main/java/app/simple/inure/viewmodels/viewers/ActivitiesViewModel.kt b/app/src/main/java/app/simple/inure/viewmodels/viewers/ActivitiesViewModel.kt index a2aa7e5b9..7e27a94aa 100644 --- a/app/src/main/java/app/simple/inure/viewmodels/viewers/ActivitiesViewModel.kt +++ b/app/src/main/java/app/simple/inure/viewmodels/viewers/ActivitiesViewModel.kt @@ -60,7 +60,6 @@ class ActivitiesViewModel(application: Application, private val packageInfo: Pac } with(StringBuilder()) { - append(" | ") append(MetaUtils.getLaunchMode(ai.launchMode, applicationContext())) append(" | ") append(MetaUtils.getOrientation(ai.screenOrientation, applicationContext())) diff --git a/app/src/main/java/app/simple/inure/viewmodels/viewers/ProvidersViewModel.kt b/app/src/main/java/app/simple/inure/viewmodels/viewers/ProvidersViewModel.kt index 558c8da32..da3002554 100644 --- a/app/src/main/java/app/simple/inure/viewmodels/viewers/ProvidersViewModel.kt +++ b/app/src/main/java/app/simple/inure/viewmodels/viewers/ProvidersViewModel.kt @@ -57,9 +57,7 @@ class ProvidersViewModel(application: Application, val packageInfo: PackageInfo) } with(StringBuilder()) { - append(" | ") append(MetaUtils.getServiceFlags(pi.flags, applicationContext())) - providerInfoModel.status = this.toString() } diff --git a/app/src/main/java/app/simple/inure/viewmodels/viewers/ServicesViewModel.kt b/app/src/main/java/app/simple/inure/viewmodels/viewers/ServicesViewModel.kt index ede876eb0..fc1b25c51 100644 --- a/app/src/main/java/app/simple/inure/viewmodels/viewers/ServicesViewModel.kt +++ b/app/src/main/java/app/simple/inure/viewmodels/viewers/ServicesViewModel.kt @@ -59,7 +59,6 @@ class ServicesViewModel(application: Application, private val packageInfo: Packa } with(StringBuilder()) { - append(" | ") append(MetaUtils.getForegroundServiceType(serviceInfoModel.foregroundType, applicationContext())) append(" | ") append(MetaUtils.getServiceFlags(info.flags, applicationContext())) diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 4b66571c2..ad0d54221 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -112,7 +112,6 @@ عدد الطرق متعدد Dex, %1$s واحد Dex, %1$s - %1$s | %2$s الطرفية إحصائية الاستخدام اغلاق diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index b3325c173..4160a9808 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -117,7 +117,6 @@ Ein gerootetes Gerät wird benötigt. Methodenanzahl %1$s Single Dex, %1$s - %1$s | %2$s Terminal Nutzungsstatistiken Schließen diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index c9d7238a4..09fd5abad 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -112,7 +112,6 @@ Contador de métodos Multi Dex, %1$s Único Dex, %1$s - %1$s | %2$s Terminal Estadísticas de uso Cerrar diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e87f00865..801065f43 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -111,7 +111,6 @@ Method Count Multi Dex, %1$s Single Dex, %1$s - %1$s | %2$s Terminal Usage Statistics Close