Search in sources :

Example 1 with TBA

use of com.cpjd.main.TBA in project Roblu by wdavies973.

the class ImportEvent method run.

@Override
public void run() {
    /*
         * Make sure this thread has network permissions
         */
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitNetwork().build();
    StrictMode.setThreadPolicy(policy);
    // set what should be included in the event download
    Settings.defaults();
    // notify the listener of the downloaded event
    Event e = new TBA().getEvent(this.key);
    if (e != null)
        listener.eventDownloaded(e);
    else
        listener.errorOccurred("No event found with key: " + this.key + ".");
    try {
        join();
    } catch (InterruptedException error) {
        Log.d("RBS", "Failed to stop ImportEvent thread.");
    }
}
Also used : StrictMode(android.os.StrictMode) TBA(com.cpjd.main.TBA) Event(com.cpjd.models.Event)

Example 2 with TBA

use of com.cpjd.main.TBA in project Roblu by wdavies973.

the class TBATeamInfoTask method run.

public void run() {
    listener.teamRetrieved(new TBA().getTeam(teamNumber));
    try {
        Media[] medias = new TBA().getMedia(teamNumber, Integer.parseInt(year));
        for (Media media : medias) {
            String url = (String) media.details.get("thumbnail_url");
            if (url == null || url.equals(""))
                continue;
            Log.d("RBS", "Attempting to download image at URL: " + url);
            Bitmap b = Picasso.with(context).load(url).get();
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            b.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byte[] byteArray = stream.toByteArray();
            listener.imageRetrieved(byteArray);
            break;
        }
    } catch (Exception e) {
        Log.d("RBS", "Failed to download team picture: " + e.getMessage());
    }
    try {
        thread.join();
    } catch (Exception e) {
        Log.d("RBS", "Failed to stop TBATeamInfoTask thread.");
    }
}
Also used : TBA(com.cpjd.main.TBA) Bitmap(android.graphics.Bitmap) Media(com.cpjd.models.Media) ByteArrayOutputStream(java.io.ByteArrayOutputStream)

Example 3 with TBA

use of com.cpjd.main.TBA in project Roblu by wdavies973.

the class TBALoadEventsTask method doInBackground.

/**
 * Executes the task
 * @param params no parameters should all be set by the getters and setters for the LoadEventsTask variables
 * @return null (listener will receive the data)
 */
@Override
protected Void doInBackground(Void... params) {
    if (events == null)
        events = new ArrayList<>();
    /*
         * We need to make sure that this thread has access to the internet
         */
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitNetwork().build();
    StrictMode.setThreadPolicy(policy);
    /*
         * This disables any sub-data returned with the events, we only want the event data!
         * Downloading sub-teams for each event would take a while.
         */
    Settings.disableAll();
    /*
         * Now let's use the AMAZING TBA-API features to download the events, you
         * should check out the TBA-API developer, he's great.
         */
    if (events == null || events.size() == 0) {
        try {
            Event[] events;
            if (onlyShowMyEvents)
                events = new TBA().getTeamEvents(teamNumber, year, false);
            else
                events = new TBA().getEvents(year, false);
            /*
                 * Clean up the downloaded data a bit
                 */
            for (Event e : events) {
                while (e.name.startsWith(" ")) e.name = e.name.substring(1);
                e.start_date = Integer.parseInt(e.start_date.split("-")[1]) + "/" + Integer.parseInt(e.start_date.split("-")[2]) + "/" + e.start_date.split("-")[0];
            }
            this.events = new ArrayList<>();
            Collections.addAll(this.events, events);
            listener.eventListDownloaded(this.events);
        } catch (Exception e) {
            e.printStackTrace();
            if (onlyShowMyEvents && teamNumber == 0)
                listener.errorOccurred("Error occurred downloading events list. Is your team number properly defined in Roblu settings?");
            else
                listener.errorOccurred("An error occurred while accessing TheBlueAlliance.com");
        }
    }
    /*
         * Now, perform searching if necessary
         */
    if (!query.equals("")) {
        for (Event e : this.events) {
            /*
                 * Because of the janky API sort method, relevance can NEVER be zero (otherwise the event will get sorted by date),
                 * so make sure that zero is not possible!
                 */
            e.relevance = -1;
            /*
                 * It's tempting to use if statements here, don't! They are INDIVIDUAL search criteria scores
                 */
            if (e.name.toLowerCase().equals(query))
                e.relevance += 5;
            if (e.name.toLowerCase().contains(query))
                e.relevance += 2;
            if (Utils.contains(e.name.toLowerCase(), query))
                e.relevance += 4;
            if (e.start_date.toLowerCase().contains(query))
                e.relevance += 2;
            if (e.start_date.toLowerCase().equals(query))
                e.relevance += 5;
            if (Utils.contains(e.start_date.toLowerCase(), query))
                e.relevance += 4;
            if (e.location.toLowerCase().equals(query))
                e.relevance += 5;
            if (e.location.toLowerCase().contains(query))
                e.relevance += 2;
            if (Utils.contains(e.location.toLowerCase(), query))
                e.relevance += 4;
        }
        Collections.sort(this.events);
        Collections.reverse(this.events);
    } else /*
         * Sort by date!
         */
    {
        // make sure to reset old relevance (from past searches)
        for (Event e : this.events) e.relevance = 0;
        Collections.sort(this.events);
    }
    return null;
}
Also used : StrictMode(android.os.StrictMode) TBA(com.cpjd.main.TBA) ArrayList(java.util.ArrayList) Event(com.cpjd.models.Event)

Example 4 with TBA

use of com.cpjd.main.TBA in project Roblu by wdavies973.

the class OurMatches method generateSheet.

@Override
public void generateSheet(XSSFSheet sheet, REvent event, RForm form, RTeam[] teams, ArrayList<RCheckout> checkouts) {
    if (event.getKey() == null || event.getKey().equalsIgnoreCase("") || io.loadSettings().getTeamNumber() == 0)
        return;
    int teamNumber = io.loadSettings().getTeamNumber();
    // Allow this thread to access the internet
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitNetwork().build();
    StrictMode.setThreadPolicy(policy);
    XSSFCellStyle blue = setCellStyle(BorderStyle.THIN, IndexedColors.CORNFLOWER_BLUE, IndexedColors.BLACK, false);
    XSSFCellStyle red = setCellStyle(BorderStyle.THIN, IndexedColors.CORAL, IndexedColors.BLACK, false);
    /*
         * Create header row
         */
    Row one = createRow(sheet, 0);
    setCellStyle(BorderStyle.THIN, IndexedColors.WHITE, IndexedColors.BLACK, true);
    createCell(one, 0, "Match#");
    setStyle(blue);
    createCell(one, 1, "Team1");
    createCell(one, 2, "Team2");
    createCell(one, 3, "Team3");
    setStyle(red);
    createCell(one, 4, "Team4");
    createCell(one, 5, "Team5");
    createCell(one, 6, "Team6");
    // Determine event year
    Settings.disableAll();
    Settings.GET_EVENT_MATCHES = true;
    try {
        Event tbaEvent = new TBA().getEvent(event.getKey());
        for (Match m : tbaEvent.matches) {
            if (m.doesMatchContainTeam(teamNumber) > 0) {
                Row row = createRow(sheet);
                setCellStyle(BorderStyle.THIN, IndexedColors.WHITE, IndexedColors.BLACK, true);
                createCell(row, 0, String.valueOf(m.match_number));
                setStyle(blue);
                createCell(row, 1, m.blueTeams[0].replace("frc", ""));
                createCell(row, 2, m.blueTeams[1].replace("frc", ""));
                createCell(row, 3, m.blueTeams[2].replace("frc", ""));
                setStyle(red);
                createCell(row, 4, m.redTeams[0].replace("frc", ""));
                createCell(row, 5, m.redTeams[1].replace("frc", ""));
                createCell(row, 6, m.redTeams[2].replace("frc", ""));
            }
        }
    } catch (Exception e) {
        Row r = createRow(sheet);
        createCell(r, 0, "Failed to pull data from TheBlueAlliance.com.");
    }
}
Also used : StrictMode(android.os.StrictMode) TBA(com.cpjd.main.TBA) XSSFCellStyle(org.apache.poi.xssf.usermodel.XSSFCellStyle) REvent(com.cpjd.roblu.models.REvent) Event(com.cpjd.models.Event) Row(org.apache.poi.ss.usermodel.Row) Match(com.cpjd.models.Match)

Aggregations

TBA (com.cpjd.main.TBA)4 StrictMode (android.os.StrictMode)3 Event (com.cpjd.models.Event)3 Bitmap (android.graphics.Bitmap)1 Match (com.cpjd.models.Match)1 Media (com.cpjd.models.Media)1 REvent (com.cpjd.roblu.models.REvent)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 ArrayList (java.util.ArrayList)1 Row (org.apache.poi.ss.usermodel.Row)1 XSSFCellStyle (org.apache.poi.xssf.usermodel.XSSFCellStyle)1