package com.uservoice.uservoicesdk.dialog; import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.widget.EditText; import com.uservoice.uservoicesdk.R; import com.uservoice.uservoicesdk.Session; import com.uservoice.uservoicesdk.activity.InstantAnswersActivity; import com.uservoice.uservoicesdk.deflection.Deflection; import com.uservoice.uservoicesdk.flow.SigninManager; import com.uservoice.uservoicesdk.model.Suggestion; import com.uservoice.uservoicesdk.ui.DefaultCallback; import com.uservoice.uservoicesdk.ui.Utils; @SuppressLint("ValidFragment") public class SubscribeDialogFragment extends DialogFragmentBugfixed { private final Suggestion suggestion; private final SuggestionDialogFragment suggestionDialog; public SubscribeDialogFragment(Suggestion suggestion, SuggestionDialogFragment suggestionDialog) { this.suggestion = suggestion; this.suggestionDialog = suggestionDialog; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.uv_subscribe_dialog_title); if (!Utils.isDarkTheme(getActivity())) { builder.setInverseBackgroundForced(true); } View view = getActivity().getLayoutInflater().inflate(R.layout.uv_subscribe_dialog, null); final EditText emailField = (EditText) view.findViewById(R.id.uv_email); emailField.setText(Session.getInstance().getEmail()); builder.setView(view); builder.setNegativeButton(R.string.uv_nevermind, null); builder.setPositiveButton(R.string.uv_subscribe, new DialogInterface.OnClickListener() { @Override public void onClick(final DialogInterface dialog, int which) { Session.getInstance().persistIdentity(Session.getInstance().getName(), emailField.getText().toString()); SigninManager.signinForSubscribe(getActivity(), Session.getInstance().getEmail(), new Runnable() { @Override public void run() { suggestion.subscribe(new DefaultCallback<Suggestion>(getActivity()) { @Override public void onModel(Suggestion model) { if (getActivity() instanceof InstantAnswersActivity) Deflection.trackDeflection("subscribed", model); suggestionDialog.suggestionSubscriptionUpdated(model); dialog.dismiss(); } ; }); } }); } }); AlertDialog dialog = builder.create(); dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); return dialog; } }