mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-02-25 16:07:47 +01:00
run getEvents on a background thread
This commit is contained in:
parent
8d10c1b164
commit
e154156628
@ -30,7 +30,7 @@ public class CalendarImpl implements DBHelper.DBOperationsListener {
|
|||||||
mTargetDate = targetDate;
|
mTargetDate = targetDate;
|
||||||
final int startTS = Formatter.getDayStartTS(Formatter.getDayCodeFromDateTime(mTargetDate.minusMonths(1)));
|
final int startTS = Formatter.getDayStartTS(Formatter.getDayCodeFromDateTime(mTargetDate.minusMonths(1)));
|
||||||
final int endTS = Formatter.getDayEndTS(Formatter.getDayCodeFromDateTime(mTargetDate.plusMonths(1)));
|
final int endTS = Formatter.getDayEndTS(Formatter.getDayCodeFromDateTime(mTargetDate.plusMonths(1)));
|
||||||
DBHelper.Companion.newInstance(mContext, this).getEvents(startTS, endTS);
|
new DBHelper(mContext, this).getEvents(startTS, endTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getPrevMonth() {
|
public void getPrevMonth() {
|
||||||
|
@ -226,7 +226,7 @@ public class EventActivity extends SimpleActivity implements DBHelper.DBOperatio
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final DBHelper dbHelper = DBHelper.Companion.newInstance(getApplicationContext(), this);
|
final DBHelper dbHelper = new DBHelper(getApplicationContext(), this);
|
||||||
final String description = mDescriptionET.getText().toString().trim();
|
final String description = mDescriptionET.getText().toString().trim();
|
||||||
mEvent.setStartTS(startTS);
|
mEvent.setStartTS(startTS);
|
||||||
mEvent.setEndTS(mEndCheckbox.isChecked() ? endTS : startTS);
|
mEvent.setEndTS(mEndCheckbox.isChecked() ? endTS : startTS);
|
||||||
|
@ -226,10 +226,15 @@ public class WidgetConfigureActivity extends AppCompatActivity implements Calend
|
|||||||
};
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateCalendar(String month, List<Day> days) {
|
public void updateCalendar(final String month, final List<Day> days) {
|
||||||
this.mDays = days;
|
runOnUiThread(new Runnable() {
|
||||||
updateMonth(month);
|
@Override
|
||||||
updateDays();
|
public void run() {
|
||||||
|
mDays = days;
|
||||||
|
updateMonth(month);
|
||||||
|
updateDays();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateMonth(String month) {
|
private void updateMonth(String month) {
|
||||||
|
@ -14,7 +14,7 @@ public class BootCompletedReceiver extends BroadcastReceiver {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent arg1) {
|
public void onReceive(Context context, Intent arg1) {
|
||||||
final List<Event> events = DBHelper.Companion.newInstance(context, null).getEventsAtReboot();
|
final List<Event> events = new DBHelper(context, null).getEventsAtReboot();
|
||||||
for (Event event : events) {
|
for (Event event : events) {
|
||||||
Utils.scheduleNextEvent(context, event);
|
Utils.scheduleNextEvent(context, event);
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ public class NotificationReceiver extends BroadcastReceiver {
|
|||||||
if (id == -1)
|
if (id == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
final Event event = DBHelper.Companion.newInstance(context, null).getEvent(id);
|
final Event event = new DBHelper(context, null).getEvent(id);
|
||||||
if (event == null || event.getReminderMinutes() == -1)
|
if (event == null || event.getReminderMinutes() == -1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ import com.simplemobiletools.calendar.models.Event
|
|||||||
import org.joda.time.DateTime
|
import org.joda.time.DateTime
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class DBHelper(context: Context) : SQLiteOpenHelper(context, DBHelper.DB_NAME, null, DBHelper.DB_VERSION) {
|
class DBHelper(context: Context, callback: DBOperationsListener?) : SQLiteOpenHelper(context, DBHelper.DB_NAME, null, DBHelper.DB_VERSION) {
|
||||||
private val MAIN_TABLE_NAME = "events"
|
private val MAIN_TABLE_NAME = "events"
|
||||||
private val COL_ID = "id"
|
private val COL_ID = "id"
|
||||||
private val COL_START_TS = "start_ts"
|
private val COL_START_TS = "start_ts"
|
||||||
@ -29,21 +29,18 @@ class DBHelper(context: Context) : SQLiteOpenHelper(context, DBHelper.DB_NAME, n
|
|||||||
private val COL_REPEAT_MONTH = "repeat_month"
|
private val COL_REPEAT_MONTH = "repeat_month"
|
||||||
private val COL_REPEAT_DAY = "repeat_day"
|
private val COL_REPEAT_DAY = "repeat_day"
|
||||||
|
|
||||||
|
private var mCallback: DBOperationsListener? = null
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val DB_NAME = "events.db"
|
private val DB_NAME = "events.db"
|
||||||
private val DB_VERSION = 3
|
private val DB_VERSION = 3
|
||||||
|
|
||||||
private var mCallback: DBOperationsListener? = null
|
|
||||||
lateinit private var mDb: SQLiteDatabase
|
lateinit private var mDb: SQLiteDatabase
|
||||||
|
|
||||||
fun newInstance(context: Context, callback: DBOperationsListener): DBHelper {
|
|
||||||
mCallback = callback
|
|
||||||
return DBHelper(context)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
mDb = writableDatabase
|
mDb = writableDatabase
|
||||||
|
mCallback = callback
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreate(db: SQLiteDatabase) {
|
override fun onCreate(db: SQLiteDatabase) {
|
||||||
@ -149,19 +146,21 @@ class DBHelper(context: Context) : SQLiteOpenHelper(context, DBHelper.DB_NAME, n
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getEvents(fromTS: Int, toTS: Int) {
|
fun getEvents(fromTS: Int, toTS: Int) {
|
||||||
val events = ArrayList<Event>()
|
Thread({
|
||||||
var ts = fromTS
|
val events = ArrayList<Event>()
|
||||||
while (ts <= toTS) {
|
var ts = fromTS
|
||||||
events.addAll(getEventsFor(ts))
|
while (ts <= toTS) {
|
||||||
ts += Constants.DAY
|
events.addAll(getEventsFor(ts))
|
||||||
}
|
ts += Constants.DAY
|
||||||
|
}
|
||||||
|
|
||||||
val selection = "$COL_START_TS <= ? AND $COL_END_TS >= ? AND $COL_REPEAT_INTERVAL IS NULL"
|
val selection = "$COL_START_TS <= ? AND $COL_END_TS >= ? AND $COL_REPEAT_INTERVAL IS NULL"
|
||||||
val selectionArgs = arrayOf(toTS.toString(), fromTS.toString())
|
val selectionArgs = arrayOf(toTS.toString(), fromTS.toString())
|
||||||
val cursor = getEventsCursor(selection, selectionArgs)
|
val cursor = getEventsCursor(selection, selectionArgs)
|
||||||
events.addAll(fillEvents(cursor))
|
events.addAll(fillEvents(cursor))
|
||||||
|
|
||||||
mCallback?.gotEvents(events)
|
mCallback?.gotEvents(events)
|
||||||
|
}).start()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getEventsFor(ts: Int): List<Event> {
|
private fun getEventsFor(ts: Int): List<Event> {
|
||||||
|
@ -118,7 +118,7 @@ class DayFragment : Fragment(), DBHelper.DBOperationsListener, AdapterView.OnIte
|
|||||||
private fun checkEvents() {
|
private fun checkEvents() {
|
||||||
val startTS = Formatter.getDayStartTS(mDayCode)
|
val startTS = Formatter.getDayStartTS(mDayCode)
|
||||||
val endTS = Formatter.getDayEndTS(mDayCode)
|
val endTS = Formatter.getDayEndTS(mDayCode)
|
||||||
DBHelper.newInstance(activity.applicationContext, this).getEvents(startTS, endTS)
|
DBHelper(context, this).getEvents(startTS, endTS)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateEvents(events: MutableList<Event>) {
|
private fun updateEvents(events: MutableList<Event>) {
|
||||||
@ -172,7 +172,7 @@ class DayFragment : Fragment(), DBHelper.DBOperationsListener, AdapterView.OnIte
|
|||||||
|
|
||||||
fun deleteEvents() {
|
fun deleteEvents() {
|
||||||
val eventIDs = Array(mToBeDeleted.size, { i -> (mToBeDeleted[i].toString()) })
|
val eventIDs = Array(mToBeDeleted.size, { i -> (mToBeDeleted[i].toString()) })
|
||||||
DBHelper.newInstance(activity.applicationContext, this).deleteEvents(eventIDs)
|
DBHelper(activity.applicationContext, this).deleteEvents(eventIDs)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun undoDeletion() {
|
fun undoDeletion() {
|
||||||
@ -231,7 +231,9 @@ class DayFragment : Fragment(), DBHelper.DBOperationsListener, AdapterView.OnIte
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun gotEvents(events: MutableList<Event>) {
|
override fun gotEvents(events: MutableList<Event>) {
|
||||||
updateEvents(events)
|
activity?.runOnUiThread {
|
||||||
|
updateEvents(events)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface DeleteListener : NavigationListener {
|
interface DeleteListener : NavigationListener {
|
||||||
|
@ -70,8 +70,10 @@ class MonthFragment : Fragment(), Calendar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun updateCalendar(month: String, days: List<Day>) {
|
override fun updateCalendar(month: String, days: List<Day>) {
|
||||||
mHolder.month_value.text = month
|
activity?.runOnUiThread {
|
||||||
updateDays(days)
|
mHolder.month_value.text = month
|
||||||
|
updateDays(days)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setListener(listener: NavigationListener) {
|
fun setListener(listener: NavigationListener) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user