package com.RSen.Commandr.ui.activity;
import android.annotation.TargetApi;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AbsListView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.RSen.Commandr.R;
import com.RSen.Commandr.ui.card.MostWantedVotingCard;
import com.afollestad.materialdialogs.MaterialDialog;
import com.afollestad.materialdialogs.Theme;
import com.apptentive.android.sdk.Apptentive;
import com.apptentive.android.sdk.ApptentiveActivity;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.mediation.admob.AdMobExtras;
import com.melnykov.fab.FloatingActionButton;
import com.nhaarman.listviewanimations.swinginadapters.prepared.SwingBottomInAnimationAdapter;
import com.parse.FindCallback;
import com.parse.Parse;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import java.util.ArrayList;
import java.util.List;
import it.gmariotti.cardslib.library.internal.Card;
import it.gmariotti.cardslib.library.internal.CardGridArrayAdapter;
import it.gmariotti.cardslib.library.view.CardGridView;
public class VotingActivity extends ActionBarActivity {
private ProgressBar progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.voting);
setupActionBar();
AdView adView = (AdView) this.findViewById(R.id.adView);
if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("ads", true)) {
adView.setVisibility(View.VISIBLE);
Bundle bundle = new Bundle();
bundle.putString("color_bg", "4285f4");
bundle.putString("color_bg_top", "4285f4");
bundle.putString("color_border", "4285f4");
bundle.putString("color_link", "EEEEEE");
bundle.putString("color_text", "FFFFFF");
bundle.putString("color_url", "EEEEEE");
AdMobExtras extras = new AdMobExtras(bundle);
AdRequest adRequest = new AdRequest.Builder().addTestDevice("E9439BFF2245E1BC1DD0FDB28EA467F9").addTestDevice("49924C4BF3738C69A7497A524D092901").addNetworkExtras(extras).build();
adView.loadAd(adRequest);
} else {
adView.setVisibility(View.GONE);
}
progress = (ProgressBar) findViewById(R.id.progressBar);
Parse.initialize(this, "giwroIjJIvqQCpTB23LsdDYe8HdHCxZwy0fkKksV", "H98VqurfJTM4J05D8Fmht3VyXdbTCb5ghBf8Jkjc");
((FloatingActionButton)findViewById(R.id.suggest)).attachToListView(((AbsListView)findViewById(R.id.card_list_view)));
}
@Override
protected void onStart() {
super.onStart();
Apptentive.onStart(this);
}
@Override
protected void onStop() {
super.onStop();
Apptentive.onStop(this);
}
@Override
protected void onResume() {
super.onResume();
progress.setVisibility(View.VISIBLE);
ParseQuery<ParseObject> query = ParseQuery.getQuery("VotingCommand");
query.addDescendingOrder("votes");
query.setLimit(1000);
((FloatingActionButton) findViewById(R.id.suggest)).hide();
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(final List<ParseObject> parseObjects, ParseException e) {
if (e == null) {
ArrayList<Card> cards = new ArrayList<Card>();
for (ParseObject command : parseObjects) {
cards.add(new MostWantedVotingCard(VotingActivity.this, command));
}
final CardGridArrayAdapter mCardArrayAdapter = new CardGridArrayAdapter(VotingActivity.this, cards);
final CardGridView listView = (CardGridView) findViewById(R.id.card_list_view);
final SwingBottomInAnimationAdapter animCardArrayAdapter = new SwingBottomInAnimationAdapter(mCardArrayAdapter);
animCardArrayAdapter.setAbsListView(listView);
listView.setExternalAdapter(animCardArrayAdapter, mCardArrayAdapter);
progress.setVisibility(View.GONE);
FloatingActionButton b = (FloatingActionButton) findViewById(R.id.suggest);
b.show();
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new MaterialDialog.Builder(VotingActivity.this)
.title(getString(R.string.suggest_new))
.theme(Theme.LIGHT) // the default is light, so you don't need this line
.customView(R.layout.suggest_command, true)
.positiveText(getString(R.string.submit)) // the default is 'OK'
.negativeText(R.string.cancel) // leaving this line out will remove the negative button
.callback(new MaterialDialog.ButtonCallback() {
@Override
public void onPositive(MaterialDialog materialDialog) {
String name = ((EditText) materialDialog.getCustomView().findViewById(R.id.name)).getText().toString();
String detail = ((EditText) materialDialog.getCustomView().findViewById(R.id.detailSuggest)).getText().toString();
ParseObject votingCommand = new ParseObject("VotingCommand");
votingCommand.put("title", name);
votingCommand.put("detail", detail);
votingCommand.put("votes", 0);
votingCommand.saveInBackground();
mCardArrayAdapter.add(new MostWantedVotingCard(VotingActivity.this, votingCommand));
animCardArrayAdapter.notifyDataSetChanged();
}
})
.build()
.show();
}
});
}
}
});
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupActionBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
}