Skip to content

Conversation

@Elelan
Copy link

@Elelan Elelan commented Jan 27, 2025

@Elelan Elelan self-assigned this Jan 27, 2025
@Elelan Elelan marked this pull request as ready for review January 31, 2025 11:08
Elelan and others added 26 commits August 1, 2025 07:29
Feature/Android 15 Edge-to-Edge + Official PickVisualMedia Migration
Merging to next to continue edge to edge check for feature/storacha, created a backup branch called `next-11-aug-2025`.
…iption-fix

fix: update internet archive description to clarify account types
…iption-fix

fix: update upload description for internet archive to specify free public server
Updated text for AddFolderScreen and CreateNewFolderScreen
…prefs_use_proofmode_description` string resource.
IA refactor to MVI from Redux
CC License Setup Screen Compose Migration
IA Detail Screen CC License Integration
SpaceList screen add btn size increased
removed space id arg from IALoginScreen, made IADetailScreen arg space_id as required
# Conflicts:
#	app/src/main/AndroidManifest.xml
#	app/src/main/java/net/opendasharchive/openarchive/features/settings/passcode/AppConfig.kt
Copilot AI review requested due to automatic review settings September 11, 2025 08:54
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces app masking capabilities for the OpenArchive mobile application. The primary purpose is to allow users to disguise the app's appearance through alternate launcher icons and names, enhancing privacy and security for journalists and activists operating in sensitive environments.

Key Changes

  • Added app masking infrastructure with configurable launcher aliases (Save vs. Masked app icons)
  • Implemented comprehensive UI modernization migrating from View-based to Compose UI components
  • Enhanced passcode functionality with improved numeric keypad and haptic feedback

Reviewed Changes

Copilot reviewed 175 out of 314 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
app/src/main/res/drawable/*.xml New vector drawable icons for masked app appearance and updated UI elements
app/src/main/java/.../app_masking/* Core app masking utilities and settings activity for managing launcher aliases
app/src/main/java/.../passcode/* Enhanced passcode system with new numeric keypad design and submit functionality
app/src/main/java/.../spaces/* Modernized space setup screens using Compose UI
app/src/main/java/.../settings/* Updated settings infrastructure with new license setup and configuration options

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
Copy link

Copilot AI Sep 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The XML declaration is missing from this vector drawable. Consider adding <?xml version=\"1.0\" encoding=\"utf-8\"?> at the beginning for consistency with other drawable files.

Copilot uses AI. Check for mistakes.
Comment on lines +147 to +150
) = applyEdgeToEdgeInsets { insets ->

leftMargin = insets.left
rightMargin = insets.right
Copy link

Copilot AI Sep 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing documentation for the applySideInsets function. Consider adding a KDoc comment explaining its purpose and parameters.

Copilot uses AI. Check for mistakes.
else {
getPackageInfo(packageName, 0)
}.versionName
}.versionName ?: "unknown"
Copy link

Copilot AI Sep 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fallback versionName ?: \"unknown\" duplicates the catch block return value. Consider extracting this to a constant to avoid magic strings.

Copilot uses AI. Check for mistakes.
Comment on lines +60 to +64
// // Process passcode only when the required length is reached
// if (_uiState.value.passcode.length == config.passcodeLength) {
// _uiState.update { it.copy(isProcessing = true) }
// processPasscodeEntry()
// }
Copy link

Copilot AI Sep 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dead code should be removed. These commented lines serve no purpose and reduce code readability.

Copilot uses AI. Check for mistakes.
}

private fun onSubmit() {

Copy link

Copilot AI Sep 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The onSubmit method is empty but is referenced in the UI action. This could lead to unexpected behavior when users tap the submit button.

Suggested change
val state = uiState.value
if (!state.isProcessing && state.passcode.length == config.passcodeLength) {
_uiState.update { it.copy(isProcessing = true) }
checkPasscode()
}

Copilot uses AI. Check for mistakes.
Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

detekt found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants