mini-cards/app/src/main/java/com/codigoparallevar/minicards/DeckPreviewActivity.java

86 lines
3.1 KiB
Java

package com.codigoparallevar.minicards;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Vector;
public class DeckPreviewActivity extends AppCompatActivity {
public static final String INTENT = "com.codigoparallevar.minicards.DECK";
private ListView listView;
private CardPreviewArrayAdapter cardArrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_deck_preview);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.create_new_card_fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
listView = (ListView) findViewById(R.id.card_deck_list);
cardArrayAdapter = new CardPreviewArrayAdapter(getApplicationContext(), listAvailableCards());
listView.setAdapter(cardArrayAdapter);
}
private PreviewCard[] listAvailableCards() {
String cardsPath = CardFile.getDefaultCardStorage(this);
File cardsDir = new File(cardsPath);
if (!cardsDir.exists()) {
cardsDir.mkdir();
}
File[] cardFiles = cardsDir.listFiles();
if (cardFiles.length == 0){
try {
CardFile.createDefaultCards(cardsDir);
} catch (IOException e) {
Log.e("Minicards Deck preview",
"IOException when creating default cards", e);
}
cardFiles = cardsDir.listFiles();
}
List<PreviewCard> cards = new Vector<>(cardFiles.length);
for (File cardFile : cardFiles) {
try {
CardFile card = CardFile.load(cardFile.getAbsolutePath(), new StubPartGrid());
cards.add(new PreviewCard(card.getName(), card.getBackgroundColor(), card.getPath()));
} catch (ErrorLoadingCardException e) {
Log.e("Minicards Deck preview",
"Error loading card, [reason=" + e.getReason()
+ "; path=" + cardFile.getAbsolutePath(),
e);
} catch (IOException e) {
Log.e("Minicards Deck preview",
"IOException loading card, [msg=" + e.getMessage()
+ "; path=" + cardFile.getAbsolutePath(),
e);
}
}
return cards.toArray(new PreviewCard[cards.size()]);
}
}