feat : gradle ,modules
This commit is contained in:
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
6
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
6
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
#Thu Aug 09 10:54:29 CST 2018
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
|
53
modules/module_base.gradle
Normal file
53
modules/module_base.gradle
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* 文件说明:module的基础配置
|
||||
*/
|
||||
apply plugin: "com.android.library"
|
||||
apply plugin: "org.jetbrains.kotlin.android"
|
||||
apply plugin: "kotlin-android"
|
||||
apply plugin: "kotlin-kapt"
|
||||
apply plugin: "com.alibaba.arouter"
|
||||
|
||||
android {
|
||||
compileSdkVersion COMPILE_SDK_VERSION.toInteger()
|
||||
defaultConfig {
|
||||
minSdkVersion MIN_SDK_VERSION.toInteger()
|
||||
targetSdkVersion TARGET_SDK_VERSION.toInteger()
|
||||
versionCode 1
|
||||
versionName "1.0.0"
|
||||
consumerProguardFiles 'proguard-rules.pro'
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled true
|
||||
zipAlignEnabled true
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
debug {
|
||||
debuggable true
|
||||
minifyEnabled false
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_11
|
||||
targetCompatibility JavaVersion.VERSION_11
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = '11'
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.google.android.material:material:1.6.1'
|
||||
implementation 'androidx.core:core-ktx:1.9.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.6.1'
|
||||
|
||||
// aRouter
|
||||
api 'com.alibaba:arouter-api:1.4.0'
|
||||
api 'com.alibaba:arouter-annotation:1.0.6'
|
||||
kapt 'com.alibaba:arouter-compiler:1.5.2'
|
||||
}
|
||||
|
1
modules/module_base/.gitignore
vendored
Normal file
1
modules/module_base/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/build
|
11
modules/module_base/build.gradle
Normal file
11
modules/module_base/build.gradle
Normal file
@@ -0,0 +1,11 @@
|
||||
apply from: "../module_base.gradle"
|
||||
|
||||
android {
|
||||
namespace 'com.example.module_base'
|
||||
}
|
||||
|
||||
kapt {
|
||||
arguments {
|
||||
arg("AROUTER_MODULE_NAME", project.getName())
|
||||
}
|
||||
}
|
0
modules/module_base/consumer-rules.pro
Normal file
0
modules/module_base/consumer-rules.pro
Normal file
21
modules/module_base/proguard-rules.pro
vendored
Normal file
21
modules/module_base/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
4
modules/module_base/src/main/AndroidManifest.xml
Normal file
4
modules/module_base/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
</manifest>
|
@@ -0,0 +1,9 @@
|
||||
package com.example.module_base.config
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 16:01
|
||||
* Desc:
|
||||
**/
|
||||
object RouterPath {
|
||||
const val GOOGLE_SERVICE = "/google/service"
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 20:55
|
||||
* Desc:
|
||||
**/
|
||||
interface IAccountIdentifiers {
|
||||
|
||||
fun getObfuscatedAccountId(): String?
|
||||
|
||||
fun getObfuscatedProfileId(): String?
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 20:20
|
||||
* Desc:
|
||||
**/
|
||||
interface IBillingResult {
|
||||
fun getResponseCode(): Int
|
||||
|
||||
fun isResponseOk(): Boolean
|
||||
}
|
@@ -0,0 +1,34 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 17:44
|
||||
* Desc:支付
|
||||
**/
|
||||
@Deprecated("逐步迁移到IBillingService2")
|
||||
interface IBillingService {
|
||||
fun setLogEnabled(enabled: Boolean)
|
||||
|
||||
fun isServiceConnected(): Boolean
|
||||
|
||||
fun onQueryPurchases()
|
||||
|
||||
fun querySkuDetailsAsync(
|
||||
productIdList: List<String>,
|
||||
listener: IBillingService.ProductDetailsResponseListener
|
||||
)
|
||||
|
||||
fun consumeAsync(purchaseToken: String)
|
||||
|
||||
fun initiatePurchaseFlow(productDetails: IProductDetails, recordId: String)
|
||||
|
||||
fun destroy()
|
||||
|
||||
interface Listener {
|
||||
fun onBillingClientSetupFinished()
|
||||
fun onPurchasesUpdated(purchases: List<IPurchase>)
|
||||
fun onConsumeFinished(token: String?, result: Int)
|
||||
fun onFailedHandle(result: Int)
|
||||
}
|
||||
|
||||
interface ProductDetailsResponseListener : OnProductDetailsResponseListener
|
||||
}
|
@@ -0,0 +1,31 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 17:44
|
||||
* Desc:支付
|
||||
**/
|
||||
interface IBillingService2 {
|
||||
|
||||
fun setLogEnabled(enabled: Boolean)
|
||||
|
||||
fun startConnection(listener: OnBillingClientStateListener)
|
||||
|
||||
fun isServiceConnected(): Boolean
|
||||
|
||||
fun queryPurchases(listener: OnPurchasesResponseListener)
|
||||
|
||||
fun querySkuDetailsAsync(
|
||||
productIdList: List<String>,
|
||||
listener: OnProductDetailsResponseListener
|
||||
)
|
||||
|
||||
fun consumeAsync(purchaseToken: String, listener: OnConsumeResponseListener)
|
||||
|
||||
fun launchBillingFlow(productDetails: IProductDetails, recordId: String)
|
||||
|
||||
fun destroy()
|
||||
|
||||
interface Listener {
|
||||
fun onPurchasesUpdated(billingResult: IBillingResult, purchases: List<IPurchase>?)
|
||||
}
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 21:06
|
||||
* Desc:
|
||||
**/
|
||||
interface IOneTimePurchaseOfferDetails {
|
||||
fun getPriceAmountMicros(): Long
|
||||
|
||||
fun getFormattedPrice(): String
|
||||
|
||||
fun getPriceCurrencyCode(): String
|
||||
}
|
@@ -0,0 +1,14 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 20:17
|
||||
* Desc:
|
||||
**/
|
||||
interface IProductDetails {
|
||||
|
||||
fun getData(): Any
|
||||
|
||||
fun getProductId(): String
|
||||
|
||||
fun getOneTimePurchaseOfferDetails(): IOneTimePurchaseOfferDetails?
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 19:22
|
||||
* Desc:
|
||||
**/
|
||||
interface IPurchase {
|
||||
|
||||
fun getData(): Any
|
||||
|
||||
fun getPurchaseState(): Int
|
||||
|
||||
fun isPurchasedState(): Boolean
|
||||
|
||||
fun getAccountIdentifiers(): IAccountIdentifiers?
|
||||
fun getProducts(): List<String>
|
||||
|
||||
fun getPackageName(): String
|
||||
|
||||
fun getPurchaseToken(): String
|
||||
|
||||
fun getOrderId(): String?
|
||||
}
|
@@ -0,0 +1,5 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
interface OnBillingClientStateListener {
|
||||
fun onBillingSetupFinished(billingResult: IBillingResult)
|
||||
}
|
@@ -0,0 +1,8 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
interface OnConsumeResponseListener {
|
||||
fun onConsumeResponse(
|
||||
billingResult: IBillingResult,
|
||||
purchaseToken: String
|
||||
)
|
||||
}
|
@@ -0,0 +1,8 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
interface OnProductDetailsResponseListener {
|
||||
fun onProductDetailsResponse(
|
||||
billingResult: IBillingResult,
|
||||
productDetails: List<IProductDetails>
|
||||
)
|
||||
}
|
@@ -0,0 +1,5 @@
|
||||
package com.example.module_base.support.billing
|
||||
|
||||
interface OnPurchasesResponseListener {
|
||||
fun onQueryPurchasesResponse(billingResult: IBillingResult, purchases: List<IPurchase>)
|
||||
}
|
@@ -0,0 +1,50 @@
|
||||
package com.example.module_base.support.google
|
||||
|
||||
import android.app.Activity
|
||||
import com.alibaba.android.arouter.facade.template.IProvider
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.example.module_base.support.billing.IBillingService
|
||||
import com.example.module_base.support.billing.IBillingService2
|
||||
import com.example.module_base.support.login.ILoginService
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 15:30
|
||||
* Desc:google服务
|
||||
**/
|
||||
interface IGoogleService : IProvider {
|
||||
companion object {
|
||||
val instance: IGoogleService? by lazy {
|
||||
ARouter.getInstance().navigation(IGoogleService::class.java)
|
||||
}
|
||||
|
||||
fun newLoginService(): ILoginService? {
|
||||
return instance?.newLoginService()
|
||||
}
|
||||
|
||||
fun newBillingService(
|
||||
activity: Activity,
|
||||
listener: IBillingService.Listener
|
||||
): IBillingService? {
|
||||
return instance?.newBillingService(activity, listener)
|
||||
}
|
||||
|
||||
fun newBillingService2(
|
||||
activity: Activity,
|
||||
listener: IBillingService2.Listener
|
||||
): IBillingService2? {
|
||||
return instance?.newBillingService2(activity, listener)
|
||||
}
|
||||
}
|
||||
|
||||
fun newLoginService(): ILoginService
|
||||
|
||||
fun newBillingService(
|
||||
activity: Activity,
|
||||
listener: IBillingService.Listener
|
||||
): IBillingService
|
||||
|
||||
fun newBillingService2(
|
||||
activity: Activity,
|
||||
listener: IBillingService2.Listener
|
||||
): IBillingService2
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
package com.example.module_base.support.login
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 15:52
|
||||
* Desc:登录服务
|
||||
**/
|
||||
interface ILoginService {
|
||||
|
||||
fun login(activity: Activity, listener: Listener)
|
||||
|
||||
fun logout()
|
||||
|
||||
fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)
|
||||
|
||||
interface Listener {
|
||||
fun onSuccess(platformInfo: PlatformInfo)
|
||||
fun onFailure(exception: LoginSDKException)
|
||||
}
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
package com.example.module_base.support.login
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 17:06
|
||||
* Desc:登录SDK-异常
|
||||
**/
|
||||
class LoginSDKException : Exception {
|
||||
private var code: Int = -1
|
||||
|
||||
fun getCode(): Int {
|
||||
return code
|
||||
}
|
||||
|
||||
constructor(code: Int) : super() {
|
||||
this.code = code
|
||||
}
|
||||
|
||||
constructor(code: Int, cause: Throwable?) : super(cause) {
|
||||
this.code = code
|
||||
}
|
||||
}
|
@@ -0,0 +1,8 @@
|
||||
package com.example.module_base.support.login
|
||||
|
||||
/**
|
||||
* Created by Max on 2023/11/22 15:45
|
||||
* Desc:第三方平台信息
|
||||
**/
|
||||
data class PlatformInfo(val id: String, var name: String?, var gender: Int?, var avatar: String?) {
|
||||
}
|
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="#FFFFFF" android:state_pressed="true" />
|
||||
<item android:color="#FFFFFF" android:state_focused="true" />
|
||||
<item android:color="#FFFFFF" android:state_enabled="true" />
|
||||
<item android:color="#FFFFFF" android:state_enabled="false" />
|
||||
</selector>
|
@@ -0,0 +1,13 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:width="18dp"
|
||||
android:height="18dp"
|
||||
android:viewportWidth="18"
|
||||
android:viewportHeight="18">
|
||||
<path
|
||||
android:pathData="M6.97,14.834C6.677,14.541 6.677,14.066 6.97,13.773L11.742,9.001L6.97,4.227C6.677,3.934 6.677,3.459 6.97,3.166C7.263,2.873 7.737,2.873 8.03,3.166L13.334,8.47L13.334,8.47C13.627,8.763 13.627,9.237 13.334,9.53L8.03,14.834C7.737,15.127 7.263,15.127 6.97,14.834Z"
|
||||
android:strokeWidth="0.2"
|
||||
android:fillColor="#1E1E1F"
|
||||
android:strokeColor="#1E1E1F"
|
||||
android:fillType="evenOdd"/>
|
||||
</vector>
|
@@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="9dp"
|
||||
android:height="9dp"
|
||||
android:viewportWidth="9"
|
||||
android:viewportHeight="9">
|
||||
<path
|
||||
android:pathData="M2.5158,7.0939L6.5158,3.7124L7,4.2851L6.524,4.8647L2.524,1.5796L3.476,0.4204L7.476,3.7055Q7.5287,3.7488 7.5728,3.8009Q7.6205,3.8573 7.6562,3.922Q7.692,3.9866 7.7144,4.057Q7.7369,4.1273 7.7452,4.2007Q7.7536,4.2741 7.7474,4.3477Q7.7412,4.4213 7.7208,4.4923Q7.7004,4.5633 7.6665,4.629Q7.6327,4.6946 7.5866,4.7524Q7.5406,4.8102 7.4842,4.8579L3.4842,8.2394L2.5158,7.0939ZM3.75,7.6667Q3.75,7.7405 3.7356,7.813Q3.7212,7.8854 3.6929,7.9537Q3.6646,8.0219 3.6236,8.0833Q3.5826,8.1448 3.5303,8.197Q3.4781,8.2492 3.4167,8.2903Q3.3553,8.3313 3.287,8.3596Q3.2188,8.3878 3.1463,8.4023Q3.0739,8.4167 3,8.4167Q2.9261,8.4167 2.8537,8.4023Q2.7812,8.3878 2.713,8.3596Q2.6447,8.3313 2.5833,8.2903Q2.5219,8.2492 2.4697,8.197Q2.4174,8.1448 2.3764,8.0833Q2.3354,8.0219 2.3071,7.9537Q2.2788,7.8854 2.2644,7.813Q2.25,7.7405 2.25,7.6667Q2.25,7.5928 2.2644,7.5203Q2.2788,7.4479 2.3071,7.3797Q2.3354,7.3114 2.3764,7.25Q2.4174,7.1886 2.4697,7.1363Q2.5219,7.0841 2.5833,7.0431Q2.6447,7.002 2.713,6.9738Q2.7812,6.9455 2.8537,6.9311Q2.9261,6.9167 3,6.9167Q3.0739,6.9167 3.1463,6.9311Q3.2188,6.9455 3.287,6.9738Q3.3553,7.002 3.4167,7.0431Q3.4781,7.0841 3.5303,7.1363Q3.5826,7.1886 3.6236,7.25Q3.6646,7.3114 3.6929,7.3797Q3.7212,7.4479 3.7356,7.5203Q3.75,7.5928 3.75,7.6667ZM3.75,1Q3.75,1.0739 3.7356,1.1463Q3.7212,1.2188 3.6929,1.287Q3.6646,1.3553 3.6236,1.4167Q3.5826,1.4781 3.5303,1.5303Q3.4781,1.5826 3.4167,1.6236Q3.3553,1.6646 3.287,1.6929Q3.2188,1.7212 3.1463,1.7356Q3.0739,1.75 3,1.75Q2.9261,1.75 2.8537,1.7356Q2.7812,1.7212 2.713,1.6929Q2.6447,1.6646 2.5833,1.6236Q2.5219,1.5826 2.4697,1.5303Q2.4174,1.4781 2.3764,1.4167Q2.3354,1.3553 2.3071,1.287Q2.2788,1.2188 2.2644,1.1463Q2.25,1.0739 2.25,1Q2.25,0.9261 2.2644,0.8537Q2.2788,0.7812 2.3071,0.713Q2.3354,0.6447 2.3764,0.5833Q2.4174,0.5219 2.4697,0.4697Q2.5219,0.4174 2.5833,0.3764Q2.6447,0.3354 2.713,0.3071Q2.7812,0.2788 2.8537,0.2644Q2.9261,0.25 3,0.25Q3.0739,0.25 3.1463,0.2644Q3.2188,0.2788 3.287,0.3071Q3.3553,0.3354 3.4167,0.3764Q3.4781,0.4174 3.5303,0.4697Q3.5826,0.5219 3.6236,0.5833Q3.6646,0.6447 3.6929,0.713Q3.7212,0.7812 3.7356,0.8537Q3.75,0.9261 3.75,1Z"
|
||||
android:fillColor="#F1F1FA"/>
|
||||
</vector>
|
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<gradient
|
||||
android:startColor="#e29030"
|
||||
android:endColor="#fcc074" />
|
||||
|
||||
<corners android:radius="25dp" />
|
||||
</shape>
|
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<gradient
|
||||
android:startColor="#4DE29030"
|
||||
android:endColor="#4DFCC074" />
|
||||
|
||||
<corners android:radius="25dp" />
|
||||
</shape>
|
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:drawable="@drawable/base_shape_theme_15dp" android:state_pressed="true" />
|
||||
<item android:drawable="@drawable/base_shape_theme_15dp" android:state_focused="true" />
|
||||
<item android:drawable="@drawable/base_shape_theme_15dp" android:state_enabled="true" />
|
||||
<item android:drawable="@drawable/base_shape_e6e6e6_15dp" android:state_enabled="false" />
|
||||
|
||||
</selector>
|
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@drawable/base_shape_theme_24dp" android:state_pressed="true" />
|
||||
<item android:drawable="@drawable/base_shape_theme_24dp" android:state_focused="true" />
|
||||
<item android:drawable="@drawable/base_shape_theme_24dp" android:state_enabled="true" />
|
||||
<item android:drawable="@drawable/base_shape_theme_unselected_24dp" android:state_enabled="false" />
|
||||
|
||||
</selector>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@drawable/base_e29030_fcc974_draw" android:state_enabled="true" />
|
||||
<item android:drawable="@drawable/base_e29030_fcc974_t30_draw" android:state_enabled="false" />
|
||||
|
||||
</selector>
|
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
<item android:state_pressed="true">
|
||||
<shape>
|
||||
<gradient android:startColor="#E29030" android:endColor="#FCC074" />
|
||||
<corners android:radius="30dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item android:state_focused="true">
|
||||
<shape>
|
||||
<gradient android:startColor="#E29030" android:endColor="#FCC074" />
|
||||
<corners android:radius="30dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item android:state_enabled="true">
|
||||
<shape>
|
||||
<gradient android:startColor="#E29030" android:endColor="#FCC074" />
|
||||
<corners android:radius="30dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<item android:state_enabled="false">
|
||||
<shape>
|
||||
<gradient android:startColor="#80E29030" android:endColor="#80FCC074" />
|
||||
<corners android:radius="30dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
</selector>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#00757B" />
|
||||
<corners android:radius="8dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#190B032D" />
|
||||
<corners android:radius="14dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#1E1E1F" />
|
||||
<corners android:radius="8dp" />
|
||||
</shape>
|
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#2D1E4D" />
|
||||
<corners
|
||||
android:bottomLeftRadius="0dp"
|
||||
android:bottomRightRadius="0dp"
|
||||
android:topLeftRadius="12dp"
|
||||
android:topRightRadius="12dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#33FFFFFF" />
|
||||
<corners android:radius="9dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#4DCDCDCD" />
|
||||
<corners android:radius="9dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#66FFFFFF" />
|
||||
<corners android:radius="13.5dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#04d5c6"/>
|
||||
<corners android:radius="299dp"/>
|
||||
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#CBFF00" />
|
||||
<corners android:radius="23dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#ccffffff" />
|
||||
<corners android:radius="8dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#E6E6E6" />
|
||||
<corners android:radius="15dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#E6E6E6" />
|
||||
<corners android:radius="26dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#E6E6E6" />
|
||||
<corners android:radius="30dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#F3F5FA" />
|
||||
<corners android:radius="26dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#F7F7F7" />
|
||||
<corners android:radius="10dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#F7F7F7" />
|
||||
<corners android:radius="25dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#F7F7F7" />
|
||||
<corners android:radius="8dp" />
|
||||
</shape>
|
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#F7F7F7" />
|
||||
<stroke
|
||||
android:width="1dp"
|
||||
android:color="#1E1E1F" />
|
||||
<corners android:radius="8dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#FFEE00" />
|
||||
<corners android:radius="23dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#FFFDAA" />
|
||||
<corners android:radius="23dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#FFFFFF" />
|
||||
<corners android:radius="12dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#FFFFFF" />
|
||||
<corners android:radius="15.5dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#FFFFFF" />
|
||||
<corners android:radius="16dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#FFFFFF" />
|
||||
<corners android:radius="26dp" />
|
||||
</shape>
|
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#ffffff" />
|
||||
<stroke
|
||||
android:width="1dp"
|
||||
android:color="#1E1E1F" />
|
||||
<corners android:radius="22dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#FFFFFF" />
|
||||
<corners android:radius="12dp" />
|
||||
</shape>
|
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#ffffff" />
|
||||
<corners
|
||||
android:topLeftRadius="16dp"
|
||||
android:topRightRadius="16dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/base_color_positive_bg" />
|
||||
<corners android:radius="30dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/base_color_positive_bg" />
|
||||
<corners android:radius="26dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/base_color_positive_bg" />
|
||||
<corners android:radius="30dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/base_color_positive_bg" />
|
||||
<corners android:radius="5dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="15dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="19dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="26dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="30dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="5dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="13dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="15dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="19dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="20dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#ffa018"/>
|
||||
<corners android:radius="299dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="24dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="26dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="30dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#57E193" android:endColor="#14D2A6"/>
|
||||
<corners android:radius="8dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#A5EEC8" android:endColor="#ABF5E3"/>
|
||||
<corners android:radius="24dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#A5EEC8" android:endColor="#ABF5E3"/>
|
||||
<corners android:radius="26dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#00444a"/>
|
||||
<corners android:radius="299dp" />
|
||||
</shape>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#ffa018"/>
|
||||
<corners android:radius="299dp" />
|
||||
</shape>
|
17
modules/module_base/src/main/res/values/colors.xml
Normal file
17
modules/module_base/src/main/res/values/colors.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!--主题色-->
|
||||
<color name="base_color_theme">#718CFF</color>
|
||||
|
||||
<!--主题色对应的文本色-->
|
||||
<color name="base_color_theme_text">#FFFFFF</color>
|
||||
|
||||
<!--正面按钮-文本色-->
|
||||
<color name="base_color_positive_text">#FFFFFF</color>
|
||||
|
||||
<!--负面按钮-文本色-->
|
||||
<color name="base_color_negative_text">#FFFFFF</color>
|
||||
|
||||
<!--负面按钮-背景色-->
|
||||
<color name="base_color_positive_bg">#D2D4D6</color>
|
||||
</resources>
|
Reference in New Issue
Block a user