Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Identity verification beta 3 #2283

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

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
ddb42d5
Infrastructure change around JWT: models, model stores
jinliu9508 Aug 13, 2024
70ab292
Public API impl for JWT, User Manager, and callbacks
jinliu9508 Aug 13, 2024
b691cc9
Add JWT to HttpClient, backend services, and operations
jinliu9508 Aug 13, 2024
871a95e
Add UNAUTHORIZED handling to OperationRepo and operation executors
jinliu9508 Aug 13, 2024
2da5185
Add and adjust some test units for JWT related change
jinliu9508 Aug 13, 2024
007db77
Add UI element to DemoApp to manually test JWT impl
jinliu9508 Aug 13, 2024
f58f53e
Manually test with a specific app in staging
jinliu9508 Aug 13, 2024
7cd96c6
OperationRepo: when identity verification is on, do not process opera…
jinliu9508 Aug 22, 2024
3f87dbf
Disable operations that are not allowed when identity verification is on
jinliu9508 Aug 26, 2024
e03a8ed
use new name from remote params
jinliu9508 Aug 26, 2024
ba82804
Init behavior change based on identity verification
jinliu9508 Sep 9, 2024
f4ffecd
Add deviceAuthToken to subscription requests
jinliu9508 Sep 13, 2024
015fdfd
calling logout disable push subscription
jinliu9508 Sep 26, 2024
23ac1a9
fixup: identity verification improvement
jinliu9508 Nov 14, 2024
2aea846
Release 5.2.0-beta-01
jinliu9508 Nov 22, 2024
4e4dcb6
Release 5.2.0
jinliu9508 Nov 22, 2024
44634d2
Fix a typo in addUserJwtInvalidatedListener
jinliu9508 Nov 22, 2024
43821eb
Release 5.2.0-beta-02
jinliu9508 Nov 22, 2024
7ad16d2
Upgrade to AGP 8.8.2 and Gradle 8.10.2
jkasten2 Mar 3, 2025
fded16b
Java compile errors from Gradle / AGP 8 upgrade
jkasten2 Mar 4, 2025
235e4f9
Gradle config changes required for Gradle / AGP 8
jkasten2 Mar 4, 2025
a3f3b95
Correctly omit Huawei from example when not used
jkasten2 Mar 4, 2025
fb1edf8
Gradle 8 / AGP 8 requires Java / Kotlin module
jkasten2 Mar 4, 2025
6c0167c
Fix example app build for HMS for Gradle / AGP 8
jkasten2 Mar 4, 2025
0023b8b
Infrastructure change around JWT: models, model stores
jinliu9508 Aug 13, 2024
031bae7
Public API impl for JWT, User Manager, and callbacks
jinliu9508 Aug 13, 2024
9df177d
Add JWT to HttpClient, backend services, and operations
jinliu9508 Aug 13, 2024
559ebf0
Add UNAUTHORIZED handling to OperationRepo and operation executors
jinliu9508 Aug 13, 2024
911f97a
Add and adjust some test units for JWT related change
jinliu9508 Aug 13, 2024
d5f16c0
Add UI element to DemoApp to manually test JWT impl
jinliu9508 Aug 13, 2024
8ae8d1c
Manually test with a specific app in staging
jinliu9508 Aug 13, 2024
e91d816
OperationRepo: when identity verification is on, do not process opera…
jinliu9508 Aug 22, 2024
f2f6943
Disable operations that are not allowed when identity verification is on
jinliu9508 Aug 26, 2024
6b5dbd5
use new name from remote params
jinliu9508 Aug 26, 2024
1ed4824
Init behavior change based on identity verification
jinliu9508 Sep 9, 2024
353b87f
Add deviceAuthToken to subscription requests
jinliu9508 Sep 13, 2024
69c4c0b
calling logout disable push subscription
jinliu9508 Sep 26, 2024
9f88f91
fixup: identity verification improvement
jinliu9508 Nov 14, 2024
bd5b253
Release 5.2.0-beta-01
jinliu9508 Nov 22, 2024
3c2fc77
Release 5.2.0
jinliu9508 Nov 22, 2024
59c562c
Fix a typo in addUserJwtInvalidatedListener
jinliu9508 Nov 22, 2024
a5438c2
Release 5.2.0-beta-02
jinliu9508 Nov 22, 2024
f19b084
Upgrade to AGP 8.8.2 and Gradle 8.10.2
jkasten2 Mar 3, 2025
42712ab
Java compile errors from Gradle / AGP 8 upgrade
jkasten2 Mar 4, 2025
aa3a3b6
Gradle config changes required for Gradle / AGP 8
jkasten2 Mar 4, 2025
5fa339d
Correctly omit Huawei from example when not used
jkasten2 Mar 4, 2025
016749a
Gradle 8 / AGP 8 requires Java / Kotlin module
jkasten2 Mar 4, 2025
afa1eeb
Fix example app build for HMS for Gradle / AGP 8
jkasten2 Mar 4, 2025
085744d
Merge branch 'identity_verification_beta' of https://github.com/OneSi…
jinliu9508 Apr 15, 2025
9139137
update ubuntu version
jinliu9508 Apr 18, 2025
cd599fc
fix space
jinliu9508 Apr 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion 2 .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: "[Setup] Java"
Expand Down
10 changes: 6 additions & 4 deletions 10 Examples/OneSignalDemo/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ plugins {
}

android {
namespace 'com.onesignal.sdktest'
compileSdkVersion 34
defaultConfig {
minSdkVersion 21
Expand Down Expand Up @@ -61,10 +62,11 @@ android {
}

task flavorSelection() {
if (getGradle().getStartParameter().getTaskRequests().toString().contains("Gms")) {
def tasksList = gradle.startParameter.taskRequests.toString()
if (tasksList.contains('Gms')) {
apply plugin: 'com.google.gms.google-services'
googleServices { disableVersionCheck = true }
} else {
} else if (tasksList.contains('Huawei')) {
apply plugin: 'com.huawei.agconnect'
}
}
Expand All @@ -83,12 +85,12 @@ dependencies {
implementation 'com.github.bumptech.glide:glide:4.12.0'

/** START - Google Play Builds **/
gmsImplementation('com.onesignal:OneSignal:5.1.31')
gmsImplementation('com.onesignal:OneSignal:5.2.0-beta-02')
/** END - Google Play Builds **/

/** START - Huawei Builds **/
// Omit Google / Firebase libraries for Huawei builds.
huaweiImplementation('com.onesignal:OneSignal:5.1.31') {
huaweiImplementation('com.onesignal:OneSignal:5.2.0-beta-02') {
exclude group: 'com.google.android.gms', module: 'play-services-gcm'
exclude group: 'com.google.android.gms', module: 'play-services-analytics'
exclude group: 'com.google.android.gms', module: 'play-services-location'
Expand Down
3 changes: 1 addition & 2 deletions 3 Examples/OneSignalDemo/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:amazon="http://schemas.amazon.com/apk/res/android"
package="com.onesignal.sdktest">
xmlns:amazon="http://schemas.amazon.com/apk/res/android">

<uses-permission android:name="com.android.vending.BILLING" />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.multidex.MultiDexApplication;

import com.onesignal.Continue;
import com.onesignal.IUserJwtInvalidatedListener;
import com.onesignal.OneSignal;
import com.onesignal.UserJwtInvalidatedEvent;
import com.onesignal.inAppMessages.IInAppMessageClickListener;
import com.onesignal.inAppMessages.IInAppMessageClickEvent;
import com.onesignal.inAppMessages.IInAppMessageDidDismissEvent;
Expand All @@ -20,7 +21,6 @@
import com.onesignal.notifications.IDisplayableNotification;
import com.onesignal.notifications.INotificationLifecycleListener;
import com.onesignal.notifications.INotificationWillDisplayEvent;
import com.onesignal.sdktest.BuildConfig;
import com.onesignal.sdktest.R;
import com.onesignal.sdktest.constant.Tag;
import com.onesignal.sdktest.constant.Text;
Expand All @@ -38,9 +38,8 @@ public class MainApplication extends MultiDexApplication {
private static final int SLEEP_TIME_TO_MIMIC_ASYNC_OPERATION = 2000;

public MainApplication() {
// run strict mode default in debug mode to surface any potential issues easier
if(BuildConfig.DEBUG)
StrictMode.enableDefaults();
// run strict mode to surface any potential issues easier
StrictMode.enableDefaults();
}

@SuppressLint("NewApi")
Expand Down Expand Up @@ -140,6 +139,13 @@ public void onUserStateChange(@NonNull UserChangedState state) {
}
});

OneSignal.addUserJwtInvalidatedListener(new IUserJwtInvalidatedListener() {
@Override
public void onUserJwtInvalidated(@NonNull UserJwtInvalidatedEvent event) {
Log.v(Tag.LOG_TAG, "onUserJwtInvalidated fired with ID:" + event.getExternalId());
}
});

OneSignal.getInAppMessages().setPaused(true);
OneSignal.getLocation().setShared(false);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Switch;
Expand Down Expand Up @@ -83,6 +84,10 @@ public class MainActivityViewModel implements ActivityViewModel, IPushSubscripti
private Button loginUserButton;
private Button logoutUserButton;

// JWT
private Button invalidateJwtButton;
private Button updateJwtButton;

// Alias
private TextView aliasTitleTextView;
private RecyclerView aliasesRecyclerView;
Expand Down Expand Up @@ -211,6 +216,9 @@ public ActivityViewModel onActivityCreated(Context context) {
loginUserButton = getActivity().findViewById(R.id.main_activity_login_user_button);
logoutUserButton = getActivity().findViewById(R.id.main_activity_logout_user_button);

invalidateJwtButton = getActivity().findViewById(R.id.main_activity_invalidate_jwt_button);
updateJwtButton = getActivity().findViewById(R.id.main_activity_update_jwt_button);

aliasTitleTextView = getActivity().findViewById(R.id.main_activity_aliases_title_text_view);
noAliasesTextView = getActivity().findViewById(R.id.main_activity_aliases_no_aliases_text_view);
addAliasButton = getActivity().findViewById(R.id.main_activity_add_alias_button);
Expand Down Expand Up @@ -422,6 +430,7 @@ public void onFailure() {
}

private void setupUserLayout() {
setupJWTLayout();
setupAliasLayout();
setupEmailLayout();
setupSMSLayout();
Expand All @@ -430,6 +439,28 @@ private void setupUserLayout() {
setupTriggersLayout();
}

private void setupJWTLayout() {
invalidateJwtButton.setOnClickListener(v -> {
OneSignal.updateUserJwt(OneSignal.getUser().getExternalId(), "");
});
updateJwtButton.setOnClickListener(v -> {
dialog.createUpdateAlertDialog("", Dialog.DialogAction.UPDATE, ProfileUtil.FieldType.JWT, new UpdateAlertDialogCallback() {
@Override
public void onSuccess(String update) {
if (update != null && !update.isEmpty()) {
OneSignal.updateUserJwt(OneSignal.getUser().getExternalId(), update);
refreshState();
}
}

@Override
public void onFailure() {

}
});
});
}

private void setupAliasLayout() {
setupAliasesRecyclerView();
addAliasButton.setOnClickListener(v -> dialog.createAddPairAlertDialog("Add Alias", ProfileUtil.FieldType.ALIAS, new AddPairAlertDialogCallback() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public enum FieldType {
ALIAS("Alias"),
EMAIL("Email"),
SMS("SMS"),
JWT("JWT"),
EXTERNAL_USER_ID("External User Id"),

TAG("Tags"),
Expand Down Expand Up @@ -97,6 +98,10 @@ public static boolean isSMSValid(TextInputLayout smsTextInputLayout) {
return true;
}

private static boolean isJWTValid(TextInputLayout jwtTextInputLayout) {
return !jwtTextInputLayout.getEditText().toString().isEmpty();
}

private static boolean isExternalUserIdValid(TextInputLayout externalUserIdTextInputLayout) {
externalUserIdTextInputLayout.setErrorEnabled(false);
if (externalUserIdTextInputLayout.getEditText() != null) {
Expand Down Expand Up @@ -137,6 +142,8 @@ static boolean isContentValid(FieldType field, TextInputLayout alertDialogTextIn
return isEmailValid(alertDialogTextInputLayout);
case SMS:
return isSMSValid(alertDialogTextInputLayout);
case JWT:
return isJWTValid(alertDialogTextInputLayout);
case EXTERNAL_USER_ID:
return isExternalUserIdValid(alertDialogTextInputLayout);
case TAG:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,20 +152,20 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:gravity="start|center_vertical"
android:layout_marginBottom="4dp"
android:layout_marginStart="12dp"
android:layout_marginLeft="12dp"
android:layout_marginBottom="4dp"
android:gravity="start|center_vertical"
android:text="@string/app"
android:textColor="@color/colorDarkText" />

<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginBottom="12dp"
android:layout_marginStart="12dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
app:cardCornerRadius="6dp"
app:cardElevation="4dp">

Expand Down Expand Up @@ -226,23 +226,23 @@
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_gravity="center"
android:gravity="center"
android:layout_marginStart="12dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
android:orientation="vertical"
android:background="@color/colorPrimary">
android:background="@color/colorPrimary"
android:gravity="center"
android:orientation="vertical">

<Button
android:id="@+id/main_activity_app_revoke_consent_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ripple_selector_white_red"
android:text="@string/revoke_consent"
android:textSize="19sp"
android:textColor="@android:color/white"
android:background="@drawable/ripple_selector_white_red"
android:visibility="visible"/>
android:textSize="19sp"
android:visibility="visible" />

</LinearLayout>

Expand All @@ -263,11 +263,11 @@
android:id="@+id/main_activity_login_user_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ripple_selector_white_red"
android:text="@string/login_user"
android:textSize="19sp"
android:textColor="@android:color/white"
android:background="@drawable/ripple_selector_white_red"
android:visibility="visible"/>
android:textSize="19sp"
android:visibility="visible" />

</LinearLayout>

Expand All @@ -288,14 +288,97 @@
android:id="@+id/main_activity_logout_user_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ripple_selector_white_red"
android:text="@string/logout_user"
android:textSize="19sp"
android:textColor="@android:color/white"
android:background="@drawable/ripple_selector_white_red"
android:visibility="visible"/>
android:textSize="19sp"
android:visibility="visible" />
</LinearLayout>
</LinearLayout>

<LinearLayout
android:id="@+id/main_activity_jwt_linear_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="vertical">

<TextView
android:id="@+id/main_activity_jwt_title_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:layout_marginStart="12dp"
android:layout_marginLeft="12dp"
android:layout_marginBottom="4dp"
android:gravity="start|center_vertical"
android:text="@string/JWT"
android:textColor="@color/colorDarkText" />

<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
app:cardCornerRadius="6dp"
app:cardElevation="4dp">

<LinearLayout
android:id="@+id/main_activity_jwt_details_linear_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginTop="4dp"
android:background="@color/colorPrimary"
android:gravity="center"
android:orientation="vertical">

<Button
android:id="@+id/main_activity_invalidate_jwt_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ripple_selector_white_red"
android:text="@string/invalidate_JWT"
android:textColor="@android:color/white"
android:textSize="19sp"
android:visibility="visible" />

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginTop="4dp"
android:background="@color/colorPrimary"
android:gravity="center"
android:orientation="vertical">

<Button
android:id="@+id/main_activity_update_jwt_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ripple_selector_white_red"
android:text="@string/update_JWT"
android:textColor="@android:color/white"
android:textSize="19sp"
android:visibility="visible" />
</LinearLayout>

</LinearLayout>

</androidx.cardview.widget.CardView>

</LinearLayout>

<!-- Aliases -->
<LinearLayout
android:id="@+id/main_activity_aliases_linear_layout"
Expand Down
5 changes: 5 additions & 0 deletions 5 Examples/OneSignalDemo/app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@
<string name="login_user">Login User</string>
<string name="logout_user">Logout User</string>

<string name="JWT">JWT</string>
<string name="invalidate_JWT">Invalidate JWT</string>
<string name="update_JWT">Update JWT</string>
<string name="no_jwt_added">No JWT Added</string>

<string name="aliases">Aliases</string>
<string name="external_user_id_colon">EUID:</string>
<string name="no_aliases_added">No Aliases Added</string>
Expand Down
4 changes: 2 additions & 2 deletions 4 Examples/OneSignalDemo/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ buildscript {
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.2'
classpath 'com.android.tools.build:gradle:8.8.2'
classpath 'com.google.gms:google-services:4.3.10'
classpath 'com.huawei.agconnect:agcp:1.6.2.300'
classpath 'com.huawei.agconnect:agcp:1.9.1.304'

// TODO: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading
Loading
Morty Proxy This is a proxified and sanitized view of the page, visit original site.