diff --git a/app/src/main/java/com/onelogin/oidc/demo/UserInfoFragment.kt b/app/src/main/java/com/onelogin/oidc/demo/UserInfoFragment.kt index 2e5a702..8972f85 100644 --- a/app/src/main/java/com/onelogin/oidc/demo/UserInfoFragment.kt +++ b/app/src/main/java/com/onelogin/oidc/demo/UserInfoFragment.kt @@ -13,6 +13,8 @@ import com.onelogin.oidc.Callback import com.onelogin.oidc.OneLoginOIDC.getClient import com.onelogin.oidc.userInfo.UserInfo import com.onelogin.oidc.userInfo.UserInfoError +import java.text.SimpleDateFormat +import java.util.* class UserInfoFragment : Fragment() { @@ -21,6 +23,7 @@ class UserInfoFragment : Fragment() { private val preferredName: TextView by lazy { requireView().findViewById(R.id.username) } private val updatedAt: TextView by lazy { requireView().findViewById(R.id.updated_at) } private val animator: ViewAnimator by lazy { requireView() as ViewAnimator } + private val format = SimpleDateFormat("EEE, MMM d, ''yy", Locale.getDefault()) override fun onCreateView( inflater: LayoutInflater, @@ -43,7 +46,12 @@ class UserInfoFragment : Fragment() { email.text = success.email preferredName.text = if (success.preferredUsername != null) success.preferredUsername else "Empty" - updatedAt.text = if (success.updatedAt != null) success.updatedAt else "Empty" + val lastUpdateTimestamp = success.updatedAt + updatedAt.text = if (lastUpdateTimestamp != null) { + format.format(Date(lastUpdateTimestamp * 1000)) + } else { + "Empty" + } animator.displayedChild = 1 } diff --git a/appjava/src/main/java/com/onelogin/oidc/appjava/UserInfoFragment.java b/appjava/src/main/java/com/onelogin/oidc/appjava/UserInfoFragment.java index 14ea06c..b2bfe4c 100644 --- a/appjava/src/main/java/com/onelogin/oidc/appjava/UserInfoFragment.java +++ b/appjava/src/main/java/com/onelogin/oidc/appjava/UserInfoFragment.java @@ -1,5 +1,6 @@ package com.onelogin.oidc.appjava; +import android.annotation.SuppressLint; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; @@ -20,6 +21,10 @@ import static com.onelogin.oidc.appjava.OIDCDemoApp.LOG_TAG; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; + public class UserInfoFragment extends Fragment { private TextView userId; @@ -27,6 +32,7 @@ public class UserInfoFragment extends Fragment { private TextView preferredName; private TextView updatedAt; private ViewAnimator animator; + private final SimpleDateFormat format = new SimpleDateFormat("EEE, MMM d, ''yy", Locale.getDefault()); @Nullable @Override @@ -45,12 +51,18 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat animator.setDisplayedChild(0); OneLoginOIDC.getClient().getUserInfo(new Callback() { + @SuppressLint("SetTextI18n") @Override public void onSuccess(UserInfo userInfo) { userId.setText(userInfo.getSub()); email.setText(userInfo.getEmail()); preferredName.setText(userInfo.getPreferredUsername() != null ? userInfo.getPreferredUsername() : "Empty"); - updatedAt.setText(userInfo.getUpdatedAt() != null ? userInfo.getUpdatedAt() : "Empty"); + if (userInfo.getUpdatedAt() != null) { + updatedAt.setText(format.format(new Date(userInfo.getUpdatedAt() * 1000))); + } else { + updatedAt.setText("Empty"); + } + animator.setDisplayedChild(1); } diff --git a/oneloginoidc/src/main/java/com/onelogin/oidc/userInfo/UserInfo.kt b/oneloginoidc/src/main/java/com/onelogin/oidc/userInfo/UserInfo.kt index 787dd9d..f42076b 100644 --- a/oneloginoidc/src/main/java/com/onelogin/oidc/userInfo/UserInfo.kt +++ b/oneloginoidc/src/main/java/com/onelogin/oidc/userInfo/UserInfo.kt @@ -1,12 +1,22 @@ package com.onelogin.oidc.userInfo +import com.google.gson.annotations.SerializedName + data class UserInfo( + @SerializedName("sub") val sub: String, + @SerializedName("email") val email: String, + @SerializedName("preferred_username") val preferredUsername: String?, + @SerializedName("name") val name: String?, - val updatedAt: String?, + @SerializedName("updated_at") + val updatedAt: Long?, + @SerializedName("given_name") val givenName: String?, + @SerializedName("family_name") val familyName: String?, + @SerializedName("groups") val groups: List? )