diff --git a/app/src/main/java/com/etesync/syncadapter/AccountSettings.kt b/app/src/main/java/com/etesync/syncadapter/AccountSettings.kt index 1daf1bf5..786f4251 100644 --- a/app/src/main/java/com/etesync/syncadapter/AccountSettings.kt +++ b/app/src/main/java/com/etesync/syncadapter/AccountSettings.kt @@ -228,7 +228,7 @@ constructor(internal val context: Context, internal val account: Account) { if (!accountManager.addAccountExplicitly(addressBookAccount, null, null)) throw ContactsStorageException("Couldn't create address book account") - LocalAddressBook.setUserData(accountManager, addressBookAccount, account, info.uid) + LocalAddressBook.setUserData(accountManager, addressBookAccount, account, info.uid!!) val newAddressBook = LocalAddressBook(context, addressBookAccount, provider) // move contacts to new address book diff --git a/app/src/main/java/com/etesync/syncadapter/model/CollectionInfo.java b/app/src/main/java/com/etesync/syncadapter/model/CollectionInfo.java deleted file mode 100644 index 060dccdf..00000000 --- a/app/src/main/java/com/etesync/syncadapter/model/CollectionInfo.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright © 2013 – 2016 Ricki Hirner (bitfire web engineering). - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the GNU Public License v3.0 - * which accompanies this distribution, and is available at - * http://www.gnu.org/licenses/gpl.html - */ - -package com.etesync.syncadapter.model; - -import android.content.ContentValues; - -import com.etesync.syncadapter.journalmanager.Constants; -import com.etesync.syncadapter.journalmanager.JournalManager; -import com.etesync.syncadapter.model.ServiceDB.Collections; -import com.google.gson.GsonBuilder; -import com.google.gson.annotations.Expose; - -import java.io.Serializable; - -import io.requery.Persistable; -import io.requery.sql.EntityDataStore; - -public class CollectionInfo implements Serializable { - @Deprecated - public long id; - - public int serviceID; - - public enum Type { - ADDRESS_BOOK, - CALENDAR - } - - // FIXME: Shouldn't be exposed, as it's already saved in the journal. We just expose it for when we save for db. - @Expose - public int version = -1; - - @Expose - public Type type; - - public String uid; - - @Expose - public String displayName, description; - @Expose - public Integer color; - - @Expose - public String timeZone; - - @Expose - public boolean selected; - - public CollectionInfo() { - version = Constants.CURRENT_VERSION; - } - - public static CollectionInfo defaultForServiceType(Type service) { - CollectionInfo info = new CollectionInfo(); - info.displayName = "Default"; - info.selected = true; - info.type = service; - - return info; - } - - public void updateFromJournal(JournalManager.Journal journal) { - uid = journal.getUid(); - version = journal.getVersion(); - } - - public boolean isOfTypeService(String service) { - return service.equals(type.toString()); - } - - public static CollectionInfo fromDB(ContentValues values) { - CollectionInfo info = new CollectionInfo(); - info.id = values.getAsLong(Collections.ID); - info.serviceID = values.getAsInteger(Collections.SERVICE_ID); - - info.uid = values.getAsString(Collections.URL); - info.displayName = values.getAsString(Collections.DISPLAY_NAME); - info.description = values.getAsString(Collections.DESCRIPTION); - - info.color = values.getAsInteger(Collections.COLOR); - - info.timeZone = values.getAsString(Collections.TIME_ZONE); - - info.selected = values.getAsInteger(Collections.SYNC) != 0; - return info; - } - - public ServiceEntity getServiceEntity(EntityDataStore<Persistable> data) { - return data.findByKey(ServiceEntity.class, serviceID); - } - - public static CollectionInfo fromJson(String json) { - return new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create().fromJson(json, CollectionInfo.class); - } - - public String toJson() { - return new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create().toJson(this, CollectionInfo.class); - } - - private static Boolean getAsBooleanOrNull(ContentValues values, String field) { - Integer i = values.getAsInteger(field); - return (i == null) ? null : (i != 0); - } - - @java.lang.Override - @java.lang.SuppressWarnings("all") - public java.lang.String toString() { - return "CollectionInfo(serviceID=" + this.serviceID + ", version=" + this.version + ", type=" + this.type + ", uid=" + this.uid + ", displayName=" + this.displayName + ", description=" + this.description + ", color=" + this.color + ", timeZone=" + this.timeZone + ", selected=" + this.selected + ")"; - } -} diff --git a/app/src/main/java/com/etesync/syncadapter/model/CollectionInfo.kt b/app/src/main/java/com/etesync/syncadapter/model/CollectionInfo.kt new file mode 100644 index 00000000..8b756152 --- /dev/null +++ b/app/src/main/java/com/etesync/syncadapter/model/CollectionInfo.kt @@ -0,0 +1,119 @@ +/* + * Copyright © 2013 – 2016 Ricki Hirner (bitfire web engineering). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Public License v3.0 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/gpl.html + */ + +package com.etesync.syncadapter.model + +import android.content.ContentValues + +import com.etesync.syncadapter.journalmanager.Constants +import com.etesync.syncadapter.journalmanager.JournalManager +import com.etesync.syncadapter.model.ServiceDB.Collections +import com.google.gson.GsonBuilder +import com.google.gson.annotations.Expose + +import java.io.Serializable + +import io.requery.Persistable +import io.requery.sql.EntityDataStore + +class CollectionInfo : Serializable { + @Deprecated("") + var id: Long = 0 + + var serviceID: Int = 0 + + // FIXME: Shouldn't be exposed, as it's already saved in the journal. We just expose it for when we save for db. + @Expose + var version = -1 + + @Expose + var type: Type? = null + + var uid: String? = null + + @Expose + var displayName: String? = null + @Expose + var description: String? = null + @Expose + var color: Int? = null + + @Expose + var timeZone: String? = null + + @Expose + var selected: Boolean = false + + enum class Type { + ADDRESS_BOOK, + CALENDAR + } + + init { + version = Constants.CURRENT_VERSION + } + + fun updateFromJournal(journal: JournalManager.Journal) { + uid = journal.uid!! + version = journal.version + } + + fun isOfTypeService(service: String): Boolean { + return service == type.toString() + } + + fun getServiceEntity(data: EntityDataStore<Persistable>): ServiceEntity { + return data.findByKey(ServiceEntity::class.java, serviceID) + } + + fun toJson(): String { + return GsonBuilder().excludeFieldsWithoutExposeAnnotation().create().toJson(this, CollectionInfo::class.java) + } + + override fun toString(): String { + return "CollectionInfo(serviceID=" + this.serviceID + ", version=" + this.version + ", type=" + this.type + ", uid=" + this.uid + ", displayName=" + this.displayName + ", description=" + this.description + ", color=" + this.color + ", timeZone=" + this.timeZone + ", selected=" + this.selected + ")" + } + + companion object { + + fun defaultForServiceType(service: Type): CollectionInfo { + val info = CollectionInfo() + info.displayName = "Default" + info.selected = true + info.type = service + + return info + } + + fun fromDB(values: ContentValues): CollectionInfo { + val info = CollectionInfo() + info.id = values.getAsLong(Collections.ID)!! + info.serviceID = values.getAsInteger(Collections.SERVICE_ID)!! + + info.uid = values.getAsString(Collections.URL) + info.displayName = values.getAsString(Collections.DISPLAY_NAME) + info.description = values.getAsString(Collections.DESCRIPTION) + + info.color = values.getAsInteger(Collections.COLOR) + + info.timeZone = values.getAsString(Collections.TIME_ZONE) + + info.selected = values.getAsInteger(Collections.SYNC) != 0 + return info + } + + fun fromJson(json: String): CollectionInfo { + return GsonBuilder().excludeFieldsWithoutExposeAnnotation().create().fromJson(json, CollectionInfo::class.java) + } + + private fun getAsBooleanOrNull(values: ContentValues, field: String): Boolean? { + val i = values.getAsInteger(field) + return if (i == null) null else i != 0 + } + } +} diff --git a/app/src/main/java/com/etesync/syncadapter/model/JournalModel.java b/app/src/main/java/com/etesync/syncadapter/model/JournalModel.java index 581c60f5..391b06a8 100644 --- a/app/src/main/java/com/etesync/syncadapter/model/JournalModel.java +++ b/app/src/main/java/com/etesync/syncadapter/model/JournalModel.java @@ -53,8 +53,8 @@ public class JournalModel { @PostLoad void afterLoad() { - this.info.serviceID = this.serviceModel.id; - this.info.uid = uid; + this.info.setServiceID(this.serviceModel.id); + this.info.setUid(uid); } public Journal() { @@ -64,7 +64,7 @@ public class JournalModel { public Journal(EntityDataStore<Persistable> data, CollectionInfo info) { this(); this.info = info; - this.uid = info.uid; + this.uid = info.getUid(); this.serviceModel = info.getServiceEntity(data); } @@ -87,7 +87,7 @@ public class JournalModel { } public static JournalEntity fetchOrCreate(EntityDataStore<Persistable> data, CollectionInfo collection) { - JournalEntity journalEntity = fetch(data, collection.getServiceEntity(data), collection.uid); + JournalEntity journalEntity = fetch(data, collection.getServiceEntity(data), collection.getUid()); if (journalEntity == null) { journalEntity = new JournalEntity(data, collection); } else { @@ -173,7 +173,7 @@ public class JournalModel { @Override public CollectionInfo convertToMapped(Class<? extends CollectionInfo> type, String value) { - return value == null ? null : CollectionInfo.fromJson(value); + return value == null ? null : CollectionInfo.Companion.fromJson(value); } } diff --git a/app/src/main/java/com/etesync/syncadapter/resource/LocalAddressBook.java b/app/src/main/java/com/etesync/syncadapter/resource/LocalAddressBook.java index 29f89e2f..7c4532a0 100644 --- a/app/src/main/java/com/etesync/syncadapter/resource/LocalAddressBook.java +++ b/app/src/main/java/com/etesync/syncadapter/resource/LocalAddressBook.java @@ -102,10 +102,10 @@ public class LocalAddressBook extends AndroidAddressBook implements LocalCollect if (!accountManager.addAccountExplicitly(account, null, null)) throw new ContactsStorageException("Couldn't create address book account"); - setUserData(accountManager, account, mainAccount, info.uid); + setUserData(accountManager, account, mainAccount, info.getUid()); LocalAddressBook addressBook = new LocalAddressBook(context, account, provider); addressBook.setMainAccount(mainAccount); - addressBook.setURL(info.uid); + addressBook.setURL(info.getUid()); ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true); @@ -403,12 +403,12 @@ public class LocalAddressBook extends AndroidAddressBook implements LocalCollect // HELPERS public static String accountName(@NonNull Account mainAccount, @NonNull CollectionInfo info) { - String displayName = (info.displayName != null) ? info.displayName : info.uid; + String displayName = (info.getDisplayName() != null) ? info.getDisplayName() : info.getUid(); StringBuilder sb = new StringBuilder(displayName); sb .append(" (") .append(mainAccount.name) .append(" ") - .append(info.uid.substring(0, 4)) + .append(info.getUid().substring(0, 4)) .append(")"); return sb.toString(); } diff --git a/app/src/main/java/com/etesync/syncadapter/resource/LocalCalendar.java b/app/src/main/java/com/etesync/syncadapter/resource/LocalCalendar.java index bbdf6302..d74429b5 100644 --- a/app/src/main/java/com/etesync/syncadapter/resource/LocalCalendar.java +++ b/app/src/main/java/com/etesync/syncadapter/resource/LocalCalendar.java @@ -95,11 +95,11 @@ public class LocalCalendar extends AndroidCalendar implements LocalCollection { private static ContentValues valuesFromCollectionInfo(JournalEntity journalEntity, boolean withColor) { CollectionInfo info = journalEntity.getInfo(); ContentValues values = new ContentValues(); - values.put(Calendars.NAME, info.uid); - values.put(Calendars.CALENDAR_DISPLAY_NAME, info.displayName); + values.put(Calendars.NAME, info.getUid()); + values.put(Calendars.CALENDAR_DISPLAY_NAME, info.getDisplayName()); if (withColor) - values.put(Calendars.CALENDAR_COLOR, info.color != null ? info.color : defaultColor); + values.put(Calendars.CALENDAR_COLOR, info.getColor() != null ? info.getColor() : defaultColor); if (journalEntity.isReadOnly()) values.put(Calendars.CALENDAR_ACCESS_LEVEL, Calendars.CAL_ACCESS_READ); @@ -109,8 +109,8 @@ public class LocalCalendar extends AndroidCalendar implements LocalCollection { values.put(Calendars.CAN_ORGANIZER_RESPOND, 1); } - if (!TextUtils.isEmpty(info.timeZone)) { - VTimeZone timeZone = DateUtils.parseVTimeZone(info.timeZone); + if (!TextUtils.isEmpty(info.getTimeZone())) { + VTimeZone timeZone = DateUtils.parseVTimeZone(info.getTimeZone()); if (timeZone != null && timeZone.getTimeZoneId() != null) values.put(Calendars.CALENDAR_TIME_ZONE, DateUtils.findAndroidTimezoneID(timeZone.getTimeZoneId().getValue())); } diff --git a/app/src/main/java/com/etesync/syncadapter/resource/LocalTaskList.java b/app/src/main/java/com/etesync/syncadapter/resource/LocalTaskList.java index 7581737a..5a328c8b 100644 --- a/app/src/main/java/com/etesync/syncadapter/resource/LocalTaskList.java +++ b/app/src/main/java/com/etesync/syncadapter/resource/LocalTaskList.java @@ -68,11 +68,11 @@ public class LocalTaskList extends AndroidTaskList implements LocalCollection { private static ContentValues valuesFromCollectionInfo(CollectionInfo info, boolean withColor) { ContentValues values = new ContentValues(); - values.put(TaskLists._SYNC_ID, info.uid); - values.put(TaskLists.LIST_NAME, info.displayName); + values.put(TaskLists._SYNC_ID, info.getUid()); + values.put(TaskLists.LIST_NAME, info.getDisplayName()); if (withColor) - values.put(TaskLists.LIST_COLOR, info.color != null ? info.color : defaultColor); + values.put(TaskLists.LIST_COLOR, info.getColor() != null ? info.getColor() : defaultColor); return values; } diff --git a/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncAdapterService.kt b/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncAdapterService.kt index 5311b5aa..0746d3a3 100644 --- a/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncAdapterService.kt +++ b/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncAdapterService.kt @@ -155,9 +155,10 @@ abstract class SyncAdapterService : Service() { if (journals.isEmpty()) { val info = CollectionInfo.defaultForServiceType(serviceType) - info.uid = JournalManager.Journal.genUid() - val crypto = Crypto.CryptoManager(info.version, settings.password(), info.uid) - val journal = JournalManager.Journal(crypto, info.toJson(), info.uid) + val uid = JournalManager.Journal.genUid() + info.uid = uid + val crypto = Crypto.CryptoManager(info.version, settings.password(), uid) + val journal = JournalManager.Journal(crypto, info.toJson(), uid) journalsManager.create(journal) journals.add(Pair(journal, info)) } diff --git a/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncManager.kt b/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncManager.kt index 760d1064..d515bc1b 100644 --- a/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncManager.kt +++ b/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncManager.kt @@ -117,7 +117,7 @@ constructor(protected val context: Context, protected val account: Account, prot if (journalEntity.encryptedKey != null) { crypto = Crypto.CryptoManager(info.version, settings.keyPair!!, journalEntity.encryptedKey) } else { - crypto = Crypto.CryptoManager(info.version, settings.password(), info.uid) + crypto = Crypto.CryptoManager(info.version, settings.password(), info.uid!!) } } @@ -191,7 +191,7 @@ constructor(protected val context: Context, protected val account: Account, prot notifyUserOnSync() - App.log.info("Finished sync with CTag=" + remoteCTag!!) + App.log.info("Finished sync with CTag=$remoteCTag") } catch (e: IOException) { App.log.log(Level.WARNING, "I/O exception during sync, trying again later", e) syncResult.stats.numIoExceptions++ diff --git a/app/src/main/java/com/etesync/syncadapter/ui/AccountActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/AccountActivity.kt index 1d234b6b..24788cb7 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/AccountActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/AccountActivity.kt @@ -335,11 +335,7 @@ class AccountActivity : BaseActivity(), Toolbar.OnMenuItemClickListener, PopupMe if (info.type == CollectionInfo.Type.ADDRESS_BOOK) { vColor.visibility = View.GONE } else { - if (info.color != null) { - vColor.setBackgroundColor(info.color) - } else { - vColor.setBackgroundColor(LocalCalendar.defaultColor) - } + vColor.setBackgroundColor(info.color ?: LocalCalendar.defaultColor) } val readOnly = v.findViewById<View>(R.id.read_only) diff --git a/app/src/main/java/com/etesync/syncadapter/ui/AddMemberFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/AddMemberFragment.kt index fb73f1fa..d10602bc 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/AddMemberFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/AddMemberFragment.kt @@ -101,8 +101,8 @@ class AddMemberFragment : DialogFragment() { val httpClient = HttpClient.create(ctx!!, settings!!) val journalsManager = JournalManager(httpClient, remote!!) - val journal = JournalManager.Journal.fakeWithUid(info!!.uid) - val crypto = Crypto.CryptoManager(info!!.version, settings!!.password(), info!!.uid) + val journal = JournalManager.Journal.fakeWithUid(info!!.uid!!) + val crypto = Crypto.CryptoManager(info!!.version, settings!!.password(), info!!.uid!!) val encryptedKey = crypto.getEncryptedKey(settings!!.keyPair!!, memberPubKey!!) val member = JournalManager.Member(memberEmail!!, encryptedKey!!) diff --git a/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersActivity.kt index a3200719..ed0c8b4b 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersActivity.kt @@ -37,11 +37,7 @@ class CollectionMembersActivity : BaseActivity(), Refreshable { val colorSquare = findViewById<View>(R.id.color) if (info.type == CollectionInfo.Type.CALENDAR) { - if (info.color != null) { - colorSquare.setBackgroundColor(info.color) - } else { - colorSquare.setBackgroundColor(LocalCalendar.defaultColor) - } + colorSquare.setBackgroundColor(info.color ?: LocalCalendar.defaultColor) } else { colorSquare.visibility = View.GONE } diff --git a/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionFragment.kt index e38d91e4..b5ad7386 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionFragment.kt @@ -102,14 +102,16 @@ class CreateCollectionFragment : DialogFragment(), LoaderManager.LoaderCallbacks val principal = HttpUrl.get(settings.uri!!) val journalManager = JournalManager(HttpClient.create(context, settings), principal!!) - if (info.uid == null) { - info.uid = JournalManager.Journal.genUid() - val crypto = Crypto.CryptoManager(info.version, settings.password(), info.uid) - val journal = JournalManager.Journal(crypto, info.toJson(), info.uid) + var uid = info.uid + if (uid == null) { + uid = JournalManager.Journal.genUid() + info.uid = uid + val crypto = Crypto.CryptoManager(info.version, settings.password(), uid) + val journal = JournalManager.Journal(crypto, info.toJson(), uid) journalManager.create(journal) } else { - val crypto = Crypto.CryptoManager(info.version, settings.password(), info.uid) - val journal = JournalManager.Journal(crypto, info.toJson(), info.uid) + val crypto = Crypto.CryptoManager(info.version, settings.password(), uid) + val journal = JournalManager.Journal(crypto, info.toJson(), uid) journalManager.update(journal) } diff --git a/app/src/main/java/com/etesync/syncadapter/ui/DeleteCollectionFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/DeleteCollectionFragment.kt index 423b9bb0..e6d5e237 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/DeleteCollectionFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/DeleteCollectionFragment.kt @@ -89,9 +89,9 @@ class DeleteCollectionFragment : DialogFragment(), LoaderManager.LoaderCallbacks val principal = HttpUrl.get(settings.uri!!) val journalManager = JournalManager(HttpClient.create(context, settings), principal!!) - val crypto = Crypto.CryptoManager(collectionInfo.version, settings.password(), collectionInfo.uid) + val crypto = Crypto.CryptoManager(collectionInfo.version, settings.password(), collectionInfo.uid!!) - journalManager.delete(JournalManager.Journal(crypto, collectionInfo.toJson(), collectionInfo.uid)) + journalManager.delete(JournalManager.Journal(crypto, collectionInfo.toJson(), collectionInfo.uid!!)) val journalEntity = JournalEntity.fetch(data, collectionInfo.getServiceEntity(data), collectionInfo.uid) journalEntity!!.isDeleted = true data.update(journalEntity) diff --git a/app/src/main/java/com/etesync/syncadapter/ui/EditCollectionActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/EditCollectionActivity.kt index a5f6f013..ec9c0534 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/EditCollectionActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/EditCollectionActivity.kt @@ -32,11 +32,7 @@ class EditCollectionActivity : CreateCollectionActivity() { if (info!!.type == CollectionInfo.Type.CALENDAR) { val colorSquare = findViewById<View>(R.id.color) - if (info!!.color != null) { - colorSquare.setBackgroundColor(info!!.color) - } else { - colorSquare.setBackgroundColor(LocalCalendar.defaultColor) - } + colorSquare.setBackgroundColor(info.color ?: LocalCalendar.defaultColor) } val edit = findViewById<View>(R.id.display_name) as EditText diff --git a/app/src/main/java/com/etesync/syncadapter/ui/RemoveMemberFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/RemoveMemberFragment.kt index 617774f1..09ed1940 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/RemoveMemberFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/RemoveMemberFragment.kt @@ -52,7 +52,7 @@ class RemoveMemberFragment : DialogFragment() { override fun doInBackground(vararg voids: Void): RemoveResult { try { val journalsManager = JournalManager(httpClient!!, remote!!) - val journal = JournalManager.Journal.fakeWithUid(info!!.uid) + val journal = JournalManager.Journal.fakeWithUid(info!!.uid!!) val member = JournalManager.Member(memberEmail!!, "placeholder".toByteArray(Charsets.UTF_8)) journalsManager.deleteMember(journal, member) diff --git a/app/src/main/java/com/etesync/syncadapter/ui/ViewCollectionActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/ViewCollectionActivity.kt index 24c5fa10..d26914a4 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/ViewCollectionActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/ViewCollectionActivity.kt @@ -59,11 +59,7 @@ class ViewCollectionActivity : BaseActivity(), Refreshable { val colorSquare = findViewById<View>(R.id.color) if (info.type == CollectionInfo.Type.CALENDAR) { - if (info.color != null) { - colorSquare.setBackgroundColor(info.color) - } else { - colorSquare.setBackgroundColor(LocalCalendar.defaultColor) - } + colorSquare.setBackgroundColor(info.color ?: LocalCalendar.defaultColor) } else { colorSquare.visibility = View.GONE } diff --git a/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.kt index d8c94c0e..ee778003 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.kt @@ -28,7 +28,7 @@ import io.requery.sql.EntityDataStore class ListEntriesFragment : ListFragment(), AdapterView.OnItemClickListener { - private var data: EntityDataStore<Persistable>? = null + private lateinit var data: EntityDataStore<Persistable> private lateinit var info: CollectionInfo private var journalEntity: JournalEntity? = null private var asyncTask: AsyncTask<*, *, *>? = null @@ -92,8 +92,8 @@ class ListEntriesFragment : ListFragment(), AdapterView.OnItemClickListener { private inner class JournalFetch : AsyncTask<Void, Void, List<EntryEntity>>() { override fun doInBackground(vararg voids: Void): List<EntryEntity> { - journalEntity = JournalModel.Journal.fetch(data!!, info!!.getServiceEntity(data), info!!.uid) - return data!!.select(EntryEntity::class.java).where(EntryEntity.JOURNAL.eq(journalEntity)).orderBy(EntryEntity.ID.desc()).get().toList() + journalEntity = JournalModel.Journal.fetch(data, info.getServiceEntity(data), info.uid) + return data.select(EntryEntity::class.java).where(EntryEntity.JOURNAL.eq(journalEntity)).orderBy(EntryEntity.ID.desc()).get().toList() } override fun onPostExecute(result: List<EntryEntity>) {