Skip to content

Commit 84aaba7

Browse files
committed
Upgraded stuff & renamed packages
1 parent 1a20867 commit 84aaba7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+557
-550
lines changed

app/build.gradle.kts

Lines changed: 36 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,38 @@ import org.jetbrains.kotlin.config.KotlinCompilerVersion
33
plugins {
44
id("com.android.application")
55
kotlin("android")
6-
kotlin("android.extensions")
76
kotlin("kapt")
7+
id("kotlin-parcelize")
88
id("androidx.navigation.safeargs")
99
id("com.akaita.android.easylauncher")
1010
}
1111

12-
androidExtensions {
13-
isExperimental = true
14-
features = setOf("views", "parcelize")
15-
}
16-
1712
android {
18-
compileSdkVersion(28)
13+
compileSdkVersion(29)
1914
defaultConfig {
20-
targetSdkVersion(28)
2115
minSdkVersion(21)
22-
applicationId = "cn.nekocode.gank"
16+
applicationId = "cn.nekocode.caka"
2317
versionCode = 1
2418
versionName = "1.0"
2519

26-
val scheme = "gank"
20+
val scheme = "caka"
2721

2822
buildConfigField("String", "SCHEME", "\"$scheme\"")
2923

30-
manifestPlaceholders = mapOf(
31-
"APPLICATION_ID" to applicationId,
24+
addManifestPlaceholders(mapOf(
25+
"APPLICATION_ID" to applicationId!!,
3226
"SCHEME" to scheme
33-
)
27+
))
3428
}
3529
buildTypes {
3630
getByName("release") {
3731
isMinifyEnabled = false
3832
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
3933
}
4034
}
35+
buildFeatures {
36+
viewBinding = true
37+
}
4138
compileOptions {
4239
sourceCompatibility = JavaVersion.VERSION_1_8
4340
targetCompatibility = JavaVersion.VERSION_1_8
@@ -52,46 +49,46 @@ dependencies {
5249
implementation(kotlin("stdlib-jdk8", KotlinCompilerVersion.VERSION))
5350

5451
// Androidx
55-
implementation("androidx.appcompat:appcompat:1.1.0")
56-
implementation("androidx.core:core-ktx:1.1.0")
57-
implementation("androidx.recyclerview:recyclerview:1.1.0-beta05")
58-
implementation("androidx.constraintlayout:constraintlayout:2.0.0-beta2")
59-
implementation("androidx.lifecycle:lifecycle-extensions:2.1.0")
52+
implementation("androidx.appcompat:appcompat:1.2.0")
53+
implementation("androidx.core:core-ktx:1.3.2")
54+
implementation("androidx.recyclerview:recyclerview:1.2.0-beta01")
55+
implementation("androidx.constraintlayout:constraintlayout:2.1.0-alpha2")
56+
implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")
6057

6158
// Navigation
62-
implementation("android.arch.navigation:navigation-fragment-ktx:1.0.0")
63-
implementation("android.arch.navigation:navigation-ui-ktx:1.0.0")
59+
implementation("androidx.navigation:navigation-fragment-ktx:2.3.3")
60+
implementation("androidx.navigation:navigation-ui-ktx:2.3.3")
6461

6562
// ReactiveX
66-
implementation("com.uber.autodispose:autodispose:1.4.0")
67-
implementation("com.uber.autodispose:autodispose-android:1.4.0")
68-
implementation("com.uber.autodispose:autodispose-android-archcomponents:1.4.0")
63+
implementation("com.uber.autodispose2:autodispose:2.0.0")
64+
implementation("com.uber.autodispose2:autodispose-android:2.0.0")
65+
implementation("com.uber.autodispose2:autodispose-androidx-lifecycle:2.0.0")
6966

7067
// Dependency injection
71-
implementation("com.google.dagger:dagger:2.24")
72-
kapt("com.google.dagger:dagger-compiler:2.24")
68+
implementation("com.google.dagger:dagger:2.31.2")
69+
kapt("com.google.dagger:dagger-compiler:2.31.2")
7370

7471
// Others
75-
implementation("com.squareup.picasso:picasso:2.71828")
72+
implementation("com.jakewharton.timber:timber:4.7.1")
7673
implementation("com.evernote:android-state:1.4.1")
7774
kapt("com.evernote:android-state-processor:1.4.1")
7875

7976
// For debugging
8077
debugImplementation("com.facebook.flipper:flipper:0.23.2")
81-
debugImplementation("com.facebook.soloader:soloader:0.8.0")
78+
debugImplementation("com.facebook.soloader:soloader:0.10.1")
8279
releaseImplementation("com.facebook.flipper:flipper-noop:0.23.2")
83-
debugImplementation("com.willowtreeapps.hyperion:hyperion-core:0.9.27")
84-
debugImplementation("com.willowtreeapps.hyperion:hyperion-attr:0.9.27")
85-
debugImplementation("com.willowtreeapps.hyperion:hyperion-build-config:0.9.27")
86-
debugImplementation("com.willowtreeapps.hyperion:hyperion-crash:0.9.27")
87-
debugImplementation("com.willowtreeapps.hyperion:hyperion-disk:0.9.27")
88-
debugImplementation("com.willowtreeapps.hyperion:hyperion-geiger-counter:0.9.27")
89-
debugImplementation("com.willowtreeapps.hyperion:hyperion-measurement:0.9.27")
90-
debugImplementation("com.willowtreeapps.hyperion:hyperion-phoenix:0.9.27")
91-
debugImplementation("com.willowtreeapps.hyperion:hyperion-recorder:0.9.27")
92-
debugImplementation("com.willowtreeapps.hyperion:hyperion-shared-preferences:0.9.27")
93-
debugImplementation("com.willowtreeapps.hyperion:hyperion-timber:0.9.27")
94-
releaseImplementation("com.willowtreeapps.hyperion:hyperion-core-no-op:0.9.27")
80+
debugImplementation("com.willowtreeapps.hyperion:hyperion-core:0.9.31")
81+
debugImplementation("com.willowtreeapps.hyperion:hyperion-attr:0.9.31")
82+
debugImplementation("com.willowtreeapps.hyperion:hyperion-build-config:0.9.31")
83+
debugImplementation("com.willowtreeapps.hyperion:hyperion-crash:0.9.31")
84+
debugImplementation("com.willowtreeapps.hyperion:hyperion-disk:0.9.31")
85+
debugImplementation("com.willowtreeapps.hyperion:hyperion-geiger-counter:0.9.31")
86+
debugImplementation("com.willowtreeapps.hyperion:hyperion-measurement:0.9.31")
87+
debugImplementation("com.willowtreeapps.hyperion:hyperion-phoenix:0.9.31")
88+
debugImplementation("com.willowtreeapps.hyperion:hyperion-recorder:0.9.31")
89+
debugImplementation("com.willowtreeapps.hyperion:hyperion-shared-preferences:0.9.31")
90+
debugImplementation("com.willowtreeapps.hyperion:hyperion-timber:0.9.31")
91+
releaseImplementation("com.willowtreeapps.hyperion:hyperion-core-no-op:0.9.31")
9592
}
9693

9794
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class.java).all {

app/src/debug/java/cn/nekocode/gank/di/module/FlipperModule.kt renamed to app/src/debug/java/cn/nekocode/caka/di/module/FlipperModule.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package cn.nekocode.gank.di.module
1+
package cn.nekocode.caka.di.module
22

33
import android.app.Application
4-
import cn.nekocode.gank.di.AppScope
4+
import cn.nekocode.caka.di.AppScope
55
import com.facebook.flipper.android.AndroidFlipperClient
66
import com.facebook.flipper.android.utils.FlipperUtils
77
import com.facebook.flipper.core.FlipperClient

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:tools="http://schemas.android.com/tools"
4-
package="cn.nekocode.gank">
4+
package="cn.nekocode.caka">
55

66
<uses-permission android:name="android.permission.INTERNET"/>
77
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
88
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
99

1010
<application
11-
android:name=".GankApplication"
11+
android:name="cn.nekocode.caka.MyApplication"
1212
android:allowBackup="true"
1313
android:icon="@mipmap/ic_launcher"
1414
android:label="@string/app_name"
@@ -18,7 +18,7 @@
1818
tools:ignore="GoogleAppIndexingWarning"
1919
>
2020
<activity
21-
android:name=".ui.MainActivity"
21+
android:name="cn.nekocode.caka.ui.MainActivity"
2222
android:launchMode="singleTop"
2323
>
2424
<intent-filter>

app/src/main/java/cn/nekocode/gank/GankApplication.kt renamed to app/src/main/java/cn/nekocode/caka/MyApplication.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414
* limitations under the License.
1515
*/
1616

17-
package cn.nekocode.gank
17+
package cn.nekocode.caka
1818

1919
import android.app.Application
2020
import androidx.lifecycle.ViewModelProvider
21-
import cn.nekocode.gank.backend.di.module.ApiModule
22-
import cn.nekocode.gank.di.component.AppComponent
23-
import cn.nekocode.gank.di.component.DaggerAppComponent
24-
import cn.nekocode.gank.di.module.AppModule
25-
import cn.nekocode.gank.di.module.FlipperModule
21+
import cn.nekocode.caka.backend.di.module.ApiModule
22+
import cn.nekocode.caka.di.component.AppComponent
23+
import cn.nekocode.caka.di.component.DaggerAppComponent
24+
import cn.nekocode.caka.di.module.AppModule
25+
import cn.nekocode.caka.di.module.FlipperModule
2626
import com.facebook.flipper.core.FlipperClient
2727
import com.google.gson.GsonBuilder
2828
import okhttp3.OkHttpClient
@@ -32,7 +32,7 @@ import javax.inject.Inject
3232
/**
3333
* @author nekocode ([email protected])
3434
*/
35-
open class GankApplication : Application() {
35+
open class MyApplication : Application() {
3636
lateinit var component: AppComponent
3737
@Inject
3838
lateinit var flipperClient: FlipperClient

app/src/main/java/cn/nekocode/gank/base/BaseActivity.kt renamed to app/src/main/java/cn/nekocode/caka/base/BaseActivity.kt

Lines changed: 7 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -14,31 +14,24 @@
1414
* limitations under the License.
1515
*/
1616

17-
package cn.nekocode.gank.base
17+
package cn.nekocode.caka.base
1818

1919
import android.os.Bundle
2020
import androidx.appcompat.app.AppCompatActivity
2121
import androidx.fragment.app.Fragment
2222
import androidx.fragment.app.FragmentActivity
2323
import androidx.lifecycle.ViewModel
24-
import androidx.lifecycle.ViewModelProviders
25-
import cn.nekocode.gank.GankApplication
26-
import cn.nekocode.gank.di.component.buildAndInject
24+
import androidx.lifecycle.ViewModelProvider
25+
import cn.nekocode.caka.MyApplication
26+
import cn.nekocode.caka.di.component.buildAndInject
2727
import com.evernote.android.state.StateSaver
28-
import com.uber.autodispose.*
29-
import com.uber.autodispose.android.lifecycle.AndroidLifecycleScopeProvider
30-
import io.reactivex.*
31-
import io.reactivex.annotations.CheckReturnValue
32-
import io.reactivex.parallel.ParallelFlowable
3328

3429
/**
3530
* @author nekocode ([email protected])
3631
*/
3732
abstract class BaseActivity : AppCompatActivity() {
38-
private val scopeProvider by lazy { AndroidLifecycleScopeProvider.from(this) }
39-
4033
override fun onCreate(savedInstanceState: Bundle?) {
41-
(application as GankApplication).component
34+
(application as MyApplication).component
4235
.newActivityComponentBuilder().buildAndInject(this)
4336
super.onCreate(savedInstanceState)
4437
StateSaver.restoreInstanceState(this, savedInstanceState)
@@ -56,35 +49,8 @@ abstract class BaseActivity : AppCompatActivity() {
5649
getViewModelProvider(this).get(modelClass)
5750

5851
fun getViewModelProvider(fragment: Fragment) =
59-
ViewModelProviders.of(fragment, (application as GankApplication).viewModelFactory)
52+
ViewModelProvider(fragment, (application as MyApplication).viewModelFactory)
6053

6154
fun getViewModelProvider(activity: FragmentActivity) =
62-
ViewModelProviders.of(activity, (application as GankApplication).viewModelFactory)
63-
64-
/**
65-
* Modified from https://github.com/uber/AutoDispose
66-
*/
67-
@CheckReturnValue
68-
fun <T> Flowable<T>.autoDisposable(): FlowableSubscribeProxy<T> =
69-
this.`as`(AutoDispose.autoDisposable(scopeProvider))
70-
71-
@CheckReturnValue
72-
fun <T> Observable<T>.autoDisposable(): ObservableSubscribeProxy<T> =
73-
this.`as`(AutoDispose.autoDisposable(scopeProvider))
74-
75-
@CheckReturnValue
76-
fun <T> Single<T>.autoDisposable(): SingleSubscribeProxy<T> =
77-
this.`as`(AutoDispose.autoDisposable(scopeProvider))
78-
79-
@CheckReturnValue
80-
fun <T> Maybe<T>.autoDisposable(): MaybeSubscribeProxy<T> =
81-
this.`as`(AutoDispose.autoDisposable(scopeProvider))
82-
83-
@CheckReturnValue
84-
fun Completable.autoDisposable(): CompletableSubscribeProxy =
85-
this.`as`(AutoDispose.autoDisposable<Any>(scopeProvider))
86-
87-
@CheckReturnValue
88-
fun <T> ParallelFlowable<T>.autoDisposable(): ParallelFlowableSubscribeProxy<T> =
89-
this.`as`(AutoDispose.autoDisposable(scopeProvider))
55+
ViewModelProvider(activity, (application as MyApplication).viewModelFactory)
9056
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/*
2+
* Copyright 2019. nekocode ([email protected])
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package cn.nekocode.caka.base
18+
19+
import android.os.Bundle
20+
import androidx.appcompat.app.AppCompatActivity
21+
import androidx.fragment.app.Fragment
22+
import androidx.fragment.app.FragmentActivity
23+
import androidx.lifecycle.ViewModel
24+
import androidx.lifecycle.ViewModelProvider
25+
import cn.nekocode.caka.MyApplication
26+
import cn.nekocode.caka.di.component.buildAndInject
27+
import com.evernote.android.state.StateSaver
28+
29+
/**
30+
* @author nekocode ([email protected])
31+
*/
32+
abstract class BaseFragment : Fragment {
33+
constructor() : super()
34+
constructor(contentLayoutId: Int) : super(contentLayoutId)
35+
36+
override fun onCreate(savedInstanceState: Bundle?) {
37+
application?.component?.newFragmentComponentBuilder()?.buildAndInject(this)
38+
super.onCreate(savedInstanceState)
39+
StateSaver.restoreInstanceState(this, savedInstanceState)
40+
}
41+
42+
override fun onSaveInstanceState(outState: Bundle) {
43+
super.onSaveInstanceState(outState)
44+
StateSaver.saveInstanceState(this, outState)
45+
}
46+
47+
val application: MyApplication?
48+
get() = context?.applicationContext as MyApplication?
49+
50+
fun setTitle(title: String) {
51+
(activity as AppCompatActivity?)?.supportActionBar?.title = title
52+
}
53+
54+
fun <T : ViewModel> getViewModel(key: String, modelClass: Class<T>) =
55+
getViewModelProvider(this).get(key, modelClass)
56+
57+
fun <T : ViewModel> getViewModel(modelClass: Class<T>) =
58+
getViewModelProvider(this).get(modelClass)
59+
60+
fun getViewModelProvider(fragment: Fragment) =
61+
ViewModelProvider(fragment, application!!.viewModelFactory)
62+
63+
fun getViewModelProvider(activity: FragmentActivity) =
64+
ViewModelProvider(activity, application!!.viewModelFactory)
65+
}

0 commit comments

Comments
 (0)