package me.ccrama.redditslide;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.AsyncTask;
import android.support.design.widget.Snackbar;
import android.view.View;
import android.widget.TextView;
import net.dean.jraw.ApiException;
import net.dean.jraw.managers.AccountManager;
import net.dean.jraw.models.PublicContribution;
import net.dean.jraw.models.VoteDirection;
/**
* Created by ccrama on 9/19/2015.
*/
public class Vote extends AsyncTask<PublicContribution, Void, Void> {
private final VoteDirection direction;
private View v;
private Context c;
public Vote(Boolean b, View v, Context c) {
direction = b ? VoteDirection.UPVOTE : VoteDirection.DOWNVOTE;
this.v = v;
this.c = c;
Reddit.setDefaultErrorHandler(c);
}
public Vote(View v, Context c) {
direction = VoteDirection.NO_VOTE;
this.v = v;
this.c = c;
}
@Override
protected Void doInBackground(PublicContribution... sub) {
if (Authentication.isLoggedIn) {
try {
new AccountManager(Authentication.reddit).vote(sub[0], direction);
} catch (ApiException | RuntimeException e) {
((Activity) c).runOnUiThread(new Runnable() {
public void run() {
try {
if (v != null && c != null && v.getContext() != null) {
Snackbar s = Snackbar.make(v, R.string.vote_err, Snackbar.LENGTH_SHORT);
View view = s.getView();
TextView tv = (TextView) view.findViewById(android.support.design.R.id.snackbar_text);
tv.setTextColor(Color.WHITE);
s.show();
}
} catch (Exception ignored) {
}
c = null;
v = null;
}
});
e.printStackTrace();
}
} else {
((Activity) c).runOnUiThread(new Runnable() {
public void run() {
try {
if (v != null && c != null && v.getContext() != null) {
Snackbar s = Snackbar.make(v, R.string.vote_err_login, Snackbar.LENGTH_SHORT);
View view = s.getView();
TextView tv = (TextView) view.findViewById(android.support.design.R.id.snackbar_text);
tv.setTextColor(Color.WHITE);
s.show();
}
} catch (Exception ignored) {
}
c = null;
v = null;
}
});
}
return null;
}
}