Skip to content

Share Feedback#151

Open
Mandvii wants to merge 99 commits into
mainfrom
dev-share-feedback
Open

Share Feedback#151
Mandvii wants to merge 99 commits into
mainfrom
dev-share-feedback

Conversation

@Mandvii

@Mandvii Mandvii commented Jan 21, 2026

Copy link
Copy Markdown
Collaborator

Share Feedback

Quick Contact and Email Support Ticket

… appNavHost, app koin)

-in AccountList have added a text with trailing icon "Share feedback)" and on click of it navigation to share feed back
-In Share feedback screen added section on Quick Contact (as text) the using List Item to define 3 options of whatsapp, email and public forum)
added on click methods to it (not functional yet )
# Conflicts:
#	respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt
@Mandvii Mandvii linked an issue Jan 22, 2026 that may be closed by this pull request
…n click on public forum opening respect website

Once I get the Whatsapp support number will change that and also will replace the web support link once provided
# Conflicts:
#	respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
This commit introduces a detailed feedback form on the "Share Feedback" screen, allowing users to submit structured feedback.

Key changes include:
- A dropdown menu for selecting a feedback category.
- A multi-line text field for users to describe their feedback in detail.
- A checkbox for users to request a response from the team.
- A "Submit" button to send the feedback.
- Updated string resources for the new UI elements.
- Renamed "WhatsApp/Email Support" to "WhatsApp/Email Respect".
- Upgraded Gradle version from 8.13 to 9.1.0 and updated related dependencies.
…creen. These fields are displayed only when the user agrees to be contacted by checking a box. The phone number input utilizes the `RespectPhoneNumberTextField` component.
…ail.

- Created a common `EmailLauncher` interface.
- Added an Android-specific implementation (`EmailLauncherAndroid`) that opens an email client with a pre-filled recipient and subject.
- Added `FeedBackDataSource` interface and its HTTP implementation to create feedback tickets via the Zammad API.
- Implemented a repository for the feedback data source.
- Defined `FeedbackTicket` and ` data models for the ticket.
- Integrated the ticket creation logic into `ShareFeedbackViewModel`'s `onClickSubmit` function for testing purposes.
Removes the unused `accountManager` field from the `ShareFeedbackViewModel` constructor.
This commit wires up the ShareFeedback screen to enable users to submit feedback.

Key changes:
- Implemented `onPhoneChanged` and `onEmailChanged` to update the UI state.
- Connected the "Submit" button to create and send a `FeedbackTicket`.
- The ticket now correctly uses the user-provided email, selected category, and feedback text.
- Standardized the email subject line using a string resource.
This commit introduces the functionality to create and submit a feedback ticket.

Changes include:
- Adding the necessary Koin dependency injection for `FeedbackDataSource`.
- Correcting the Zammad authentication token format.
- Updating the `ShareFeedbackViewModel` to construct and submit the `FeedbackTicket`.
- Modifying the `FeedbackDataSourceHttp` to remove the response body handling.
- Extracted hardcoded strings to constants.
- Added a `ticketTitle` variable to `ShareFeedbackViewModel`.
- The `ticketTitle` is now passed as the subject when sending an email.
- Updated the `guess` string resource to include a colon.
The `FeedBackDataSource` is now accessed through the `SchoolDataSource` interface.

Changes include:
- Adding `feedBackDataSource` to the `SchoolDataSource` interface.
- Implementing `feedBackDataSource` in `SchoolDataSourceHttp`, `SchoolDataSourceRepository`, and `SchoolDataSourceDb` (with a TODO).
- Updating `ShareFeedbackViewModel` to use `schoolDataSource.feedBackDataSource`.
- Removing the now-redundant `FeedbackDataSource` Koin definitions.
The `ticketTitle` variable in `ShareFeedbackViewModel` has been renamed to `subject` to better reflect its purpose.

In `EmailLauncherAndroid`, the logic for building the mailto URI has been updated to use string interpolation and `toUri()` for a more concise implementation.
…o a companion object in `ShareFeedbackViewModel`.
…o a companion object in `ShareFeedbackViewModel`.
- Implement required field validation for the feedback description.
- Add validation to ensure either a phone number or email is provided when a response is requested.
- Display error messages on the respective fields.
- Refactor `feedbackText` to `feedbackDescription` for clarity.
Corrected the validation logic for the phone number field on the share feedback screen. The error will now be correctly triggered if the "contact me" checkbox is selected and the phone number field is left blank.
WhatsAppLauncherUseCaseAndroid(androidContext())
}
single<EmailLauncherUseCase> {
EmailLauncherUseCaseAndroid(androidContext())

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Need to remove this once Nikhunj code changes are merged.

Mandvii and others added 18 commits February 1, 2026 21:52
…ted in the `ShareFeedbackScreen`

Additionally, Android-specific logging (`android.util.Log`) has been replaced with a common `print` statement in the `EmailLauncherUseCaseAndroid`, `WebLauncherUseCaseAndroid`, and `WhatsAppLauncherUseCaseAndroid` files.
`FeedbackCategory` enum is simplified
 The `FeedbackItem` composable has been renamed to `QuickContactItem` for better clarity, as it represents quick contact methods.
# Conflicts:
#	respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
#	respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
#	respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt
#	respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt
Removed the specific `EmailLauncherUseCase` and its Android implementation. The existing `LaunchSendEmailUseCase` has been updated to handle all email launching scenarios by making the `body` and `emailId` parameters optional.

This change consolidates redundant code, allowing a single use case to manage sending emails with or without a pre-filled recipient and body. ViewModels have been updated to use the unified `LaunchSendEmailUseCase`.
@Mandvii Mandvii requested a review from mikedawson February 4, 2026 06:19
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.

In-app feedback

3 participants