package org.namelessrom.devicecontrol.thirdparty;
import android.app.Activity;
import android.text.TextUtils;
import com.crashlytics.android.answers.Answers;
import com.crashlytics.android.answers.CustomEvent;
import com.pollfish.constants.Position;
import com.pollfish.interfaces.PollfishClosedListener;
import com.pollfish.interfaces.PollfishOpenedListener;
import com.pollfish.interfaces.PollfishSurveyCompletedListener;
import com.pollfish.interfaces.PollfishSurveyNotAvailableListener;
import com.pollfish.interfaces.PollfishSurveyReceivedListener;
import com.pollfish.interfaces.PollfishUserNotEligibleListener;
import com.pollfish.main.PollFish;
import org.namelessrom.devicecontrol.BuildConfig;
import org.namelessrom.devicecontrol.models.DeviceConfig;
import timber.log.Timber;
public class PollFishImpl {
public static void initPollFish(Activity activity) {
if (!DeviceConfig.get().showPollfish) {
Timber.d("PollFish is deactivated!");
return;
}
if (!TextUtils.equals("---", BuildConfig.API_KEY_POLL_FISH)) {
Timber.d("PollFish.init()");
final PollFishListener pollFishListener = new PollFishListener();
final PollFish.ParamsBuilder paramsBuilder = new PollFish.ParamsBuilder(BuildConfig.API_KEY_POLL_FISH)
.indicatorPosition(Position.BOTTOM_RIGHT)
.indicatorPadding(50)
.pollfishSurveyNotAvailableListener(pollFishListener)
.pollfishSurveyReceivedListener(pollFishListener)
.pollfishSurveyCompletedListener(pollFishListener)
.pollfishUserNotEligibleListener(pollFishListener)
.pollfishClosedListener(pollFishListener)
.pollfishOpenedListener(pollFishListener)
.releaseMode(!BuildConfig.DEBUG)
.build();
PollFish.initWith(activity, paramsBuilder);
} else {
Timber.w("No proper PollFish api key configured!");
}
}
private static final class PollFishListener implements PollfishSurveyNotAvailableListener, PollfishSurveyReceivedListener, PollfishSurveyCompletedListener, PollfishUserNotEligibleListener, PollfishClosedListener, PollfishOpenedListener {
private static final String NOT_AVAILABLE = "pollfish_survey_not_available";
private static final String RECEIVED = "pollfish_survey_received";
private static final String COMPLETED = "pollfish_survey_completed";
private static final String NOT_ELIGIBLE = "pollfish_user_not_eligible";
private static final String CLOSED = "pollfish_closed";
private static final String OPENED = "pollfish_opened";
@Override public void onPollfishSurveyNotAvailable() {
Timber.d(NOT_AVAILABLE);
Answers.getInstance().logCustom(new CustomEvent(NOT_AVAILABLE));
}
@Override public void onPollfishSurveyReceived(boolean playfulSurveys, int surveyPrice) {
Timber.d(RECEIVED);
final CustomEvent event = new CustomEvent(RECEIVED);
event.putCustomAttribute("playful", playfulSurveys ? "true" : "false");
Answers.getInstance().logCustom(event);
}
@Override public void onPollfishSurveyCompleted(boolean playfulSurveys, int surveyPrice) {
Timber.d(COMPLETED);
final CustomEvent event = new CustomEvent(COMPLETED);
event.putCustomAttribute("playful", playfulSurveys ? "true" : "false");
Answers.getInstance().logCustom(event);
}
@Override public void onUserNotEligible() {
Timber.d(NOT_ELIGIBLE);
Answers.getInstance().logCustom(new CustomEvent(NOT_ELIGIBLE));
}
@Override public void onPollfishClosed() {
Timber.d(CLOSED);
Answers.getInstance().logCustom(new CustomEvent(CLOSED));
}
@Override public void onPollfishOpened() {
Timber.d(OPENED);
Answers.getInstance().logCustom(new CustomEvent(OPENED));
}
}
}