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" /> +