From 60b04973e203241d319e2d8ee6c150d641b02a65 Mon Sep 17 00:00:00 2001 From: pk910 Date: Thu, 4 Feb 2016 10:15:00 +0100 Subject: [PATCH] some fixes --- .../java/de/dhbwloe/campusapp/CampusApp.java | 10 +++ .../dhbwloe/campusapp/CampusAppContext.java | 12 ++- .../dhbwloe/campusapp/NavigationManager.java | 5 +- .../campusapp/database/DatabaseManager.java | 14 ++++ .../campusapp/fragments/SplashScreen.java | 82 +++++++++++++++---- .../campusapp/mensaplan/MensaTagesplan.java | 6 +- .../campusapp/mensaplan/MensaplanManager.java | 22 +++-- .../campusapp/network/XmlRequestHelper.java | 1 + .../campusapp/nfcreader/NfcCardListener.java | 5 +- ...splanManager.java => CalendarManager.java} | 60 +++++++------- .../vorlesungen/CalendarManagerInterface.java | 15 ++++ .../VorlesungsplanManagerInterface.java | 11 --- 12 files changed, 168 insertions(+), 75 deletions(-) rename app/src/main/java/de/dhbwloe/campusapp/vorlesungen/{VorlesungsplanManager.java => CalendarManager.java} (76%) create mode 100644 app/src/main/java/de/dhbwloe/campusapp/vorlesungen/CalendarManagerInterface.java delete mode 100644 app/src/main/java/de/dhbwloe/campusapp/vorlesungen/VorlesungsplanManagerInterface.java diff --git a/app/src/main/java/de/dhbwloe/campusapp/CampusApp.java b/app/src/main/java/de/dhbwloe/campusapp/CampusApp.java index e9200ac..f201da6 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/CampusApp.java +++ b/app/src/main/java/de/dhbwloe/campusapp/CampusApp.java @@ -69,6 +69,13 @@ public class CampusApp extends FragmentActivity { AppContext.setTitle(savedInstanceState.getString("activetitle")); } + + + Bundle contextVars = savedInstanceState.getBundle("savedContextVariables"); + if(contextVars != null) { + Bundle contextVariables = AppContext.getContextVariables(); + contextVariables.putAll(contextVars); + } } prepareMainUi(); @@ -91,6 +98,9 @@ public class CampusApp extends FragmentActivity { TextView titleView = (TextView) findViewById(R.id.title); savedInstanceState.putString("activetitle", titleView.getText().toString()); + Bundle contextVariables = AppContext.getContextVariables(); + savedInstanceState.putBundle("savedContextVariables", contextVariables); + // Always call the superclass so it can save the view hierarchy state super.onSaveInstanceState(savedInstanceState); } diff --git a/app/src/main/java/de/dhbwloe/campusapp/CampusAppContext.java b/app/src/main/java/de/dhbwloe/campusapp/CampusAppContext.java index 77c2b9d..ab49c22 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/CampusAppContext.java +++ b/app/src/main/java/de/dhbwloe/campusapp/CampusAppContext.java @@ -72,11 +72,13 @@ public class CampusAppContext { private NavigationManager oNavigationManager; private DatabaseManager oDatabaseManager; private NfcCardListener oNfcCardListener; + private Bundle oContextVariables; public CampusAppContext(CampusApp mainActivity, int fragmentContainerId) { final CampusAppContext AppContext = this; instance = this; oMainActivity = mainActivity; + oContextVariables = new Bundle(); oNavigationManager = new NavigationManager(this, fragmentContainerId); oDatabaseManager = new DatabaseManager(this); oNfcCardListener = new NfcCardListener(this); @@ -145,9 +147,13 @@ public class CampusAppContext { private void onNfcCardDataReceived(NfcCardData data) { Bundle bundle = new Bundle(); - bundle.putDouble("balance", data.getBalance() / 100.0); + double cardBalance = data.getBalance() / 100.0; + bundle.putDouble("balance", cardBalance); bundle.putDouble("transaction", data.getLastTransaction() / 100.0); + oContextVariables.putInt("nfcCardUniqueId", data.getUniqueId()); + oContextVariables.putDouble("nfcCardBalance", cardBalance); + String pagename = oNavigationManager.getCurrentPageName(); if(pagename != null && pagename.equalsIgnoreCase("MensaCard")) { MensaCard fragment = (MensaCard) oNavigationManager.getCurrentFragment(); @@ -156,4 +162,8 @@ public class CampusAppContext { oNavigationManager.navigatePage("MensaCard", bundle); } + public Bundle getContextVariables() { + return oContextVariables; + } + } diff --git a/app/src/main/java/de/dhbwloe/campusapp/NavigationManager.java b/app/src/main/java/de/dhbwloe/campusapp/NavigationManager.java index 07732f2..1330940 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/NavigationManager.java +++ b/app/src/main/java/de/dhbwloe/campusapp/NavigationManager.java @@ -167,6 +167,7 @@ public class NavigationManager { public boolean closeDialog() { if(oCurrentPage != null && oCurrentPage.fragmentType == 3) { PopupFragment fragment = (PopupFragment) oCurrentFragment; + boolean wasAdded = false; if(oCurrentFragment.isAdded()) { fragment.destroyView(); @@ -175,13 +176,13 @@ public class NavigationManager { transaction.remove(oCurrentFragment); transaction.commit(); + wasAdded = true; } oCurrentPage = oParentPage; oCurrentFragment = oParentFragment; - - return true; + return wasAdded; } return false; } diff --git a/app/src/main/java/de/dhbwloe/campusapp/database/DatabaseManager.java b/app/src/main/java/de/dhbwloe/campusapp/database/DatabaseManager.java index 9787540..326b914 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/database/DatabaseManager.java +++ b/app/src/main/java/de/dhbwloe/campusapp/database/DatabaseManager.java @@ -328,6 +328,20 @@ public class DatabaseManager { return resultsArr; } + public NfcCardData getLatestNfcCardData(int cardId) { + String value = null; + String[] whereArgs = { + Integer.toString(cardId) + }; + Cursor resultSet = database.rawQuery("SELECT CardId,UpdateTime,CardBalance,CardLastTransaction FROM NfcCardStore WHERE CardId = ? ORDER BY UpdateTime DESC LIMIT 1", whereArgs); + NfcCardData nfcCardData = null; + if(resultSet.moveToFirst()) { + nfcCardData = new NfcCardData(resultSet.getInt(0), resultSet.getLong(1), resultSet.getInt(2), resultSet.getInt(3)); + } + resultSet.close(); + return nfcCardData; + } + public void updateCourseCalendar(CourseEvent event) { if(vorlesungsplanDBHelper == null) vorlesungsplanDBHelper = new VorlesungsplanDatabaseHelper(AppContext, database); diff --git a/app/src/main/java/de/dhbwloe/campusapp/fragments/SplashScreen.java b/app/src/main/java/de/dhbwloe/campusapp/fragments/SplashScreen.java index eb543d5..83d773f 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/fragments/SplashScreen.java +++ b/app/src/main/java/de/dhbwloe/campusapp/fragments/SplashScreen.java @@ -3,9 +3,7 @@ package de.dhbwloe.campusapp.fragments; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -import android.graphics.Matrix; import android.graphics.Point; -import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.Fragment; @@ -13,10 +11,8 @@ import android.view.Display; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.ViewTreeObserver; import android.widget.ImageView; import android.widget.ProgressBar; -import android.widget.TextView; import java.util.Date; @@ -27,8 +23,11 @@ import de.dhbwloe.campusapp.mensaplan.MensaplanManager; import de.dhbwloe.campusapp.mensaplan.MensaplanManagerInterface; import de.dhbwloe.campusapp.news.NewsManager; import de.dhbwloe.campusapp.news.NewsManagerInterface; -import de.dhbwloe.campusapp.vorlesungen.VorlesungsplanManager; -import de.dhbwloe.campusapp.vorlesungen.VorlesungsplanManagerInterface; +import de.dhbwloe.campusapp.search.SearchIndices; +import de.dhbwloe.campusapp.vorlesungen.CalendarManager; +import de.dhbwloe.campusapp.vorlesungen.CalendarManagerInterface; +import de.dhbwloe.campusapp.vorlesungen.CourseEvent; +import de.dhbwloe.campusapp.vorlesungen.CourseGroup; /** * A simple {@link Fragment} subclass. @@ -114,12 +113,15 @@ public class SplashScreen extends CampusAppFragment { else lastVLMPartialSync = 0; - VorlesungsplanManager vpm = new VorlesungsplanManager(AppContext, "tif13a"); + String kursTag = AppContext.getDatabaseManager().getRuntimeCache("CourseName"); + if(kursTag == null || kursTag.isEmpty()) + break; + CalendarManager vpm = new CalendarManager(AppContext, kursTag); if(lastVLMFullSync == 0 || now - lastVLMFullSync > (86400 * 14)) { // full sync every 14 days - vpm.performFullSynchronisation(new VorlesungsplanManagerInterface() { + vpm.performFullSynchronisation(new CalendarManagerInterface() { @Override - public void onVorlesungsplanUpdateDone() { + public void onCalendarUpdateDone() { long now = (new Date()).getTime() / 1000; AppContext.getDatabaseManager().setRuntimeCache("LastVLMFullSync", Long.toString(now)); AppContext.getDatabaseManager().setRuntimeCache("LastVLMPartialSync", Long.toString(now)); @@ -127,23 +129,47 @@ public class SplashScreen extends CampusAppFragment { } @Override - public void onVorlesungsplanUpdateFail(String errorMessage) { + public void onCalendarUpdateFail(String errorMessage) { timerHandler.postDelayed(timerRunnable, 100); } + @Override + public SearchIndices onGenerateCalendarSearchIndices(CourseEvent event) { + CourseGroup group = event.getCourseGroup(); + SearchIndices indices = new SearchIndices("Vorlesungsplan#Group"+group.getGroupId(), false); + indices.setUpdateTime(event.getEventFrom()); + indices.setTarget("#Vorlesungsplan#groupid=" + group.getGroupId()); + indices.setTitle("Vorlesungsplan " + event.getCourseName()); + indices.setDescription("Vorlesung " + event.getEventTitle()); + indices.addKeyWord(event.getGroupTitle()); + indices.addKeyWord(event.getEventLocation()); + return null; + } }); } else if(lastVLMPartialSync == 0 || now - lastVLMPartialSync > (86400)) { // partial sync every day - vpm.performFastSynchronisation(new VorlesungsplanManagerInterface() { + vpm.performFastSynchronisation(new CalendarManagerInterface() { @Override - public void onVorlesungsplanUpdateDone() { + public void onCalendarUpdateDone() { long now = (new Date()).getTime()/1000; AppContext.getDatabaseManager().setRuntimeCache("LastVLMPartialSync", Long.toString(now)); timerHandler.postDelayed(timerRunnable, 100); } @Override - public void onVorlesungsplanUpdateFail(String errorMessage) { + public void onCalendarUpdateFail(String errorMessage) { timerHandler.postDelayed(timerRunnable, 100); } + @Override + public SearchIndices onGenerateCalendarSearchIndices(CourseEvent event) { + CourseGroup group = event.getCourseGroup(); + SearchIndices indices = new SearchIndices("Vorlesungsplan#Group"+group.getGroupId(), false); + indices.setUpdateTime(event.getEventFrom()); + indices.setTarget("#Vorlesungsplan#groupid=" + group.getGroupId()); + indices.setTitle("Vorlesungsplan " + event.getCourseName()); + indices.setDescription("Vorlesung " + event.getEventTitle()); + indices.addKeyWord(event.getGroupTitle()); + indices.addKeyWord(event.getEventLocation()); + return null; + } }); } else @@ -215,21 +241,36 @@ public class SplashScreen extends CampusAppFragment { else lastStuvSync = 0; - VorlesungsplanManager stuvsyncmgr = new VorlesungsplanManager(AppContext, "STUV"); + final String calendarName = "STUV"; + CalendarManager stuvsyncmgr = new CalendarManager(AppContext, calendarName); if(lastStuvSync == 0 || now - lastStuvSync > (86400 * 3)) { // full sync every 3 days - stuvsyncmgr.performFullSynchronisation(new VorlesungsplanManagerInterface() { + stuvsyncmgr.performFullSynchronisation(new CalendarManagerInterface() { @Override - public void onVorlesungsplanUpdateDone() { + public void onCalendarUpdateDone() { long now = (new Date()).getTime() / 1000; AppContext.getDatabaseManager().setRuntimeCache("LastStuvSync", Long.toString(now)); timerHandler.postDelayed(timerRunnable, 100); } @Override - public void onVorlesungsplanUpdateFail(String errorMessage) { + public void onCalendarUpdateFail(String errorMessage) { timerHandler.postDelayed(timerRunnable, 100); } + + @Override + public SearchIndices onGenerateCalendarSearchIndices(CourseEvent event) { + CourseGroup group = event.getCourseGroup(); + SearchIndices indices = new SearchIndices("Vorlesungsplan#Group"+group.getGroupId(), false); + indices.setUpdateTime(event.getEventFrom()); + indices.setTarget("#News#showevent=" + group.getGroupId() + "&course=" + calendarName); + indices.setTitle(calendarName+" Event: " + event.getCourseName()); + indices.setDescription(event.getEventTitle()); + indices.addKeyWord(event.getGroupTitle()); + indices.addKeyWord(event.getEventLocation()); + + return null; + } }); } else @@ -246,9 +287,14 @@ public class SplashScreen extends CampusAppFragment { timerHandler.postDelayed(timerRunnable, 100); } }; - timerHandler.postDelayed(timerRunnable, 500); return view; } + @Override + public void onResume() { + super.onResume(); + timerHandler.postDelayed(timerRunnable, 500); + } + } diff --git a/app/src/main/java/de/dhbwloe/campusapp/mensaplan/MensaTagesplan.java b/app/src/main/java/de/dhbwloe/campusapp/mensaplan/MensaTagesplan.java index 79c33e4..6afb306 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/mensaplan/MensaTagesplan.java +++ b/app/src/main/java/de/dhbwloe/campusapp/mensaplan/MensaTagesplan.java @@ -35,8 +35,10 @@ public class MensaTagesplan { public long calculateChkSum() { CRC32 crc = new CRC32(); crc.update(sMenuName.getBytes()); - crc.update(sName.getBytes()); - crc.update(sNameHtml.getBytes()); + if(sName != null) + crc.update(sName.getBytes()); + if(sNameHtml != null) + crc.update(sNameHtml.getBytes()); if(sAdditional!= null) crc.update(sAdditional.getBytes()); if(sNotes!= null) diff --git a/app/src/main/java/de/dhbwloe/campusapp/mensaplan/MensaplanManager.java b/app/src/main/java/de/dhbwloe/campusapp/mensaplan/MensaplanManager.java index 932673d..251c36c 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/mensaplan/MensaplanManager.java +++ b/app/src/main/java/de/dhbwloe/campusapp/mensaplan/MensaplanManager.java @@ -12,12 +12,13 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import de.dhbwloe.campusapp.CampusAppContext; import de.dhbwloe.campusapp.network.XmlEntry; import de.dhbwloe.campusapp.network.XmlRequestHelper; import de.dhbwloe.campusapp.search.SearchIndices; -import de.dhbwloe.campusapp.vorlesungen.VorlesungsplanManagerInterface; /** * Created by pk910 on 22.01.2016. @@ -55,16 +56,21 @@ public class MensaplanManager extends XmlRequestHelper { } private int getPriceFromString(String pricestr) { - // 2,90€ + // 2,90€( pro 100g)? if(pricestr == null) return 0; - NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN); - try { - Number result = nf.parse(pricestr.replace("€", "")); - return (int)(result.doubleValue()*100); - } catch (ParseException e) { + Pattern r = Pattern.compile("^([0-9,]+)€( pro [0-9]+[a-z]+)$"); + Matcher m = r.matcher(pricestr); + if (m.find()) { + NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN); + try { + Number result = nf.parse(m.group(1)); + return (int)(result.doubleValue()*100); + } catch (ParseException e) { + return 0; + } + } else return 0; - } } @Override diff --git a/app/src/main/java/de/dhbwloe/campusapp/network/XmlRequestHelper.java b/app/src/main/java/de/dhbwloe/campusapp/network/XmlRequestHelper.java index 814650d..f9c59fb 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/network/XmlRequestHelper.java +++ b/app/src/main/java/de/dhbwloe/campusapp/network/XmlRequestHelper.java @@ -93,6 +93,7 @@ public abstract class XmlRequestHelper { parser.require(XmlPullParser.START_TAG, ns, rootElementName); while (parser.next() != XmlPullParser.END_TAG) { + if (parser.getEventType() != XmlPullParser.START_TAG) { continue; } diff --git a/app/src/main/java/de/dhbwloe/campusapp/nfcreader/NfcCardListener.java b/app/src/main/java/de/dhbwloe/campusapp/nfcreader/NfcCardListener.java index 837b148..d20e7d7 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/nfcreader/NfcCardListener.java +++ b/app/src/main/java/de/dhbwloe/campusapp/nfcreader/NfcCardListener.java @@ -65,8 +65,9 @@ public class NfcCardListener { } private void updateNfcState() { - if(bNfcAdapterState != oAdapter.isEnabled()) { - bNfcAdapterState = oAdapter.isEnabled(); + boolean isEnabled = oAdapter.isEnabled(); + if(bNfcAdapterState != isEnabled) { + bNfcAdapterState = isEnabled; for(NfcCardInterface nfcCardInterface : lNfcCardInterfaces) { nfcCardInterface.onNfcReaderStateChanged(bNfcAdapterState); } diff --git a/app/src/main/java/de/dhbwloe/campusapp/vorlesungen/VorlesungsplanManager.java b/app/src/main/java/de/dhbwloe/campusapp/vorlesungen/CalendarManager.java similarity index 76% rename from app/src/main/java/de/dhbwloe/campusapp/vorlesungen/VorlesungsplanManager.java rename to app/src/main/java/de/dhbwloe/campusapp/vorlesungen/CalendarManager.java index 5c68a4f..fae9148 100644 --- a/app/src/main/java/de/dhbwloe/campusapp/vorlesungen/VorlesungsplanManager.java +++ b/app/src/main/java/de/dhbwloe/campusapp/vorlesungen/CalendarManager.java @@ -22,7 +22,7 @@ import de.dhbwloe.campusapp.search.SearchIndices; /** * Created by pk910 on 19.01.2016. */ -public class VorlesungsplanManager extends IscRequestHelper { +public class CalendarManager extends IscRequestHelper { private static final String[][] PLAN_SOURCES = { {"STUV", "https://www.google.com/calendar/ical/asta.dhbw.de_c0g35t6hrh16kr4ankrqg2rdm4%40group.calendar.google.com/public/basic.ics"}, }; @@ -32,9 +32,9 @@ public class VorlesungsplanManager extends IscRequestHelper { private boolean bFastSynchronisation = false; private String sCourseName; private String source[]; - private ArrayList aCallbackInterfaces = new ArrayList(); + private ArrayList aCallbackInterfaces = new ArrayList(); - public VorlesungsplanManager(CampusAppContext context, String courseName) { + public CalendarManager(CampusAppContext context, String courseName) { AppContext = context; sCourseName = courseName; @@ -46,17 +46,17 @@ public class VorlesungsplanManager extends IscRequestHelper { } } - public void performFastSynchronisation(VorlesungsplanManagerInterface callback) { + public void performFastSynchronisation(CalendarManagerInterface callback) { performSynchronisation(callback, false); } - public void performFullSynchronisation(VorlesungsplanManagerInterface callback) { + public void performFullSynchronisation(CalendarManagerInterface callback) { performSynchronisation(callback, true); } - private void performSynchronisation(VorlesungsplanManagerInterface callback, boolean fullsync) { + private void performSynchronisation(CalendarManagerInterface callback, boolean fullsync) { if(sCourseName.length() == 0) { - callback.onVorlesungsplanUpdateFail("no course name"); + callback.onCalendarUpdateFail("no course name"); return; } @@ -87,7 +87,7 @@ public class VorlesungsplanManager extends IscRequestHelper { timeTo = now + (86400 * 365 * 4); } CourseEvent[] events = AppContext.getDatabaseManager().getCourseCalendarEvents(sCourseName, timeFrom, timeTo); - Log.i("VPMSync", "Event count: " + events.length); + Log.i("CMSync", "Event count: " + events.length); ArrayList newEvents = new ArrayList(); ArrayList newIndices = new ArrayList(); int lastEventIndex = 0; @@ -117,16 +117,16 @@ public class VorlesungsplanManager extends IscRequestHelper { if(prop != null) startTime = getTimeFromTimestamp(prop.getValue()); else - Log.i("VPMSync", "Parse Event: DTSTART not found!"); + Log.i("CMSync", "Parse Event: DTSTART not found!"); prop = event.getProperty("DTEND"); if(prop != null) endTime = getTimeFromTimestamp(prop.getValue()); else - Log.i("VPMSync", "Parse Event: DTEND not found!"); + Log.i("CMSync", "Parse Event: DTEND not found!"); if(!(endTime > timeFrom && startTime < timeTo)) { - Log.i("VPMSync", "Skip Entry: ("+timeFrom+" - "+timeTo+") Filter: "+startTime+" - "+endTime); + Log.i("CMSync", "Skip Entry: ("+timeFrom+" - "+timeTo+") Filter: "+startTime+" - "+endTime); continue; } @@ -156,11 +156,11 @@ public class VorlesungsplanManager extends IscRequestHelper { if(dbEvent == null) { // new event! - Log.i("VLPSync", "New Event "+uid); + Log.i("CMSync", "New Event "+uid); dbEvent = new CourseEvent(sCourseName, uid, sequence, true); newEvents.add(dbEvent); } else { - Log.i("VLPSync", "Existing Event "+uid+" ("+dbEvent.getSequenceId()+" >= "+sequence+")"); + Log.i("CMSync", "Existing Event "+uid+" ("+dbEvent.getSequenceId()+" >= "+sequence+")"); if(dbEvent.getSequenceId() >= sequence) { continue; // skip event } @@ -171,7 +171,7 @@ public class VorlesungsplanManager extends IscRequestHelper { if(prop != null) dbEvent.setEventTitle(prop.getValue()); else - Log.i("VPMSync", "Parse Event: SUMMARY not found!"); + Log.i("CMSync", "Parse Event: SUMMARY not found!"); dbEvent.setEventFrom(startTime); dbEvent.setEventTo(endTime); @@ -180,13 +180,13 @@ public class VorlesungsplanManager extends IscRequestHelper { if(prop != null) dbEvent.setEventLocation(prop.getValue()); else - Log.i("VPMSync", "Parse Event: LOCATION not found!"); + Log.i("CMSync", "Parse Event: LOCATION not found!"); prop = event.getProperty("STATUS"); if(prop != null) dbEvent.setEventStatus(prop.getValue()); else - Log.i("VPMSync", "Parse Event: STATUS not found!"); + Log.i("CMSync", "Parse Event: STATUS not found!"); prop = event.getProperty("RRULE"); if(prop != null) @@ -205,26 +205,24 @@ public class VorlesungsplanManager extends IscRequestHelper { dbEvent.setCourseGroup(group); if(group.isNewGroup(true)) { - SearchIndices indices = new SearchIndices("Vorlesungsplan#Group"+group.getGroupId(), false); - indices.setUpdateTime(dbEvent.getEventFrom()); - indices.setTarget("#Vorlesungsplan#groupid=" + group.getGroupId()); - indices.setTitle("Vorlesungsplan " + dbEvent.getCourseName()); - indices.setDescription("Vorlesung " + dbEvent.getEventTitle()); - indices.addKeyWord(dbEvent.getGroupTitle()); - indices.addKeyWord(dbEvent.getEventLocation()); - newIndices.add(indices); + for(CalendarManagerInterface callback : aCallbackInterfaces) { + SearchIndices indices = callback.onGenerateCalendarSearchIndices(dbEvent); + if(indices != null) { + newIndices.add(indices); + } + } } dbEvent.update(AppContext.getDatabaseManager()); - Log.i("VPMSync", "Update Event: "+dbEvent.getUniqueId()); + Log.i("CMSync", "Update Event: "+dbEvent.getUniqueId()); } SearchIndices[] newIndicesArr = new SearchIndices[newIndices.size()]; newIndicesArr = newIndices.toArray(newIndicesArr); AppContext.addSearchIndices(newIndicesArr); - for(VorlesungsplanManagerInterface callback : aCallbackInterfaces) { - callback.onVorlesungsplanUpdateDone(); + for(CalendarManagerInterface callback : aCallbackInterfaces) { + callback.onCalendarUpdateDone(); } aCallbackInterfaces.clear(); bRequestRunning = false; @@ -243,7 +241,7 @@ public class VorlesungsplanManager extends IscRequestHelper { Date result = df.parse(timestamp); return result.getTime()/1000; } catch (ParseException e2) { - Log.i("VPMSync", "Failed parsing: "+timestamp); + Log.i("CMSync", "Failed parsing: "+timestamp); return 0; } } @@ -251,9 +249,9 @@ public class VorlesungsplanManager extends IscRequestHelper { @Override protected void onCalendarRequestFail(int statusCode, String errorMessage) { - Log.i("VPM", "Calendar Error: "+statusCode); - for(VorlesungsplanManagerInterface callback : aCallbackInterfaces) { - callback.onVorlesungsplanUpdateFail("error "+statusCode+": "+errorMessage); + Log.i("CMSync", "Calendar Error: "+statusCode); + for(CalendarManagerInterface callback : aCallbackInterfaces) { + callback.onCalendarUpdateFail("error " + statusCode + ": " + errorMessage); } aCallbackInterfaces.clear(); bRequestRunning = false; diff --git a/app/src/main/java/de/dhbwloe/campusapp/vorlesungen/CalendarManagerInterface.java b/app/src/main/java/de/dhbwloe/campusapp/vorlesungen/CalendarManagerInterface.java new file mode 100644 index 0000000..bc136e8 --- /dev/null +++ b/app/src/main/java/de/dhbwloe/campusapp/vorlesungen/CalendarManagerInterface.java @@ -0,0 +1,15 @@ +package de.dhbwloe.campusapp.vorlesungen; + +import de.dhbwloe.campusapp.search.SearchIndices; + +/** + * Created by pk910 on 20.01.2016. + */ +public interface CalendarManagerInterface { + + public void onCalendarUpdateDone(); + public void onCalendarUpdateFail(String errorMessage); + + public SearchIndices onGenerateCalendarSearchIndices(CourseEvent event); + +} diff --git a/app/src/main/java/de/dhbwloe/campusapp/vorlesungen/VorlesungsplanManagerInterface.java b/app/src/main/java/de/dhbwloe/campusapp/vorlesungen/VorlesungsplanManagerInterface.java deleted file mode 100644 index 5635bb8..0000000 --- a/app/src/main/java/de/dhbwloe/campusapp/vorlesungen/VorlesungsplanManagerInterface.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.dhbwloe.campusapp.vorlesungen; - -/** - * Created by pk910 on 20.01.2016. - */ -public interface VorlesungsplanManagerInterface { - - public void onVorlesungsplanUpdateDone(); - public void onVorlesungsplanUpdateFail(String errorMessage); - -} -- 2.20.1