Skip to content

Commit fa18371

Browse files
committed
RUM-10621 Add sample app clear button
1 parent d4aa2b0 commit fa18371

File tree

4 files changed

+65
-17
lines changed

4 files changed

+65
-17
lines changed

sample/kotlin/src/main/kotlin/com/datadog/android/sample/Preferences.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,17 @@ internal object Preferences {
151151
.apply()
152152
}
153153

154+
fun clearUserCredentials() {
155+
PreferenceManager.getDefaultSharedPreferences(applicationContext)
156+
.edit()
157+
.remove(PREF_USR_ID)
158+
.remove(PREF_USR_NAME)
159+
.remove(PREF_USR_EMAIL)
160+
.remove(PREF_USR_GENDER)
161+
.remove(PREF_USR_AGE)
162+
.apply()
163+
}
164+
154165
fun setTrackingConsent(consent: TrackingConsent) {
155166
PreferenceManager.getDefaultSharedPreferences(applicationContext)
156167
.edit()

sample/kotlin/src/main/kotlin/com/datadog/android/sample/user/UserFragment.kt

Lines changed: 41 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ internal class UserFragment : Fragment(), View.OnClickListener {
4040
userGenderField = rootView.findViewById(R.id.user_gender)
4141
userAgeField = rootView.findViewById(R.id.user_age)
4242
rootView.findViewById<View>(R.id.save_user).setOnClickListener(this)
43+
rootView.findViewById<View>(R.id.clear_user).setOnClickListener(this)
4344
return rootView
4445
}
4546

@@ -58,24 +59,47 @@ internal class UserFragment : Fragment(), View.OnClickListener {
5859
// region View.OnClickListener
5960

6061
override fun onClick(v: View) {
61-
withinSpan("updateUserInfo") {
62-
val id: String = idField.text.toString()
63-
val name: String = nameField.text.toString()
64-
val email: String = emailField.text.toString()
65-
val gender: String = userGenderField.text.toString()
66-
val age: Int = Integer.valueOf(userAgeField.text.toString())
67-
Preferences.defaultPreferences(requireContext())
68-
.setUserCredentials(id, name, email, gender, age)
69-
Datadog.setUserInfo(id, name, email, emptyMap())
70-
Datadog.addUserProperties(
71-
mapOf<String, Any>(
72-
GENDER_KEY to gender,
73-
AGE_KEY to age
74-
)
75-
)
76-
log("Updated user info")
62+
when (v.id) {
63+
R.id.save_user -> {
64+
withinSpan("updateUserInfo") {
65+
val id: String = idField.text.toString()
66+
val name: String = nameField.text.toString()
67+
val email: String = emailField.text.toString()
68+
val gender: String = userGenderField.text.toString()
69+
val age: Int = Integer.valueOf(userAgeField.text.toString())
70+
Preferences.defaultPreferences(requireContext())
71+
.setUserCredentials(id, name, email, gender, age)
72+
Datadog.setUserInfo(id, name, email, emptyMap())
73+
Datadog.addUserProperties(
74+
mapOf<String, Any>(
75+
GENDER_KEY to gender,
76+
AGE_KEY to age
77+
)
78+
)
79+
log("Updated user info")
80+
}
81+
Snackbar.make(view ?: v.rootView, "User info updated", Snackbar.LENGTH_SHORT).show()
82+
}
83+
R.id.clear_user -> {
84+
withinSpan("clearUserInfo") {
85+
// Clear preferences
86+
Preferences.defaultPreferences(requireContext()).clearUserCredentials()
87+
88+
// Clear Datadog user info
89+
Datadog.clearUserInfo()
90+
91+
// Clear UI fields
92+
idField.text.clear()
93+
nameField.text.clear()
94+
emailField.text.clear()
95+
userGenderField.text.clear()
96+
userAgeField.text.clear()
97+
98+
log("Cleared user info")
99+
}
100+
Snackbar.make(view ?: v.rootView, "User info cleared", Snackbar.LENGTH_SHORT).show()
101+
}
77102
}
78-
Snackbar.make(view ?: v.rootView, "User info updated", Snackbar.LENGTH_SHORT).show()
79103
}
80104

81105
// endregion

sample/kotlin/src/main/res/layout/fragment_user.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,18 @@
7878
android:layout_gravity="center_horizontal"
7979
android:layout_margin="8dp"
8080
app:layout_constraintStart_toStartOf="parent"
81+
app:layout_constraintEnd_toStartOf="@+id/clear_user"
82+
app:layout_constraintTop_toBottomOf="@id/user_age"
83+
/>
84+
85+
<androidx.appcompat.widget.AppCompatButton
86+
android:id="@+id/clear_user"
87+
android:layout_width="0dp"
88+
android:layout_height="wrap_content"
89+
android:text="@string/button_clear"
90+
android:layout_gravity="center_horizontal"
91+
android:layout_margin="8dp"
92+
app:layout_constraintStart_toEndOf="@+id/save_user"
8193
app:layout_constraintEnd_toEndOf="parent"
8294
app:layout_constraintTop_toBottomOf="@id/user_age"
8395
/>

sample/kotlin/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
<string name="button_start_sse">Start Server Sent Event Request</string>
6565
<string name="button_start_404">Start 404 Request</string>
6666
<string name="button_save">Save</string>
67+
<string name="button_clear">Clear</string>
6768
<string name="button_long_task">Long Task</string>
6869
<string name="button_frozen_frame">Frozen Frame</string>
6970
<string name="button_slow_frame_rate">Slow frame rate</string>

0 commit comments

Comments
 (0)