Skip to content

Commit 8d1afe8

Browse files
committed
Adding device-token on Dashboard
1 parent 994ab3d commit 8d1afe8

File tree

3 files changed

+63
-4
lines changed

3 files changed

+63
-4
lines changed

samples/java_layout/src/main/java/io/customer/android/sample/java_layout/ui/dashboard/DashboardActivity.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import io.customer.android.sample.java_layout.ui.user.AuthViewModel;
3636
import io.customer.android.sample.java_layout.utils.Randoms;
3737
import io.customer.android.sample.java_layout.utils.ViewUtils;
38+
import io.customer.sdk.CustomerIO;
3839

3940
public class DashboardActivity extends BaseActivity<ActivityDashboardBinding> {
4041

@@ -98,6 +99,7 @@ public boolean onPreDraw() {
9899
private void prepareViewsForAutomatedTests() {
99100
ViewUtils.prepareForAutomatedTests(binding.settingsButton, R.string.acd_settings_icon);
100101
ViewUtils.prepareForAutomatedTests(binding.userEmailTextView, R.string.acd_email_id_text);
102+
ViewUtils.prepareForAutomatedTests(binding.deviceIdTextView, R.string.acd_device_id_text);
101103
ViewUtils.prepareForAutomatedTests(binding.sendRandomEventButton, R.string.acd_random_event_button);
102104
ViewUtils.prepareForAutomatedTests(binding.sendCustomEventButton, R.string.acd_custom_event_button);
103105
ViewUtils.prepareForAutomatedTests(binding.setDeviceAttributesButton, R.string.acd_device_attribute_button);
@@ -114,6 +116,9 @@ private void setupViews() {
114116
startActivity(new Intent(DashboardActivity.this, InternalSettingsActivity.class));
115117
return true;
116118
});
119+
binding.deviceIdTextView.setOnClickListener(view -> {
120+
copyToClipboard(binding.deviceIdTextView.getText().toString());
121+
});
117122
binding.sendRandomEventButton.setOnClickListener(view -> {
118123
sendRandomEvent();
119124
});
@@ -140,6 +145,7 @@ private void setupObservers() {
140145
});
141146
authViewModel.getUserDataObservable().observe(this, user -> {
142147
binding.userEmailTextView.setText(user.getEmail());
148+
binding.deviceIdTextView.setText(CustomerIO.instance().getRegisteredDeviceToken());
143149
});
144150
authViewModel.getUserLoggedInStateObservable().observe(this, isLoggedIn -> {
145151
if (isLoggedIn) {
@@ -233,4 +239,13 @@ private void showPushPermissionDeniedAlert(@StringRes int messageResId) {
233239
builder.setNeutralButton(R.string.open_settings, (dialogInterface, i) -> openNotificationPermissionSettings());
234240
builder.show();
235241
}
242+
243+
private void copyToClipboard(String text) {
244+
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
245+
android.content.ClipData clip = android.content.ClipData.newPlainText("Device id", text);
246+
clipboard.setPrimaryClip(clip);
247+
Snackbar.make(binding.deviceIdTextView,
248+
R.string.token_copied,
249+
Snackbar.LENGTH_SHORT).show();
250+
}
236251
}

samples/java_layout/src/main/res/layout/activity_dashboard.xml

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,66 @@
4848
app:layout_constraintEnd_toEndOf="parent"
4949
app:layout_constraintTop_toTopOf="parent" />
5050

51+
<TextView
52+
android:id="@+id/email_label"
53+
android:layout_width="wrap_content"
54+
android:layout_height="wrap_content"
55+
android:text="Email:"
56+
android:textAppearance="@style/TextAppearance.Material3.TitleSmall"
57+
android:textStyle="bold"
58+
app:layout_constraintBaseline_toBaselineOf="@id/user_email_text_view"
59+
app:layout_constraintEnd_toStartOf="@id/user_email_text_view"
60+
app:layout_constraintHorizontal_chainStyle="packed"
61+
app:layout_constraintStart_toStartOf="parent" />
62+
5163
<TextView
5264
android:id="@+id/user_email_text_view"
5365
android:layout_width="wrap_content"
5466
android:layout_height="wrap_content"
5567
android:ellipsize="end"
5668
android:gravity="center"
5769
android:maxLines="2"
70+
android:layout_marginStart="8dp"
5871
android:textAppearance="@style/TextAppearance.Material3.TitleSmall"
5972
app:layout_constrainedWidth="true"
60-
app:layout_constraintBottom_toTopOf="@id/title_message_text_view"
73+
app:layout_constraintBottom_toTopOf="@id/device_id_label"
6174
app:layout_constraintEnd_toEndOf="parent"
62-
app:layout_constraintStart_toStartOf="parent"
75+
app:layout_constraintStart_toEndOf="@id/email_label"
6376
app:layout_constraintTop_toBottomOf="@id/settings_button"
64-
app:layout_constraintVertical_bias="1"
6577
app:layout_constraintVertical_chainStyle="packed"
6678
tools:text="android@customer.io" />
6779

80+
<TextView
81+
android:id="@+id/device_id_label"
82+
android:layout_width="wrap_content"
83+
android:layout_height="wrap_content"
84+
android:text="Device id:"
85+
android:textAppearance="@style/TextAppearance.Material3.TitleSmall"
86+
android:textStyle="bold"
87+
app:layout_constraintEnd_toStartOf="@id/device_id_text_view"
88+
app:layout_constraintHorizontal_chainStyle="packed"
89+
app:layout_constraintStart_toStartOf="parent"
90+
app:layout_constraintTop_toBottomOf="@id/user_email_text_view" />
91+
92+
<TextView
93+
android:id="@+id/device_id_text_view"
94+
android:layout_width="wrap_content"
95+
android:layout_height="wrap_content"
96+
android:ellipsize="end"
97+
android:gravity="center"
98+
android:maxLines="2"
99+
android:layout_marginStart="8dp"
100+
android:clickable="true"
101+
android:focusable="true"
102+
android:background="?attr/selectableItemBackground"
103+
android:textAppearance="@style/TextAppearance.Material3.TitleSmall"
104+
app:layout_constrainedWidth="true"
105+
app:layout_constraintBottom_toTopOf="@id/title_message_text_view"
106+
app:layout_constraintEnd_toEndOf="parent"
107+
app:layout_constraintStart_toEndOf="@id/device_id_label"
108+
app:layout_constraintTop_toBottomOf="@id/user_email_text_view"
109+
tools:text="device-123456" />
110+
68111
<TextView
69112
android:id="@+id/title_message_text_view"
70113
android:layout_width="wrap_content"
@@ -76,7 +119,7 @@
76119
app:layout_constraintBottom_toTopOf="@id/send_random_event_button"
77120
app:layout_constraintEnd_toEndOf="parent"
78121
app:layout_constraintStart_toStartOf="parent"
79-
app:layout_constraintTop_toBottomOf="@id/user_email_text_view" />
122+
app:layout_constraintTop_toBottomOf="@id/device_id_text_view" />
80123

81124
<Button
82125
android:id="@+id/send_random_event_button"

samples/resources/values/appium.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
<string name="acd_save_settings_button">Save Settings Button</string>
2323
<string name="acd_restore_default_settings_button">Restore Default Settings Button</string>
2424
<string name="acd_email_id_text">Email ID Text</string>
25+
<string name="acd_device_id_text">Device ID Text</string>
2526
<string name="acd_random_event_button">Random Event Button</string>
2627
<string name="acd_custom_event_button">Custom Event Button</string>
2728
<string name="acd_device_attribute_button">Device Attribute Button</string>

0 commit comments

Comments
 (0)