SDPCoachMe/SDP-2023

View on GitHub

Showing 19 of 55 total issues

File CachingStore.kt has 523 lines of code (exceeds 250 allowed). Consider refactoring.
Open

package com.github.sdpcoachme.database

import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
Severity: Major
Found in app/src/main/java/com/github/sdpcoachme/database/CachingStore.kt - About 1 day to fix

    Method getSchedule has a Cognitive Complexity of 65 (exceeds 20 allowed). Consider refactoring.
    Open

        /**
         * Gets the schedule for the current user
         *
         * @param currentWeekMonday the monday of the current week
         * @return a completable future that completes when the schedule has been retrieved (containing the newly cached schedule)
    Severity: Minor
    Found in app/src/main/java/com/github/sdpcoachme/database/CachingStore.kt - About 7 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

    Method EditTextLayout has a Cognitive Complexity of 57 (exceeds 20 allowed). Consider refactoring.
    Open

    /**
     * The layout for the EditTextActivity.
     *
     * @param initialValue The initial value of the text field.
     * @param onCancel The callback to be called when the user cancels the operation.
    Severity: Minor
    Found in app/src/main/java/com/github/sdpcoachme/profile/EditTextActivity.kt - About 6 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

    Class CachingStore has 41 methods (exceeds 20 allowed). Consider refactoring.
    Open

    /**
     * A caching database that wraps another database
     */
    class CachingStore(private val wrappedDatabase: Database,
                       private val dataStore: DataStore<Preferences>,
    Severity: Minor
    Found in app/src/main/java/com/github/sdpcoachme/database/CachingStore.kt - About 5 hrs to fix

      Class FireDatabase has 33 methods (exceeds 20 allowed). Consider refactoring.
      Open

      /**
       * A database class that uses Firebase
       */
      class FireDatabase(databaseReference: DatabaseReference) : Database {
      
      
      Severity: Minor
      Found in app/src/main/java/com/github/sdpcoachme/database/FireDatabase.kt - About 4 hrs to fix

        Method RatingView has a Cognitive Complexity of 40 (exceeds 20 allowed). Consider refactoring.
        Open

        @Composable
        fun RatingView(
            title: String,
            initialRating: Int,
            onCancel: () -> Unit,
        Severity: Minor
        Found in app/src/main/java/com/github/sdpcoachme/rating/RatingView.kt - About 3 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

        Method RatingView has 61 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

        @Composable
        fun RatingView(
            title: String,
            initialRating: Int,
            onCancel: () -> Unit,
        Severity: Major
        Found in app/src/main/java/com/github/sdpcoachme/rating/RatingView.kt - About 2 hrs to fix

          Method EditTextLayout has 54 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          /**
           * The layout for the EditTextActivity.
           *
           * @param initialValue The initial value of the text field.
           * @param onCancel The callback to be called when the user cancels the operation.
          Severity: Major
          Found in app/src/main/java/com/github/sdpcoachme/profile/EditTextActivity.kt - About 2 hrs to fix

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

                /**
                 * Gets the schedule for the current user
                 *
                 * @param currentWeekMonday the monday of the current week
                 * @return a completable future that completes when the schedule has been retrieved (containing the newly cached schedule)
            Severity: Minor
            Found in app/src/main/java/com/github/sdpcoachme/database/CachingStore.kt - About 1 hr to fix

              Method sendMessagingNotification has 33 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                  /**
                   * Create and show a notification containing the received FCM message for in-app push notifications.
                   * Depending on the current state of the application, the notification will open the chat activity,
                   * the coaches list activity or the login activity (based on current user's email and the sender argument).
                   *
              Severity: Minor
              Found in app/src/main/java/com/github/sdpcoachme/messaging/InAppNotifier.kt - About 1 hr to fix

                Function sendPushNotification has 32 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                  .onWrite(async (change, context) => {
                    functions.logger.log("sendPushNotification function started");
                    const chatId = context.params.chatId;
                    const message = change.after.val();
                    const sender = message.sender;
                Severity: Minor
                Found in functions/src/index.ts - About 1 hr to fix

                  Method getContactRowInfos has a Cognitive Complexity of 26 (exceeds 20 allowed). Consider refactoring.
                  Open

                      override fun getContactRowInfos(email: String): CompletableFuture<List<ContactRowInfo>> {
                          return getUser(email).thenApply {
                              // this line has been added to prevent strange buts where the chatContacts list
                              // contains null values (which should not be possible according to AndroidStudio but can happen)
                              it.chatContacts.filterNotNull()
                  Severity: Minor
                  Found in app/src/main/java/com/github/sdpcoachme/database/FireDatabase.kt - About 1 hr 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

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

                      override fun onCreate(savedInstanceState: Bundle?) {
                          super.onCreate(savedInstanceState)
                  
                          val initialValue = intent.getStringExtra(INITIAL_VALUE_KEY) ?: ""
                          val title = intent.getStringExtra(TITLE_KEY) ?: DEFAULT_TITLE
                  Severity: Minor
                  Found in app/src/main/java/com/github/sdpcoachme/profile/EditTextActivity.kt - About 1 hr to fix

                    Method getHandler has 27 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                            fun getHandler(caller: ActivityResultCaller): (Intent) -> CompletableFuture<Int> {
                                // Keep a reference to the future so we can complete it later
                                lateinit var futureValue: CompletableFuture<Int>
                                // Set up lambda that handles result
                                val launcher = caller.registerForActivityResult(
                    Severity: Minor
                    Found in app/src/main/java/com/github/sdpcoachme/rating/RatingActivity.kt - About 1 hr to fix

                      Method getHandler has 27 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                              /**
                               * Creates a handler that can be used to launch this activity. This method should be called
                               * from the onCreate method of the caller activity. The returned handler can be called from
                               * anywhere in the caller activity, and takes an Intent as a parameter. The Intent should be
                               * created using the getIntent method of this class.
                      Severity: Minor
                      Found in app/src/main/java/com/github/sdpcoachme/profile/EditTextActivity.kt - About 1 hr to fix

                        Method EditTextLayout has 6 arguments (exceeds 4 allowed). Consider refactoring.
                        Open

                            initialValue: String,
                            onCancel: () -> Unit,
                            onSubmit: (String) -> Unit,
                            title: String,
                            label: String?,
                        Severity: Minor
                        Found in app/src/main/java/com/github/sdpcoachme/profile/EditTextActivity.kt - About 45 mins to fix

                          Method getIntent has 5 arguments (exceeds 4 allowed). Consider refactoring.
                          Open

                                      context: Context,
                                      title: String? = null,
                                      placeholder: String? = null,
                                      label: String? = null,
                                      initialValue: String? = null
                          Severity: Minor
                          Found in app/src/main/java/com/github/sdpcoachme/profile/EditTextActivity.kt - About 35 mins to fix

                            Function fetchRecipientsTokensSnapshotValues has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                            Open

                            async function fetchRecipientsTokensSnapshotValues(
                              change: Change<DataSnapshot>,
                              participants: string[],
                              sender: string,
                              readByUsers: string[],
                            Severity: Minor
                            Found in functions/src/index.ts - About 25 mins 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

                            Function sendPushNotification has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                            Open

                              .onWrite(async (change, context) => {
                                functions.logger.log("sendPushNotification function started");
                                const chatId = context.params.chatId;
                                const message = change.after.val();
                                const sender = message.sender;
                            Severity: Minor
                            Found in functions/src/index.ts - About 25 mins 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

                            Severity
                            Category
                            Status
                            Source
                            Language