1
0
mirror of https://github.com/etesync/android synced 2024-12-22 22:58:29 +00:00

Fix crashes with fragments that don't have a default constructor.

This commit is contained in:
Tom Hacohen 2020-11-01 11:28:04 +02:00
parent 198657d008
commit e3dc70bc11
15 changed files with 240 additions and 47 deletions

View File

@ -60,7 +60,7 @@ class MigrateV2Activity : BaseActivity() {
if (savedInstanceState == null) {
setTitle(R.string.migrate_v2_wizard_welcome_title)
supportFragmentManager.commit {
replace(R.id.fragment_container, WizardWelcomeFragment(accountV1))
replace(R.id.fragment_container, WizardWelcomeFragment.newInstance(accountV1))
}
}
}
@ -85,7 +85,9 @@ fun reportErrorHelper(context: Context, e: Throwable) {
.setPositiveButton(android.R.string.yes) { _, _ -> }.show()
}
class WizardWelcomeFragment(private val accountV1: Account) : Fragment() {
class WizardWelcomeFragment : Fragment() {
internal lateinit var accountV1: Account
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val ret = inflater.inflate(R.layout.migrate_v2_wizard_welcome, container, false)
@ -101,21 +103,29 @@ class WizardWelcomeFragment(private val accountV1: Account) : Fragment() {
private fun initUi(inflater: LayoutInflater, v: View) {
v.findViewById<Button>(R.id.signup).setOnClickListener {
parentFragmentManager.commit {
replace(R.id.fragment_container, SignupFragment(accountV1))
replace(R.id.fragment_container, SignupFragment.newInstance(accountV1))
addToBackStack(null)
}
}
v.findViewById<Button>(R.id.login).setOnClickListener {
parentFragmentManager.commit {
replace(R.id.fragment_container, LoginFragment(accountV1))
replace(R.id.fragment_container, LoginFragment.newInstance(accountV1))
addToBackStack(null)
}
}
}
companion object {
fun newInstance(accountV1: Account): WizardWelcomeFragment {
val ret = WizardWelcomeFragment()
ret.accountV1 = accountV1
return ret
}
}
}
class SignupFragment(private val accountV1: Account) : Fragment() {
class SignupFragment : Fragment() {
internal lateinit var editUserName: TextInputLayout
internal lateinit var editEmail: TextInputLayout
internal lateinit var editPassword: TextInputLayout
@ -123,6 +133,8 @@ class SignupFragment(private val accountV1: Account) : Fragment() {
internal lateinit var showAdvanced: CheckedTextView
internal lateinit var customServer: TextInputEditText
internal lateinit var accountV1: Account
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val v = inflater.inflate(R.layout.signup_fragment, container, false)
@ -145,7 +157,7 @@ class SignupFragment(private val accountV1: Account) : Fragment() {
createAccount.setOnClickListener {
val credentials = validateData()
if (credentials != null) {
SignupDoFragment(accountV1, credentials).show(requireFragmentManager(), null)
SignupDoFragment.newInstance(accountV1, credentials).show(requireFragmentManager(), null)
}
}
@ -210,11 +222,22 @@ class SignupFragment(private val accountV1: Account) : Fragment() {
return if (valid) SignupCredentials(uri, userName, email, password) else null
}
companion object {
fun newInstance(accountV1: Account): SignupFragment {
val ret = SignupFragment()
ret.accountV1 = accountV1
return ret
}
}
}
class SignupDoFragment(private val accountV1: Account, private val signupCredentials: SignupCredentials) : DialogFragment() {
class SignupDoFragment : DialogFragment() {
private val model: ConfigurationViewModel by activityViewModels()
internal lateinit var accountV1: Account
internal lateinit var signupCredentials: SignupCredentials
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val progress = ProgressDialog(activity)
progress.setTitle(R.string.setting_up_encryption)
@ -273,7 +296,7 @@ class SignupDoFragment(private val accountV1: Account, private val signupCredent
val etebase = EtebaseAccount.restore(client, it.etebaseSession!!, null)
uiThread {
fragmentManager?.commit {
replace(R.id.fragment_container, WizardCollectionsFragment(accountV1, etebase))
replace(R.id.fragment_container, WizardCollectionsFragment.newInstance(accountV1, etebase))
addToBackStack(null)
}
dismissAllowingStateLoss()
@ -282,16 +305,26 @@ class SignupDoFragment(private val accountV1: Account, private val signupCredent
} }
}
}
companion object {
fun newInstance(accountV1: Account, signupCredentials: SignupCredentials): SignupDoFragment {
val ret = SignupDoFragment()
ret.accountV1 = accountV1
ret.signupCredentials = signupCredentials
return ret
}
}
}
class LoginFragment(private val accountV1: Account) : Fragment() {
class LoginFragment() : Fragment() {
internal lateinit var editUserName: EditText
internal lateinit var editUrlPassword: TextInputLayout
internal lateinit var showAdvanced: CheckedTextView
internal lateinit var customServer: EditText
internal lateinit var accountV1: Account
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val v = inflater.inflate(R.layout.login_credentials_fragment, container, false)
@ -307,7 +340,7 @@ class LoginFragment(private val accountV1: Account) : Fragment() {
login.setOnClickListener {
val credentials = validateLoginData()
if (credentials != null)
LoginDoFragment(accountV1, credentials).show(fragmentManager!!, null)
LoginDoFragment.newInstance(accountV1, credentials).show(fragmentManager!!, null)
}
val forgotPassword = v.findViewById<View>(R.id.forgot_password) as TextView
@ -365,11 +398,22 @@ class LoginFragment(private val accountV1: Account) : Fragment() {
return if (valid) LoginCredentials(uri, userName, password) else null
}
companion object {
fun newInstance(accountV1: Account): LoginFragment {
val ret = LoginFragment()
ret.accountV1 = accountV1
return ret
}
}
}
class LoginDoFragment(private val accountV1: Account, private val loginCredentials: LoginCredentials) : DialogFragment() {
class LoginDoFragment() : DialogFragment() {
private val model: ConfigurationViewModel by activityViewModels()
internal lateinit var accountV1: Account
internal lateinit var loginCredentials: LoginCredentials
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val progress = ProgressDialog(activity)
progress.setTitle(R.string.setting_up_encryption)
@ -397,7 +441,7 @@ class LoginDoFragment(private val accountV1: Account, private val loginCredentia
val etebase = EtebaseAccount.restore(client, it.etebaseSession!!, null)
uiThread {
fragmentManager?.commit {
replace(R.id.fragment_container, WizardCollectionsFragment(accountV1, etebase))
replace(R.id.fragment_container, WizardCollectionsFragment.newInstance(accountV1, etebase))
addToBackStack(null)
}
dismissAllowingStateLoss()
@ -406,13 +450,25 @@ class LoginDoFragment(private val accountV1: Account, private val loginCredentia
} }
}
}
companion object {
fun newInstance(accountV1: Account, loginCredentials: LoginCredentials): LoginDoFragment {
val ret = LoginDoFragment()
ret.accountV1 = accountV1
ret.loginCredentials = loginCredentials
return ret
}
}
}
class WizardCollectionsFragment(private val accountV1: Account, private val etebase: EtebaseAccount) : Fragment() {
class WizardCollectionsFragment() : Fragment() {
private val loadingModel: LoadingViewModel by viewModels()
private lateinit var info: AccountActivity.AccountInfo
private val migrateJournals = HashMap<String, AccountActivity.CollectionListItemInfo>()
internal lateinit var accountV1: Account
internal lateinit var etebase: EtebaseAccount
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val ret = inflater.inflate(R.layout.migrate_v2_collections, container, false)
@ -427,7 +483,7 @@ class WizardCollectionsFragment(private val accountV1: Account, private val eteb
private fun initUi(inflater: LayoutInflater, v: View) {
v.findViewById<Button>(R.id.button_create).setOnClickListener {
MigrateCollectionsDoFragment(etebase, this.migrateJournals).show(parentFragmentManager, null)
MigrateCollectionsDoFragment.newInstance(etebase, this.migrateJournals).show(parentFragmentManager, null)
}
v.findViewById<Button>(R.id.button_skip).setOnClickListener {
@ -580,15 +636,26 @@ class WizardCollectionsFragment(private val accountV1: Account, private val eteb
return v
}
}
companion object {
fun newInstance(accountV1: Account, etebase: EtebaseAccount): WizardCollectionsFragment {
val ret = WizardCollectionsFragment()
ret.accountV1 = accountV1
ret.etebase = etebase
return ret
}
}
}
class MigrateCollectionsDoFragment(private val etebase: EtebaseAccount,
private val migrateJournals: HashMap<String, AccountActivity.CollectionListItemInfo>) : DialogFragment() {
class MigrateCollectionsDoFragment : DialogFragment() {
private val configurationModel: ConfigurationViewModel by activityViewModels()
private lateinit var progress: ProgressDialog
private val CHUNK_SIZE = 20
internal lateinit var etebase: EtebaseAccount
internal lateinit var migrateJournals: HashMap<String, AccountActivity.CollectionListItemInfo>
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
progress = ProgressDialog(activity)
progress.setTitle(R.string.migrate_v2_wizard_migrate_title)
@ -740,4 +807,15 @@ class MigrateCollectionsDoFragment(private val etebase: EtebaseAccount,
}
}
}
companion object {
fun newInstance(etebase: EtebaseAccount,
migrateJournals: HashMap<String, AccountActivity.CollectionListItemInfo>): MigrateCollectionsDoFragment {
val ret = MigrateCollectionsDoFragment()
ret.etebase = etebase
ret.migrateJournals = migrateJournals
return ret
}
}
}

View File

@ -52,7 +52,7 @@ class CollectionActivity() : BaseActivity() {
val cachedCollection = CachedCollection(it.colMgr.create(colType, meta, ""), meta, colType)
uiThread {
supportFragmentManager.commit {
replace(R.id.fragment_container, EditCollectionFragment(cachedCollection, true))
replace(R.id.fragment_container, EditCollectionFragment.newInstance(cachedCollection, true))
}
}
}

View File

@ -37,10 +37,12 @@ import java.text.SimpleDateFormat
import java.util.*
import java.util.concurrent.Future
class CollectionItemFragment(private val cachedItem: CachedItem) : Fragment() {
class CollectionItemFragment : Fragment() {
private val model: AccountViewModel by activityViewModels()
private val collectionModel: CollectionViewModel by activityViewModels()
private lateinit var cachedItem: CachedItem
private var emailInvitationEvent: Event? = null
private var emailInvitationEventString: String? = null
@ -156,6 +158,14 @@ class CollectionItemFragment(private val cachedItem: CachedItem) : Fragment() {
.create()
dialog.show()
}
companion object {
fun newInstance(cachedItem: CachedItem): CollectionItemFragment {
val ret = CollectionItemFragment()
ret.cachedItem = cachedItem
return ret
}
}
}
private class TabsAdapter(fm: FragmentManager, private val mainFragment: CollectionItemFragment, private val context: Context, private val cachedCollection: CachedCollection, private val cachedItem: CachedItem) : FragmentPagerAdapter(fm) {
@ -177,17 +187,18 @@ private class TabsAdapter(fm: FragmentManager, private val mainFragment: Collect
override fun getItem(position: Int): Fragment {
return if (position == 0) {
PrettyFragment(mainFragment, cachedCollection, cachedItem.content)
PrettyFragment.newInstance(mainFragment, cachedCollection, cachedItem.content)
} else if (position == 1) {
TextFragment(cachedItem.content)
TextFragment.newInstance(cachedItem.content)
} else {
ItemRevisionsListFragment(cachedCollection, cachedItem)
ItemRevisionsListFragment.newInstance(cachedCollection, cachedItem)
}
}
}
class TextFragment(private val content: String) : Fragment() {
class TextFragment : Fragment() {
private lateinit var content: String
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val v = inflater.inflate(R.layout.text_fragment, container, false)
@ -197,10 +208,21 @@ class TextFragment(private val content: String) : Fragment() {
return v
}
companion object {
fun newInstance(content: String): TextFragment {
val ret = TextFragment()
ret.content = content
return ret
}
}
}
class PrettyFragment(private val mainFragment: CollectionItemFragment, private val cachedCollection: CachedCollection, private val content: String) : Fragment() {
class PrettyFragment : Fragment() {
private var asyncTask: Future<Unit>? = null
private lateinit var mainFragment: CollectionItemFragment
private lateinit var cachedCollection: CachedCollection
private lateinit var content: String
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
var v: View? = null
@ -482,6 +504,14 @@ class PrettyFragment(private val mainFragment: CollectionItemFragment, private v
}
companion object {
fun newInstance(mainFragment: CollectionItemFragment, cachedCollection: CachedCollection, content: String): PrettyFragment {
val ret = PrettyFragment()
ret.mainFragment= mainFragment
ret.cachedCollection = cachedCollection
ret.content = content
return ret
}
private fun addInfoItem(context: Context, parent: ViewGroup, type: String, label: String?, value: String?): View {
val layout = parent.findViewById<View>(R.id.container) as ViewGroup
val infoItem = LayoutInflater.from(context).inflate(R.layout.contact_info_item, layout, false)

View File

@ -105,7 +105,7 @@ class CollectionMembersFragment : Fragment() {
val username = view.findViewById<EditText>(R.id.username).text.toString()
val readOnly = view.findViewById<CheckBox>(R.id.read_only).isChecked
val frag = AddMemberFragment(model.value!!, collectionModel.value!!, username, if (readOnly) CollectionAccessLevel.ReadOnly else CollectionAccessLevel.ReadWrite)
val frag = AddMemberFragment.newInstance(model.value!!, collectionModel.value!!, username, if (readOnly) CollectionAccessLevel.ReadOnly else CollectionAccessLevel.ReadWrite)
frag.show(childFragmentManager, null)
}
.setNegativeButton(android.R.string.no) { _, _ -> }
@ -114,7 +114,12 @@ class CollectionMembersFragment : Fragment() {
}
}
class AddMemberFragment(private val accountHolder: AccountHolder, private val cachedCollection: CachedCollection, private val username: String, private val accessLevel: CollectionAccessLevel) : DialogFragment() {
class AddMemberFragment : DialogFragment() {
private lateinit var accountHolder: AccountHolder
private lateinit var cachedCollection: CachedCollection
private lateinit var username: String
private lateinit var accessLevel: CollectionAccessLevel
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val progress = ProgressDialog(context)
progress.setTitle(R.string.collection_members_adding)
@ -174,4 +179,16 @@ class AddMemberFragment(private val accountHolder: AccountHolder, private val ca
.setPositiveButton(android.R.string.yes) { _, _ -> }.show()
dismiss()
}
companion object {
fun newInstance(accountHolder: AccountHolder, cachedCollection: CachedCollection,
username: String, accessLevel: CollectionAccessLevel): AddMemberFragment {
val ret = AddMemberFragment()
ret.accountHolder = accountHolder
ret.cachedCollection = cachedCollection
ret.username = username
ret.accessLevel = accessLevel
return ret
}
}
}

View File

@ -24,12 +24,15 @@ import org.jetbrains.anko.doAsync
import org.jetbrains.anko.uiThread
import yuku.ambilwarna.AmbilWarnaDialog
class EditCollectionFragment(private val cachedCollection: CachedCollection, private val isCreating: Boolean = false) : Fragment() {
class EditCollectionFragment : Fragment() {
private val model: AccountViewModel by activityViewModels()
private val collectionModel: CollectionViewModel by activityViewModels()
private val itemsModel: ItemsViewModel by activityViewModels()
private val loadingModel: LoadingViewModel by viewModels()
private lateinit var cachedCollection: CachedCollection
private var isCreating: Boolean = false
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val ret = inflater.inflate(R.layout.activity_create_collection, container, false)
setHasOptionsMenu(true)
@ -260,4 +263,13 @@ class EditCollectionFragment(private val cachedCollection: CachedCollection, pri
}
collectionModel.loadCollection(model.value!!, col.uid)
}
companion object {
fun newInstance(cachedCollection: CachedCollection, isCreating: Boolean = false): EditCollectionFragment {
val ret = EditCollectionFragment()
ret.cachedCollection = cachedCollection
ret.isCreating = isCreating
return ret
}
}
}

View File

@ -59,12 +59,12 @@ class ImportCollectionFragment : Fragment() {
card.setOnClickListener {
if (cachedCollection.collectionType == Constants.ETEBASE_TYPE_CALENDAR) {
parentFragmentManager.commit {
replace(R.id.fragment_container, LocalCalendarImportFragment(accountHolder.account, cachedCollection.col.uid))
replace(R.id.fragment_container, LocalCalendarImportFragment.newInstance(accountHolder.account, cachedCollection.col.uid))
addToBackStack(null)
}
} else if (cachedCollection.collectionType == Constants.ETEBASE_TYPE_ADDRESS_BOOK) {
parentFragmentManager.commit {
replace(R.id.fragment_container, LocalContactImportFragment(accountHolder.account, cachedCollection.col.uid))
replace(R.id.fragment_container, LocalContactImportFragment.newInstance(accountHolder.account, cachedCollection.col.uid))
addToBackStack(null)
}
}

View File

@ -28,11 +28,14 @@ import java.util.*
import java.util.concurrent.Future
class ItemRevisionsListFragment(private val cachedCollection: CachedCollection, private val cachedItem: CachedItem) : ListFragment(), AdapterView.OnItemClickListener {
class ItemRevisionsListFragment : ListFragment(), AdapterView.OnItemClickListener {
private val model: AccountViewModel by activityViewModels()
private val revisionsModel: RevisionsViewModel by viewModels()
private var state: Parcelable? = null
private lateinit var cachedCollection: CachedCollection
private lateinit var cachedItem: CachedItem
private var emptyTextView: TextView? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
@ -83,7 +86,7 @@ class ItemRevisionsListFragment(private val cachedCollection: CachedCollection,
override fun onItemClick(parent: AdapterView<*>, view: View, position: Int, id: Long) {
val item = listAdapter?.getItem(position) as CachedItem
activity?.supportFragmentManager?.commit {
replace(R.id.fragment_container, CollectionItemFragment(item))
replace(R.id.fragment_container, CollectionItemFragment.newInstance(item))
addToBackStack(null)
}
}
@ -110,6 +113,15 @@ class ItemRevisionsListFragment(private val cachedCollection: CachedCollection,
return v
}
}
companion object {
fun newInstance(cachedCollection: CachedCollection, cachedItem: CachedItem): ItemRevisionsListFragment {
val ret = ItemRevisionsListFragment()
ret.cachedCollection = cachedCollection
ret.cachedItem = cachedItem
return ret
}
}
}

View File

@ -71,7 +71,7 @@ class ListEntriesFragment : ListFragment(), AdapterView.OnItemClickListener {
override fun onItemClick(parent: AdapterView<*>, view: View, position: Int, id: Long) {
val item = listAdapter?.getItem(position) as CachedItem
activity?.supportFragmentManager?.commit {
replace(R.id.fragment_container, CollectionItemFragment(item))
replace(R.id.fragment_container, CollectionItemFragment.newInstance(item))
addToBackStack(EditCollectionFragment::class.java.name)
}
}

View File

@ -44,7 +44,9 @@ import org.jetbrains.anko.uiThread
import java.net.URI
import java.util.concurrent.Future
class SignupFragment(private val initialUsername: String?, private val initialPassword: String?) : Fragment() {
class SignupFragment : Fragment() {
internal var initialUsername: String? = null
internal var initialPassword: String? = null
internal lateinit var editUserName: TextInputLayout
internal lateinit var editEmail: TextInputLayout
internal lateinit var editPassword: TextInputLayout
@ -81,7 +83,7 @@ class SignupFragment(private val initialUsername: String?, private val initialPa
createAccount.setOnClickListener {
val credentials = validateData()
if (credentials != null) {
SignupDoFragment(credentials).show(requireFragmentManager(), null)
SignupDoFragment.newInstance(credentials).show(requireFragmentManager(), null)
}
}
@ -146,13 +148,24 @@ class SignupFragment(private val initialUsername: String?, private val initialPa
return if (valid) SignupCredentials(uri, userName, email, password) else null
}
companion object {
fun newInstance(initialUsername: String?, initialPassword: String?): SignupFragment {
val ret = SignupFragment()
ret.initialUsername = initialUsername
ret.initialPassword = initialPassword
return ret
}
}
}
class SignupDoFragment(private val signupCredentials: SignupCredentials) : DialogFragment() {
class SignupDoFragment: DialogFragment() {
private val model: ConfigurationViewModel by viewModels()
private lateinit var signupCredentials: SignupCredentials
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val progress = ProgressDialog(activity)
progress.setTitle(R.string.setting_up_encryption)
@ -184,6 +197,14 @@ class SignupDoFragment(private val signupCredentials: SignupCredentials) : Dialo
}
}
}
companion object {
fun newInstance(signupCredentials: SignupCredentials): SignupDoFragment {
val ret = SignupDoFragment()
ret.signupCredentials = signupCredentials
return ret
}
}
}
class ConfigurationViewModel : ViewModel() {

View File

@ -114,7 +114,7 @@ class ViewCollectionFragment : Fragment() {
R.id.on_edit -> {
if (cachedCollection.col.accessLevel == CollectionAccessLevel.Admin) {
parentFragmentManager.commit {
replace(R.id.fragment_container, EditCollectionFragment(cachedCollection))
replace(R.id.fragment_container, EditCollectionFragment.newInstance(cachedCollection))
addToBackStack(EditCollectionFragment::class.java.name)
}
} else {

View File

@ -46,13 +46,13 @@ class ImportActivity : BaseActivity(), SelectImportMethod, DialogInterface {
if (info.enumType == CollectionInfo.Type.CALENDAR) {
supportFragmentManager.beginTransaction()
.replace(android.R.id.content,
LocalCalendarImportFragment.newInstance(account, info))
LocalCalendarImportFragment.newInstance(account, info.uid!!))
.addToBackStack(LocalCalendarImportFragment::class.java.name)
.commit()
} else if (info.enumType == CollectionInfo.Type.ADDRESS_BOOK) {
supportFragmentManager.beginTransaction()
.replace(android.R.id.content,
LocalContactImportFragment.newInstance(account, info))
LocalContactImportFragment.newInstance(account, info.uid!!))
.addToBackStack(LocalContactImportFragment::class.java.name)
.commit()
}

View File

@ -35,7 +35,10 @@ import java.io.InputStream
import java.io.InputStreamReader
class ImportFragment(private val account: Account, private val uid: String, private val enumType: CollectionInfo.Type) : DialogFragment() {
class ImportFragment : DialogFragment() {
private lateinit var account: Account
private lateinit var uid: String
private lateinit var enumType: CollectionInfo.Type
private var inputStream: InputStream? = null
@ -435,7 +438,11 @@ class ImportFragment(private val account: Account, private val uid: String, priv
private val TAG_PROGRESS_MAX = "progressMax"
fun newInstance(account: Account, info: CollectionInfo): ImportFragment {
return ImportFragment(account, info.uid!!, info.enumType!!)
val ret = ImportFragment()
ret.account = account
ret.uid = info.uid!!
ret.enumType = info.enumType!!
return ret
}
fun newInstance(account: Account, cachedCollection: CachedCollection): ImportFragment {
@ -445,7 +452,11 @@ class ImportFragment(private val account: Account, private val uid: String, priv
ETEBASE_TYPE_ADDRESS_BOOK -> CollectionInfo.Type.ADDRESS_BOOK
else -> throw Exception("Got unsupported collection type")
}
return ImportFragment(account, cachedCollection.col.uid, enumType)
val ret = ImportFragment()
ret.account = account
ret.uid = cachedCollection.col.uid
ret.enumType = enumType
return ret
}
}
}

View File

@ -23,7 +23,10 @@ import com.etesync.syncadapter.resource.LocalCalendar
import com.etesync.syncadapter.resource.LocalEvent
class LocalCalendarImportFragment(private val account: Account, private val uid: String) : ListFragment() {
class LocalCalendarImportFragment : ListFragment() {
private lateinit var account: Account
private lateinit var uid: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
retainInstance = true
@ -249,8 +252,11 @@ class LocalCalendarImportFragment(private val account: Account, private val uid:
companion object {
fun newInstance(account: Account, info: CollectionInfo): LocalCalendarImportFragment {
return LocalCalendarImportFragment(account, info.uid!!)
fun newInstance(account: Account, uid: String): LocalCalendarImportFragment {
val ret = LocalCalendarImportFragment()
ret.account = account
ret.uid = uid
return ret
}
}
}

View File

@ -31,7 +31,10 @@ import com.etesync.syncadapter.resource.LocalGroup
import java.util.*
class LocalContactImportFragment(private val account: Account, private val uid: String) : Fragment() {
class LocalContactImportFragment : Fragment() {
private lateinit var account: Account
private lateinit var uid: String
private var recyclerView: RecyclerView? = null
override fun onCreate(savedInstanceState: Bundle?) {
@ -316,8 +319,11 @@ class LocalContactImportFragment(private val account: Account, private val uid:
companion object {
fun newInstance(account: Account, info: CollectionInfo): LocalContactImportFragment {
return LocalContactImportFragment(account, info.uid!!)
fun newInstance(account: Account, uid: String): LocalContactImportFragment {
val ret = LocalContactImportFragment()
ret.account = account
ret.uid = uid
return ret
}
}
}

View File

@ -56,7 +56,7 @@ class LoginCredentialsFragment : Fragment() {
val createAccount = v.findViewById<View>(R.id.create_account) as Button
createAccount.setOnClickListener {
parentFragmentManager.commit {
replace(android.R.id.content, SignupFragment(editUserName.text.toString(), editUrlPassword.editText?.text.toString()))
replace(android.R.id.content, SignupFragment.newInstance(editUserName.text.toString(), editUrlPassword.editText?.text.toString()))
}
}