Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: incorrect activity path for NotificationOpenedActivityHMS #2243

Merged
merged 1 commit into from
Jan 21, 2025

Conversation

jinliu9508
Copy link
Contributor

@jinliu9508 jinliu9508 commented Jan 14, 2025

Description

One Line Summary

Fix the class path of NotificationOpenedActivityHMS so it can be consistent with the path returned by the backend service.

Details

Motivation

NotificationOpenedActivityHMS is currently broken for all Huawei devices on V5 because the class path is currently under com.onesignal.notifications.activities instead of com.onesignal used in our backend service. This PR moves the class so the path is in consistent with that used by the backend service.

Scope

RECOMMEND - OPTIONAL - What is intended to be effected. What is known not to change. Example: Notifications are grouped when parameter X is set, not enabled by default.

Testing

Manual testing

  1. Place a breakpoint inside processOpen().
  2. Send a HMS notification and click it.
  3. Observe that the breakpoint is never reached.
  4. Apply the fix and repeat the steps above. Observe that the breakpoint has reached and the intent includes some custom data.

Affected code checklist

  • Notifications
    • Display
    • Open
    • Push Processing
    • Confirm Deliveries
  • Outcomes
  • Sessions
  • In-App Messaging
  • REST API requests
  • Public API changes

Checklist

Overview

  • I have filled out all REQUIRED sections above
  • PR does one thing
    • If it is hard to explain how any codes changes are related to each other then it most likely needs to be more than one PR
  • Any Public API changes are explained in the PR details and conform to existing APIs

Testing

  • I have included test coverage for these changes, or explained why they are not needed
  • All automated tests pass, or I explained why that is not possible
  • I have personally tested this on my device, or explained why that is not possible

Final pass

  • Code is as readable as possible.
    • Simplify with less code, followed by splitting up code into well named functions and variables, followed by adding comments to the code.
  • I have reviewed this PR myself, ensuring it meets each checklist item
    • WIP (Work In Progress) is ok, but explain what is still in progress and what you would like feedback on. Start the PR title with "WIP" to indicate this.

This change is Reviewable

@jinliu9508 jinliu9508 added the WIP Work In Progress label Jan 14, 2025
@jinliu9508 jinliu9508 requested a review from jkasten2 January 14, 2025 19:20
@jinliu9508 jinliu9508 removed the WIP Work In Progress label Jan 14, 2025
Copy link
Member

@jkasten2 jkasten2 left a comment

Choose a reason for hiding this comment

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

Left 2 feedback items that we should put comments in the code.

Let's also add a test, the test should use Class.forName("...") so it will fail if someone ever tries to use a refactoring tool and doesn't read the comments either.

@@ -66,7 +66,7 @@
</service>

<activity
android:name="com.onesignal.notifications.activities.NotificationOpenedActivityHMS"
android:name="com.onesignal.NotificationOpenedActivityHMS"
Copy link
Member

Choose a reason for hiding this comment

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

Let's add a comment here that we can't change the android:name, since the OneSignal backend incudes it in the payload.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good suggestion. I have added the comment for the change.

@@ -24,12 +24,11 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package com.onesignal.notifications.activities
package com.onesignal
Copy link
Member

Choose a reason for hiding this comment

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

Let's also put a comment here and before the class definition too.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good suggestion. I have added the comment for the change. Note that I added it below the first line as first line comment is not allowed in the coding standard.

@jinliu9508 jinliu9508 force-pushed the huawei-incorrect-notification-intent-path branch from adf6f58 to 3456a69 Compare January 21, 2025 19:00
@jinliu9508
Copy link
Contributor Author

Left 2 feedback items that we should put comments in the code.

Let's also add a test, the test should use Class.forName("...") so it will fail if someone ever tries to use a refactoring tool and doesn't read the comments either.

Good point. I have added comments and a new test unit that specifically tests for the class path.

@jinliu9508 jinliu9508 requested a review from jkasten2 January 21, 2025 19:03
@jinliu9508 jinliu9508 merged commit 821bf86 into main Jan 21, 2025
2 checks passed
@jinliu9508 jinliu9508 deleted the huawei-incorrect-notification-intent-path branch January 21, 2025 20:42
@jinliu9508 jinliu9508 mentioned this pull request Jan 28, 2025
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