Switch to AndroidX

This commit is contained in:
Ricki Hirner
2018-11-29 23:00:43 +01:00
parent a7f0161983
commit fb90955b2a
47 changed files with 226 additions and 218 deletions

View File

@@ -63,7 +63,7 @@ android {
}
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
}
@@ -75,13 +75,14 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:preference-v14:28.0.0'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.fragment:fragment:1.0.0'
implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'com.github.yukuku:ambilwarna:2.0.1'
implementation 'com.mikepenz:aboutlibraries:6.0.9'
implementation 'com.mikepenz:aboutlibraries:6.2.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0'
implementation 'commons-io:commons-io:2.6'
@@ -90,8 +91,8 @@ dependencies {
implementation 'org.apache.commons:commons-collections4:4.1'
// for tests
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test:rules:1.0.2'
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test:rules:1.1.0'
androidTestImplementation 'junit:junit:4.12'
androidTestImplementation 'com.squareup.okhttp3:mockwebserver:3.11.0'

View File

@@ -8,7 +8,7 @@
package at.bitfire.davdroid
import android.support.test.InstrumentationRegistry.getInstrumentation
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import at.bitfire.cert4android.CustomCertManager
import okhttp3.OkHttpClient
import okhttp3.Request
@@ -54,7 +54,7 @@ class CustomTlsSocketFactoryTest {
@Test
fun testSendClientCertificate() {
var public: X509Certificate? = null
javaClass.classLoader.getResourceAsStream("sample.crt").use {
javaClass.classLoader!!.getResourceAsStream("sample.crt").use {
public = CertificateFactory.getInstance("X509").generateCertificate(it) as? X509Certificate
}
assertNotNull(public)

View File

@@ -9,7 +9,7 @@
package at.bitfire.davdroid.model
import android.content.ContentValues
import android.support.test.filters.SmallTest
import androidx.test.filters.SmallTest
import at.bitfire.dav4android.DavResource
import at.bitfire.dav4android.property.ResourceType
import at.bitfire.davdroid.HttpClient

View File

@@ -8,8 +8,7 @@
package at.bitfire.davdroid.settings
import android.support.test.InstrumentationRegistry
import android.support.test.InstrumentationRegistry.getTargetContext
import androidx.test.platform.app.InstrumentationRegistry
import at.bitfire.davdroid.App
import junit.framework.Assert.assertFalse
import junit.framework.Assert.assertTrue
@@ -23,8 +22,7 @@ class SettingsTest {
@Before
fun init() {
InstrumentationRegistry.getContext().isRestricted
settings = Settings.getInstance(getTargetContext())!!
settings = Settings.getInstance(InstrumentationRegistry.getInstrumentation().targetContext)!!
}
@After

View File

@@ -8,8 +8,8 @@
package at.bitfire.davdroid.ui.setup
import android.support.test.InstrumentationRegistry.getTargetContext
import android.support.test.filters.SmallTest
import androidx.test.filters.SmallTest
import androidx.test.platform.app.InstrumentationRegistry
import at.bitfire.dav4android.DavResource
import at.bitfire.dav4android.property.AddressbookHomeSet
import at.bitfire.dav4android.property.ResourceType
@@ -52,7 +52,7 @@ class DavResourceFinderTest {
server.start()
loginInfo = LoginInfo(URI.create("/"), Credentials("mock", "12345"))
finder = DavResourceFinder(getTargetContext(), loginInfo)
finder = DavResourceFinder(InstrumentationRegistry.getInstrumentation().targetContext, loginInfo)
client = HttpClient.Builder()
.addAuthentication(null, loginInfo.credentials)

View File

@@ -106,7 +106,7 @@
android:label="@string/debug_info_title">
</activity>
<provider
android:name="android.support.v4.content.FileProvider"
android:name="androidx.core.content.FileProvider"
android:authorities="@string/authority_log_provider"
android:grantUriPermissions="true"
android:exported="false">

View File

@@ -17,7 +17,7 @@ import android.graphics.drawable.BitmapDrawable
import android.net.Uri
import android.os.Build
import android.os.StrictMode
import android.support.v7.app.AppCompatDelegate
import androidx.appcompat.app.AppCompatDelegate
import at.bitfire.davdroid.log.Logger
import at.bitfire.davdroid.ui.NotificationUtils
import kotlin.concurrent.thread

View File

@@ -18,8 +18,8 @@ import android.database.DatabaseUtils
import android.database.sqlite.SQLiteDatabase
import android.os.Binder
import android.os.Bundle
import android.support.v4.app.NotificationCompat
import android.support.v4.app.NotificationManagerCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import at.bitfire.dav4android.DavResource
import at.bitfire.dav4android.Response
import at.bitfire.dav4android.UrlUtils

View File

@@ -14,8 +14,8 @@ import android.content.Intent
import android.content.SharedPreferences
import android.os.Process
import android.preference.PreferenceManager
import android.support.v4.app.NotificationCompat
import android.support.v4.app.NotificationManagerCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import android.util.Log
import at.bitfire.davdroid.R
import at.bitfire.davdroid.ui.AppSettingsActivity

View File

@@ -15,7 +15,7 @@ import android.database.DatabaseUtils
import android.os.Build
import android.os.Bundle
import android.provider.ContactsContract
import android.support.v4.content.ContextCompat
import androidx.core.content.ContextCompat
import at.bitfire.davdroid.AccountSettings
import at.bitfire.davdroid.log.Logger
import at.bitfire.davdroid.model.CollectionInfo

View File

@@ -13,7 +13,7 @@ import android.content.*
import android.os.Build
import android.os.Bundle
import android.provider.ContactsContract.Groups
import android.support.v4.app.NotificationCompat
import androidx.core.app.NotificationCompat
import at.bitfire.dav4android.DavAddressBook
import at.bitfire.dav4android.DavResource
import at.bitfire.dav4android.DavResponseCallback

View File

@@ -18,9 +18,9 @@ import android.net.ConnectivityManager
import android.net.wifi.WifiManager
import android.os.Build
import android.os.Bundle
import android.support.v4.app.NotificationCompat
import android.support.v4.app.NotificationManagerCompat
import android.support.v4.content.ContextCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat
import at.bitfire.davdroid.AccountSettings
import at.bitfire.davdroid.R
import at.bitfire.davdroid.log.Logger

View File

@@ -16,8 +16,8 @@ import android.os.Bundle
import android.os.RemoteException
import android.provider.CalendarContract
import android.provider.ContactsContract
import android.support.v4.app.NotificationCompat
import android.support.v4.app.NotificationManagerCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import at.bitfire.dav4android.*
import at.bitfire.dav4android.exception.*
import at.bitfire.dav4android.property.GetCTag

View File

@@ -15,8 +15,8 @@ import android.database.DatabaseUtils
import android.graphics.drawable.BitmapDrawable
import android.net.Uri
import android.os.Bundle
import android.support.v4.app.NotificationCompat
import android.support.v4.app.NotificationManagerCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import at.bitfire.davdroid.AccountSettings
import at.bitfire.davdroid.R
import at.bitfire.davdroid.log.Logger

View File

@@ -10,16 +10,16 @@ package at.bitfire.davdroid.ui
import android.content.Context
import android.os.Bundle
import android.support.v4.app.Fragment
import android.support.v4.app.FragmentManager
import android.support.v4.app.FragmentPagerAdapter
import android.support.v4.app.LoaderManager
import android.support.v4.content.AsyncTaskLoader
import android.support.v4.content.Loader
import android.support.v7.app.AppCompatActivity
import android.text.Html
import android.text.Spanned
import android.view.*
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
import androidx.loader.app.LoaderManager
import androidx.loader.content.AsyncTaskLoader
import androidx.loader.content.Loader
import at.bitfire.davdroid.App
import at.bitfire.davdroid.BuildConfig
import at.bitfire.davdroid.R
@@ -70,11 +70,11 @@ class AboutActivity: AppCompatActivity() {
override fun getCount() = 2
override fun getPageTitle(position: Int) =
override fun getPageTitle(position: Int): String =
when (position) {
1 -> getString(R.string.about_libraries)
else -> getString(R.string.app_name)
}!!
}
override fun getItem(position: Int) =
when (position) {

View File

@@ -13,7 +13,6 @@ import android.accounts.Account
import android.accounts.AccountManager
import android.annotation.SuppressLint
import android.app.Dialog
import android.app.LoaderManager
import android.content.*
import android.content.pm.PackageManager
import android.database.DatabaseUtils
@@ -25,15 +24,17 @@ import android.os.Bundle
import android.os.IBinder
import android.provider.CalendarContract
import android.provider.ContactsContract
import android.support.design.widget.Snackbar
import android.support.v4.app.ActivityCompat
import android.support.v4.app.DialogFragment
import android.support.v4.content.ContextCompat
import android.support.v7.app.AlertDialog
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.Toolbar
import android.view.*
import android.widget.*
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.fragment.app.DialogFragment
import androidx.loader.app.LoaderManager
import androidx.loader.content.AsyncTaskLoader
import androidx.loader.content.Loader
import at.bitfire.davdroid.DavService
import at.bitfire.davdroid.R
import at.bitfire.davdroid.log.Logger
@@ -44,6 +45,7 @@ import at.bitfire.davdroid.model.ServiceDB.Collections
import at.bitfire.davdroid.resource.LocalAddressBook
import at.bitfire.davdroid.resource.LocalTaskList
import at.bitfire.ical4android.TaskProvider
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.account_caldav_item.view.*
import kotlinx.android.synthetic.main.activity_account.*
import java.lang.ref.WeakReference
@@ -107,7 +109,7 @@ class AccountActivity: AppCompatActivity(), Toolbar.OnMenuItemClickListener, Pop
webcal_menu.setOnMenuItemClickListener(this)
// load CardDAV/CalDAV collections
loaderManager.initLoader(0, null, this)
LoaderManager.getInstance(this).initLoader(0, null, this)
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
@@ -355,7 +357,7 @@ class AccountActivity: AppCompatActivity(), Toolbar.OnMenuItemClickListener, Pop
AccountLoader(this, account)
fun reload() {
loaderManager.restartLoader(0, null, this)
LoaderManager.getInstance(this).restartLoader(0, null, this)
}
override fun onLoadFinished(loader: Loader<AccountInfo>, info: AccountInfo?) {
@@ -582,7 +584,10 @@ class AccountActivity: AppCompatActivity(), Toolbar.OnMenuItemClickListener, Pop
}
}
} finally {
provider.release()
if (Build.VERSION.SDK_INT >= 24)
provider.close()
else
provider.release()
}
}
@@ -599,7 +604,7 @@ class AccountActivity: AppCompatActivity(), Toolbar.OnMenuItemClickListener, Pop
): ArrayAdapter<CollectionInfo>(context, R.layout.account_carddav_item) {
override fun getView(position: Int, v: View?, parent: ViewGroup?): View {
val v = v ?: LayoutInflater.from(context).inflate(R.layout.account_carddav_item, parent, false)
val info = getItem(position)
val info = getItem(position)!!
val checked: CheckBox = v.findViewById(R.id.checked)
checked.isChecked = info.selected
@@ -703,7 +708,7 @@ class AccountActivity: AppCompatActivity(), Toolbar.OnMenuItemClickListener, Pop
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val oldAccount: Account = arguments!!.getParcelable(ARG_ACCOUNT)
val oldAccount: Account = arguments!!.getParcelable(ARG_ACCOUNT)!!
val editText = EditText(activity)
editText.setText(oldAccount.name)

View File

@@ -11,12 +11,8 @@ package at.bitfire.davdroid.ui
import android.accounts.Account
import android.accounts.AccountManager
import android.accounts.OnAccountsUpdateListener
import android.app.ListFragment
import android.app.LoaderManager
import android.content.AsyncTaskLoader
import android.content.Context
import android.content.Intent
import android.content.Loader
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -24,20 +20,24 @@ import android.view.ViewGroup
import android.widget.AbsListView
import android.widget.AdapterView
import android.widget.ArrayAdapter
import androidx.fragment.app.ListFragment
import androidx.loader.app.LoaderManager
import androidx.loader.content.AsyncTaskLoader
import androidx.loader.content.Loader
import at.bitfire.davdroid.R
import kotlinx.android.synthetic.main.account_list_item.view.*
class AccountListFragment: ListFragment(), LoaderManager.LoaderCallbacks<Array<Account>> {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
listAdapter = AccountListAdapter(activity)
listAdapter = AccountListAdapter(requireActivity())
return inflater.inflate(R.layout.account_list, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
loaderManager.initLoader(0, arguments, this)
LoaderManager.getInstance(this).initLoader(0, arguments, this)
listView.choiceMode = AbsListView.CHOICE_MODE_SINGLE
listView.onItemClickListener = AdapterView.OnItemClickListener { _, _, position, _ ->
@@ -52,7 +52,7 @@ class AccountListFragment: ListFragment(), LoaderManager.LoaderCallbacks<Array<A
// loader
override fun onCreateLoader(id: Int, args: Bundle?) =
AccountLoader(activity)
AccountLoader(requireActivity())
override fun onLoadFinished(loader: Loader<Array<Account>>, accounts: Array<Account>) {
val adapter = listAdapter as AccountListAdapter
@@ -102,7 +102,7 @@ class AccountListFragment: ListFragment(), LoaderManager.LoaderCallbacks<Array<A
): ArrayAdapter<Account>(context, R.layout.account_list_item) {
override fun getView(position: Int, v: View?, parent: ViewGroup?): View {
val account = getItem(position)
val account = getItem(position)!!
val v = v ?: LayoutInflater.from(context).inflate(R.layout.account_list_item, parent, false)
v.account_name.text = account.name

View File

@@ -21,16 +21,16 @@ import android.os.Handler
import android.os.Looper
import android.provider.CalendarContract
import android.security.KeyChain
import android.support.v4.app.ActivityCompat
import android.support.v4.app.DialogFragment
import android.support.v4.app.LoaderManager
import android.support.v4.app.NavUtils
import android.support.v4.content.ContextCompat
import android.support.v4.content.Loader
import android.support.v7.app.AlertDialog
import android.support.v7.app.AppCompatActivity
import android.support.v7.preference.*
import android.view.MenuItem
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.app.NavUtils
import androidx.core.content.ContextCompat
import androidx.fragment.app.DialogFragment
import androidx.loader.app.LoaderManager
import androidx.loader.content.Loader
import androidx.preference.*
import at.bitfire.davdroid.AccountSettings
import at.bitfire.davdroid.InvalidAccountException
import at.bitfire.davdroid.R
@@ -81,8 +81,8 @@ class AccountSettingsActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
account = arguments!!.getParcelable(EXTRA_ACCOUNT)
loaderManager.initLoader(0, arguments, this)
account = arguments!!.getParcelable(EXTRA_ACCOUNT)!!
LoaderManager.getInstance(this).initLoader(0, arguments, this)
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
@@ -108,14 +108,14 @@ class AccountSettingsActivity: AppCompatActivity() {
prefUserName.text = credentials.userName
prefUserName.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue ->
accountSettings.credentials(Credentials(newValue as String, credentials.password))
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
false
}
prefPassword.isVisible = true
prefPassword.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue ->
accountSettings.credentials(Credentials(credentials.userName, newValue as String))
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
false
}
@@ -131,7 +131,7 @@ class AccountSettingsActivity: AppCompatActivity() {
KeyChain.choosePrivateKeyAlias(activity, { alias ->
accountSettings.credentials(Credentials(certificateAlias = alias))
Handler(Looper.getMainLooper()).post {
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
}
}, null, null, null, -1, credentials.certificateAlias)
true
@@ -155,7 +155,7 @@ class AccountSettingsActivity: AppCompatActivity() {
it.summary = getString(R.string.settings_sync_summary_periodically, syncIntervalContacts / 60)
it.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue ->
accountSettings.setSyncInterval(getString(R.string.address_books_authority), (newValue as String).toLong())
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
false
}
} else
@@ -172,7 +172,7 @@ class AccountSettingsActivity: AppCompatActivity() {
it.summary = getString(R.string.settings_sync_summary_periodically, syncIntervalCalendars / 60)
it.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue ->
accountSettings.setSyncInterval(CalendarContract.AUTHORITY, (newValue as String).toLong())
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
false
}
} else
@@ -189,7 +189,7 @@ class AccountSettingsActivity: AppCompatActivity() {
it.summary = getString(R.string.settings_sync_summary_periodically, syncIntervalTasks / 60)
it.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue ->
accountSettings.setSyncInterval(TaskProvider.ProviderName.OpenTasks.authority, (newValue as String).toLong())
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
false
}
} else
@@ -201,7 +201,7 @@ class AccountSettingsActivity: AppCompatActivity() {
prefWifiOnly.isChecked = accountSettings.getSyncWifiOnly()
prefWifiOnly.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, wifiOnly ->
accountSettings.setSyncWiFiOnly(wifiOnly as Boolean)
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
false
}
@@ -214,7 +214,7 @@ class AccountSettingsActivity: AppCompatActivity() {
prefWifiOnlySSIDs.setSummary(R.string.settings_sync_wifi_only_ssids_off)
prefWifiOnlySSIDs.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue ->
accountSettings.setSyncWifiOnlySSIDs((newValue as String).split(',').mapNotNull { StringUtils.trimToNull(it) }.distinct())
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
false
}
@@ -243,7 +243,7 @@ class AccountSettingsActivity: AppCompatActivity() {
.setPositiveButton(android.R.string.ok) { _, _ ->
// change group method
accountSettings.setGroupMethod(GroupMethod.valueOf(groupMethod as String))
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
// reload all contacts
val args = Bundle(1)
@@ -295,7 +295,7 @@ class AccountSettingsActivity: AppCompatActivity() {
}
}
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
false
}
} else
@@ -309,7 +309,7 @@ class AccountSettingsActivity: AppCompatActivity() {
it.isChecked = accountSettings.getManageCalendarColors()
it.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue ->
accountSettings.setManageCalendarColors(newValue as Boolean)
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
false
}
} else
@@ -324,7 +324,7 @@ class AccountSettingsActivity: AppCompatActivity() {
it.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue ->
if (newValue as Boolean) {
accountSettings.setEventColors(true)
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
} else
AlertDialog.Builder(requireActivity())
.setIcon(R.drawable.ic_error_dark)
@@ -333,7 +333,7 @@ class AccountSettingsActivity: AppCompatActivity() {
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(android.R.string.ok) { _, _ ->
accountSettings.setEventColors(false)
loaderManager.restartLoader(0, arguments, this)
LoaderManager.getInstance(this).restartLoader(0, arguments, this)
}
.show()
false

View File

@@ -14,18 +14,18 @@ import android.content.Context
import android.content.Intent
import android.content.SyncStatusObserver
import android.os.Bundle
import android.support.design.widget.NavigationView
import android.support.design.widget.Snackbar
import android.support.v4.app.LoaderManager
import android.support.v4.content.Loader
import android.support.v4.view.GravityCompat
import android.support.v7.app.ActionBarDrawerToggle
import android.support.v7.app.AppCompatActivity
import android.view.MenuItem
import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.GravityCompat
import androidx.loader.app.LoaderManager
import androidx.loader.content.Loader
import at.bitfire.davdroid.App
import at.bitfire.davdroid.R
import at.bitfire.davdroid.settings.ISettings
import at.bitfire.davdroid.ui.setup.LoginActivity
import com.google.android.material.navigation.NavigationView
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.accounts_content.*
import kotlinx.android.synthetic.main.activity_accounts.*
@@ -65,7 +65,7 @@ class AccountsActivity: AppCompatActivity(), NavigationView.OnNavigationItemSele
startService(settingsIntent)
val args = Bundle(1)
supportLoaderManager.initLoader(0, args, this)
LoaderManager.getInstance(this).initLoader(0, args, this)
}
override fun onCreateLoader(code: Int, args: Bundle?) =

View File

@@ -16,12 +16,11 @@ import android.content.ServiceConnection
import android.os.Bundle
import android.os.IBinder
import android.os.Process
import android.support.design.widget.Snackbar
import android.support.v7.app.AppCompatActivity
import android.support.v7.preference.EditTextPreference
import android.support.v7.preference.Preference
import android.support.v7.preference.PreferenceFragmentCompat
import android.support.v7.preference.SwitchPreferenceCompat
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.EditTextPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SwitchPreferenceCompat
import at.bitfire.cert4android.CustomCertManager
import at.bitfire.davdroid.App
import at.bitfire.davdroid.BuildConfig
@@ -30,6 +29,7 @@ import at.bitfire.davdroid.log.Logger
import at.bitfire.davdroid.settings.ISettings
import at.bitfire.davdroid.settings.ISettingsObserver
import at.bitfire.davdroid.settings.Settings
import com.google.android.material.snackbar.Snackbar
import java.net.URI
import java.net.URISyntaxException

View File

@@ -11,8 +11,8 @@ package at.bitfire.davdroid.ui
import android.annotation.SuppressLint
import android.app.Dialog
import android.os.Bundle
import android.support.v4.app.DialogFragment
import android.support.v7.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.appcompat.app.AlertDialog
import at.bitfire.davdroid.R
import at.bitfire.davdroid.model.CollectionInfo
import kotlinx.android.synthetic.main.collection_properties.view.*

View File

@@ -9,17 +9,17 @@
package at.bitfire.davdroid.ui
import android.accounts.Account
import android.app.LoaderManager
import android.content.AsyncTaskLoader
import android.content.Context
import android.content.Intent
import android.content.Loader
import android.os.Bundle
import android.support.v4.app.NavUtils
import android.support.v7.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
import android.widget.ArrayAdapter
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.NavUtils
import androidx.loader.app.LoaderManager
import androidx.loader.content.AsyncTaskLoader
import androidx.loader.content.Loader
import at.bitfire.davdroid.R
import at.bitfire.davdroid.model.CollectionInfo
import at.bitfire.davdroid.model.ServiceDB
@@ -45,7 +45,7 @@ class CreateAddressBookActivity: AppCompatActivity(), LoaderManager.LoaderCallba
supportActionBar?.setDisplayHomeAsUpEnabled(true)
setContentView(R.layout.activity_create_address_book)
loaderManager.initLoader(0, intent.extras, this)
LoaderManager.getInstance(this).initLoader(0, intent.extras, this)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {

View File

@@ -9,18 +9,18 @@
package at.bitfire.davdroid.ui
import android.accounts.Account
import android.app.LoaderManager
import android.content.AsyncTaskLoader
import android.content.Context
import android.content.Intent
import android.content.Loader
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.support.v4.app.NavUtils
import android.support.v7.app.AppCompatActivity
import androidx.core.app.NavUtils
import androidx.appcompat.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
import android.widget.ArrayAdapter
import androidx.loader.app.LoaderManager
import androidx.loader.content.AsyncTaskLoader
import androidx.loader.content.Loader
import at.bitfire.davdroid.R
import at.bitfire.davdroid.model.CollectionInfo
import at.bitfire.davdroid.model.ServiceDB
@@ -43,7 +43,7 @@ class CreateCalendarActivity: AppCompatActivity(), LoaderManager.LoaderCallbacks
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
account = intent.extras.getParcelable(EXTRA_ACCOUNT)
account = intent.extras.getParcelable(EXTRA_ACCOUNT)!!
supportActionBar?.setDisplayHomeAsUpEnabled(true)
@@ -56,7 +56,7 @@ class CreateCalendarActivity: AppCompatActivity(), LoaderManager.LoaderCallbacks
}).show()
}
loaderManager.initLoader(0, null, this)
LoaderManager.getInstance(this).initLoader(0, null, this)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {

View File

@@ -13,10 +13,10 @@ import android.app.Dialog
import android.app.ProgressDialog
import android.content.Context
import android.os.Bundle
import android.support.v4.app.DialogFragment
import android.support.v4.app.LoaderManager
import android.support.v4.content.AsyncTaskLoader
import android.support.v4.content.Loader
import androidx.fragment.app.DialogFragment
import androidx.loader.app.LoaderManager
import androidx.loader.content.AsyncTaskLoader
import androidx.loader.content.Loader
import at.bitfire.dav4android.DavResource
import at.bitfire.dav4android.XmlUtils
import at.bitfire.davdroid.AccountSettings
@@ -57,10 +57,10 @@ class CreateCollectionFragment: DialogFragment(), LoaderManager.LoaderCallbacks<
super.onCreate(savedInstanceState)
val args = requireNotNull(arguments)
account = args.getParcelable(ARG_ACCOUNT)
info = args.getParcelable(ARG_COLLECTION_INFO)
account = args.getParcelable(ARG_ACCOUNT)!!
info = args.getParcelable(ARG_COLLECTION_INFO)!!
loaderManager.initLoader(0, null, this)
LoaderManager.getInstance(this).initLoader(0, null, this)
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {

View File

@@ -21,15 +21,15 @@ import android.os.Bundle
import android.os.PowerManager
import android.provider.CalendarContract
import android.provider.ContactsContract
import android.support.v4.app.LoaderManager
import android.support.v4.content.AsyncTaskLoader
import android.support.v4.content.ContextCompat
import android.support.v4.content.FileProvider
import android.support.v4.content.Loader
import android.support.v7.app.AppCompatActivity
import android.util.Log
import android.view.Menu
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.core.content.FileProvider
import androidx.loader.app.LoaderManager
import androidx.loader.content.AsyncTaskLoader
import androidx.loader.content.Loader
import at.bitfire.dav4android.exception.HttpException
import at.bitfire.davdroid.AccountSettings
import at.bitfire.davdroid.BuildConfig
@@ -66,7 +66,7 @@ class DebugInfoActivity: AppCompatActivity(), LoaderManager.LoaderCallbacks<Stri
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_debug_info)
supportLoaderManager.initLoader(0, intent.extras, this)
LoaderManager.getInstance(this).initLoader(0, intent.extras, this)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {

View File

@@ -13,11 +13,11 @@ import android.app.Dialog
import android.app.ProgressDialog
import android.content.Context
import android.os.Bundle
import android.support.v4.app.DialogFragment
import android.support.v4.app.LoaderManager
import android.support.v4.content.AsyncTaskLoader
import android.support.v4.content.Loader
import android.support.v7.app.AlertDialog
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.loader.app.LoaderManager
import androidx.loader.content.AsyncTaskLoader
import androidx.loader.content.Loader
import at.bitfire.dav4android.DavResource
import at.bitfire.davdroid.AccountSettings
import at.bitfire.davdroid.HttpClient
@@ -40,10 +40,10 @@ class DeleteCollectionFragment: DialogFragment(), LoaderManager.LoaderCallbacks<
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
account = arguments!!.getParcelable(ARG_ACCOUNT)
collectionInfo = arguments!!.getParcelable(ARG_COLLECTION_INFO)
account = arguments!!.getParcelable(ARG_ACCOUNT)!!
collectionInfo = arguments!!.getParcelable(ARG_COLLECTION_INFO)!!
loaderManager.initLoader(0, null, this)
LoaderManager.getInstance(this).initLoader(0, null, this)
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {

View File

@@ -12,8 +12,8 @@ import android.accounts.Account
import android.app.Dialog
import android.content.Intent
import android.os.Bundle
import android.support.v4.app.DialogFragment
import android.support.v7.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.appcompat.app.AlertDialog
import at.bitfire.dav4android.exception.HttpException
import at.bitfire.davdroid.R
import java.io.IOException

View File

@@ -14,7 +14,7 @@ import android.app.NotificationChannelGroup
import android.app.NotificationManager
import android.content.Context
import android.os.Build
import android.support.v4.app.NotificationCompat
import androidx.core.app.NotificationCompat
import at.bitfire.davdroid.App
import at.bitfire.davdroid.R

View File

@@ -14,7 +14,7 @@ import android.content.Intent
import android.content.ServiceConnection
import android.os.Handler
import android.os.IBinder
import android.support.v4.content.AsyncTaskLoader
import androidx.loader.content.AsyncTaskLoader
import at.bitfire.davdroid.settings.ISettings
import at.bitfire.davdroid.settings.ISettingsObserver
import at.bitfire.davdroid.settings.Settings

View File

@@ -19,10 +19,10 @@ import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.PowerManager
import android.support.v4.app.DialogFragment
import android.support.v4.app.LoaderManager
import android.support.v4.content.Loader
import android.support.v7.app.AlertDialog
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.loader.app.LoaderManager
import androidx.loader.content.Loader
import at.bitfire.davdroid.App
import at.bitfire.davdroid.BuildConfig
import at.bitfire.davdroid.R
@@ -104,7 +104,7 @@ class StartupDialogFragment: DialogFragment(), LoaderManager.LoaderCallbacks<ISe
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
loaderManager.initLoader(0, null, this)
LoaderManager.getInstance(this).initLoader(0, null, this)
}
override fun onCreateLoader(code: Int, args: Bundle?) =
@@ -124,7 +124,7 @@ class StartupDialogFragment: DialogFragment(), LoaderManager.LoaderCallbacks<ISe
isCancelable = false
val activity = requireActivity()
val mode = Mode.valueOf(arguments!!.getString(ARGS_MODE))
val mode = Mode.valueOf(arguments!!.getString(ARGS_MODE)!!)
return when (mode) {
Mode.AUTOSTART_PERMISSIONS ->
AlertDialog.Builder(activity)

View File

@@ -20,13 +20,12 @@ import android.database.sqlite.SQLiteDatabase
import android.os.AsyncTask
import android.os.Bundle
import android.provider.CalendarContract
import android.support.design.widget.Snackbar
import android.support.v4.app.Fragment
import android.support.v4.app.LoaderManager
import android.support.v4.content.Loader
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.loader.app.LoaderManager
import androidx.loader.content.Loader
import at.bitfire.davdroid.*
import at.bitfire.davdroid.log.Logger
import at.bitfire.davdroid.model.ServiceDB.*
@@ -36,6 +35,7 @@ import at.bitfire.davdroid.ui.SettingsLoader
import at.bitfire.davdroid.ui.setup.AccountDetailsFragment.CreateSettings
import at.bitfire.ical4android.TaskProvider
import at.bitfire.vcard4android.GroupMethod
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.login_account_details.*
import kotlinx.android.synthetic.main.login_account_details.view.*
import java.lang.ref.WeakReference
@@ -99,7 +99,7 @@ class AccountDetailsFragment: Fragment(), LoaderManager.LoaderCallbacks<CreateSe
}
}
loaderManager.initLoader(0, null, this)
LoaderManager.getInstance(this).initLoader(0, null, this)
return v
}

View File

@@ -13,11 +13,11 @@ import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.security.KeyChain
import android.support.v4.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.CompoundButton
import androidx.fragment.app.Fragment
import at.bitfire.dav4android.Constants
import at.bitfire.davdroid.R
import kotlinx.android.synthetic.main.login_credentials_fragment.view.*

View File

@@ -14,11 +14,11 @@ import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.os.Bundle
import android.support.v4.app.DialogFragment
import android.support.v4.app.LoaderManager
import android.support.v4.content.AsyncTaskLoader
import android.support.v4.content.Loader
import android.support.v7.app.AlertDialog
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.loader.app.LoaderManager
import androidx.loader.content.AsyncTaskLoader
import androidx.loader.content.Loader
import at.bitfire.davdroid.R
import at.bitfire.davdroid.log.Logger
import at.bitfire.davdroid.ui.DebugInfoActivity
@@ -52,17 +52,17 @@ class DetectConfigurationFragment: DialogFragment(), LoaderManager.LoaderCallbac
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
loaderManager.initLoader(0, arguments, this)
LoaderManager.getInstance(this).initLoader(0, arguments, this)
}
override fun onCancel(dialog: DialogInterface?) {
Logger.log.info("Cancelling resource detection")
loaderManager.getLoader<Configuration>(0)?.cancelLoad()
LoaderManager.getInstance(this).getLoader<Configuration>(0)?.cancelLoad()
}
override fun onCreateLoader(id: Int, args: Bundle?) =
ServerConfigurationLoader(requireActivity(), args!!.getParcelable(ARG_LOGIN_CREDENTIALS))
ServerConfigurationLoader(requireActivity(), args!!.getParcelable(ARG_LOGIN_CREDENTIALS)!!)
override fun onLoadFinished(loader: Loader<Configuration>, data: Configuration?) {
data?.let {

View File

@@ -9,7 +9,7 @@
package at.bitfire.davdroid.ui.setup
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import androidx.appcompat.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
import at.bitfire.davdroid.App

View File

@@ -9,7 +9,7 @@
package at.bitfire.davdroid.ui.widget
import android.content.Context
import android.support.v7.preference.EditTextPreference
import androidx.preference.EditTextPreference
import android.util.AttributeSet
class IntEditTextPreference(

View File

@@ -16,7 +16,7 @@
android:gravity="center_horizontal"
android:descendantFocusability="blocksDescendants">
<android.support.v7.widget.CardView
<androidx.cardview.widget.CardView
style="@style/account_list_card"
android:layout_margin="8dp"
android:layout_height="wrap_content"
@@ -46,5 +46,5 @@
tools:text="Account Name"/>
</LinearLayout>
</android.support.v7.widget.CardView>
</androidx.cardview.widget.CardView>
</LinearLayout>

View File

@@ -7,7 +7,7 @@
~ http://www.gnu.org/licenses/gpl.html
-->
<android.support.design.widget.CoordinatorLayout
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
@@ -16,18 +16,18 @@
android:layout_height="match_parent"
tools:context="at.bitfire.davdroid.ui.AccountsActivity">
<android.support.design.widget.AppBarLayout
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
<androidx.appcompat.widget.Toolbar
android:theme="?attr/actionBarTheme"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"/>
</android.support.design.widget.AppBarLayout>
</com.google.android.material.appbar.AppBarLayout>
<fragment
class="at.bitfire.davdroid.ui.AccountListFragment"
@@ -38,7 +38,7 @@
app:layout_scrollFlags="scroll"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<android.support.design.widget.FloatingActionButton
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -46,4 +46,4 @@
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@drawable/ic_add_light"/>
</android.support.design.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -7,23 +7,23 @@
~ http://www.gnu.org/licenses/gpl.html
-->
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarTheme">
<android.support.v7.widget.Toolbar
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"/>
<android.support.design.widget.TabLayout
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
style="@style/tablayout"
@@ -31,12 +31,12 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</android.support.design.widget.AppBarLayout>
</com.google.android.material.appbar.AppBarLayout>
<android.support.v4.view.ViewPager
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -32,7 +32,7 @@
android:visibility="gone"
android:text="@string/account_select_collections_hint"/>
<android.support.v7.widget.CardView
<androidx.cardview.widget.CardView
android:id="@+id/carddav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -45,7 +45,7 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
<androidx.appcompat.widget.Toolbar
android:id="@+id/carddav_menu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -70,9 +70,9 @@
</LinearLayout>
</android.support.v7.widget.CardView>
</androidx.cardview.widget.CardView>
<android.support.v7.widget.CardView
<androidx.cardview.widget.CardView
android:id="@+id/caldav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -84,7 +84,7 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
<androidx.appcompat.widget.Toolbar
android:id="@+id/caldav_menu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -110,9 +110,9 @@
</LinearLayout>
</android.support.v7.widget.CardView>
</androidx.cardview.widget.CardView>
<android.support.v7.widget.CardView
<androidx.cardview.widget.CardView
android:id="@+id/webcal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -124,7 +124,7 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
<androidx.appcompat.widget.Toolbar
android:id="@+id/webcal_menu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -143,7 +143,7 @@
</LinearLayout>
</android.support.v7.widget.CardView>
</androidx.cardview.widget.CardView>
</LinearLayout>
</ScrollView>

View File

@@ -7,7 +7,7 @@
~ http://www.gnu.org/licenses/gpl.html
-->
<android.support.v4.widget.DrawerLayout
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawer_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
@@ -18,7 +18,7 @@
<include layout="@layout/accounts_content"/>
<android.support.design.widget.NavigationView
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
@@ -27,4 +27,4 @@
app:headerLayout="@layout/nav_header_accounts"
app:menu="@menu/activity_accounts_drawer"/>
</android.support.v4.widget.DrawerLayout>
</androidx.drawerlayout.widget.DrawerLayout>

View File

@@ -51,28 +51,28 @@
android:paddingBottom="16dp"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/email_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_email_address"
android:inputType="textEmailAddress"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:passwordToggleEnabled="true">
<android.support.design.widget.TextInputEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/email_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_password"
android:fontFamily="monospace"
android:inputType="textPassword"/>
</android.support.design.widget.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
<RadioButton
@@ -91,38 +91,38 @@
android:paddingBottom="16dp"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/urlpwd_base_url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_base_url"
android:inputType="textUri"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/urlpwd_user_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_user_name"
android:inputType="textEmailAddress"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:passwordToggleEnabled="true">
<android.support.design.widget.TextInputEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/urlpwd_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="monospace"
android:inputType="textPassword"
android:hint="@string/login_password"/>
</android.support.design.widget.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
<RadioButton
@@ -141,16 +141,16 @@
android:paddingBottom="16dp"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/urlcert_base_url"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_base_url"
android:inputType="textUri"/>
</android.support.design.widget.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>
<LinearLayout
android:layout_width="match_parent"

View File

@@ -8,7 +8,7 @@
buildscript {
ext.dokka_version = '0.9.17'
ext.kotlin_version = '1.3.0'
ext.kotlin_version = '1.3.10'
repositories {
jcenter()

View File

@@ -1 +1,5 @@
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
# AmbilWarna doesn't use AndroidX yet
android.enableJetifier=true