mirror of
https://github.com/etesync/android
synced 2024-11-26 01:48:34 +00:00
Move CollectionInfo and SyncEntry to the journalmanager module.
This commit is contained in:
parent
09e2a9255a
commit
df94fde5ff
@ -133,7 +133,7 @@ dependencies {
|
|||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||||
implementation "org.jetbrains.anko:anko-commons:0.10.4"
|
implementation "org.jetbrains.anko:anko-commons:0.10.4"
|
||||||
|
|
||||||
implementation "com.etesync:journalmanager:1.0.1"
|
implementation "com.etesync:journalmanager:1.0.2"
|
||||||
|
|
||||||
def acraVersion = '5.3.0'
|
def acraVersion = '5.3.0'
|
||||||
implementation "ch.acra:acra-mail:$acraVersion"
|
implementation "ch.acra:acra-mail:$acraVersion"
|
||||||
|
@ -9,40 +9,18 @@
|
|||||||
package com.etesync.syncadapter.model
|
package com.etesync.syncadapter.model
|
||||||
|
|
||||||
import android.content.ContentValues
|
import android.content.ContentValues
|
||||||
import com.etesync.journalmanager.Constants
|
|
||||||
import com.etesync.journalmanager.JournalManager
|
|
||||||
import com.etesync.syncadapter.model.ServiceDB.Collections
|
import com.etesync.syncadapter.model.ServiceDB.Collections
|
||||||
import com.google.gson.GsonBuilder
|
import com.google.gson.GsonBuilder
|
||||||
import com.google.gson.annotations.Expose
|
|
||||||
import java.io.Serializable
|
|
||||||
|
|
||||||
class CollectionInfo : Serializable {
|
class CollectionInfo : com.etesync.journalmanager.model.CollectionInfo() {
|
||||||
@Deprecated("")
|
@Deprecated("")
|
||||||
var id: Long = 0
|
var id: Long = 0
|
||||||
|
|
||||||
var serviceID: Int = 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.
|
fun getServiceEntity(data: MyEntityDataStore): ServiceEntity {
|
||||||
@Expose
|
return data.findByKey(ServiceEntity::class.java, serviceID)
|
||||||
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 {
|
enum class Type {
|
||||||
ADDRESS_BOOK,
|
ADDRESS_BOOK,
|
||||||
@ -50,38 +28,18 @@ class CollectionInfo : Serializable {
|
|||||||
TASKS,
|
TASKS,
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
var enumType: Type?
|
||||||
version = Constants.CURRENT_VERSION
|
get() = if (super.type != null) Type.valueOf(super.type!!) else null
|
||||||
}
|
set(value) {
|
||||||
|
super.type = value?.name
|
||||||
fun updateFromJournal(journal: JournalManager.Journal) {
|
}
|
||||||
uid = journal.uid!!
|
|
||||||
version = journal.version
|
|
||||||
}
|
|
||||||
|
|
||||||
fun isOfTypeService(service: String): Boolean {
|
|
||||||
return service == type.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getServiceEntity(data: MyEntityDataStore): 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 {
|
companion object {
|
||||||
|
|
||||||
fun defaultForServiceType(service: Type): CollectionInfo {
|
fun defaultForServiceType(service: Type): CollectionInfo {
|
||||||
val info = CollectionInfo()
|
val info = CollectionInfo()
|
||||||
info.displayName = "Default"
|
info.displayName = "Default"
|
||||||
info.selected = true
|
info.selected = true
|
||||||
info.type = service
|
info.enumType = service
|
||||||
|
|
||||||
return info
|
return info
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.etesync.syncadapter.model;
|
package com.etesync.syncadapter.model;
|
||||||
|
|
||||||
|
import com.etesync.journalmanager.model.SyncEntry;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import io.requery.Column;
|
import io.requery.Column;
|
||||||
@ -11,11 +13,9 @@ import io.requery.Generated;
|
|||||||
import io.requery.Index;
|
import io.requery.Index;
|
||||||
import io.requery.Key;
|
import io.requery.Key;
|
||||||
import io.requery.ManyToOne;
|
import io.requery.ManyToOne;
|
||||||
import io.requery.Persistable;
|
|
||||||
import io.requery.PostLoad;
|
import io.requery.PostLoad;
|
||||||
import io.requery.ReferentialAction;
|
import io.requery.ReferentialAction;
|
||||||
import io.requery.Table;
|
import io.requery.Table;
|
||||||
import io.requery.sql.EntityDataStore;
|
|
||||||
|
|
||||||
public class JournalModel {
|
public class JournalModel {
|
||||||
@Entity
|
@Entity
|
||||||
|
@ -92,7 +92,7 @@ public class ServiceDB {
|
|||||||
db.beginTransactionNonExclusive();
|
db.beginTransactionNonExclusive();
|
||||||
|
|
||||||
// iterate through all tables
|
// iterate through all tables
|
||||||
Cursor cursorTables = db.query("sqlite_master", new String[]{"name"}, "type='table'", null, null, null, null);
|
Cursor cursorTables = db.query("sqlite_master", new String[]{"name"}, "enumType='table'", null, null, null, null);
|
||||||
while (cursorTables.moveToNext()) {
|
while (cursorTables.moveToNext()) {
|
||||||
String table = cursorTables.getString(0);
|
String table = cursorTables.getString(0);
|
||||||
sb.append(table).append("\n");
|
sb.append(table).append("\n");
|
||||||
|
@ -1,52 +0,0 @@
|
|||||||
package com.etesync.syncadapter.model
|
|
||||||
|
|
||||||
import com.etesync.syncadapter.GsonHelper
|
|
||||||
import com.etesync.journalmanager.Crypto
|
|
||||||
import com.etesync.journalmanager.JournalEntryManager
|
|
||||||
|
|
||||||
import java.io.Serializable
|
|
||||||
|
|
||||||
class SyncEntry : Serializable {
|
|
||||||
val content: String
|
|
||||||
val action: Actions
|
|
||||||
|
|
||||||
enum class Actions constructor(private val text: String) {
|
|
||||||
ADD("ADD"),
|
|
||||||
CHANGE("CHANGE"),
|
|
||||||
DELETE("DELETE");
|
|
||||||
|
|
||||||
override fun toString(): String {
|
|
||||||
return text
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private constructor() {
|
|
||||||
this.content = ""
|
|
||||||
this.action = Actions.ADD
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor(content: String, action: Actions) {
|
|
||||||
this.content = content
|
|
||||||
this.action = action
|
|
||||||
}
|
|
||||||
|
|
||||||
fun isAction(action: Actions): Boolean {
|
|
||||||
return this.action == action
|
|
||||||
}
|
|
||||||
|
|
||||||
fun toJson(): String {
|
|
||||||
return GsonHelper.gson.toJson(this, this.javaClass)
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
@JvmStatic
|
|
||||||
fun fromJournalEntry(crypto: Crypto.CryptoManager, entry: JournalEntryManager.Entry): SyncEntry {
|
|
||||||
return fromJson(entry.getContent(crypto))
|
|
||||||
}
|
|
||||||
|
|
||||||
@JvmStatic
|
|
||||||
fun fromJson(json: String): SyncEntry {
|
|
||||||
return GsonHelper.gson.fromJson(json, SyncEntry::class.java)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -25,7 +25,7 @@ import java.util.logging.Level
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Account authenticator for the main DAVx5 account type.
|
* Account authenticator for the main DAVx5 account enumType.
|
||||||
*
|
*
|
||||||
* Gets started when a DAVx5 account is removed, too, so it also watches for account removals
|
* Gets started when a DAVx5 account is removed, too, so it also watches for account removals
|
||||||
* and contains the corresponding cleanup code.
|
* and contains the corresponding cleanup code.
|
||||||
|
@ -24,7 +24,7 @@ import com.etesync.journalmanager.Exceptions
|
|||||||
import com.etesync.journalmanager.JournalEntryManager
|
import com.etesync.journalmanager.JournalEntryManager
|
||||||
import com.etesync.syncadapter.log.Logger
|
import com.etesync.syncadapter.log.Logger
|
||||||
import com.etesync.syncadapter.model.CollectionInfo
|
import com.etesync.syncadapter.model.CollectionInfo
|
||||||
import com.etesync.syncadapter.model.SyncEntry
|
import com.etesync.journalmanager.model.SyncEntry
|
||||||
import com.etesync.syncadapter.resource.LocalCalendar
|
import com.etesync.syncadapter.resource.LocalCalendar
|
||||||
import com.etesync.syncadapter.resource.LocalEvent
|
import com.etesync.syncadapter.resource.LocalEvent
|
||||||
import com.etesync.syncadapter.utils.EventEmailInvitation
|
import com.etesync.syncadapter.utils.EventEmailInvitation
|
||||||
|
@ -24,7 +24,7 @@ import com.etesync.journalmanager.Exceptions
|
|||||||
import com.etesync.journalmanager.JournalEntryManager
|
import com.etesync.journalmanager.JournalEntryManager
|
||||||
import com.etesync.syncadapter.log.Logger
|
import com.etesync.syncadapter.log.Logger
|
||||||
import com.etesync.syncadapter.model.CollectionInfo
|
import com.etesync.syncadapter.model.CollectionInfo
|
||||||
import com.etesync.syncadapter.model.SyncEntry
|
import com.etesync.journalmanager.model.SyncEntry
|
||||||
import com.etesync.syncadapter.resource.LocalAddress
|
import com.etesync.syncadapter.resource.LocalAddress
|
||||||
import com.etesync.syncadapter.resource.LocalAddressBook
|
import com.etesync.syncadapter.resource.LocalAddressBook
|
||||||
import com.etesync.syncadapter.resource.LocalContact
|
import com.etesync.syncadapter.resource.LocalContact
|
||||||
|
@ -82,7 +82,7 @@ class CachedJournalFetcher {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return journals.filter { it.second?.type == serviceType }
|
return journals.filter { it.second?.enumType == serviceType }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,9 +21,10 @@ import com.etesync.syncadapter.Constants.KEY_ACCOUNT
|
|||||||
import com.etesync.journalmanager.Crypto
|
import com.etesync.journalmanager.Crypto
|
||||||
import com.etesync.journalmanager.Exceptions
|
import com.etesync.journalmanager.Exceptions
|
||||||
import com.etesync.journalmanager.JournalEntryManager
|
import com.etesync.journalmanager.JournalEntryManager
|
||||||
|
import com.etesync.journalmanager.model.SyncEntry
|
||||||
import com.etesync.syncadapter.log.Logger
|
import com.etesync.syncadapter.log.Logger
|
||||||
import com.etesync.syncadapter.model.*
|
import com.etesync.syncadapter.model.*
|
||||||
import com.etesync.syncadapter.model.SyncEntry.Actions.ADD
|
import com.etesync.journalmanager.model.SyncEntry.Actions.ADD
|
||||||
import com.etesync.syncadapter.resource.*
|
import com.etesync.syncadapter.resource.*
|
||||||
import com.etesync.syncadapter.ui.AccountsActivity
|
import com.etesync.syncadapter.ui.AccountsActivity
|
||||||
import com.etesync.syncadapter.ui.DebugInfoActivity
|
import com.etesync.syncadapter.ui.DebugInfoActivity
|
||||||
|
@ -19,7 +19,7 @@ import com.etesync.syncadapter.R
|
|||||||
import com.etesync.journalmanager.JournalEntryManager
|
import com.etesync.journalmanager.JournalEntryManager
|
||||||
import com.etesync.syncadapter.log.Logger
|
import com.etesync.syncadapter.log.Logger
|
||||||
import com.etesync.syncadapter.model.CollectionInfo
|
import com.etesync.syncadapter.model.CollectionInfo
|
||||||
import com.etesync.syncadapter.model.SyncEntry
|
import com.etesync.journalmanager.model.SyncEntry
|
||||||
import com.etesync.syncadapter.resource.LocalTask
|
import com.etesync.syncadapter.resource.LocalTask
|
||||||
import com.etesync.syncadapter.resource.LocalTaskList
|
import com.etesync.syncadapter.resource.LocalTaskList
|
||||||
import okhttp3.HttpUrl
|
import okhttp3.HttpUrl
|
||||||
|
@ -171,17 +171,17 @@ class AccountActivity : BaseActivity(), Toolbar.OnMenuItemClickListener, PopupMe
|
|||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
R.id.create_calendar -> {
|
R.id.create_calendar -> {
|
||||||
info = CollectionInfo()
|
info = CollectionInfo()
|
||||||
info.type = CollectionInfo.Type.CALENDAR
|
info.enumType = CollectionInfo.Type.CALENDAR
|
||||||
startActivity(CreateCollectionActivity.newIntent(this@AccountActivity, account, info))
|
startActivity(CreateCollectionActivity.newIntent(this@AccountActivity, account, info))
|
||||||
}
|
}
|
||||||
R.id.create_tasklist -> {
|
R.id.create_tasklist -> {
|
||||||
info = CollectionInfo()
|
info = CollectionInfo()
|
||||||
info.type = CollectionInfo.Type.TASKS
|
info.enumType = CollectionInfo.Type.TASKS
|
||||||
startActivity(CreateCollectionActivity.newIntent(this@AccountActivity, account, info))
|
startActivity(CreateCollectionActivity.newIntent(this@AccountActivity, account, info))
|
||||||
}
|
}
|
||||||
R.id.create_addressbook -> {
|
R.id.create_addressbook -> {
|
||||||
info = CollectionInfo()
|
info = CollectionInfo()
|
||||||
info.type = CollectionInfo.Type.ADDRESS_BOOK
|
info.enumType = CollectionInfo.Type.ADDRESS_BOOK
|
||||||
startActivity(CreateCollectionActivity.newIntent(this@AccountActivity, account, info))
|
startActivity(CreateCollectionActivity.newIntent(this@AccountActivity, account, info))
|
||||||
}
|
}
|
||||||
R.id.install_opentasks -> {
|
R.id.install_opentasks -> {
|
||||||
@ -395,7 +395,7 @@ class AccountActivity : BaseActivity(), Toolbar.OnMenuItemClickListener, PopupMe
|
|||||||
}
|
}
|
||||||
|
|
||||||
val vColor = v.findViewById<View>(R.id.color)
|
val vColor = v.findViewById<View>(R.id.color)
|
||||||
if (info.type == CollectionInfo.Type.ADDRESS_BOOK) {
|
if (info.enumType == CollectionInfo.Type.ADDRESS_BOOK) {
|
||||||
vColor.visibility = View.GONE
|
vColor.visibility = View.GONE
|
||||||
} else {
|
} else {
|
||||||
vColor.setBackgroundColor(info.color ?: LocalCalendar.defaultColor)
|
vColor.setBackgroundColor(info.color ?: LocalCalendar.defaultColor)
|
||||||
|
@ -37,7 +37,7 @@ class CollectionMembersActivity : BaseActivity(), Refreshable {
|
|||||||
setTitle(R.string.collection_members_title)
|
setTitle(R.string.collection_members_title)
|
||||||
|
|
||||||
val colorSquare = findViewById<View>(R.id.color)
|
val colorSquare = findViewById<View>(R.id.color)
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.CALENDAR -> {
|
CollectionInfo.Type.CALENDAR -> {
|
||||||
colorSquare.setBackgroundColor(info.color ?: LocalCalendar.defaultColor)
|
colorSquare.setBackgroundColor(info.color ?: LocalCalendar.defaultColor)
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ open class CreateCollectionActivity : BaseActivity() {
|
|||||||
setContentView(R.layout.activity_create_collection)
|
setContentView(R.layout.activity_create_collection)
|
||||||
|
|
||||||
val displayName = findViewById<View>(R.id.display_name) as EditText
|
val displayName = findViewById<View>(R.id.display_name) as EditText
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.CALENDAR -> {
|
CollectionInfo.Type.CALENDAR -> {
|
||||||
setTitle(R.string.create_calendar)
|
setTitle(R.string.create_calendar)
|
||||||
displayName.setHint(R.string.create_calendar_display_name_hint)
|
displayName.setHint(R.string.create_calendar_display_name_hint)
|
||||||
@ -114,7 +114,7 @@ open class CreateCollectionActivity : BaseActivity() {
|
|||||||
info.description = StringUtils.trimToNull(edit.text.toString())
|
info.description = StringUtils.trimToNull(edit.text.toString())
|
||||||
|
|
||||||
if (ok) {
|
if (ok) {
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.CALENDAR, CollectionInfo.Type.TASKS -> {
|
CollectionInfo.Type.CALENDAR, CollectionInfo.Type.TASKS -> {
|
||||||
val view = findViewById<View>(R.id.color)
|
val view = findViewById<View>(R.id.color)
|
||||||
info.color = (view.background as ColorDrawable).color
|
info.color = (view.background as ColorDrawable).color
|
||||||
|
@ -89,13 +89,13 @@ class CreateCollectionFragment : DialogFragment(), LoaderManager.LoaderCallbacks
|
|||||||
val data = (context.applicationContext as App).data
|
val data = (context.applicationContext as App).data
|
||||||
|
|
||||||
// 1. find service ID
|
// 1. find service ID
|
||||||
when (info.type){
|
when (info.enumType){
|
||||||
CollectionInfo.Type.ADDRESS_BOOK -> authority = App.addressBooksAuthority
|
CollectionInfo.Type.ADDRESS_BOOK -> authority = App.addressBooksAuthority
|
||||||
CollectionInfo.Type.CALENDAR -> authority = CalendarContract.AUTHORITY
|
CollectionInfo.Type.CALENDAR -> authority = CalendarContract.AUTHORITY
|
||||||
CollectionInfo.Type.TASKS -> authority = TaskProvider.ProviderName.OpenTasks.authority
|
CollectionInfo.Type.TASKS -> authority = TaskProvider.ProviderName.OpenTasks.authority
|
||||||
}
|
}
|
||||||
|
|
||||||
val serviceEntity = JournalModel.Service.fetchOrCreate(data, account.name, info.type)
|
val serviceEntity = JournalModel.Service.fetchOrCreate(data, account.name, info.enumType)
|
||||||
info.serviceID = serviceEntity.id
|
info.serviceID = serviceEntity.id
|
||||||
|
|
||||||
val settings = AccountSettings(context, account)
|
val settings = AccountSettings(context, account)
|
||||||
|
@ -31,7 +31,7 @@ class EditCollectionActivity : CreateCollectionActivity() {
|
|||||||
|
|
||||||
setTitle(R.string.edit_collection)
|
setTitle(R.string.edit_collection)
|
||||||
|
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.CALENDAR -> {
|
CollectionInfo.Type.CALENDAR -> {
|
||||||
val colorSquare = findViewById<View>(R.id.color)
|
val colorSquare = findViewById<View>(R.id.color)
|
||||||
colorSquare.setBackgroundColor(info.color ?: LocalCalendar.defaultColor)
|
colorSquare.setBackgroundColor(info.color ?: LocalCalendar.defaultColor)
|
||||||
|
@ -25,7 +25,7 @@ import com.etesync.syncadapter.Constants
|
|||||||
import com.etesync.syncadapter.R
|
import com.etesync.syncadapter.R
|
||||||
import com.etesync.syncadapter.model.CollectionInfo
|
import com.etesync.syncadapter.model.CollectionInfo
|
||||||
import com.etesync.syncadapter.model.JournalEntity
|
import com.etesync.syncadapter.model.JournalEntity
|
||||||
import com.etesync.syncadapter.model.SyncEntry
|
import com.etesync.journalmanager.model.SyncEntry
|
||||||
import com.etesync.syncadapter.resource.*
|
import com.etesync.syncadapter.resource.*
|
||||||
import com.etesync.syncadapter.ui.journalviewer.ListEntriesFragment.Companion.setJournalEntryView
|
import com.etesync.syncadapter.ui.journalviewer.ListEntriesFragment.Companion.setJournalEntryView
|
||||||
import com.etesync.syncadapter.utils.EventEmailInvitation
|
import com.etesync.syncadapter.utils.EventEmailInvitation
|
||||||
@ -102,7 +102,7 @@ class JournalItemActivity : BaseActivity(), Refreshable {
|
|||||||
|
|
||||||
fun restoreItem(item: MenuItem) {
|
fun restoreItem(item: MenuItem) {
|
||||||
// FIXME: This code makes the assumption that providers are all available. May not be true for tasks, and potentially others too.
|
// FIXME: This code makes the assumption that providers are all available. May not be true for tasks, and potentially others too.
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.CALENDAR -> {
|
CollectionInfo.Type.CALENDAR -> {
|
||||||
val provider = contentResolver.acquireContentProviderClient(CalendarContract.CONTENT_URI)!!
|
val provider = contentResolver.acquireContentProviderClient(CalendarContract.CONTENT_URI)!!
|
||||||
val localCalendar = LocalCalendar.findByName(account, provider, LocalCalendar.Factory, info.uid!!)!!
|
val localCalendar = LocalCalendar.findByName(account, provider, LocalCalendar.Factory, info.uid!!)!!
|
||||||
@ -159,7 +159,7 @@ class JournalItemActivity : BaseActivity(), Refreshable {
|
|||||||
private class TabsAdapter(fm: FragmentManager, private val context: Context, private val info: CollectionInfo, private val syncEntry: SyncEntry) : FragmentPagerAdapter(fm) {
|
private class TabsAdapter(fm: FragmentManager, private val context: Context, private val info: CollectionInfo, private val syncEntry: SyncEntry) : FragmentPagerAdapter(fm) {
|
||||||
|
|
||||||
override fun getCount(): Int {
|
override fun getCount(): Int {
|
||||||
// FIXME: Make it depend on info type (only have non-raw for known types)
|
// FIXME: Make it depend on info enumType (only have non-raw for known types)
|
||||||
return 2
|
return 2
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,7 +215,7 @@ class JournalItemActivity : BaseActivity(), Refreshable {
|
|||||||
info = arguments!!.getSerializable(Constants.KEY_COLLECTION_INFO) as CollectionInfo
|
info = arguments!!.getSerializable(Constants.KEY_COLLECTION_INFO) as CollectionInfo
|
||||||
syncEntry = arguments!!.getSerializable(KEY_SYNC_ENTRY) as SyncEntry
|
syncEntry = arguments!!.getSerializable(KEY_SYNC_ENTRY) as SyncEntry
|
||||||
|
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.ADDRESS_BOOK -> {
|
CollectionInfo.Type.ADDRESS_BOOK -> {
|
||||||
v = inflater.inflate(R.layout.contact_info, container, false)
|
v = inflater.inflate(R.layout.contact_info, container, false)
|
||||||
asyncTask = loadContactTask(v)
|
asyncTask = loadContactTask(v)
|
||||||
|
@ -60,7 +60,7 @@ class ViewCollectionActivity : BaseActivity(), Refreshable {
|
|||||||
isOwner = journalEntity!!.isOwner(account.name)
|
isOwner = journalEntity!!.isOwner(account.name)
|
||||||
|
|
||||||
val colorSquare = findViewById<View>(R.id.color)
|
val colorSquare = findViewById<View>(R.id.color)
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.CALENDAR -> {
|
CollectionInfo.Type.CALENDAR -> {
|
||||||
colorSquare.setBackgroundColor(info.color ?: LocalCalendar.defaultColor)
|
colorSquare.setBackgroundColor(info.color ?: LocalCalendar.defaultColor)
|
||||||
}
|
}
|
||||||
@ -176,7 +176,7 @@ class ViewCollectionActivity : BaseActivity(), Refreshable {
|
|||||||
entryCount = data.count(EntryEntity::class.java).where(EntryEntity.JOURNAL.eq(journalEntity)).get().value()
|
entryCount = data.count(EntryEntity::class.java).where(EntryEntity.JOURNAL.eq(journalEntity)).get().value()
|
||||||
var count: Long = -1
|
var count: Long = -1
|
||||||
|
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.CALENDAR -> {
|
CollectionInfo.Type.CALENDAR -> {
|
||||||
try {
|
try {
|
||||||
val providerClient = contentResolver.acquireContentProviderClient(CalendarContract.CONTENT_URI)
|
val providerClient = contentResolver.acquireContentProviderClient(CalendarContract.CONTENT_URI)
|
||||||
@ -237,7 +237,7 @@ class ViewCollectionActivity : BaseActivity(), Refreshable {
|
|||||||
if (result == null) {
|
if (result == null) {
|
||||||
stats.text = "Stats loading error."
|
stats.text = "Stats loading error."
|
||||||
} else {
|
} else {
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.CALENDAR -> {
|
CollectionInfo.Type.CALENDAR -> {
|
||||||
stats.text = String.format(Locale.getDefault(), "Events: %d, Journal entries: %d",
|
stats.text = String.format(Locale.getDefault(), "Events: %d, Journal entries: %d",
|
||||||
result, entryCount)
|
result, entryCount)
|
||||||
|
@ -43,13 +43,13 @@ class ImportActivity : BaseActivity(), SelectImportMethod, ResultFragment.OnImpo
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun importAccount() {
|
override fun importAccount() {
|
||||||
if (info.type == CollectionInfo.Type.CALENDAR) {
|
if (info.enumType == CollectionInfo.Type.CALENDAR) {
|
||||||
supportFragmentManager.beginTransaction()
|
supportFragmentManager.beginTransaction()
|
||||||
.replace(android.R.id.content,
|
.replace(android.R.id.content,
|
||||||
LocalCalendarImportFragment.newInstance(account, info))
|
LocalCalendarImportFragment.newInstance(account, info))
|
||||||
.addToBackStack(LocalCalendarImportFragment::class.java.name)
|
.addToBackStack(LocalCalendarImportFragment::class.java.name)
|
||||||
.commit()
|
.commit()
|
||||||
} else if (info.type == CollectionInfo.Type.ADDRESS_BOOK) {
|
} else if (info.enumType == CollectionInfo.Type.ADDRESS_BOOK) {
|
||||||
supportFragmentManager.beginTransaction()
|
supportFragmentManager.beginTransaction()
|
||||||
.replace(android.R.id.content,
|
.replace(android.R.id.content,
|
||||||
LocalContactImportFragment.newInstance(account, info))
|
LocalContactImportFragment.newInstance(account, info))
|
||||||
@ -144,7 +144,7 @@ class ImportActivity : BaseActivity(), SelectImportMethod, ResultFragment.OnImpo
|
|||||||
text.setText(R.string.import_button_local)
|
text.setText(R.string.import_button_local)
|
||||||
card.setOnClickListener { mSelectImportMethod!!.importAccount() }
|
card.setOnClickListener { mSelectImportMethod!!.importAccount() }
|
||||||
|
|
||||||
if ((activity as ImportActivity).info.type == CollectionInfo.Type.TASKS) {
|
if ((activity as ImportActivity).info.enumType == CollectionInfo.Type.TASKS) {
|
||||||
card.visibility = View.GONE
|
card.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ class ImportFragment : DialogFragment() {
|
|||||||
intent.addCategory(Intent.CATEGORY_OPENABLE)
|
intent.addCategory(Intent.CATEGORY_OPENABLE)
|
||||||
intent.action = Intent.ACTION_GET_CONTENT
|
intent.action = Intent.ACTION_GET_CONTENT
|
||||||
|
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.CALENDAR -> intent.type = "text/calendar"
|
CollectionInfo.Type.CALENDAR -> intent.type = "text/calendar"
|
||||||
CollectionInfo.Type.TASKS -> intent.type = "text/calendar"
|
CollectionInfo.Type.TASKS -> intent.type = "text/calendar"
|
||||||
CollectionInfo.Type.ADDRESS_BOOK -> intent.type = "text/x-vcard"
|
CollectionInfo.Type.ADDRESS_BOOK -> intent.type = "text/x-vcard"
|
||||||
@ -215,7 +215,7 @@ class ImportFragment : DialogFragment() {
|
|||||||
val context = context!!
|
val context = context!!
|
||||||
val importReader = InputStreamReader(inputStream)
|
val importReader = InputStreamReader(inputStream)
|
||||||
|
|
||||||
if (info.type == CollectionInfo.Type.CALENDAR) {
|
if (info.enumType == CollectionInfo.Type.CALENDAR) {
|
||||||
val events = Event.eventsFromReader(importReader, null)
|
val events = Event.eventsFromReader(importReader, null)
|
||||||
importReader.close()
|
importReader.close()
|
||||||
|
|
||||||
@ -268,7 +268,7 @@ class ImportFragment : DialogFragment() {
|
|||||||
|
|
||||||
entryProcessed()
|
entryProcessed()
|
||||||
}
|
}
|
||||||
} else if (info.type == CollectionInfo.Type.TASKS) {
|
} else if (info.enumType == CollectionInfo.Type.TASKS) {
|
||||||
val tasks = Task.tasksFromReader(importReader)
|
val tasks = Task.tasksFromReader(importReader)
|
||||||
importReader.close()
|
importReader.close()
|
||||||
|
|
||||||
@ -317,7 +317,7 @@ class ImportFragment : DialogFragment() {
|
|||||||
|
|
||||||
entryProcessed()
|
entryProcessed()
|
||||||
}
|
}
|
||||||
} else if (info.type == CollectionInfo.Type.ADDRESS_BOOK) {
|
} else if (info.enumType == CollectionInfo.Type.ADDRESS_BOOK) {
|
||||||
val uidToLocalId = HashMap<String?, Long>()
|
val uidToLocalId = HashMap<String?, Long>()
|
||||||
val downloader = ContactsSyncManager.ResourceDownloader(context)
|
val downloader = ContactsSyncManager.ResourceDownloader(context)
|
||||||
val contacts = Contact.fromReader(importReader, downloader)
|
val contacts = Contact.fromReader(importReader, downloader)
|
||||||
|
@ -224,7 +224,7 @@ class LocalContactImportFragment : Fragment() {
|
|||||||
private val accountResolver: AccountResolver
|
private val accountResolver: AccountResolver
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provide a reference to the type of views that you are using (custom ViewHolder)
|
* Provide a reference to the enumType of views that you are using (custom ViewHolder)
|
||||||
*/
|
*/
|
||||||
class ViewHolder(v: View, onAccountSelected: OnAccountSelected) : RecyclerView.ViewHolder(v) {
|
class ViewHolder(v: View, onAccountSelected: OnAccountSelected) : RecyclerView.ViewHolder(v) {
|
||||||
internal val titleTextView: TextView
|
internal val titleTextView: TextView
|
||||||
|
@ -19,6 +19,7 @@ import android.widget.ArrayAdapter
|
|||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.fragment.app.ListFragment
|
import androidx.fragment.app.ListFragment
|
||||||
|
import com.etesync.journalmanager.model.SyncEntry
|
||||||
import com.etesync.syncadapter.App
|
import com.etesync.syncadapter.App
|
||||||
import com.etesync.syncadapter.R
|
import com.etesync.syncadapter.R
|
||||||
import com.etesync.syncadapter.model.*
|
import com.etesync.syncadapter.model.*
|
||||||
@ -139,7 +140,7 @@ class ListEntriesFragment : ListFragment(), AdapterView.OnItemClickListener {
|
|||||||
// FIXME: hacky way to make it show sensible info
|
// FIXME: hacky way to make it show sensible info
|
||||||
val fullContent = syncEntry.content
|
val fullContent = syncEntry.content
|
||||||
var prefix = ""
|
var prefix = ""
|
||||||
when (info.type) {
|
when (info.enumType) {
|
||||||
CollectionInfo.Type.CALENDAR, CollectionInfo.Type.TASKS -> {
|
CollectionInfo.Type.CALENDAR, CollectionInfo.Type.TASKS -> {
|
||||||
prefix = "SUMMARY:"
|
prefix = "SUMMARY:"
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user