scribeWiz-team/ScribeWiz

View on GitHub

Showing 50 of 50 total issues

Method onCreate has a Cognitive Complexity of 122 (exceeds 20 allowed). Consider refactoring.
Open

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Extract the challenge ID and user ID from the Intent that started this activity
        challengeId = intent.getStringExtra("challengeId")!!

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 ProfilePage has a Cognitive Complexity of 81 (exceeds 20 allowed). Consider refactoring.
Open

    /**
     * Composable function to display the profile page.
     */
    @OptIn(ExperimentalComposeUiApi::class)
    @Composable

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 ProfilePage has 137 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    /**
     * Composable function to display the profile page.
     */
    @OptIn(ExperimentalComposeUiApi::class)
    @Composable

    Method onCreateView has a Cognitive Complexity of 42 (exceeds 20 allowed). Consider refactoring.
    Open

        override fun onCreateView(
            inflater: LayoutInflater,
            container: ViewGroup?,
            savedInstanceState: Bundle?
        ): View {

    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

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

            /**
             * Retrieves a challenge by its ID.
             *
             * @param challengeId The ID of the challenge.
             * @return The result containing the challenge if it exists, or a failure with an exception.
    app/src/main/java/com/github/scribeWizTeam/scribewiz/models/UserModel.kt on lines 41..67

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 250.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

            /**
             * Retrieves a user with the specified user ID from Firestore.
             *
             * @param userId The ID of the user.
             * @return The user with the specified ID.
    app/src/main/java/com/github/scribeWizTeam/scribewiz/models/ChallengeModel.kt on lines 54..79

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 250.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Method onCreateView has a Cognitive Complexity of 39 (exceeds 20 allowed). Consider refactoring.
    Open

        /**
         * Creates the view for the recording fragment.
         *
         * @param inflater           The layout inflater.
         * @param container          The container view.

    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 ProfilePageFragment.kt has 308 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    package com.github.scribeWizTeam.scribewiz.fragments
    
    import android.content.Context
    import android.content.Intent
    import android.os.Bundle

      Method onCreate has 77 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          override fun onCreate(savedInstanceState: Bundle?) {
              super.onCreate(savedInstanceState)
      
              // Extract the challenge ID and user ID from the Intent that started this activity
              challengeId = intent.getStringExtra("challengeId")!!

        Method getNoteCountWithinQuarterNotes has a Cognitive Complexity of 34 (exceeds 20 allowed). Consider refactoring.
        Open

                /**
                 * This function counts the number of notes (including rests, half notes, quarter notes)
                 * that are within the first quarter partitions in a MusicXML file.
                 *
                 * @param inputFile The input MusicXML file.
        Severity: Minor
        Found in app/src/main/java/com/github/scribeWizTeam/scribewiz/util/Editor.kt - About 2 hrs to fix

        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 RecFragment.kt has 266 lines of code (exceeds 250 allowed). Consider refactoring.
        Open

        package com.github.scribeWizTeam.scribewiz.fragments
        
        import android.Manifest
        import android.annotation.SuppressLint
        import android.content.Context

          Method onCreate has 45 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

              /**
               * Initializes the activity and sets up the view.
               *
               * @param savedInstanceState The saved instance state.
               */

            Method switchRecordState has 43 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                private fun switchRecordState(
                    context: Context,
                    counterText: MutableState<String>,
                    recordButtonText: MutableState<String>
                ) {

              Method onCreateView has 43 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                  /**
                   * Creates the view for the recording fragment.
                   *
                   * @param inflater           The layout inflater.
                   * @param container          The container view.

                Method convertTicksToNoteLocation has 42 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                        /**
                         * Function to help convert from Midi Ticks to MusicXML note location.
                         *
                         * @param inputFile the input MusicXML file
                         * @param ticks the midi ticks
                Severity: Minor
                Found in app/src/main/java/com/github/scribeWizTeam/scribewiz/util/Editor.kt - About 1 hr to fix

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

                      override fun onCreateView(
                          inflater: LayoutInflater,
                          container: ViewGroup?,
                          savedInstanceState: Bundle?
                      ): View {

                    Similar blocks of code found in 2 locations. Consider refactoring.
                    Open

                            } catch (e: Exception) {
                                exceptionCaught = true
                                Log.e("AlphaTab", "Failed to render file: $e, ${e.stackTraceToString()}")
                                Toast.makeText(this, "Open File Failed", Toast.LENGTH_LONG).show()
                            }
                    app/src/main/java/com/github/scribeWizTeam/scribewiz/activities/NotesDisplayedActivity.kt on lines 122..127

                    Duplicated Code

                    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                    Tuning

                    This issue has a mass of 125.

                    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                    Refactorings

                    Further Reading

                    Similar blocks of code found in 2 locations. Consider refactoring.
                    Open

                            } catch (e: Exception) {
                                exceptionCaught = true
                                Log.e("AlphaTab", "Failed to load file: $e, ${e.stackTraceToString()}")
                                Toast.makeText(this, "Open File Failed", Toast.LENGTH_LONG)
                                    .show() //simple feedback in a small popup
                    app/src/main/java/com/github/scribeWizTeam/scribewiz/activities/NotesDisplayedActivity.kt on lines 132..136

                    Duplicated Code

                    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                    Tuning

                    This issue has a mass of 125.

                    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                    Refactorings

                    Further Reading

                    Method getNoteCountWithinQuarterNotes has 37 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                            /**
                             * This function counts the number of notes (including rests, half notes, quarter notes)
                             * that are within the first quarter partitions in a MusicXML file.
                             *
                             * @param inputFile The input MusicXML file.
                    Severity: Minor
                    Found in app/src/main/java/com/github/scribeWizTeam/scribewiz/util/Editor.kt - About 1 hr to fix

                      Method detectPitch has 35 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                          override fun detectPitch(signal: Signal): Frequency? {
                              val highLag = freqToLag(MIN_FREQ)
                              val lowLag = freqToLag(MAX_FREQ)
                              var bestCorr = -1.0
                              var bestLag: Int? = null
                        Severity
                        Category
                        Status
                        Source
                        Language