package com.etesync.syncadapter.ui import android.accounts.Account import android.accounts.AccountManager import android.app.Dialog import android.app.ProgressDialog import android.content.ContentResolver import android.content.Context import android.content.Intent import android.os.Bundle import android.provider.ContactsContract import android.text.TextUtils import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.* import androidx.activity.viewModels import androidx.appcompat.app.AlertDialog import androidx.fragment.app.* import at.bitfire.ical4android.Event import at.bitfire.ical4android.Task import at.bitfire.vcard4android.Contact import at.bitfire.vcard4android.ContactsStorageException import com.etebase.client.Account as EtebaseAccount import com.etebase.client.Client import com.etebase.client.Item import com.etebase.client.ItemMetadata import com.etesync.journalmanager.model.SyncEntry import com.etesync.syncadapter.* import com.etesync.syncadapter.model.* import com.etesync.syncadapter.resource.LocalAddressBook import com.etesync.syncadapter.resource.LocalCalendar import com.etesync.syncadapter.ui.etebase.* import com.etesync.syncadapter.ui.setup.CreateAccountFragment import com.etesync.syncadapter.ui.setup.LoginCredentials import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import net.cachapa.expandablelayout.ExpandableLayout import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import okhttp3.Request import okhttp3.RequestBody import org.jetbrains.anko.doAsync import org.jetbrains.anko.uiThread import java.io.StringReader import java.net.URI import java.util.* import kotlin.collections.HashMap class MigrateV2Activity : BaseActivity() { private lateinit var accountV1: Account private val model: AccountViewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) accountV1 = intent.extras!!.getParcelable(EXTRA_ACCOUNT)!! setContentView(R.layout.etebase_fragment_activity) if (savedInstanceState == null) { setTitle(R.string.migrate_v2_wizard_welcome_title) supportFragmentManager.commit { replace(R.id.fragment_container, WizardWelcomeFragment.newInstance(accountV1)) } } } companion object { private val EXTRA_ACCOUNT = "account" fun newIntent(context: Context, account: Account): Intent { val intent = Intent(context, MigrateV2Activity::class.java) intent.putExtra(EXTRA_ACCOUNT, account) return intent } } } fun reportErrorHelper(context: Context, e: Throwable) { AlertDialog.Builder(context) .setIcon(R.drawable.ic_info_dark) .setTitle(R.string.exception) .setMessage(e.localizedMessage) .setPositiveButton(android.R.string.yes) { _, _ -> }.show() } 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) if (savedInstanceState == null) { if (container != null) { initUi(inflater, ret) } } return ret } private fun initUi(inflater: LayoutInflater, v: View) { v.findViewById