Refactor: Rename Constants to Follow CamelCase Naming Convention (#6126)

* Rename Constants to Follow Kotlin Naming Conventions

>This PR refactors constant names in the project to adhere to Kotlin's UPPERCASE_SNAKE_CASE naming convention, improving code readability and maintaining consistency across the codebase.

>Renamed the following constants in LoginActivity:
>saveProgressDialog → SAVE_PROGRESS_DIALOG
>saveErrorMessage → SAVE_ERROR_MESSAGE
>saveUsername → SAVE_USERNAME
>savePassword → SAVE_PASSWORD

>Updated all references to these constants throughout the project.

* Update Project_Default.xml

* Refactor variable names to adhere to naming conventions

Renamed variables to use camel case:
-UPLOAD_COUNT_THRESHOLD → uploadCountThreshold
-REVERT_PERCENTAGE_FOR_MESSAGE → revertPercentageForMessage
-REVERT_SHARED_PREFERENCE → revertSharedPreference
-UPLOAD_SHARED_PREFERENCE → uploadSharedPreference

Renamed variables with uppercase initials to lowercase for alignment with Kotlin conventions:
-Latitude → latitude
-Longitude → longitude
-Accuracy → accuracy

Refactored the following variable names:
-NUMBER_OF_QUESTIONS → numberOfQuestions
-MULTIPLIER_TO_GET_PERCENTAGE → multiplierToGetPercentage

* Refactor Dialog View Initialization with Null-Safe Calls

This PR refactors the dialog setup code in CustomSelectorActivity to improve safety and readability by replacing explicit casts with null-safe generic calls for findViewById.

>Replaced explicit casting (as Button and as TextView) with the generic findViewById<T>() method for improved type safety.
>Added null-safety (?.) to avoid potential crashes if a view is not found in the dialog layout.

why changed:-
>Prevents runtime crashes caused by NullPointerException when a view is missing in the layout.

* Refactor Unit Test: Replace Unsafe Casting with Type-Safe Mocking for findViewById

>PR refactors the unit test for NearbyParentFragment by replacing unsafe casting in the findViewById mocking statements with type-safe

>Ensured all findViewById mocks now use a consistent, type-safe format (findViewById<View>(...)) to reduce verbosity and potential casting errors.

>Verified the functionality of prepareViewsForSheetPosition remains unchanged, ensuring no regression in test behavior.

* Update NearbyParentFragmentUnitTest.kt

* Refactor: Rename Constants to Follow CamelCase Naming Convention

>Updated all constant variable names to follow the camelCase naming convention, removing underscores in the middle or end.

>Ensured variable names remain descriptive and align with code readability best practices.

* Replace private val with const val for URL constants in QuizController

* Renaming the constant to use UPPER_SNAKE_CASE

* Renaming the constant to use UPPER_SNAKE_CASE

* Update Done

* **Refactor: Convert `minimumThresholdForSwipe` to a compile-time constant**

---------

Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
This commit is contained in:
Akshay Komar 2025-01-18 19:36:52 +05:30 committed by GitHub
parent 1c6ebafb29
commit d4ababc0a5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 27 additions and 21 deletions

View file

@ -14,11 +14,15 @@ class QuizController {
private val quiz: ArrayList<QuizQuestion> = ArrayList() private val quiz: ArrayList<QuizQuestion> = ArrayList()
private val URL_FOR_SELFIE = "https://i.imgur.com/0fMYcpM.jpg" companion object{
private val URL_FOR_TAJ_MAHAL = "https://upload.wikimedia.org/wikipedia/commons/1/15/Taj_Mahal-03.jpg"
private val URL_FOR_BLURRY_IMAGE = "https://i.imgur.com/Kepb5jR.jpg" const val URL_FOR_SELFIE = "https://i.imgur.com/0fMYcpM.jpg"
private val URL_FOR_SCREENSHOT = "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Social_media_app_mockup_screenshot.svg/500px-Social_media_app_mockup_screenshot.svg.png" const val URL_FOR_TAJ_MAHAL = "https://upload.wikimedia.org/wikipedia/commons/1/15/Taj_Mahal-03.jpg"
private val URL_FOR_EVENT = "https://upload.wikimedia.org/wikipedia/commons/5/51/HouseBuildingInNorthernVietnam.jpg" const val URL_FOR_BLURRY_IMAGE = "https://i.imgur.com/Kepb5jR.jpg"
const val URL_FOR_SCREENSHOT = "https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Social_media_app_mockup_screenshot.svg/500px-Social_media_app_mockup_screenshot.svg.png"
const val URL_FOR_EVENT = "https://upload.wikimedia.org/wikipedia/commons/5/51/HouseBuildingInNorthernVietnam.jpg"
}
fun initialize(context: Context) { fun initialize(context: Context) {
val q1 = QuizQuestion( val q1 = QuizQuestion(

View file

@ -45,12 +45,12 @@ class ReviewActivity : BaseActivity() {
private var hasNonHiddenCategories = false private var hasNonHiddenCategories = false
var media: Media? = null var media: Media? = null
private val SAVED_MEDIA = "saved_media" private val savedMedia = "saved_media"
override fun onSaveInstanceState(outState: Bundle) { override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState) super.onSaveInstanceState(outState)
media?.let { media?.let {
outState.putParcelable(SAVED_MEDIA, it) outState.putParcelable(savedMedia, it)
} }
} }
@ -90,8 +90,8 @@ class ReviewActivity : BaseActivity() {
PorterDuff.Mode.SRC_IN PorterDuff.Mode.SRC_IN
) )
if (savedInstanceState?.getParcelable<Media>(SAVED_MEDIA) != null) { if (savedInstanceState?.getParcelable<Media>(savedMedia) != null) {
updateImage(savedInstanceState.getParcelable(SAVED_MEDIA)!!) updateImage(savedInstanceState.getParcelable(savedMedia)!!)
setUpMediaDetailOnOrientation() setUpMediaDetailOnOrientation()
} else { } else {
runRandomizer() runRandomizer()

View file

@ -31,7 +31,7 @@ class ReviewImageFragment : CommonsDaggerSupportFragment() {
lateinit var sessionManager: SessionManager lateinit var sessionManager: SessionManager
// Constant variable used to store user's key name for onSaveInstanceState method // Constant variable used to store user's key name for onSaveInstanceState method
private val SAVED_USER = "saved_user" private val savedUser = "saved_user"
// Variable that stores the value of user // Variable that stores the value of user
private var user: String? = null private var user: String? = null
@ -129,7 +129,7 @@ class ReviewImageFragment : CommonsDaggerSupportFragment() {
question = getString(R.string.review_thanks) question = getString(R.string.review_thanks)
user = reviewActivity.reviewController.firstRevision?.user() user = reviewActivity.reviewController.firstRevision?.user()
?: savedInstanceState?.getString(SAVED_USER) ?: savedInstanceState?.getString(savedUser)
//if the user is null because of whatsoever reason, review will not be sent anyways //if the user is null because of whatsoever reason, review will not be sent anyways
if (!user.isNullOrEmpty()) { if (!user.isNullOrEmpty()) {
@ -172,7 +172,7 @@ class ReviewImageFragment : CommonsDaggerSupportFragment() {
override fun onSaveInstanceState(outState: Bundle) { override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState) super.onSaveInstanceState(outState)
//Save user name when configuration changes happen //Save user name when configuration changes happen
outState.putString(SAVED_USER, user) outState.putString(savedUser, user)
} }
private val reviewCallback: ReviewController.ReviewCallback private val reviewCallback: ReviewController.ReviewCallback

View file

@ -86,7 +86,6 @@ class SettingsFragment : PreferenceFragmentCompat() {
private var languageHistoryListView: ListView? = null private var languageHistoryListView: ListView? = null
private lateinit var inAppCameraLocationPermissionLauncher: ActivityResultLauncher<Array<String>> private lateinit var inAppCameraLocationPermissionLauncher: ActivityResultLauncher<Array<String>>
private val GET_CONTENT_PICKER_HELP_URL = "https://commons-app.github.io/docs.html#get-content"
private val cameraPickLauncherForResult: ActivityResultLauncher<Intent> = private val cameraPickLauncherForResult: ActivityResultLauncher<Intent> =
registerForActivityResult(StartActivityForResult()) { result -> registerForActivityResult(StartActivityForResult()) { result ->
@ -513,10 +512,9 @@ class SettingsFragment : PreferenceFragmentCompat() {
@Suppress("LongLine") @Suppress("LongLine")
companion object { companion object {
// TODO: consider changing these to MOBILE_HOME_URL after the following task is resolved: const val GET_CONTENT_PICKER_HELP_URL = "https://commons-app.github.io/docs.html#get-content"
// https://phabricator.wikimedia.org/T380527 private const val VANISH_ACCOUNT_URL = "https://meta.m.wikimedia.org/wiki/Special:Contact/accountvanishapps"
private const val VANISH_ACCOUNT_URL = MOBILE_META_URL + "Special:GlobalVanishRequest" private const val VANISH_ACCOUNT_SUCCESS_URL = "https://meta.m.wikimedia.org/wiki/Special:GlobalVanishRequest/vanished"
private const val VANISH_ACCOUNT_SUCCESS_URL = MOBILE_META_URL + "Special:GlobalVanishRequest/vanished"
/** /**
* Create Locale based on different types of language codes * Create Locale based on different types of language codes
* @param languageCode * @param languageCode

View file

@ -10,7 +10,6 @@ import fr.free.nrw.commons.utils.ImageUtils.IMAGE_KEEP
import fr.free.nrw.commons.utils.ImageUtils.IMAGE_OK import fr.free.nrw.commons.utils.ImageUtils.IMAGE_OK
import fr.free.nrw.commons.utils.ImageUtilsWrapper import fr.free.nrw.commons.utils.ImageUtilsWrapper
import io.reactivex.Single import io.reactivex.Single
import io.reactivex.functions.Function
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import org.apache.commons.lang3.StringUtils import org.apache.commons.lang3.StringUtils
import timber.log.Timber import timber.log.Timber
@ -26,7 +25,7 @@ class ImageProcessingService @Inject constructor(
private val fileUtilsWrapper: FileUtilsWrapper, private val fileUtilsWrapper: FileUtilsWrapper,
private val imageUtilsWrapper: ImageUtilsWrapper, private val imageUtilsWrapper: ImageUtilsWrapper,
private val readFBMD: ReadFBMD, private val readFBMD: ReadFBMD,
private val EXIFReader: EXIFReader, private val exifReader: EXIFReader,
private val mediaClient: MediaClient private val mediaClient: MediaClient
) { ) {
/** /**
@ -94,7 +93,7 @@ class ImageProcessingService @Inject constructor(
* the presence of some basic Exif metadata. * the presence of some basic Exif metadata.
*/ */
private fun checkEXIF(filepath: String): Single<Int> = private fun checkEXIF(filepath: String): Single<Int> =
EXIFReader.processMetadata(filepath) exifReader.processMetadata(filepath)
/** /**

View file

@ -21,9 +21,14 @@ abstract class SwipableCardView @JvmOverloads constructor(
defStyleAttr: Int = 0 defStyleAttr: Int = 0
) : CardView(context, attrs, defStyleAttr) { ) : CardView(context, attrs, defStyleAttr) {
companion object{
const val MINIMUM_THRESHOLD_FOR_SWIPE = 100f
}
private var x1 = 0f private var x1 = 0f
private var x2 = 0f private var x2 = 0f
private val MINIMUM_THRESHOLD_FOR_SWIPE = 100f
init { init {
interceptOnTouchListener() interceptOnTouchListener()