studhub-epfl/studhub-app

View on GitHub

Showing 43 of 254 total issues

Method UserRatingScreen has a Cognitive Complexity of 56 (exceeds 20 allowed). Consider refactoring.
Open

/**
 * Ratings screen for a user with [targetUserId]
 */
@Composable
fun UserRatingScreen(

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Method CreateListingScreen has a Cognitive Complexity of 53 (exceeds 20 allowed). Consider refactoring.
Open

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun CreateListingScreen(
    viewModel: CreateListingViewModel = hiltViewModel(),
    navigateToListing: (id: String) -> Unit,

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

File MeetingPointPickerActivity.kt has 336 lines of code (exceeds 250 allowed). Consider refactoring.
Open

package com.studhub.app

import android.Manifest
import android.app.Activity
import android.content.Context
Severity: Minor
Found in app/src/main/java/com/studhub/app/MeetingPointPickerActivity.kt - About 4 hrs to fix

    Method UserRatingScreen has 99 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    /**
     * Ratings screen for a user with [targetUserId]
     */
    @Composable
    fun UserRatingScreen(

      Method handleSubmitRating has a Cognitive Complexity of 41 (exceeds 20 allowed). Consider refactoring.
      Open

      fun handleSubmitRating(
          viewModel: IUserRatingViewModel,
          targetUserId: String,
          currentUser: State<ApiResponse<User>>,
          thumbUp: Boolean,

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method RatingDialog has a Cognitive Complexity of 38 (exceeds 20 allowed). Consider refactoring.
      Open

      @Composable
      fun RatingDialog(
          showDialog: Boolean,
          setShowDialog: () -> Unit,
          onSubmit: (Boolean, String) -> Unit,

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Method CreateListingScreen has 76 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      @OptIn(ExperimentalMaterial3Api::class)
      @Composable
      fun CreateListingScreen(
          viewModel: CreateListingViewModel = hiltViewModel(),
          navigateToListing: (id: String) -> Unit,

        Method setupSearchBar has 67 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            private fun setupSearchBar() {
        
                // Initialize the Places SDK
                if (!Places.isInitialized()) {
                    Places.initialize(applicationContext, MAPS_API_KEY)
        Severity: Major
        Found in app/src/main/java/com/studhub/app/MeetingPointPickerActivity.kt - About 2 hrs to fix

          Method Details has a Cognitive Complexity of 33 (exceeds 20 allowed). Consider refactoring.
          Open

          /**
           * Main composable for the detailed listing screen. It contains nearly all the elements to be displayed.
           *
           * @param onMeetingPointClick handler for when the user clicks the meeting point button
           * @param listing the listing we're displaying details about

          Cognitive Complexity

          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

          A method's cognitive complexity is based on a few simple rules:

          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
          • Code is considered more complex for each "break in the linear flow of the code"
          • Code is considered more complex when "flow breaking structures are nested"

          Further reading

          Method Details has 59 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          /**
           * Main composable for the detailed listing screen. It contains nearly all the elements to be displayed.
           *
           * @param onMeetingPointClick handler for when the user clicks the meeting point button
           * @param listing the listing we're displaying details about

            File ListingRepositoryImpl.kt has 263 lines of code (exceeds 250 allowed). Consider refactoring.
            Open

            package com.studhub.app.data.repository
            
            import android.util.Log
            import com.google.android.gms.common.api.Api
            import com.google.firebase.database.FirebaseDatabase

              Method ListingForm has 55 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

              /**
               * The form to create a listing
               * Params are all the mutable state passed from the parent to be used in the different parts of the
               * form itself.
               * @param onSubmit is the handler of the form submission

                Class MeetingPointPickerActivity has 21 methods (exceeds 20 allowed). Consider refactoring.
                Open

                class MeetingPointPickerActivity : AppCompatActivity(), OnMapReadyCallback, CoroutineScope {
                
                    private lateinit var mapView: MapView
                    private var confirmButton: Button? = null
                    private lateinit var searchView: AutoCompleteTextView
                Severity: Minor
                Found in app/src/main/java/com/studhub/app/MeetingPointPickerActivity.kt - About 2 hrs to fix

                  Method ListingCard has 50 lines of code (exceeds 25 allowed). Consider refactoring.
                  Confirmed

                  @OptIn(ExperimentalMaterial3Api::class)
                  @Composable
                  fun ListingCard(listing: Listing, onClick: () -> Unit) {
                      Card(
                          onClick = onClick,

                    Method BrowseScreenListings has 46 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                    /**
                     * Main content of the screen where all the listings are displayed as well as the search fields
                     *
                     * @param viewModel takes a BrowseViewModel to be used to interact with the database
                     * @param navController needs to be given to allow navigation when clicking a specific listing

                      Method UserHeader has 40 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                      @Composable
                      fun UserHeader(
                          targetUser: State<ApiResponse<User>>,
                          thumbsUpCount: Int,
                          thumbsDownCount: Int,

                        Method SignInContent has a Cognitive Complexity of 28 (exceeds 20 allowed). Consider refactoring.
                        Open

                        @Composable
                        @ExperimentalComposeUiApi
                        fun SignInContent(
                            padding: PaddingValues,
                            signIn: (email: String, password: String) -> Unit,

                        Cognitive Complexity

                        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                        A method's cognitive complexity is based on a few simple rules:

                        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                        • Code is considered more complex for each "break in the linear flow of the code"
                        • Code is considered more complex when "flow breaking structures are nested"

                        Further reading

                        Method BrowseScreenListings has a Cognitive Complexity of 28 (exceeds 20 allowed). Consider refactoring.
                        Open

                        /**
                         * Main content of the screen where all the listings are displayed as well as the search fields
                         *
                         * @param viewModel takes a BrowseViewModel to be used to interact with the database
                         * @param navController needs to be given to allow navigation when clicking a specific listing

                        Cognitive Complexity

                        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                        A method's cognitive complexity is based on a few simple rules:

                        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                        • Code is considered more complex for each "break in the linear flow of the code"
                        • Code is considered more complex when "flow breaking structures are nested"

                        Further reading

                        Method RatingDialog has 39 lines of code (exceeds 25 allowed). Consider refactoring.
                        Open

                        @Composable
                        fun RatingDialog(
                            showDialog: Boolean,
                            setShowDialog: () -> Unit,
                            onSubmit: (Boolean, String) -> Unit,

                          Method handleSubmitRating has 38 lines of code (exceeds 25 allowed). Consider refactoring.
                          Open

                          fun handleSubmitRating(
                              viewModel: IUserRatingViewModel,
                              targetUserId: String,
                              currentUser: State<ApiResponse<User>>,
                              thumbUp: Boolean,
                            Severity
                            Category
                            Status
                            Source
                            Language