From b765f177c74414fd0a590b17af8aa5046835b74c Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Wed, 6 Mar 2019 16:17:14 +0000 Subject: [PATCH] Migrate to AndroidX. --- app/build.gradle | 22 +++++++++---------- app/proguard-rules.txt | 2 +- .../SSLSocketFactoryCompatTest.java | 2 +- .../ui/setup/DavResourceFinderTest.java | 2 +- app/src/main/AndroidManifest.xml | 2 +- .../main/java/com/etesync/syncadapter/App.kt | 6 ++--- .../etesync/syncadapter/NotificationHelper.kt | 4 ++-- .../etesync/syncadapter/model/ServiceDB.java | 2 +- .../etesync/syncadapter/model/Settings.java | 2 +- .../syncadapter/SyncAdapterService.kt | 6 ++--- .../etesync/syncadapter/ui/AboutActivity.kt | 18 +++++++-------- .../etesync/syncadapter/ui/AccountActivity.kt | 8 +++---- .../syncadapter/ui/AccountListFragment.kt | 8 +++---- .../syncadapter/ui/AccountSettingsActivity.kt | 10 ++++----- .../syncadapter/ui/AccountsActivity.kt | 14 ++++++------ .../syncadapter/ui/AddMemberFragment.kt | 4 ++-- .../syncadapter/ui/AppSettingsActivity.kt | 4 ++-- .../etesync/syncadapter/ui/BaseActivity.kt | 2 +- .../ui/ChangeEncryptionPasswordActivity.kt | 4 ++-- .../ui/CollectionMembersActivity.kt | 4 ++-- .../ui/CollectionMembersListFragment.kt | 4 ++-- .../ui/CreateCollectionActivity.kt | 2 +- .../ui/CreateCollectionFragment.kt | 8 +++---- .../syncadapter/ui/DebugInfoActivity.kt | 2 +- .../ui/DeleteCollectionFragment.kt | 10 ++++----- .../syncadapter/ui/EditCollectionActivity.kt | 2 +- .../syncadapter/ui/ExceptionInfoFragment.kt | 4 ++-- .../syncadapter/ui/JournalItemActivity.kt | 10 ++++----- .../syncadapter/ui/PermissionsActivity.kt | 4 ++-- .../syncadapter/ui/RemoveMemberFragment.kt | 4 ++-- .../syncadapter/ui/StartupDialogFragment.kt | 4 ++-- .../syncadapter/ui/ViewCollectionActivity.kt | 2 +- .../etesync/syncadapter/ui/WebViewActivity.kt | 2 +- .../ui/importlocal/AccountResolver.kt | 2 +- .../ui/importlocal/ImportActivity.kt | 2 +- .../ui/importlocal/ImportFragment.kt | 2 +- .../LocalCalendarImportFragment.kt | 2 +- .../importlocal/LocalContactImportFragment.kt | 10 ++++----- .../ui/importlocal/ResultFragment.kt | 4 ++-- .../ui/journalviewer/ListEntriesFragment.kt | 2 +- .../ui/setup/DetectConfigurationFragment.kt | 10 ++++----- .../ui/setup/EncryptionDetailsFragment.kt | 4 ++-- .../setup/LoginCredentialsChangeFragment.kt | 10 ++++----- .../ui/setup/LoginCredentialsFragment.kt | 4 ++-- .../ui/setup/SetupEncryptionFragment.kt | 4 ++-- .../ui/setup/SetupUserInfoFragment.kt | 4 ++-- app/src/main/res/layout/account_list_item.xml | 4 ++-- app/src/main/res/layout/accounts_content.xml | 12 +++++----- app/src/main/res/layout/activity_about.xml | 14 ++++++------ app/src/main/res/layout/activity_account.xml | 18 +++++++-------- app/src/main/res/layout/activity_accounts.xml | 6 ++--- app/src/main/res/layout/activity_webview.xml | 4 ++-- .../res/layout/change_encryption_password.xml | 12 +++++----- .../res/layout/contact_info_item_group.xml | 4 ++-- .../layout/fragment_local_contact_import.xml | 2 +- .../res/layout/import_actions_list_item.xml | 4 ++-- .../main/res/layout/journal_item_activity.xml | 4 ++-- .../res/layout/login_credentials_fragment.xml | 6 ++--- .../res/layout/login_encryption_details.xml | 6 ++--- gradle.properties | 2 ++ 60 files changed, 172 insertions(+), 170 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1aa05fe8..d28e1d1d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -90,7 +90,7 @@ android { } defaultConfig { - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } /* @@ -132,14 +132,14 @@ dependencies { def acraVersion = '5.2.1' implementation "ch.acra:acra-mail:$acraVersion" implementation "ch.acra:acra-toast:$acraVersion" - def supportVersion = '27.1.1' - implementation "com.android.support:support-core-ui:$supportVersion" - implementation "com.android.support:support-compat:$supportVersion" - implementation "com.android.support:support-fragment:$supportVersion" - implementation "com.android.support:appcompat-v7:$supportVersion" - implementation "com.android.support:cardview-v7:$supportVersion" - implementation "com.android.support:design:$supportVersion" - implementation "com.android.support:preference-v14:$supportVersion" + def supportVersion = '1.0.0' + implementation "androidx.legacy:legacy-support-core-ui:$supportVersion" + implementation "androidx.core:core:$supportVersion" + implementation "androidx.fragment:fragment:$supportVersion" + implementation "androidx.appcompat:appcompat:$supportVersion" + implementation "androidx.cardview:cardview:$supportVersion" + implementation "com.google.android.material:material:$supportVersion" + implementation "androidx.legacy:legacy-preference-v14:$supportVersion" implementation 'com.github.yukuku:ambilwarna:2.0.1' implementation ('com.github.worker8:tourguide:1.0.17-SNAPSHOT@aar') { transitive = true @@ -167,10 +167,10 @@ dependencies { implementation project(':ical4android') implementation project(':vcard4android') // for tests - androidTestImplementation('com.android.support.test:runner:0.5') { + androidTestImplementation('androidx.test:runner:1.1.0-alpha4') { exclude group: 'com.android.support', module: 'support-annotations' } - androidTestImplementation('com.android.support.test:rules:0.5') { + androidTestImplementation('androidx.test:rules:1.1.0-alpha4') { exclude group: 'com.android.support', module: 'support-annotations' } androidTestImplementation 'junit:junit:4.12' diff --git a/app/proguard-rules.txt b/app/proguard-rules.txt index e42acfef..b981122e 100644 --- a/app/proguard-rules.txt +++ b/app/proguard-rules.txt @@ -48,7 +48,7 @@ -keep,includedescriptorclasses class com.etesync.syncadapter.** { *; } # all DAVdroid code and deps are required # Android support --keep,includedescriptorclasses class android.support.v4.content.FileProvider { *; } # all DAVdroid code and deps are required +-keep,includedescriptorclasses class androidx.core.content.FileProvider { *; } # all DAVdroid code and deps are required # gson -dontnote sun.misc.Unsafe # not available on Android diff --git a/app/src/androidTest/java/com/etesync/syncadapter/SSLSocketFactoryCompatTest.java b/app/src/androidTest/java/com/etesync/syncadapter/SSLSocketFactoryCompatTest.java index 1f41665b..5795da06 100644 --- a/app/src/androidTest/java/com/etesync/syncadapter/SSLSocketFactoryCompatTest.java +++ b/app/src/androidTest/java/com/etesync/syncadapter/SSLSocketFactoryCompatTest.java @@ -22,7 +22,7 @@ import javax.net.ssl.SSLSocket; import at.bitfire.cert4android.CustomCertManager; import okhttp3.mockwebserver.MockWebServer; -import static android.support.test.InstrumentationRegistry.getTargetContext; +import static androidx.test.InstrumentationRegistry.getTargetContext; import static junit.framework.TestCase.assertFalse; import static org.junit.Assert.assertTrue; diff --git a/app/src/androidTest/java/com/etesync/syncadapter/ui/setup/DavResourceFinderTest.java b/app/src/androidTest/java/com/etesync/syncadapter/ui/setup/DavResourceFinderTest.java index f80a0537..ae6543e8 100644 --- a/app/src/androidTest/java/com/etesync/syncadapter/ui/setup/DavResourceFinderTest.java +++ b/app/src/androidTest/java/com/etesync/syncadapter/ui/setup/DavResourceFinderTest.java @@ -22,7 +22,7 @@ import okhttp3.mockwebserver.MockResponse; import okhttp3.mockwebserver.MockWebServer; import okhttp3.mockwebserver.RecordedRequest; -import static android.support.test.InstrumentationRegistry.getTargetContext; +import static androidx.test.InstrumentationRegistry.getTargetContext; public class DavResourceFinderTest { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3a3a790b..13c0eb57 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -249,7 +249,7 @@ diff --git a/app/src/main/java/com/etesync/syncadapter/App.kt b/app/src/main/java/com/etesync/syncadapter/App.kt index 162282a8..76754325 100644 --- a/app/src/main/java/com/etesync/syncadapter/App.kt +++ b/app/src/main/java/com/etesync/syncadapter/App.kt @@ -25,9 +25,9 @@ import android.os.Process import android.os.StrictMode import android.provider.CalendarContract import android.provider.ContactsContract -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 android.util.Log import at.bitfire.cert4android.CustomCertManager import at.bitfire.ical4android.AndroidCalendar diff --git a/app/src/main/java/com/etesync/syncadapter/NotificationHelper.kt b/app/src/main/java/com/etesync/syncadapter/NotificationHelper.kt index 9f25cd4a..06e1af03 100644 --- a/app/src/main/java/com/etesync/syncadapter/NotificationHelper.kt +++ b/app/src/main/java/com/etesync/syncadapter/NotificationHelper.kt @@ -10,8 +10,8 @@ import android.database.sqlite.SQLiteException import android.net.Uri import android.os.Build 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.ical4android.CalendarStorageException import at.bitfire.vcard4android.ContactsStorageException import com.etesync.syncadapter.journalmanager.Exceptions diff --git a/app/src/main/java/com/etesync/syncadapter/model/ServiceDB.java b/app/src/main/java/com/etesync/syncadapter/model/ServiceDB.java index 05360990..50372489 100644 --- a/app/src/main/java/com/etesync/syncadapter/model/ServiceDB.java +++ b/app/src/main/java/com/etesync/syncadapter/model/ServiceDB.java @@ -14,7 +14,7 @@ import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.os.Build; -import android.support.annotation.RequiresApi; +import androidx.annotation.RequiresApi; import com.etesync.syncadapter.App; diff --git a/app/src/main/java/com/etesync/syncadapter/model/Settings.java b/app/src/main/java/com/etesync/syncadapter/model/Settings.java index 6c23032b..05e04680 100644 --- a/app/src/main/java/com/etesync/syncadapter/model/Settings.java +++ b/app/src/main/java/com/etesync/syncadapter/model/Settings.java @@ -11,7 +11,7 @@ package com.etesync.syncadapter.model; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; public class Settings { final SQLiteDatabase db; diff --git a/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncAdapterService.kt b/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncAdapterService.kt index 38184a1a..8b1037d6 100644 --- a/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncAdapterService.kt +++ b/app/src/main/java/com/etesync/syncadapter/syncadapter/SyncAdapterService.kt @@ -16,9 +16,9 @@ import android.net.ConnectivityManager import android.net.wifi.WifiManager import android.os.Bundle import android.os.IBinder -import android.support.v4.app.NotificationCompat -import android.support.v4.app.NotificationManagerCompat -import android.support.v4.util.Pair +import androidx.core.app.NotificationCompat +import androidx.core.app.NotificationManagerCompat +import androidx.core.util.Pair import com.etesync.syncadapter.* import com.etesync.syncadapter.journalmanager.Crypto import com.etesync.syncadapter.journalmanager.Exceptions diff --git a/app/src/main/java/com/etesync/syncadapter/ui/AboutActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/AboutActivity.kt index 27568791..af7c8e9c 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/AboutActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/AboutActivity.kt @@ -11,15 +11,15 @@ package com.etesync.syncadapter.ui import android.annotation.SuppressLint import android.content.Context import android.os.Bundle -import android.support.design.widget.TabLayout -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.v4.view.ViewPager -import android.support.v7.widget.Toolbar +import com.google.android.material.tabs.TabLayout +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 androidx.viewpager.widget.ViewPager +import androidx.appcompat.widget.Toolbar import android.text.Html import android.text.Spanned import android.text.util.Linkify diff --git a/app/src/main/java/com/etesync/syncadapter/ui/AccountActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/AccountActivity.kt index 7813bfec..b6ddb347 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/AccountActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/AccountActivity.kt @@ -19,10 +19,10 @@ 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.content.ContextCompat -import android.support.v7.app.AlertDialog -import android.support.v7.widget.Toolbar +import com.google.android.material.snackbar.Snackbar +import androidx.core.content.ContextCompat +import androidx.appcompat.app.AlertDialog +import androidx.appcompat.widget.Toolbar import android.text.TextUtils import android.view.* import android.widget.* diff --git a/app/src/main/java/com/etesync/syncadapter/ui/AccountListFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/AccountListFragment.kt index 5065aa0f..4df743b4 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/AccountListFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/AccountListFragment.kt @@ -15,10 +15,10 @@ import android.annotation.SuppressLint import android.content.Context import android.content.Intent import android.os.Bundle -import android.support.v4.app.ListFragment -import android.support.v4.app.LoaderManager -import android.support.v4.content.AsyncTaskLoader -import android.support.v4.content.Loader +import androidx.fragment.app.ListFragment +import androidx.loader.app.LoaderManager +import androidx.loader.content.AsyncTaskLoader +import androidx.loader.content.Loader import android.view.LayoutInflater import android.view.View import android.view.ViewGroup diff --git a/app/src/main/java/com/etesync/syncadapter/ui/AccountSettingsActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/AccountSettingsActivity.kt index 0091d928..b2c3dfc3 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/AccountSettingsActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/AccountSettingsActivity.kt @@ -15,11 +15,11 @@ import android.content.Intent import android.content.SyncStatusObserver import android.os.Bundle import android.provider.CalendarContract -import android.support.v4.app.LoaderManager -import android.support.v4.app.NavUtils -import android.support.v4.content.AsyncTaskLoader -import android.support.v4.content.Loader -import android.support.v7.preference.* +import androidx.loader.app.LoaderManager +import androidx.core.app.NavUtils +import androidx.loader.content.AsyncTaskLoader +import androidx.loader.content.Loader +import androidx.preference.* import android.text.TextUtils import android.view.MenuItem import com.etesync.syncadapter.* diff --git a/app/src/main/java/com/etesync/syncadapter/ui/AccountsActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/AccountsActivity.kt index cc36fa66..58d31e56 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/AccountsActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/AccountsActivity.kt @@ -13,13 +13,13 @@ import android.content.ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS import android.content.Intent import android.content.SyncStatusObserver import android.os.Bundle -import android.support.design.widget.FloatingActionButton -import android.support.design.widget.NavigationView -import android.support.design.widget.Snackbar -import android.support.v4.view.GravityCompat -import android.support.v4.widget.DrawerLayout -import android.support.v7.app.ActionBarDrawerToggle -import android.support.v7.widget.Toolbar +import com.google.android.material.floatingactionbutton.FloatingActionButton +import com.google.android.material.navigation.NavigationView +import com.google.android.material.snackbar.Snackbar +import androidx.core.view.GravityCompat +import androidx.drawerlayout.widget.DrawerLayout +import androidx.appcompat.app.ActionBarDrawerToggle +import androidx.appcompat.widget.Toolbar import android.view.Gravity import android.view.MenuItem import android.view.View diff --git a/app/src/main/java/com/etesync/syncadapter/ui/AddMemberFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/AddMemberFragment.kt index 4f769c23..af967545 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/AddMemberFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/AddMemberFragment.kt @@ -6,8 +6,8 @@ import android.app.ProgressDialog import android.content.Context import android.os.AsyncTask 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 android.view.LayoutInflater import android.view.View import android.widget.TextView diff --git a/app/src/main/java/com/etesync/syncadapter/ui/AppSettingsActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/AppSettingsActivity.kt index 51ee9a11..1f6140f3 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/AppSettingsActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/AppSettingsActivity.kt @@ -11,8 +11,8 @@ package com.etesync.syncadapter.ui import android.content.Intent import android.os.AsyncTask import android.os.Bundle -import android.support.design.widget.Snackbar -import android.support.v7.preference.* +import com.google.android.material.snackbar.Snackbar +import androidx.preference.* import com.etesync.syncadapter.App import com.etesync.syncadapter.R import com.etesync.syncadapter.model.ServiceDB diff --git a/app/src/main/java/com/etesync/syncadapter/ui/BaseActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/BaseActivity.kt index 92215a53..e93215b1 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/BaseActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/BaseActivity.kt @@ -1,6 +1,6 @@ package com.etesync.syncadapter.ui -import android.support.v7.app.AppCompatActivity +import androidx.appcompat.app.AppCompatActivity import android.view.MenuItem import com.etesync.syncadapter.App diff --git a/app/src/main/java/com/etesync/syncadapter/ui/ChangeEncryptionPasswordActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/ChangeEncryptionPasswordActivity.kt index 08e604ed..5c37616e 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/ChangeEncryptionPasswordActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/ChangeEncryptionPasswordActivity.kt @@ -13,8 +13,8 @@ import android.app.ProgressDialog import android.content.Context import android.content.Intent import android.os.Bundle -import android.support.design.widget.TextInputLayout -import android.support.v7.app.AlertDialog +import com.google.android.material.textfield.TextInputLayout +import androidx.appcompat.app.AlertDialog import android.view.View import com.etesync.syncadapter.AccountSettings import com.etesync.syncadapter.App diff --git a/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersActivity.kt index 7269a9f6..58922b46 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersActivity.kt @@ -4,7 +4,7 @@ import android.accounts.Account import android.content.Context import android.content.Intent import android.os.Bundle -import android.support.v7.app.AlertDialog +import androidx.appcompat.app.AlertDialog import android.text.InputType import android.view.View import android.widget.CheckBox @@ -78,7 +78,7 @@ class CollectionMembersActivity : BaseActivity(), Refreshable { if (savedInstanceState == null) { listFragment = CollectionMembersListFragment.newInstance(account, info) supportFragmentManager.beginTransaction() - .add(R.id.list_entries_container, listFragment) + .add(R.id.list_entries_container, listFragment!!) .commit() } } diff --git a/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersListFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersListFragment.kt index beb1884e..db2e5461 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersListFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersListFragment.kt @@ -3,8 +3,8 @@ package com.etesync.syncadapter.ui import android.accounts.Account import android.content.Context import android.os.Bundle -import android.support.v4.app.ListFragment -import android.support.v7.app.AlertDialog +import androidx.fragment.app.ListFragment +import androidx.appcompat.app.AlertDialog import android.view.LayoutInflater import android.view.View import android.view.ViewGroup diff --git a/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionActivity.kt index 3b9734c3..a8b33fcc 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionActivity.kt @@ -13,7 +13,7 @@ import android.content.Context import android.content.Intent import android.graphics.drawable.ColorDrawable import android.os.Bundle -import android.support.v4.app.NavUtils +import androidx.core.app.NavUtils import android.text.TextUtils import android.view.Menu import android.view.MenuItem diff --git a/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionFragment.kt index ffe34042..5bb33a53 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/CreateCollectionFragment.kt @@ -15,10 +15,10 @@ import android.content.ContentResolver import android.content.Context import android.os.Bundle import android.provider.CalendarContract -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.ical4android.TaskProvider import com.etesync.syncadapter.* import com.etesync.syncadapter.journalmanager.Crypto diff --git a/app/src/main/java/com/etesync/syncadapter/ui/DebugInfoActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/DebugInfoActivity.kt index c30db9f9..c16ee5b9 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/DebugInfoActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/DebugInfoActivity.kt @@ -23,7 +23,7 @@ import android.os.Bundle import android.os.PowerManager import android.provider.CalendarContract import android.provider.ContactsContract -import android.support.v4.content.ContextCompat +import androidx.core.content.ContextCompat import android.text.TextUtils import android.view.Menu import android.view.MenuItem diff --git a/app/src/main/java/com/etesync/syncadapter/ui/DeleteCollectionFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/DeleteCollectionFragment.kt index 2c52118f..335da8e3 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/DeleteCollectionFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/DeleteCollectionFragment.kt @@ -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.fragment.app.DialogFragment +import androidx.loader.app.LoaderManager +import androidx.loader.content.AsyncTaskLoader +import androidx.loader.content.Loader +import androidx.appcompat.app.AlertDialog import android.text.TextUtils import com.etesync.syncadapter.* import com.etesync.syncadapter.journalmanager.Crypto diff --git a/app/src/main/java/com/etesync/syncadapter/ui/EditCollectionActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/EditCollectionActivity.kt index 5e48fe49..c5d2fce7 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/EditCollectionActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/EditCollectionActivity.kt @@ -12,7 +12,7 @@ import android.accounts.Account import android.content.Context import android.content.Intent import android.os.Bundle -import android.support.v7.app.AlertDialog +import androidx.appcompat.app.AlertDialog import android.view.Menu import android.view.MenuItem import android.view.View diff --git a/app/src/main/java/com/etesync/syncadapter/ui/ExceptionInfoFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/ExceptionInfoFragment.kt index 462c50c4..ab44b2f1 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/ExceptionInfoFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/ExceptionInfoFragment.kt @@ -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 com.etesync.syncadapter.Constants import com.etesync.syncadapter.R import com.etesync.syncadapter.journalmanager.Exceptions.HttpException diff --git a/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.kt index dce81780..4030e390 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.kt @@ -4,11 +4,11 @@ import android.accounts.Account import android.content.Context import android.content.Intent import android.os.Bundle -import android.support.design.widget.TabLayout -import android.support.v4.app.Fragment -import android.support.v4.app.FragmentManager -import android.support.v4.app.FragmentPagerAdapter -import android.support.v4.view.ViewPager +import com.google.android.material.tabs.TabLayout +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentPagerAdapter +import androidx.viewpager.widget.ViewPager import android.text.format.DateFormat import android.text.format.DateUtils import android.text.format.Time diff --git a/app/src/main/java/com/etesync/syncadapter/ui/PermissionsActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/PermissionsActivity.kt index 61ec0b4a..a81524e3 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/PermissionsActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/PermissionsActivity.kt @@ -12,8 +12,8 @@ import android.Manifest import android.app.Activity import android.content.pm.PackageManager import android.os.Bundle -import android.support.v4.app.ActivityCompat -import android.support.v4.app.NotificationManagerCompat +import androidx.core.app.ActivityCompat +import androidx.core.app.NotificationManagerCompat import android.view.View import com.etesync.syncadapter.Constants diff --git a/app/src/main/java/com/etesync/syncadapter/ui/RemoveMemberFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/RemoveMemberFragment.kt index 66db9456..e3e82e06 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/RemoveMemberFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/RemoveMemberFragment.kt @@ -5,8 +5,8 @@ import android.app.Dialog import android.app.ProgressDialog import android.os.AsyncTask 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 com.etesync.syncadapter.* import com.etesync.syncadapter.journalmanager.JournalManager import com.etesync.syncadapter.model.CollectionInfo diff --git a/app/src/main/java/com/etesync/syncadapter/ui/StartupDialogFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/StartupDialogFragment.kt index d03dbebb..61d9e843 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/StartupDialogFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/StartupDialogFragment.kt @@ -17,8 +17,8 @@ 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.v7.app.AlertDialog +import androidx.fragment.app.DialogFragment +import androidx.appcompat.app.AlertDialog import com.etesync.syncadapter.BuildConfig import com.etesync.syncadapter.Constants import com.etesync.syncadapter.R diff --git a/app/src/main/java/com/etesync/syncadapter/ui/ViewCollectionActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/ViewCollectionActivity.kt index bdd1f408..bb2fe672 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/ViewCollectionActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/ViewCollectionActivity.kt @@ -15,7 +15,7 @@ import android.os.AsyncTask import android.os.Bundle import android.provider.CalendarContract import android.provider.ContactsContract -import android.support.v7.app.AlertDialog +import androidx.appcompat.app.AlertDialog import android.view.Gravity import android.view.Menu import android.view.MenuItem diff --git a/app/src/main/java/com/etesync/syncadapter/ui/WebViewActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/WebViewActivity.kt index 9a27d338..fdff9703 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/WebViewActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/WebViewActivity.kt @@ -7,7 +7,7 @@ import android.content.Intent import android.net.Uri import android.os.Build import android.os.Bundle -import android.support.v7.app.ActionBar +import androidx.appcompat.app.ActionBar import android.view.KeyEvent import android.view.View import android.webkit.* diff --git a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/AccountResolver.kt b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/AccountResolver.kt index 878f1c3b..4dc06c2c 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/AccountResolver.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/AccountResolver.kt @@ -3,7 +3,7 @@ package com.etesync.syncadapter.ui.importlocal import android.content.Context import android.content.pm.PackageManager import android.graphics.drawable.Drawable -import android.support.v4.content.ContextCompat +import androidx.core.content.ContextCompat import com.etesync.syncadapter.App import com.etesync.syncadapter.R import java.util.* diff --git a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportActivity.kt b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportActivity.kt index 2cf9215f..a2174466 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportActivity.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportActivity.kt @@ -6,7 +6,7 @@ import android.content.Context import android.content.DialogInterface import android.content.Intent import android.os.Bundle -import android.support.v4.app.Fragment +import androidx.fragment.app.Fragment import android.view.* import android.widget.ImageView import android.widget.TextView diff --git a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportFragment.kt index 051b1314..38e1db07 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportFragment.kt @@ -13,7 +13,7 @@ import android.os.Build import android.os.Bundle import android.provider.CalendarContract import android.provider.ContactsContract -import android.support.v4.app.DialogFragment +import androidx.fragment.app.DialogFragment import at.bitfire.ical4android.CalendarStorageException import at.bitfire.ical4android.Event import at.bitfire.ical4android.InvalidCalendarException diff --git a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalCalendarImportFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalCalendarImportFragment.kt index 2a2a9488..175c5bce 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalCalendarImportFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalCalendarImportFragment.kt @@ -6,7 +6,7 @@ import android.content.Context import android.os.AsyncTask import android.os.Bundle import android.provider.CalendarContract -import android.support.v4.app.ListFragment +import androidx.fragment.app.ListFragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup diff --git a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalContactImportFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalContactImportFragment.kt index 60f2e38d..f0cd88a1 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalContactImportFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalContactImportFragment.kt @@ -11,9 +11,9 @@ import android.graphics.drawable.Drawable import android.os.AsyncTask import android.os.Bundle import android.provider.ContactsContract -import android.support.v4.app.Fragment -import android.support.v7.widget.LinearLayoutManager -import android.support.v7.widget.RecyclerView +import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import android.util.Log import android.view.LayoutInflater import android.view.View @@ -253,7 +253,7 @@ class LocalContactImportFragment : Fragment() { a.recycle() } - override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State?) { + override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { drawVertical(c, parent) } @@ -273,7 +273,7 @@ class LocalContactImportFragment : Fragment() { } } - override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State?) { + override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) { outRect.set(0, 0, 0, mDivider!!.intrinsicHeight) } diff --git a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ResultFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ResultFragment.kt index 50edeb70..178a779b 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ResultFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ResultFragment.kt @@ -3,8 +3,8 @@ package com.etesync.syncadapter.ui.importlocal import android.app.Dialog import android.content.DialogInterface 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 com.etesync.syncadapter.R import java.io.Serializable diff --git a/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.kt index 590c0d39..1b733025 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.kt @@ -11,7 +11,7 @@ package com.etesync.syncadapter.ui.journalviewer import android.accounts.Account import android.content.Context import android.os.Bundle -import android.support.v4.app.ListFragment +import androidx.fragment.app.ListFragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup diff --git a/app/src/main/java/com/etesync/syncadapter/ui/setup/DetectConfigurationFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/setup/DetectConfigurationFragment.kt index dc399b31..1138bb92 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/setup/DetectConfigurationFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/setup/DetectConfigurationFragment.kt @@ -13,11 +13,11 @@ import android.app.ProgressDialog import android.content.Context 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.fragment.app.DialogFragment +import androidx.loader.app.LoaderManager +import androidx.loader.content.AsyncTaskLoader +import androidx.loader.content.Loader +import androidx.appcompat.app.AlertDialog import com.etesync.syncadapter.App import com.etesync.syncadapter.R import com.etesync.syncadapter.ui.DebugInfoActivity diff --git a/app/src/main/java/com/etesync/syncadapter/ui/setup/EncryptionDetailsFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/setup/EncryptionDetailsFragment.kt index eee8a2e9..4c1a3071 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/setup/EncryptionDetailsFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/setup/EncryptionDetailsFragment.kt @@ -9,8 +9,8 @@ package com.etesync.syncadapter.ui.setup import android.os.Bundle -import android.support.design.widget.TextInputLayout -import android.support.v4.app.Fragment +import com.google.android.material.textfield.TextInputLayout +import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup diff --git a/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsChangeFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsChangeFragment.kt index ac11ee67..f84503d2 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsChangeFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsChangeFragment.kt @@ -14,11 +14,11 @@ import android.app.ProgressDialog import android.content.Context 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.fragment.app.DialogFragment +import androidx.loader.app.LoaderManager +import androidx.loader.content.AsyncTaskLoader +import androidx.loader.content.Loader +import androidx.appcompat.app.AlertDialog import com.etesync.syncadapter.AccountSettings import com.etesync.syncadapter.App import com.etesync.syncadapter.InvalidAccountException diff --git a/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsFragment.kt index fc8361c4..f347879a 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/setup/LoginCredentialsFragment.kt @@ -9,8 +9,8 @@ package com.etesync.syncadapter.ui.setup import android.os.Bundle -import android.support.design.widget.TextInputLayout -import android.support.v4.app.Fragment +import com.google.android.material.textfield.TextInputLayout +import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup diff --git a/app/src/main/java/com/etesync/syncadapter/ui/setup/SetupEncryptionFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/setup/SetupEncryptionFragment.kt index 3f54cb02..7d18e94f 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/setup/SetupEncryptionFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/setup/SetupEncryptionFragment.kt @@ -18,8 +18,8 @@ import android.content.Context import android.os.AsyncTask import android.os.Bundle import android.provider.CalendarContract -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.ical4android.TaskProvider import com.etesync.syncadapter.* import com.etesync.syncadapter.journalmanager.Crypto diff --git a/app/src/main/java/com/etesync/syncadapter/ui/setup/SetupUserInfoFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/setup/SetupUserInfoFragment.kt index c36a11af..d5230696 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/setup/SetupUserInfoFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/setup/SetupUserInfoFragment.kt @@ -6,8 +6,8 @@ import android.app.ProgressDialog import android.content.Context import android.os.AsyncTask 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 com.etesync.syncadapter.* import com.etesync.syncadapter.Constants.KEY_ACCOUNT import com.etesync.syncadapter.journalmanager.Constants diff --git a/app/src/main/res/layout/account_list_item.xml b/app/src/main/res/layout/account_list_item.xml index a6407d19..3c22bbab 100644 --- a/app/src/main/res/layout/account_list_item.xml +++ b/app/src/main/res/layout/account_list_item.xml @@ -8,7 +8,7 @@ android:gravity="center_horizontal" android:descendantFocusability="blocksDescendants"> - - + \ No newline at end of file diff --git a/app/src/main/res/layout/accounts_content.xml b/app/src/main/res/layout/accounts_content.xml index 1a7b80b2..8a6dfce5 100644 --- a/app/src/main/res/layout/accounts_content.xml +++ b/app/src/main/res/layout/accounts_content.xml @@ -7,7 +7,7 @@ ~ http://www.gnu.org/licenses/gpl.html --> - - - - + - - + diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index 3f4c65fa..ef7b8067 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -7,24 +7,24 @@ ~ http://www.gnu.org/licenses/gpl.html --> - - - - - + - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_account.xml b/app/src/main/res/layout/activity_account.xml index 4762dceb..c0fd28f5 100644 --- a/app/src/main/res/layout/activity_account.xml +++ b/app/src/main/res/layout/activity_account.xml @@ -19,7 +19,7 @@ android:layout_height="wrap_content" android:padding="@dimen/activity_margin"> - - - + - - - + - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_accounts.xml b/app/src/main/res/layout/activity_accounts.xml index f909cd84..ee2c6923 100644 --- a/app/src/main/res/layout/activity_accounts.xml +++ b/app/src/main/res/layout/activity_accounts.xml @@ -7,7 +7,7 @@ ~ http://www.gnu.org/licenses/gpl.html --> - - - + diff --git a/app/src/main/res/layout/activity_webview.xml b/app/src/main/res/layout/activity_webview.xml index 64985b5e..fbbd5984 100644 --- a/app/src/main/res/layout/activity_webview.xml +++ b/app/src/main/res/layout/activity_webview.xml @@ -1,5 +1,5 @@ - - + diff --git a/app/src/main/res/layout/change_encryption_password.xml b/app/src/main/res/layout/change_encryption_password.xml index bb853a35..ef4e6183 100644 --- a/app/src/main/res/layout/change_encryption_password.xml +++ b/app/src/main/res/layout/change_encryption_password.xml @@ -36,31 +36,31 @@ android:layout_width="match_parent" android:layout_height="wrap_content"/> - - - + - - - + - @@ -40,4 +40,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_local_contact_import.xml b/app/src/main/res/layout/fragment_local_contact_import.xml index b27bfb87..9e5278c9 100644 --- a/app/src/main/res/layout/fragment_local_contact_import.xml +++ b/app/src/main/res/layout/fragment_local_contact_import.xml @@ -1,5 +1,5 @@ - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/journal_item_activity.xml b/app/src/main/res/layout/journal_item_activity.xml index 97e113ab..1d6a0fd7 100644 --- a/app/src/main/res/layout/journal_item_activity.xml +++ b/app/src/main/res/layout/journal_item_activity.xml @@ -5,7 +5,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical"> - - - - - + - - - +