ComplexCondition:AccountPreferenceFragment.kt$AccountPreferenceFragment$(showEmail && emailEditText?.isValid != true) || passwordEditText?.isValid != true || passwordRepeatEditText?.isValid != true
ComplexCondition:AutocompleteAdapter.kt$AutocompleteAdapter.<no name provided>$constraint[0] == '@' && constraint.length >= 3 && socialRepository != null && remoteAutocomplete
ComplexCondition:AvatarStatsWidgetProvider.kt$AvatarStatsWidgetProvider$showManaBar[widgetId] != true || stats.habitClass == null || ( stats.lvl ?: 0 ) < 10 || user.preferences?.disableClasses == true
ComplexCondition:AvatarStatsWidgetProvider.kt$AvatarStatsWidgetProvider$user == null || stats == null || context == null || appWidgetManager == null
ComplexCondition:ChallengeListFragment.kt$ChallengeListFragment$(!forced && binding?.refreshLayout?.isRefreshing == true) || loadedAllData || !this::challengeRepository.isInitialized
ComplexCondition:ChatRecyclerViewHolder.kt$ChatRecyclerMessageViewHolder$(name != null && msg.text?.contains("@$name") == true) || (username != null && msg.text?.contains(username) == true)
ComplexCondition:CustomizationRecyclerViewAdapter.kt$CustomizationRecyclerViewAdapter$this.customizationList[position] is CustomizationSet && (position == (customizationList.size - 1) || (position < customizationList.size && customizationList[position + 1] is CustomizationSet))
ComplexCondition:ItemRecyclerAdapter.kt$ItemRecyclerAdapter.ItemViewHolder$!(selectedItem is QuestContent || selectedItem is SpecialItem || ownedItem?.itemType == "special") && index == 0
ComplexCondition:LoginActivity.kt$LoginActivity$username.isEmpty() || password.isEmpty() || email.isEmpty() || confirmPassword.isEmpty()
ComplexCondition:LoginBackgroundView.kt$LoginBackgroundView$viewWidth <= 0 || viewHeight <= 0 || didLayoutStars || starViews?.size == 0
ComplexCondition:NavigationDrawerFragment.kt$NavigationDrawerFragment$adapter.selectedItem != null && adapter.selectedItem == transitionId && bundle == null && preventReselection
ComplexCondition:PartyInviteFragment.kt$viewModel.invites.size > index && viewModel.invites[index].isBlank() && viewModel.invites.size - 1 != index && viewModel.invites.size > 1
ComplexCondition:PurchaseDialog.kt$PurchaseDialog$(shopItem.currency != "gold" || shopItem.canAfford(user, purchaseQuantity)) && !shopItem.locked && purchaseQuantity >= 1
ComplexCondition:PurchaseDialog.kt$PurchaseDialog$shopIdentifier != null && shopIdentifier == Shop.TIME_TRAVELERS_SHOP || "mystery_set" == shopItem.purchaseType || shopItem.currency == "hourglasses"
ComplexCondition:PurchaseDialog.kt$PurchaseDialog$shopItem.habitClass != null && shopItem.habitClass != "special" && shopItem.habitClass != "armoire" && user?.stats?.habitClass != shopItem.habitClass
ComplexCondition:PurchaseDialog.kt$PurchaseDialog$shopItem.purchaseType == "customization" || shopItem.purchaseType == "background" || shopItem.purchaseType == "backgrounds" || shopItem.purchaseType == "customizationSet"
ComplexCondition:RealmTaskLocalRepository.kt$RealmTaskLocalRepository$firstTask != null && secondTask != null && firstTask.isValid && secondTask.isValid
ComplexCondition:RewardsRecyclerViewAdapter.kt$RewardsRecyclerViewAdapter$(customRewards != null && position < customRewardCount) || (customRewardCount == 0 && inAppRewardCount == 0)
ComplexCondition:SafeDefaultItemAnimator.kt$SafeDefaultItemAnimator$!removalsPending && !movesPending && !additionsPending && !changesPending
ComplexCondition:SubscriptionBottomSheetFragment.kt$SubscriptionBottomSheetFragment$user?.purchased?.plan?.paymentMethod == "Google" && user?.purchased?.plan?.isActive == true && user?.purchased?.plan?.dateTerminated == null && (newestSubscription?.isAutoRenewing != true)
ComplexCondition:SubscriptionFragment.kt$SubscriptionFragment$user?.purchased?.plan?.paymentMethod == "Google" && user?.purchased?.plan?.isActive == true && user?.purchased?.plan?.dateTerminated == null && (newestSubscription?.isAutoRenewing != true)
ComplexCondition:Task.kt$Task$counterUp != null && (counterUp ?: 0) > 0 && counterDown != null && (counterDown ?: 0) > 0
ComplexMethod:AccountPreferenceFragment.kt$AccountPreferenceFragment$override fun onPreferenceTreeClick(preference: Preference): Boolean
ComplexMethod:ApiClientImpl.kt$ApiClientImpl$fun accept(throwable: Throwable)
ComplexMethod:AppHeaderView.kt$@Composable fun AppHeaderView( user : Avatar?, modifier : Modifier = Modifier, isMyProfile : Boolean = false, teamPlan : TeamPlan? = null, teamPlanMembers : List<Member>? = null, onAvatarClicked: (() -> Unit)? = null, onMemberRowClicked : () -> Unit, onClassSelectionClicked: () -> Unit, configManager: AppConfigManager )
ComplexMethod:AvatarStatsWidgetProvider.kt$AvatarStatsWidgetProvider$private fun updateData(widgetIds: IntArray? = null)
ComplexMethod:BaseActivity.kt$BaseActivity$internal open fun loadTheme(sharedPreferences: SharedPreferences, forced: Boolean = false)
ComplexMethod:BaseTaskViewHolder.kt$BaseTaskViewHolder$open fun bind( data: Task, position: Int, displayMode: String, ownerID: String? )
ComplexMethod:ChatMessageDeserializer.kt$ChatMessageDeserializer$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): ChatMessage
ComplexMethod:ChatRecyclerViewHolder.kt$ChatRecyclerMessageViewHolder$fun bind(msg: ChatMessage, uuid: String, user: User?, isExpanded: Boolean)
ComplexMethod:ChecklistedViewHolder.kt$ChecklistedViewHolder$private fun updateChecklistDisplay()
ComplexMethod:CustomizationRecyclerViewAdapter.kt$CustomizationRecyclerViewAdapter$fun setCustomizations(newCustomizationList: List<Customization>)
ComplexMethod:CustomizationSetupAdapter.kt$CustomizationSetupAdapter$private fun isCustomizationActive(customization: SetupCustomization): Boolean
ComplexMethod:EquipmentOverviewView.kt$@Composable fun AvatarCustomizationOverviewView( preferences: Preferences?, outfit: Outfit?, onCustomizationTap: (String, String?) -> Unit, onAvatarEquipmentTap: (String, String?) -> Unit, modifier: Modifier = Modifier )
ComplexMethod:GroupSerialization.kt$GroupSerialization$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): Group
ComplexMethod:ItemDialogFragment.kt$ItemDialogFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?)
ComplexMethod:ItemRecyclerAdapter.kt$ItemRecyclerAdapter.ItemViewHolder$override fun onClick(v: View)
ComplexMethod:LoadingButton.kt$@OptIn(ExperimentalAnimationApi::class) @Composable fun LoadingButton( state: LoadingButtonState, onClick: () -> Unit, modifier: Modifier = Modifier, type: LoadingButtonType = LoadingButtonType.NORMAL, elevation: ButtonElevation? = ButtonDefaults.elevation(0.dp), shape: Shape = MaterialTheme.shapes.medium, border: BorderStroke? = null, colors: ButtonColors? = null, contentPadding: PaddingValues = ButtonDefaults.ContentPadding, successContent: (@Composable RowScope.() -> Unit)? = null, failedContent: (@Composable RowScope.() -> Unit)? = null, content: @Composable RowScope.() -> Unit )
ComplexMethod:LocalNotificationActionReceiver.kt$LocalNotificationActionReceiver$private fun handleLocalNotificationAction(action: String?)
ComplexMethod:MemberSerialization.kt$MemberSerialization$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): Member
ComplexMethod:NavigationDrawerFragment.kt$NavigationDrawerFragment$private fun updateUser(user: User)
ComplexMethod:NotificationsManager.kt$MainNotificationsManager$private fun handlePopupNotifications(notifications: List<Notification>): Boolean
ComplexMethod:PetSuggestHatchDialog.kt$PetSuggestHatchDialog$fun configure( pet: Animal, egg: Egg?, potion: HatchingPotion?, eggCount: Int, potionCount: Int, hasUnlockedEgg: Boolean, hasUnlockedPotion: Boolean, hasMount: Boolean )
ComplexMethod:PreferencesFragment.kt$PreferencesFragment$override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String?)
ComplexMethod:PreferencesFragment.kt$PreferencesFragment$override fun setUser(user: User?)
ComplexMethod:PurchaseDialog.kt$PurchaseDialog$private fun buyItem(quantity: Int)
ComplexMethod:PurchaseDialog.kt$PurchaseDialog$private suspend fun remainingPurchaseQuantity(onResult: (Int) -> Unit)
ComplexMethod:SafeDefaultItemAnimator.kt$SafeDefaultItemAnimator$override fun runPendingAnimations()
ComplexMethod:ScoreTaskLocallyInteractor.kt$ScoreTaskLocallyInteractor.Companion$fun score(user: User, task: Task, direction: TaskDirection): TaskDirectionData?
ComplexMethod:SetupCustomizationRepositoryImpl.kt$SetupCustomizationRepositoryImpl$override fun getCustomizations(type: String, subtype: String?, user: User): List<SetupCustomization>
ComplexMethod:ShopRecyclerAdapter.kt$ShopRecyclerAdapter$@Suppress("ReturnCount") override fun onBindViewHolder( holder: ViewHolder, position: Int )
ComplexMethod:ShowNotificationInteractor.kt$ShowNotificationInteractor$fun handleNotification(notification: Notification): Boolean
ComplexMethod:StableViewModel.kt$StableViewModel$private fun mapAnimals(unsortedAnimals: List<Animal>, ownedAnimals: Map<String, OwnedObject>): ArrayList<Any>
ComplexMethod:StatsFragment.kt$StatsFragment$private fun updateStats(user: User)
ComplexMethod:SubscriptionDetailsView.kt$SubscriptionDetailsView$fun setPlan(plan: SubscriptionPlan)
ComplexMethod:Task.kt$Task$ fun getNextReminderOccurrences(remindersItem: RemindersItem?, occurrences: Int): List<ZonedDateTime>?
ComplexMethod:Task.kt$Task$fun isBeingEdited(task: Task): Boolean
ComplexMethod:TaskDescriptionBuilder.kt$TaskDescriptionBuilder$private fun describeRepeatDays(task: Task): Any
ComplexMethod:TaskFormActivity.kt$TaskFormActivity$override fun onCreate(savedInstanceState: Bundle?)
ComplexMethod:TaskFormActivity.kt$TaskFormActivity$private fun fillForm(task: Task)
ComplexMethod:TaskRepositoryImpl.kt$TaskRepositoryImpl$private fun handleTaskResponse( user: User, res: TaskDirectionData, task: Task, up: Boolean, localDelta: Float )
ComplexMethod:TaskSchedulingControls.kt$TaskSchedulingControls$private fun generateSummary()
ComplexMethod:TaskSerializer.kt$TaskSerializer$override fun deserialize( json: JsonElement?, typeOfT: Type?, context: JsonDeserializationContext ): Task
ComplexMethod:TaskSummaryActivity.kt$@Composable fun TaskSummaryView(viewModel: TaskSummaryViewModel)
ComplexMethod:UserDeserializer.kt$UserDeserializer$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): User
ComplexMethod:UserStatComputer.kt$UserStatComputer$fun computeClassBonus(equipmentList: List<Equipment>?, user: Avatar): List<StatsRow>
ComplexMethod:WorldStateSerialization.kt$WorldStateSerialization$override fun deserialize( json: JsonElement?, typeOfT: Type?, context: JsonDeserializationContext? ): WorldState
ConstructorParameterNaming:Days.kt$Days$`in`: Parcel
ConstructorParameterNaming:Task.kt$Task$`in`: Parcel
DuplicateCaseInWhenExpression:ShowNotificationInteractor.kt$ShowNotificationInteractor$when (notification.type) { Notification.Type.LOGIN_INCENTIVE.type -> showCheckinDialog(notification) Notification.Type.ACHIEVEMENT_PARTY_UP.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_PARTY_ON.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_BEAST_MASTER.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_MOUNT_MASTER.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_TRIAD_BINGO.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_GUILD_JOINED.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_CHALLENGE_JOINED.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_INVITED_FRIEND.type -> showAchievementDialog(notification) Notification.Type.WON_CHALLENGE.type -> showWonChallengeDialog(notification) Notification.Type.ACHIEVEMENT_ALL_YOUR_BASE.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_BACK_TO_BASICS.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_JUST_ADD_WATER.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_LOST_MASTERCLASSER.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_MIND_OVER_MATTER.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_DUST_DEVIL.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_ARID_AUTHORITY.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_MONSTER_MAGUS.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_UNDEAD_UNDERTAKER.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_PRIMED_FOR_PAINTING.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_PEARLY_PRO.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_TICKLED_PINK.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_ROSY_OUTLOOK.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_BUG_BONANZA.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_BARE_NECESSITIES.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_FRESHWATER_FRIENDS.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_GOOD_AS_GOLD.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_ALL_THAT_GLITTERS.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_GOOD_AS_GOLD.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_BONE_COLLECTOR.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_SKELETON_CREW.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_SEEING_RED.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_RED_LETTER_DAY.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_GENERIC.type -> showAchievementDialog(notification) Notification.Type.ACHIEVEMENT_ONBOARDING_COMPLETE.type -> showAchievementDialog(notification) Notification.Type.FIRST_DROP.type -> showFirstDropDialog(notification) else -> return false }
EmptyFunctionBlock:AccountPreferenceFragment.kt$AccountPreferenceFragment${ }
EmptyFunctionBlock:FallExtraGemsHabiticaPromotion.kt$FallExtraGemsHabiticaPromotion${ }
EmptyFunctionBlock:GiftOneGetOneHabiticaPromotion.kt$GiftOneGetOneHabiticaPromotion${ }
EmptyFunctionBlock:HabiticaAccountDialog.kt$HabiticaAccountDialog.<no name provided>${ }
EmptyFunctionBlock:HabiticaBaseApplication.kt$HabiticaBaseApplication${ }
EmptyFunctionBlock:MainActivity.kt$MainActivity.<no name provided>${ }
EmptyFunctionBlock:RealmInventoryLocalRepository.kt$RealmInventoryLocalRepository${ }
EmptyFunctionBlock:ScoreTaskLocallyInteractor.kt$ScoreTaskLocallyInteractor.Companion${ }
EmptyFunctionBlock:SpookyExtraGemsHabiticaPromotion.kt$SpookyExtraGemsHabiticaPromotion${ }
EmptyFunctionBlock:Survey2021Promotion.kt$Survey2021Promotion${ }
ForbiddenComment:ShopItem.kt$ShopItem.Companion$// TODO: Needs a way to be translated.
FunctionParameterNaming:BaseLocalRepository.kt$BaseLocalRepository$`object`: T
FunctionParameterNaming:DragLinearLayout.kt$DragLinearLayout.Companion$`val`: Float
FunctionParameterNaming:FullProfileActivity.kt$FullProfileActivity$`val`: Float
LargeClass:ApiClientImpl.kt$ApiClientImpl : ApiClient
LargeClass:FullProfileActivity.kt$FullProfileActivity : BaseActivity
LargeClass:NavigationDrawerFragment.kt$NavigationDrawerFragment : DialogFragment
LargeClass:TaskFormActivity.kt$TaskFormActivity : BaseActivity
LongMethod:AppHeaderView.kt$@Composable fun AppHeaderView( user : Avatar?, modifier : Modifier = Modifier, isMyProfile : Boolean = false, teamPlan : TeamPlan? = null, teamPlanMembers : List<Member>? = null, onAvatarClicked: (() -> Unit)? = null, onMemberRowClicked : () -> Unit, onClassSelectionClicked: () -> Unit, configManager: AppConfigManager )
LongMethod:ArmoireActivity.kt$ArmoireActivity$override fun onCreate(savedInstanceState: Bundle?)
LongMethod:AvatarOverviewFragment.kt$@Composable fun AvatarOverviewView( userViewModel: MainUserViewModel, showCustomization: Boolean = true, showEquipment: Boolean = true, battleGearTwoHanded: Boolean = false, costumeTwoHanded: Boolean = false, onCustomizationTap: (String, String?) -> Unit, onAvatarEquipmentTap: (String, String?) -> Unit, onEquipmentTap: (String, String?, Boolean) -> Unit, )
LongMethod:AvatarStatsWidgetProvider.kt$AvatarStatsWidgetProvider$private fun updateData(widgetIds: IntArray? = null)
LongMethod:BaseTaskViewHolder.kt$BaseTaskViewHolder$open fun bind( data: Task, position: Int, displayMode: String, ownerID: String? )
LongMethod:BirthdayActivity.kt$@Composable fun BirthdayActivityView( scaffoldState: ScaffoldState, isPurchasing: Boolean, hasGryphatrice: Boolean, hasEquipped: Boolean, price: String, startDate: Date, endDate: Date, onPurchaseClick: () -> Unit, onGemPurchaseClick: () -> Unit, onEquipClick: () -> Unit )
LongMethod:BirthdayMenuView.kt$@Composable fun BirthdayBanner(endDate: Date, modifier: Modifier = Modifier)
LongMethod:ChatRecyclerViewHolder.kt$ChatRecyclerMessageViewHolder$fun bind(msg: ChatMessage, uuid: String, user: User?, isExpanded: Boolean)
LongMethod:ContentDeserializer.kt$ContentDeserializer$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): ContentResult
LongMethod:CustomizationDeserializer.kt$CustomizationDeserializer$@Throws(JsonParseException::class) override fun deserialize( json: JsonElement, typeOfT: Type, context: JsonDeserializationContext ): List<Customization>
LongMethod:DeathActivity.kt$DeathActivity$override fun onCreate(savedInstanceState: Bundle?)
LongMethod:EquipmentOverviewView.kt$@Composable fun AvatarCustomizationOverviewView( preferences: Preferences?, outfit: Outfit?, onCustomizationTap: (String, String?) -> Unit, onAvatarEquipmentTap: (String, String?) -> Unit, modifier: Modifier = Modifier )
LongMethod:FullProfileActivity.kt$FullProfileActivity$override fun onOptionsItemSelected(item: MenuItem): Boolean
LongMethod:GroupPlanMemberList.kt$@Composable fun MemberItem( member: Member, role: String, onMemberClicked: (String) -> Unit, configManager: AppConfigManager, modifier: Modifier = Modifier )
LongMethod:GroupSerialization.kt$GroupSerialization$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): Group
LongMethod:HabitViewHolder.kt$HabitViewHolder$override fun bind( data: Task, position: Int, displayMode: String, ownerID: String? )
LongMethod:ItemRecyclerAdapter.kt$ItemRecyclerAdapter.ItemViewHolder$override fun onClick(v: View)
LongMethod:LabeledBar.kt$@Composable fun LabeledBar( modifier: Modifier = Modifier, icon: Bitmap? = null, label: String? = null, color: Color = colorResource(R.color.brand), barColor: Color = HabiticaTheme.colors.windowBackground, value: Double, maxValue: Double, displayCompact: Boolean = false, barHeight: Dp = 8.dp, disabled: Boolean = false, abbreviateValue: Boolean = true, abbreviateMax: Boolean = true, animated: Boolean = true )
LongMethod:LoadingButton.kt$@OptIn(ExperimentalAnimationApi::class) @Composable fun LoadingButton( state: LoadingButtonState, onClick: () -> Unit, modifier: Modifier = Modifier, type: LoadingButtonType = LoadingButtonType.NORMAL, elevation: ButtonElevation? = ButtonDefaults.elevation(0.dp), shape: Shape = MaterialTheme.shapes.medium, border: BorderStroke? = null, colors: ButtonColors? = null, contentPadding: PaddingValues = ButtonDefaults.ContentPadding, successContent: (@Composable RowScope.() -> Unit)? = null, failedContent: (@Composable RowScope.() -> Unit)? = null, content: @Composable RowScope.() -> Unit )
LongMethod:LocalNotificationActionReceiver.kt$LocalNotificationActionReceiver$private fun handleLocalNotificationAction(action: String?)
LongMethod:MainActivity.kt$MainActivity$public override fun onCreate(savedInstanceState: Bundle?)
LongMethod:MountBottomSheet.kt$@Composable fun MountBottomSheet( mount: Mount, isCurrentMount: Boolean, onEquip: ((String) -> Unit)?, onDismiss: () -> Unit, modifier: Modifier = Modifier )
LongMethod:NavigationDrawerFragment.kt$NavigationDrawerFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?)
LongMethod:NavigationDrawerFragment.kt$NavigationDrawerFragment$private fun initializeMenuItems()
LongMethod:NavigationDrawerFragment.kt$NavigationDrawerFragment$private fun updateUser(user: User)
LongMethod:PartyInviteFragment.kt$@OptIn(ExperimentalFoundationApi::class) @Composable fun PartyInviteView( viewModel: PartyInviteViewModel, dismiss: () -> Unit )
LongMethod:PartySeekingFragment.kt$@OptIn(ExperimentalMaterialApi::class, ExperimentalFoundationApi::class) @Composable fun PartySeekingView( viewModel: PartySeekingViewModel, modifier: Modifier = Modifier )
LongMethod:PartySeekingListItem.kt$@Composable fun PartySeekingListItem( user: Member, modifier: Modifier = Modifier, inviteState: LoadingButtonState = LoadingButtonState.LOADING, isInvited: Boolean = false, showHeader: Boolean = false, showExtendedInfo: Boolean = true, configManager: AppConfigManager, onInvite: (Member) -> Unit, )
LongMethod:PauseResumeDamageView.kt$@Composable fun PauseResumeDamageView( isPaused: Boolean, onClick: () -> Unit, modifier: Modifier = Modifier )
LongMethod:PetBottomSheet.kt$@Composable fun PetBottomSheet( pet: Pet, trained: Int, isCurrentPet: Boolean, canRaiseToMount: Boolean, ownsSaddles: Boolean, onEquip: ((String) -> Unit)?, onFeed: (suspend (Pet, Food?) -> FeedResponse?)?, onDismiss: () -> Unit, modifier: Modifier = Modifier )
LongMethod:PetSuggestHatchDialog.kt$PetSuggestHatchDialog$fun configure( pet: Animal, egg: Egg?, potion: HatchingPotion?, eggCount: Int, potionCount: Int, hasUnlockedEgg: Boolean, hasUnlockedPotion: Boolean, hasMount: Boolean )
LongMethod:PreferencesFragment.kt$PreferencesFragment$override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String?)
LongMethod:PreferencesFragment.kt$PreferencesFragment$override fun setUser(user: User?)
LongMethod:PurchaseDialog.kt$PurchaseDialog$private fun buyItem(quantity: Int)
LongMethod:SafeDefaultItemAnimator.kt$SafeDefaultItemAnimator$override fun endAnimations()
LongMethod:SafeDefaultItemAnimator.kt$SafeDefaultItemAnimator$override fun runPendingAnimations()
LongMethod:SegmentedControl.kt$ @Composable fun SegmentedControl( items: List<String>, defaultSelectedItemIndex: Int = 0, useFixedWidth: Boolean = false, itemWidth: Dp = 120.dp, cornerRadius: Int = 10, onItemSelection: (selectedItemIndex: Int) -> Unit )
LongMethod:ShopFragment.kt$ShopFragment$override fun onViewCreated(view: View, savedInstanceState: Bundle?)
LongMethod:SubscriptionDetailsView.kt$SubscriptionDetailsView$fun setPlan(plan: SubscriptionPlan)
LongMethod:TaskFormActivity.kt$TaskFormActivity$override fun onCreate(savedInstanceState: Bundle?)
LongMethod:TaskSummaryActivity.kt$@Composable fun TaskSummaryView(viewModel: TaskSummaryViewModel)
LongMethod:UserDeserializer.kt$UserDeserializer$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): User
LongMethod:UserStatComputer.kt$UserStatComputer$fun computeClassBonus(equipmentList: List<Equipment>?, user: Avatar): List<StatsRow>
LongParameterList:AssignedView.kt$( assigned: List<Assignable>, completedAt: Map<String, Date>, backgroundColor: Color, color: Color, onEditClick: () -> Unit, onUndoClick: (String) -> Unit, configManager: AppConfigManager, modifier: Modifier = Modifier, showEditButton: Boolean = false )
LongParameterList:BirthdayActivity.kt$( scaffoldState: ScaffoldState, isPurchasing: Boolean, hasGryphatrice: Boolean, hasEquipped: Boolean, price: String, startDate: Date, endDate: Date, onPurchaseClick: () -> Unit, onGemPurchaseClick: () -> Unit, onEquipClick: () -> Unit )
LongParameterList:FullProfileActivity.kt$FullProfileActivity$( label: String, strVal: Float, intVal: Float, conVal: Float, perVal: Float, roundDown: Boolean, isSummary: Boolean )
LongParameterList:HabiticaSnackbar.kt$HabiticaSnackbar.Companion$( container: ViewGroup, leftImage: Drawable?, title: CharSequence?, content: CharSequence?, specialView: View?, rightIcon: Drawable?, rightTextColor: Int?, rightText: String?, displayType: SnackbarDisplayType, isCelebratory: Boolean = false, isSubscriberBenefit: Boolean = false, duration: Int = Snackbar.LENGTH_LONG )
LongParameterList:HabiticaSnackbar.kt$HabiticaSnackbar.Companion$( container: ViewGroup, title: CharSequence?, content: CharSequence?, rightIcon: Drawable, rightTextColor: Int?, rightText: String, displayType: SnackbarDisplayType, isCelebratory: Boolean = false, isSubscriberBenefit: Boolean = false, duration: Int = Snackbar.LENGTH_LONG )
LongParameterList:MainActivityViewModel.kt$MainActivityViewModel$( userRepository: UserRepository, userViewModel: MainUserViewModel, val hostConfig: HostConfig, val pushNotificationManager: PushNotificationManager, val sharedPreferences: SharedPreferences, val contentRepository: ContentRepository, val taskRepository: TaskRepository, val inventoryRepository: InventoryRepository, val taskAlarmManager: TaskAlarmManager, val maintenanceService: MaintenanceApiService )
LongParameterList:NotifyUserUseCase.kt$NotifyUserUseCase.Companion$( context: Context, xp: Double?, hp: Double?, gold: Double?, mp: Double?, questDamage: Double?, user: User? )
LongParameterList:NotifyUserUseCase.kt$NotifyUserUseCase.RequestValues$( val context: BaseActivity, val snackbarTargetView: ViewGroup, val user: User?, val xp: Double?, val hp: Double?, val gold: Double?, val mp: Double?, val questDamage: Double?, val hasLeveledUp: Boolean?, val level: Int? )
LongParameterList:PetBottomSheet.kt$( pet: Pet, trained: Int, isCurrentPet: Boolean, canRaiseToMount: Boolean, ownsSaddles: Boolean, onEquip: ((String) -> Unit)?, onFeed: (suspend (Pet, Food?) -> FeedResponse?)?, onDismiss: () -> Unit, modifier: Modifier = Modifier )
LongParameterList:PetDetailRecyclerAdapter.kt$PetDetailRecyclerAdapter.CanHatchViewHolder$( item: Pet, eggCount: Int, potionCount: Int, hasUnlockedEgg: Boolean, hasUnlockedPotion: Boolean, hasMount: Boolean )
LongParameterList:PetSuggestHatchDialog.kt$PetSuggestHatchDialog$( pet: Animal, egg: Egg?, potion: HatchingPotion?, eggCount: Int, potionCount: Int, hasUnlockedEgg: Boolean, hasUnlockedPotion: Boolean, hasMount: Boolean )
LongParameterList:PetViewHolder.kt$PetViewHolder$( item: Pet, trained: Int, eggCount: Int, potionCount: Int, canRaiseToMount: Boolean, ownsSaddles: Boolean, hasUnlockedEgg: Boolean, hasUnlockedPotion: Boolean, hasMount: Boolean, currentPet: String? )
LongParameterList:ScoreTaskLocallyInteractor.kt$ScoreTaskLocallyInteractor.Companion$( result: TaskDirectionData, delta: Double, stats: Stats, computedStats: Stats, task: Task, direction: TaskDirection )
LongParameterList:SocialRepository.kt$SocialRepository$( name: String?, description: String?, leader: String?, type: String?, privacy: String?, leaderCreateChallenge: Boolean? )
LongParameterList:StatsView.kt$( statText: String, statColor: Color, levelValue: Int, equipmentValue: Int, buffValue: Int, allocatedValue: Int, canAllocate: Boolean, allocateAction: () -> Unit )
LongParameterList:TaskListFactory.kt$TaskListFactory$( val context: Context, intent: Intent, private val taskType: TaskType, private val listItemResId: Int, private val listItemTextResId: Int, val taskRepository: TaskRepository, val userRepository: UserRepository )
LoopWithTooManyJumpStatements:CustomizationRecyclerViewAdapter.kt$CustomizationRecyclerViewAdapter$for (customization in newCustomizationList) { val isOwned = ownedCustomizations.contains(customization.id) val isUsable = customization.isUsable(isOwned) if (customization.availableFrom != null || customization.availableUntil != null) { if (( ( customization.availableFrom?.compareTo(today) ?: 0 ) > 0 || ( customization.availableUntil?.compareTo(today) ?: 0 ) < 0 ) && !isUsable ) { continue } } if (customization.identifier?.contains("birthday_bash") == true && !isOwned) { continue } if (customization.customizationSet != null && customization.customizationSet != lastSet.identifier) { if (lastSet.hasPurchasable && lastSet.price > 0) { customizationList.add(lastSet) } val set = CustomizationSet() set.identifier = customization.customizationSet set.text = customization.customizationSetName set.price = customization.setPrice ?: 0 set.hasPurchasable = true lastSet = set customizationList.add(set) } customizationList.add(customization) lastSet.customizations.add(customization) if (isUsable && lastSet.hasPurchasable) { lastSet.ownedCustomizations.add(customization) if (!lastSet.isSetDeal()) { lastSet.hasPurchasable = false } } }
MatchingDeclarationName:DateExtensions.kt$DateUtils
MatchingDeclarationName:TaskFormSelector.kt$LabeledValue<V>
MemberNameEqualsClassName:ReviewManager.kt$ReviewManager$private val reviewManager = ReviewManagerFactory.create(context)
NestedBlockDepth:BaseTaskViewHolder.kt$BaseTaskViewHolder$override fun onTouch(view: View?, motionEvent: MotionEvent?): Boolean
NestedBlockDepth:ChallengeDeserializer.kt$ChallengeDeserializer$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): Challenge
NestedBlockDepth:ChecklistedViewHolder.kt$ChecklistedViewHolder$private fun updateChecklistDisplay()
NestedBlockDepth:CustomizationDeserializer.kt$CustomizationDeserializer$@Throws(JsonParseException::class) override fun deserialize( json: JsonElement, typeOfT: Type, context: JsonDeserializationContext ): List<Customization>
NestedBlockDepth:GroupSerialization.kt$GroupSerialization$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): Group
NestedBlockDepth:ItemRecyclerAdapter.kt$ItemRecyclerAdapter.ItemViewHolder$override fun onClick(v: View)
NestedBlockDepth:MemberSerialization.kt$MemberSerialization$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): Member
NestedBlockDepth:NavigationDrawerFragment.kt$NavigationDrawerFragment$private fun updateUser(user: User)
NestedBlockDepth:PartyDetailFragment.kt$PartyDetailFragment$private fun updateUser(user: User?)
NestedBlockDepth:PreferencesFragment.kt$PreferencesFragment$override fun onPreferenceTreeClick(preference: Preference): Boolean
NestedBlockDepth:PurchaseDialog.kt$PurchaseDialog$private fun onBuyButtonClicked()
NestedBlockDepth:PurchaseDialog.kt$PurchaseDialog$private suspend fun remainingPurchaseQuantity(onResult: (Int) -> Unit)
NestedBlockDepth:QuestDetailFragment.kt$QuestDetailFragment$private fun setQuestParticipants(participants: List<Member>?)
NestedBlockDepth:QuestDropItemsListSerialization.kt$QuestDropItemsListSerialization$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): RealmList<QuestDropItem>
NestedBlockDepth:SafeDefaultItemAnimator.kt$SafeDefaultItemAnimator$override fun endAnimation(item: RecyclerView.ViewHolder)
NestedBlockDepth:ShopRecyclerAdapter.kt$ShopRecyclerAdapter$@Suppress("ReturnCount") override fun onBindViewHolder( holder: ViewHolder, position: Int )
NestedBlockDepth:StableRecyclerAdapter.kt$StableRecyclerAdapter$override fun getItemViewType(position: Int): Int
NestedBlockDepth:StableRecyclerAdapter.kt$StableRecyclerAdapter$override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int)
NestedBlockDepth:Task.kt$Task$ fun getNextReminderOccurrences(remindersItem: RemindersItem?, occurrences: Int): List<ZonedDateTime>?
NestedBlockDepth:Task.kt$Task$fun getDaysOfMonth(): List<Int>?
NestedBlockDepth:Task.kt$Task$fun getWeeksOfMonth(): List<Int>?
NestedBlockDepth:TaskFormActivity.kt$TaskFormActivity$private fun saveTask()
NestedBlockDepth:TaskListDeserializer.kt$TaskListDeserializer$override fun deserialize(json: JsonElement, typeOfT: Type, ctx: JsonDeserializationContext): TaskList
NestedBlockDepth:TaskListDeserializer.kt$TaskListDeserializer$private fun handleTags( databaseTags: List<Tag>, json: JsonArray?, context: JsonDeserializationContext ): RealmList<Tag>
NestedBlockDepth:TaskTagDeserializer.kt$TaskTagDeserializer$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): List<Tag>
NestedBlockDepth:TasksViewModel.kt$TasksViewModel$fun createQuery(unfilteredData: OrderedRealmCollection<Task>): RealmQuery<Task>?
NestedBlockDepth:UserDeserializer.kt$UserDeserializer$@Throws(JsonParseException::class) override fun deserialize(json: JsonElement, typeOfT: Type, context: JsonDeserializationContext): User
NestedBlockDepth:WorldStateSerialization.kt$WorldStateSerialization$override fun deserialize( json: JsonElement?, typeOfT: Type?, context: JsonDeserializationContext? ): WorldState
ReturnCount:BaseTaskViewHolder.kt$BaseTaskViewHolder$override fun onTouch(view: View?, motionEvent: MotionEvent?): Boolean
ReturnCount:Customization.kt$Customization$fun getImageName(userSize: String?, hairColor: String?): String?
ReturnCount:DragLinearLayout.kt$DragLinearLayout$override fun onInterceptTouchEvent(event: MotionEvent): Boolean
ReturnCount:DragLinearLayout.kt$DragLinearLayout$override fun onTouchEvent(event: MotionEvent): Boolean
ReturnCount:RealmBaseLocalRepository.kt$RealmBaseLocalRepository$override fun <T : BaseObject> getLiveObject(obj: T): T?
ReturnCount:ReviewManager.kt$ReviewManager$private fun canRequestReview(currentCheckins: Int): Boolean
ReturnCount:Task.kt$Task$ fun getNextReminderOccurrences(remindersItem: RemindersItem?, occurrences: Int): List<ZonedDateTime>?
ReturnCount:Task.kt$Task$fun isBeingEdited(task: Task): Boolean
SpreadOperator:Analytics.kt$Analytics$(*data.toList().toTypedArray())
ThrowingExceptionsWithoutMessageOrCause:EllipsisTextView.kt$EllipsisTextView$NullPointerException()
TooGenericExceptionCaught:ApiClientImpl.kt$ApiClientImpl$throwable: Throwable
TooGenericExceptionCaught:AuthenticationViewModel.kt$AuthenticationViewModel$e: Exception
TooGenericExceptionCaught:CustomizationDeserializer.kt$CustomizationDeserializer$e: Exception
TooGenericExceptionCaught:LoginActivity.kt$LoginActivity$e: Exception
TooGenericExceptionCaught:MainActivityViewModel.kt$MainActivityViewModel$e: Exception
TooGenericExceptionCaught:PartySeekingFragment.kt$PartySeekingPagingSource$e: Exception
TooGenericExceptionCaught:PurchaseHandler.kt$PurchaseHandler$throwable: Throwable
TooGenericExceptionCaught:SectionViewHolder.kt$SectionViewHolder$e: Exception
TooGenericExceptionCaught:SetupCustomizationRepositoryImpl.kt$SetupCustomizationRepositoryImpl$e: Exception
TooGenericExceptionCaught:SoundFile.kt$SoundFile$e: Exception
TooGenericExceptionCaught:TaskAlarmManager.kt$TaskAlarmManager.Companion$ex: Exception
TooGenericExceptionCaught:TaskListDeserializer.kt$TaskListDeserializer$e: RuntimeException
TooGenericExceptionCaught:TaskTagDeserializer.kt$TaskTagDeserializer$e: RuntimeException
TooGenericExceptionThrown:PurchaseHandler.kt$PurchaseHandler$throw Exception("Failed to consume purchase after multiple attempts")
TooManyFunctions:ApiClient.kt$ApiClient
TooManyFunctions:ApiClientImpl.kt$ApiClientImpl : ApiClient
TooManyFunctions:ApiService.kt$ApiService
TooManyFunctions:InventoryRepository.kt$InventoryRepository : BaseRepository
TooManyFunctions:InventoryRepositoryImpl.kt$InventoryRepositoryImpl : BaseRepositoryImplInventoryRepository
TooManyFunctions:SocialRepository.kt$SocialRepository : BaseRepository
TooManyFunctions:SocialRepositoryImpl.kt$SocialRepositoryImpl : BaseRepositoryImplSocialRepository
TooManyFunctions:UserRepository.kt$UserRepository : BaseRepository
TooManyFunctions:UserRepositoryImpl.kt$UserRepositoryImpl : BaseRepositoryImplUserRepository
UnnecessaryAbstractClass:HabiticaLocalNotification.kt$HabiticaLocalNotification
UnusedPrivateMember:AdHandler.kt$AdHandler$onComplete: ((Boolean) -> Unit)? = null
UnusedPrivateMember:AdHandler.kt$AdHandler.Companion$onComplete: () -> Unit
UnusedPrivateMember:AdHandler.kt$AdHandler.Companion$val deviceId: String = androidId.md5()?.uppercase() ?: ""
UnusedPrivateMember:BaseTasksRecyclerViewAdapter.kt$BaseTasksRecyclerViewAdapter$private fun updateTask(task: Task)
UnusedPrivateMember:BaseTasksRecyclerViewAdapter.kt$BaseTasksRecyclerViewAdapter$private val userID: String?
UnusedPrivateMember:BirthdayMenuView.kt$value: Int
UnusedPrivateMember:ClassSelectionActivity.kt$ClassSelectionActivity$selectedClass: String
UnusedPrivateMember:DragLinearLayout.kt$DragLinearLayout.Companion$`val`: Float
UnusedPrivateMember:FullProfileActivity.kt$FullProfileActivity$`val`: Float
UnusedPrivateMember:GroupFormActivity.kt$GroupFormActivity$private var autocompleteAdapter: AutocompleteAdapter? = null
UnusedPrivateMember:GuildDetailFragment.kt$GuildDetailFragment$private val sendInvitesResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { if (it.resultCode == Activity.RESULT_OK) { val inviteData = HashMap<String, Any>() inviteData["inviter"] = viewModel.user.value?.profile?.name ?: "" val emails = it.data?.getStringArrayExtra(GroupInviteActivity.EMAILS_KEY) if (!emails.isNullOrEmpty()) { val invites = ArrayList<HashMap<String, String>>() emails.forEach { email -> val invite = HashMap<String, String>() invite["name"] = "" invite["email"] = email invites.add(invite) } inviteData["emails"] = invites } val userIDs = it.data?.getStringArrayExtra(GroupInviteActivity.USER_IDS_KEY) if (!userIDs.isNullOrEmpty()) { val invites = ArrayList<String>() userIDs.forEach { invites.add(it) } inviteData["usernames"] = invites } viewModel.inviteToGroup(inviteData) } }
UnusedPrivateMember:GuildFragment.kt$GuildFragment$group: Group?
UnusedPrivateMember:MountBottomSheet.kt$@Composable private fun getBackgroundPainter(): ImageBitmap
UnusedPrivateMember:NotificationOpenHandler.kt$NotificationOpenHandler.Companion$private fun openQuestDetailSCreen()
UnusedPrivateMember:PurchaseHandler.kt$PurchaseHandler$purchase: Purchase
UnusedPrivateMember:ScoreTaskLocallyInteractor.kt$ScoreTaskLocallyInteractor.Companion$direction: TaskDirection
UnusedPrivateMember:ScoreTaskLocallyInteractor.kt$ScoreTaskLocallyInteractor.Companion$task: Task
UnusedPrivateMember:ScoreTaskLocallyInteractor.kt$ScoreTaskLocallyInteractor.Companion$user: User
UnusedPrivateMember:StableFragment.kt$StableFragment$private val viewModel: StableViewModel by viewModels()
UnusedPrivateMember:TaskAlarmManager.kt$TaskAlarmManager$private var authenticationHandler: AuthenticationHandler
UtilityClassWithPublicConstructor:AprilFoolsHandler.kt$AprilFoolsHandler
UtilityClassWithPublicConstructor:DateExtensions.kt$DateUtils
UtilityClassWithPublicConstructor:HapticFeedbackManager.kt$HapticFeedbackManager
UtilityClassWithPublicConstructor:KeyboardUtil.kt$KeyboardUtil
UtilityClassWithPublicConstructor:NotificationOpenHandler.kt$NotificationOpenHandler
UtilityClassWithPublicConstructor:ScoreTaskLocallyInteractor.kt$ScoreTaskLocallyInteractor
VariableNaming:Equipment.kt$Equipment$@SerializedName("int") var _int: Int = 0
VariableNaming:InboxAdapter.kt$InboxAdapter$private val FIRST_MESSAGE = 0
VariableNaming:InboxAdapter.kt$InboxAdapter$private val NORMAL_MESSAGE = 1
VariableNaming:Quest.kt$Quest$var RSVPNeeded: Boolean = false
VariableNaming:Training.kt$Training$@SerializedName("int") var _int: Float = 0f