diff --git a/javasample/src/main/java/com/oursky/authgeartest/MainActivity.java b/javasample/src/main/java/com/oursky/authgeartest/MainActivity.java
index 152ca094..9a82db10 100644
--- a/javasample/src/main/java/com/oursky/authgeartest/MainActivity.java
+++ b/javasample/src/main/java/com/oursky/authgeartest/MainActivity.java
@@ -54,6 +54,7 @@ public class MainActivity extends AppCompatActivity {
private View mDisableBiometric;
private View mAuthenticateBiometric;
private View mOpenSettings;
+ private View mChangePassword;
private View mFetchUserInfo;
private View mShowAuthTime;
private View mLogout;
@@ -86,6 +87,7 @@ protected void onCreate(Bundle savedInstanceState) {
mDisableBiometric = findViewById(R.id.disableBiometric);
mAuthenticateBiometric = findViewById(R.id.authenticateBiometric);
mOpenSettings = findViewById(R.id.openSettings);
+ mChangePassword = findViewById(R.id.changePassword);
mFetchUserInfo = findViewById(R.id.fetchUserInfo);
mShowAuthTime = findViewById(R.id.showAuthTime);
mLogout = findViewById(R.id.logout);
@@ -142,6 +144,7 @@ protected void onCreate(Bundle savedInstanceState) {
mDisableBiometric.setOnClickListener(view -> viewModel.disableBiometric());
mAuthenticateBiometric.setOnClickListener(view -> viewModel.authenticateBiometric(this));
mOpenSettings.setOnClickListener(view -> viewModel.openSettings());
+ mChangePassword.setOnClickListener(view -> viewModel.openChangePassword());
mFetchUserInfo.setOnClickListener(view -> viewModel.fetchUserInfo());
mShowAuthTime.setOnClickListener(view -> viewModel.showAuthTime(this));
mLogout.setOnClickListener(view -> viewModel.logout());
diff --git a/javasample/src/main/java/com/oursky/authgeartest/MainViewModel.java b/javasample/src/main/java/com/oursky/authgeartest/MainViewModel.java
index 5a994e3c..5381798c 100644
--- a/javasample/src/main/java/com/oursky/authgeartest/MainViewModel.java
+++ b/javasample/src/main/java/com/oursky/authgeartest/MainViewModel.java
@@ -34,6 +34,7 @@
import com.oursky.authgear.OnFetchUserInfoListener;
import com.oursky.authgear.OnHandleApp2AppAuthenticationRequestListener;
import com.oursky.authgear.OnLogoutListener;
+import com.oursky.authgear.OnOpenSettingsActionListener;
import com.oursky.authgear.OnOpenURLListener;
import com.oursky.authgear.OnPromoteAnonymousUserListener;
import com.oursky.authgear.OnReauthenticateListener;
@@ -47,6 +48,7 @@
import com.oursky.authgear.SessionStateChangeReason;
import com.oursky.authgear.SettingOptions;
import com.oursky.authgear.TokenStorage;
+import com.oursky.authgear.SettingsActionOptions;
import com.oursky.authgear.TransientTokenStorage;
import com.oursky.authgear.UIImplementation;
import com.oursky.authgear.UserInfo;
@@ -668,6 +670,42 @@ public void onFailed(Throwable throwable) {
});
}
+ public void openChangePassword() {
+ mIsLoading.setValue(true);
+
+ mAuthgear.refreshIDToken(new OnRefreshIDTokenListener() {
+ @Override
+ public void onFinished() {
+ SettingsActionOptions options = new SettingsActionOptions(
+ MainApplication.AUTHGEAR_REDIRECT_URI
+ );
+ options.setColorScheme(getColorScheme());
+ options.setWechatRedirectURI(MainApplication.AUTHGEAR_WECHAT_REDIRECT_URI);
+ mAuthgear.changePassword(options, new OnOpenSettingsActionListener() {
+ @Override
+ public void onFinished() {
+ mIsLoading.setValue(false);
+ Log.d(TAG, "changePassword finished");
+ }
+
+ @Override
+ public void onFailed(Throwable throwable) {
+ Log.d(TAG, throwable.toString());
+ mIsLoading.setValue(false);
+ setError(throwable);
+ }
+ });
+ }
+
+ @Override
+ public void onFailed(Throwable throwable) {
+ Log.d(TAG, throwable.toString());
+ mIsLoading.setValue(false);
+ setError(throwable);
+ }
+ });
+ }
+
public void promoteAnonymousUser() {
mIsLoading.setValue(true);
PromoteOptions options = new PromoteOptions(MainApplication.AUTHGEAR_REDIRECT_URI);
diff --git a/javasample/src/main/res/layout/activity_main.xml b/javasample/src/main/res/layout/activity_main.xml
index 0807708b..3e6a766d 100644
--- a/javasample/src/main/res/layout/activity_main.xml
+++ b/javasample/src/main/res/layout/activity_main.xml
@@ -425,6 +425,15 @@
android:text="Open settings"
tools:ignore="HardcodedText" />
+
+