This example demonstrates how to initialize and trigger the feedback dialog from an Activity
, such as MainActivity
.
public class MainActivity extends AppCompatActivity {
private FeedbackFormManager feedbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Initialize the Feedback Manager
feedbackManager = FeedbackFormManager.getInstance(this);
// Optional: Set a user ID (if your app supports user login)
feedbackManager.setUserId("user_123");
// Set up feedback trigger (e.g., button click)
setupFeedbackButton();
}
private void setupFeedbackButton() {
// Option 1: Trigger from a feedback button
findViewById(R.id.feedback_button).setOnClickListener(v -> showFeedbackDialog());
// Option 2: Trigger from options menu or gesture
// Option 3: Trigger after a key event like purchase or level completion
}
private void showFeedbackDialog() {
feedbackManager.getActiveFeedbackForm(
this,
getSupportFragmentManager(),
new FeedbackFormManager.FeedbackFormCallback<FeedbackForm>() {
@Override
public void ready(FeedbackForm form) {
// Feedback dialog will be shown automatically
Log.d("FeedbackSDK", "Feedback form loaded: " + form.getTitle());
}
@Override
public void failed(String errorMsg) {
Log.e("FeedbackSDK", "Failed to load feedback form: " + errorMsg);
Toast.makeText(MainActivity.this,
"Feedback is temporarily unavailable.",
Toast.LENGTH_SHORT
).show();
}
}
);
}
}
This example demonstrates how to initialize and trigger the feedback dialog from a Fragment
, using requireContext()
and getParentFragmentManager()
.
public class HomeFragment extends Fragment {
private FeedbackFormManager feedbackManager;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_home, container, false);
// Initialize Feedback Manager
feedbackManager = FeedbackFormManager.getInstance(requireContext());
// Optional: Set a user ID if your app supports login
feedbackManager.setUserId("user_123");
// Set up feedback trigger (e.g., button click)
view.findViewById(R.id.feedback_button).setOnClickListener(v -> showFeedbackDialog());
return view;
}
private void showFeedbackDialog() {
feedbackManager.getActiveFeedbackForm(
requireContext(),
getParentFragmentManager(),
new FeedbackFormManager.FeedbackFormCallback<FeedbackForm>() {
@Override
public void ready(FeedbackForm form) {
// Dialog is shown automatically
Log.d("FeedbackSDK", "Form loaded: " + form.getTitle());
}
@Override
public void failed(String errorMsg) {
Log.e("FeedbackSDK", "Failed to load feedback form: " + errorMsg);
Toast.makeText(requireContext(),
"Feedback is temporarily unavailable.",
Toast.LENGTH_SHORT
).show();
}
}
);
}
}
requireContext()
and getParentFragmentManager()
are used instead of this
and getSupportFragmentManager()
(which are for Activities).