From 86f76ef08a56cd20c69d543b85d8225363c1f389 Mon Sep 17 00:00:00 2001 From: Ernest Poletaev Date: Wed, 22 Dec 2021 17:11:49 +0700 Subject: [PATCH] Update for latest build tools --- app/build.gradle | 82 +++++++++++-------- app/src/main/AndroidManifest.xml | 6 +- .../java/info/megahard/epshowcase/app/App.kt | 4 +- .../megahard/epshowcase/bio/BioFragment.kt | 7 +- .../experience/ExperienceFragment.kt | 3 +- .../megahard/epshowcase/main/MainActivity.kt | 57 +++++++------ .../epshowcase/projects/ProjectsFragment.kt | 3 +- .../epshowcase/skills/SkillsFragment.kt | 3 +- app/src/main/res/layout/activity_main.xml | 1 + app/src/main/res/layout/app_bar_main.xml | 4 +- .../main/res/menu/activity_main_drawer.xml | 48 ++++++----- app/src/main/res/values/strings.xml | 3 + app/src/main/res/xml/backup_descriptor.xml | 4 + build.gradle | 10 ++- gradle/wrapper/gradle-wrapper.properties | 2 +- 15 files changed, 141 insertions(+), 96 deletions(-) create mode 100644 app/src/main/res/xml/backup_descriptor.xml diff --git a/app/build.gradle b/app/build.gradle index dac31db..760c3ed 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,28 +1,31 @@ +plugins { + id 'com.android.application' + id 'kotlin-android' + id 'kotlin-kapt' +} + def version = "1" def milestone = "0" -def build = "0" +def build = "1" def versionNum = version.toInteger() * 10000 + milestone.toInteger() * 100 + build.toInteger() def versionText = version + "." + milestone + "." + build -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' -apply plugin: 'kotlin-kapt' - android { - compileSdkVersion 28 + compileSdkVersion 31 defaultConfig { applicationId "info.megahard.epshowcase" minSdkVersion 15 - targetSdkVersion 28 + targetSdkVersion 31 versionCode versionNum versionName versionText resValue "string", "app_version", 'v ' + versionText + multiDexEnabled true javaCompileOptions { annotationProcessorOptions { - arguments = [toothpick_registry_package_name: 'info.megahard.epshowcase.toothpick'] + arguments = [toothpick_registry_package_name: + 'info.megahard.epshowcase.toothpick'] } } } @@ -35,9 +38,14 @@ android { buildTypes { release { minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), + 'proguard-rules.pro' } } + buildFeatures { + + viewBinding true + } applicationVariants.all { variant -> variant.outputs.all { output -> def newName = name + "-" + versionText + ".apk" @@ -48,42 +56,52 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" + // Support - implementation 'androidx.appcompat:appcompat:1.0.0-beta01' - implementation 'com.google.android.material:material:1.0.0-beta01' - implementation 'androidx.legacy:legacy-support-v4:1.0.0-beta01' - implementation 'androidx.recyclerview:recyclerview:1.0.0-beta01' - implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha09' - implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha09' + implementation 'androidx.appcompat:appcompat:1.4.0' + implementation 'com.google.android.material:material:1.6.0-alpha01' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.3.0-alpha01' + implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.2' + implementation 'android.arch.navigation:navigation-fragment:1.0.0' + implementation 'android.arch.navigation:navigation-ui:1.0.0' + implementation 'androidx.fragment:fragment-ktx:1.4.0' + implementation 'androidx.multidex:multidex:2.0.1' // Toothpick implementation 'com.github.stephanenicolas.toothpick:toothpick-runtime:1.1.3' kapt "com.github.stephanenicolas.toothpick:toothpick-compiler:1.1.3" + // Timber - implementation 'com.jakewharton.timber:timber:4.7.1' + implementation 'com.jakewharton.timber:timber:5.0.1' + // Retrofit - implementation 'com.squareup.retrofit2:retrofit:2.3.0' - implementation 'com.squareup.retrofit2:converter-gson:2.3.0' - implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' + implementation 'com.squareup.retrofit2:retrofit:2.9.0' + implementation 'com.squareup.retrofit2:converter-gson:2.9.0' + implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0' + // Rx - implementation 'io.reactivex.rxjava2:rxjava:2.2.2' - implementation 'io.reactivex.rxjava2:rxandroid:2.1.0' + implementation 'io.reactivex.rxjava2:rxjava:2.2.21' + implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.0.0' + // OkHttp - implementation 'com.squareup.okhttp3:okhttp:3.12.0' + implementation 'com.squareup.okhttp3:okhttp:3.14.9' implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0' + // Glide - implementation 'com.github.bumptech.glide:glide:4.8.0' - kapt 'com.github.bumptech.glide:compiler:4.8.0' - implementation 'com.github.bumptech.glide:okhttp3-integration:4.8.0' + implementation 'com.github.bumptech.glide:glide:4.11.0' + kapt 'com.github.bumptech.glide:compiler:4.11.0' + implementation 'com.github.bumptech.glide:okhttp3-integration:4.11.0' + // FragmentWithArgs implementation 'com.hannesdorfmann.fragmentargs:annotation:3.0.2' kapt 'com.hannesdorfmann.fragmentargs:processor:3.0.2' + // Tests - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test:runner:1.4.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 04eaf6a..0aff4aa 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,12 +17,14 @@ android:theme="@style/AppTheme" android:hardwareAccelerated="true" android:networkSecurityConfig="@xml/network_security_config" - tools:ignore="GoogleAppIndexingWarning"> + tools:ignore="GoogleAppIndexingWarning" + android:fullBackupContent="@xml/backup_descriptor"> + android:theme="@style/AppTheme.NoActionBar" + android:exported="true"> diff --git a/app/src/main/java/info/megahard/epshowcase/app/App.kt b/app/src/main/java/info/megahard/epshowcase/app/App.kt index 4dafffe..69c492e 100644 --- a/app/src/main/java/info/megahard/epshowcase/app/App.kt +++ b/app/src/main/java/info/megahard/epshowcase/app/App.kt @@ -1,6 +1,7 @@ package info.megahard.epshowcase.app import android.app.Application +import androidx.multidex.MultiDexApplication import info.megahard.epshowcase.BuildConfig import timber.log.Timber import toothpick.Toothpick @@ -10,7 +11,8 @@ import toothpick.configuration.Configuration.forProduction import toothpick.registries.FactoryRegistryLocator import toothpick.registries.MemberInjectorRegistryLocator -class App : Application() { +class App : MultiDexApplication() { + override fun onCreate() { super.onCreate() diff --git a/app/src/main/java/info/megahard/epshowcase/bio/BioFragment.kt b/app/src/main/java/info/megahard/epshowcase/bio/BioFragment.kt index 35f5336..bf9e425 100644 --- a/app/src/main/java/info/megahard/epshowcase/bio/BioFragment.kt +++ b/app/src/main/java/info/megahard/epshowcase/bio/BioFragment.kt @@ -5,6 +5,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.databinding.DataBindingUtil +import androidx.fragment.app.viewModels import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import info.megahard.epshowcase.R @@ -13,14 +14,14 @@ import info.megahard.epshowcase.databinding.BioFragmentBinding class BioFragment : BaseFragment() { + private val viewModel: BioViewModel by viewModels() + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { + ): View { super.onCreateView(inflater, container, savedInstanceState) - val viewModel = ViewModelProviders.of(activity!!).get(BioViewModel::class.java) - val binding: BioFragmentBinding = DataBindingUtil.inflate(inflater, R.layout.bio_fragment, container, false) lifecycle.addObserver(viewModel) diff --git a/app/src/main/java/info/megahard/epshowcase/experience/ExperienceFragment.kt b/app/src/main/java/info/megahard/epshowcase/experience/ExperienceFragment.kt index 6f3492d..2fb0ba7 100644 --- a/app/src/main/java/info/megahard/epshowcase/experience/ExperienceFragment.kt +++ b/app/src/main/java/info/megahard/epshowcase/experience/ExperienceFragment.kt @@ -5,12 +5,13 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import info.megahard.epshowcase.R import info.megahard.epshowcase.databinding.PlaceholderFragmentBinding class ExperienceFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val binding = PlaceholderFragmentBinding.inflate(inflater) - binding.name = "Experience" + binding.name = getString(R.string.experience) return binding.root } } \ No newline at end of file diff --git a/app/src/main/java/info/megahard/epshowcase/main/MainActivity.kt b/app/src/main/java/info/megahard/epshowcase/main/MainActivity.kt index 70d0626..11ceab5 100644 --- a/app/src/main/java/info/megahard/epshowcase/main/MainActivity.kt +++ b/app/src/main/java/info/megahard/epshowcase/main/MainActivity.kt @@ -10,38 +10,41 @@ import androidx.navigation.ui.NavigationUI import com.google.android.material.navigation.NavigationView import info.megahard.epshowcase.R import info.megahard.epshowcase.base.BaseActivity -import kotlinx.android.synthetic.main.activity_main.* -import kotlinx.android.synthetic.main.app_bar_main.* -import kotlinx.android.synthetic.main.content_main.* +import info.megahard.epshowcase.databinding.ActivityMainBinding class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedListener { + private lateinit var binding: ActivityMainBinding + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + binding = ActivityMainBinding.inflate(layoutInflater) - setContentView(R.layout.activity_main) - setSupportActionBar(toolbar) + setContentView(binding.root) + setSupportActionBar(binding.appBarMain.toolbar) val toggle = ActionBarDrawerToggle( - this, drawer_layout, toolbar, + this, binding.drawerLayout, binding.appBarMain.toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close ) - drawer_layout.addDrawerListener(toggle) + binding.drawerLayout.addDrawerListener(toggle) toggle.syncState() - nav_view.setNavigationItemSelectedListener(this) + binding.navView.setNavigationItemSelectedListener(this) NavigationUI.setupWithNavController( - bottom_navigation, + binding.appBarMain.contentMain.bottomNavigation, Navigation.findNavController(this, R.id.bottom_nav_host_fragment) ) } override fun onBackPressed() { - if (drawer_layout.isDrawerOpen(GravityCompat.START)) { - drawer_layout.closeDrawer(GravityCompat.START) + if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) { + binding.drawerLayout.closeDrawer(GravityCompat.START) + } else { + super.onBackPressed() } } @@ -59,27 +62,27 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList override fun onNavigationItemSelected(item: MenuItem): Boolean { when (item.itemId) { - R.id.nav_camera -> { - // Handle the camera action - } - R.id.nav_gallery -> { - - } - R.id.nav_slideshow -> { - - } - R.id.nav_manage -> { - - } +// R.id.nav_camera -> { +// // Handle the camera action +// } +// R.id.nav_gallery -> { +// +// } +// R.id.nav_slideshow -> { +// +// } +// R.id.nav_manage -> { +// +// } R.id.nav_share -> { } - R.id.nav_send -> { - - } +// R.id.nav_send -> { +// +// } } - drawer_layout.closeDrawer(GravityCompat.START) + binding.drawerLayout.closeDrawer(GravityCompat.START) return true } } diff --git a/app/src/main/java/info/megahard/epshowcase/projects/ProjectsFragment.kt b/app/src/main/java/info/megahard/epshowcase/projects/ProjectsFragment.kt index 41c8e90..b0d2849 100644 --- a/app/src/main/java/info/megahard/epshowcase/projects/ProjectsFragment.kt +++ b/app/src/main/java/info/megahard/epshowcase/projects/ProjectsFragment.kt @@ -5,12 +5,13 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import info.megahard.epshowcase.R import info.megahard.epshowcase.databinding.PlaceholderFragmentBinding class ProjectsFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val binding = PlaceholderFragmentBinding.inflate(inflater) - binding.name = "Projects" + binding.name = getString(R.string.projects) return binding.root } } \ No newline at end of file diff --git a/app/src/main/java/info/megahard/epshowcase/skills/SkillsFragment.kt b/app/src/main/java/info/megahard/epshowcase/skills/SkillsFragment.kt index 02312ff..f8ce3f7 100644 --- a/app/src/main/java/info/megahard/epshowcase/skills/SkillsFragment.kt +++ b/app/src/main/java/info/megahard/epshowcase/skills/SkillsFragment.kt @@ -5,12 +5,13 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import info.megahard.epshowcase.R import info.megahard.epshowcase.databinding.PlaceholderFragmentBinding class SkillsFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val binding = PlaceholderFragmentBinding.inflate(inflater) - binding.name = "Skills" + binding.name = getString(R.string.skills) return binding.root } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 8e69e22..19d21dc 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -9,6 +9,7 @@ tools:openDrawer="start"> diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml index 9336597..39b53a2 100644 --- a/app/src/main/res/layout/app_bar_main.xml +++ b/app/src/main/res/layout/app_bar_main.xml @@ -20,6 +20,8 @@ - + \ No newline at end of file diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index a30626e..4305eba 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -3,24 +3,28 @@ xmlns:tools="http://schemas.android.com/tools" tools:showIn="navigation_view"> - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -28,10 +32,10 @@ android:id="@+id/nav_share" android:icon="@drawable/ic_menu_share" android:title="Share" /> - + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 12498ad..2d126ea 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -11,4 +11,7 @@ Experience Projects LinkedIn Profile + Skills + Projects + Experience diff --git a/app/src/main/res/xml/backup_descriptor.xml b/app/src/main/res/xml/backup_descriptor.xml new file mode 100644 index 0000000..6fd6103 --- /dev/null +++ b/app/src/main/res/xml/backup_descriptor.xml @@ -0,0 +1,4 @@ + + + + diff --git a/build.gradle b/build.gradle index 32fe5e5..9aa24f4 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.11' + ext.kotlin_version = '1.6.10' repositories { google() - jcenter() + mavenCentral() + //jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.3.0' + classpath 'com.android.tools.build:gradle:7.0.4' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -15,7 +16,8 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() + //jcenter() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e9850ef..89ff296 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip