version:1.0.1

fix:
update:准备分包
This commit is contained in:
2023-12-15 09:36:23 +08:00
parent 6c4e7973e7
commit 8eb995ec7d
21 changed files with 165 additions and 281 deletions

View File

@@ -2,11 +2,11 @@ apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
def appName() {
return "CubeZYAppStore"
return "KuxinAppStore"
}
def releaseTime() {
return new Date().format("yyyyMMdd-HHmmss", TimeZone.getDefault())
return new Date().format("yyyyMMdd_HHmmss", TimeZone.getDefault())
}
android {
@@ -17,8 +17,8 @@ android {
minSdkVersion 26
targetSdkVersion 29
versionCode 1
versionName "1.0.0"
versionCode 2
versionName "1.0.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -40,65 +40,6 @@ android {
//签名
signingConfigs {
MTK {
storeFile file("keystore/TeclastMTK12.jks")
storePassword "123456"
keyAlias "TeclastMTK12"
keyPassword "123456"
v2SigningEnabled false
}
mtk12 {
storeFile file("keystore/mtkAndroid12.keystore")
storePassword "123456"
keyAlias "mtk12"
keyPassword "123456"
v2SigningEnabled false
}
cube8183 {
storeFile file("keystore/TeclastMTK12.jks")
storePassword "123456"
keyAlias "TeclastMTK12"
keyPassword "123456"
v2SigningEnabled false
}
teclast8183 {
storeFile file("keystore/TeclastMTK12.jks")
storePassword "123456"
keyAlias "TeclastMTK12"
keyPassword "123456"
v2SigningEnabled false
}
Teclast8515 {
storeFile file("keystore/Teclast8515.keystore")
storePassword "123456"
keyAlias "Teclast8515"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
iPlay50SE {
storeFile file("keystore/iPlay50SE.keystore")
storePassword "123456"
keyAlias "iplay50se"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
zhanRui {
storeFile file("keystore/zhanxun.keystore")
storePassword "123456"
keyAlias "zhanxun"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled false
}
//iPlay50 mini,iPlay50 android13 共用签名
iPlay50mini {
storeFile file("keystore/iPlay50Mini.keystore")
@@ -108,19 +49,11 @@ android {
v2SigningEnabled false
}
iPlay50miniPro {
storeFile file("keystore/iPlay50miniPro.jks")
iPlay50SE {
storeFile file("keystore/iPlay50SE.keystore")
storePassword "123456"
keyAlias "iplay50minipro"
keyAlias "iplay50se"
keyPassword "123456"
v2SigningEnabled false
}
iPlay40H {
storeFile file("keystore/iPlay40h.keystore")
storePassword "android"
keyAlias "platform"
keyPassword "android"
v1SigningEnabled true
v2SigningEnabled true
}
@@ -133,10 +66,44 @@ android {
v2SigningEnabled false
}
iPlay50P {
storeFile file("keystore/iPlay50P.jks")
U807UserDebug {
storeFile file("keystore/U807userdebug.keystore")
storePassword "123456"
keyAlias "iplay50p"
keyAlias "u807userdebug"
keyPassword "123456"
v2SigningEnabled false
}
G10P {
storeFile file("keystore/G10PMTK11.jks")
storePassword "123456"
keyAlias "G10PMTK11"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
teclast8183 {
storeFile file("keystore/TeclastMTK12.jks")
storePassword "123456"
keyAlias "TeclastMTK12"
keyPassword "123456"
v2SigningEnabled false
}
UnisocS6688 {
storeFile file("keystore/UnisocS6688.jks")
storePassword "123456"
keyAlias "unisocs6688userdebug"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
}
Aigo1071 {
storeFile file("keystore/Aigo1071.jks")
storePassword "123456"
keyAlias "aigo1071"
keyPassword "123456"
v1SigningEnabled true
v2SigningEnabled true
@@ -144,18 +111,69 @@ android {
}
buildTypes {
iPlay50PDebug.initWith(debug)
iPlay50PDebug {
buildConfigField "String", "platform", '"T1102"'
Aigo1071Debug.initWith(debug)
Aigo1071Debug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.iPlay50P
signingConfig signingConfigs.Aigo1071
buildConfigField "String", "platform", '"W8183"'
}
iPlay50PRelease.initWith(release)
iPlay50PRelease {
buildConfigField "String", "platform", '"T1102"'
signingConfig signingConfigs.iPlay50P
Aigo1071Release.initWith(release)
Aigo1071Release {
signingConfig signingConfigs.Aigo1071
buildConfigField "String", "platform", '"W8183"'
}
UnisocS6688Debug.initWith(debug)
UnisocS6688Debug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.UnisocS6688
buildConfigField "String", "platform", '"S6688"'
}
UnisocS6688Release.initWith(release)
UnisocS6688Release {
signingConfig signingConfigs.UnisocS6688
buildConfigField "String", "platform", '"S6688"'
}
teclast8183Debug.initWith(debug)
teclast8183Debug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.teclast8183
buildConfigField "String", "platform", '"A11MTK8183"'
}
teclast8183Release.initWith(release)
teclast8183Release {
signingConfig signingConfigs.teclast8183
buildConfigField "String", "platform", '"A11MTK8183"'
}
G10PDebug.initWith(debug)
G10PDebug {
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.G10P
buildConfigField "String", "platform", '"G10P"'
}
G10PRelease.initWith(release)
G10PRelease {
signingConfig signingConfigs.G10P
buildConfigField "String", "platform", '"G10P"'
}
U807UserDebug.initWith(release)
U807UserDebug {
buildConfigField "String", "platform", '"U807"'
// versionNameSuffix "-debug"
// debuggable true
signingConfig signingConfigs.U807UserDebug
}
U807Debug.initWith(debug)
@@ -172,65 +190,9 @@ android {
signingConfig signingConfigs.U807
}
Cube8183Debug.initWith(debug)
Cube8183Debug {
debuggable true
versionNameSuffix "-debug"
buildConfigField "String", "platform", '"cube8183"'
signingConfig signingConfigs.cube8183
}
Cube8183Release.initWith(release)
Cube8183Release {
buildConfigField "String", "platform", '"cube8183"'
signingConfig signingConfigs.cube8183
}
Teclast8183Debug.initWith(debug)
Teclast8183Debug {
debuggable true
versionNameSuffix "-debug"
buildConfigField "String", "platform", '"teclast8183"'
signingConfig signingConfigs.teclast8183
}
Teclast8183Release.initWith(release)
Teclast8183Release {
buildConfigField "String", "platform", '"teclast8183"'
signingConfig signingConfigs.teclast8183
}
Teclast8515Debug.initWith(debug)
Teclast8515Debug {
buildConfigField "String", "platform", '"8515"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.Teclast8515
}
Teclast8515Release.initWith(release)
Teclast8515Release {
buildConfigField "String", "platform", '"8515"'
signingConfig signingConfigs.Teclast8515
}
iPlay50ProDebug.initWith(debug)
iPlay50ProDebug {
buildConfigField "String", "platform", '"MTK"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.mtk12
}
iPlay50ProRelease.initWith(release)
iPlay50ProRelease {
buildConfigField "String", "platform", '"MTK"'
signingConfig signingConfigs.mtk12
}
iPlay50SEDebug.initWith(debug)
iPlay50SEDebug {
buildConfigField "String", "platform", '"ipaly50SE"'
buildConfigField "String", "platform", '"iPaly50SE"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.iPlay50SE
@@ -238,87 +200,16 @@ android {
iPlay50SERelease.initWith(release)
iPlay50SERelease {
buildConfigField "String", "platform", '"ipaly50SE"'
buildConfigField "String", "platform", '"iPaly50SE"'
signingConfig signingConfigs.iPlay50SE
}
iPlay50miniDebug.initWith(debug)
iPlay50miniDebug {
buildConfigField "String", "platform", '"T811"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.iPlay50mini
}
iPlay50miniRelease.initWith(release)
iPlay50miniRelease {
buildConfigField "String", "platform", '"T811"'
signingConfig signingConfigs.iPlay50mini
}
iPlay5013Debug.initWith(debug)
iPlay5013Debug {
buildConfigField "String", "platform", '"iplay5013"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.iPlay50mini
}
iPlay5013Release.initWith(release)
iPlay5013Release {
buildConfigField "String", "platform", '"iplay5013"'
signingConfig signingConfigs.iPlay50mini
}
iPlay50miniProDebug.initWith(debug)
iPlay50miniProDebug {
buildConfigField "String", "platform", '"miniG99"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.iPlay50miniPro
}
iPlay50miniProRelease.initWith(release)
iPlay50miniProRelease {
buildConfigField "String", "platform", '"miniG99"'
signingConfig signingConfigs.iPlay50miniPro
}
iPlay40HDebug.initWith(debug)
iPlay40HDebug {
buildConfigField "String", "platform", '"iplay40h"'
versionNameSuffix "-debug"
debuggable true
signingConfig signingConfigs.iPlay50mini
}
iPlay40HRelease.initWith(release)
iPlay40HRelease {
buildConfigField "String", "platform", '"iplay40h"'
signingConfig signingConfigs.iPlay50mini
}
zhanRuiDebug.initWith(debug)
zhanRuiDebug {
debuggable true
versionNameSuffix "-debug"
buildConfigField "String", "platform", '"展锐"'
signingConfig signingConfigs.zhanRui
}
zhanRuiRelease.initWith(release)
zhanRuiRelease {
buildConfigField "String", "platform", '"展锐"'
signingConfig signingConfigs.zhanRui
}
debug {
buildConfigField "String", "platform", '"MTK"'
versionNameSuffix "-debug"
minifyEnabled false
//Zipalign优化
zipAlignEnabled true
signingConfig signingConfigs.MTK
signingConfig signingConfigs.iPlay50mini
applicationVariants.all { variant ->
variant.outputs.each { output ->
if (outputFile != null) {
@@ -329,7 +220,6 @@ android {
}
}
release {
buildConfigField "String", "platform", '"MTK"'
//混淆
minifyEnabled false
//Zipalign优化
@@ -337,7 +227,7 @@ android {
//前一部分代表系统默认的android程序的混淆文件该文件已经包含了基本的混淆声明后一个文件是自己的定义混淆文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//签名
signingConfig signingConfigs.MTK
signingConfig signingConfigs.iPlay50mini
// 将release版本的包名重命名加上版本及日期
applicationVariants.all { variant ->
variant.outputs.each { output ->
@@ -352,30 +242,15 @@ android {
}
sourceSets {
iPlay50PDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
G10PDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
U807Debug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
Cube8183Debug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
Teclast8183Debug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
Teclast8515Debug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
iPlay50ProDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
iPlay50SEDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
iPlay50miniDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
iPlay5013Debug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
iPlay50miniProDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
zhanRuiDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
U807Debug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
U807UserDebug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
debug { manifest.srcFile 'src/debug/AndroidManifest.xml' }
iPlay50PRelease { manifest.srcFile 'src/main/AndroidManifest.xml' }
G10PRelease { manifest.srcFile 'src/main/AndroidManifest.xml' }
U807Release { manifest.srcFile 'src/main/AndroidManifest.xml' }
Cube8183Release { manifest.srcFile 'src/main/AndroidManifest.xml' }
Teclast8183Release { manifest.srcFile 'src/main/AndroidManifest.xml' }
Teclast8515Release { manifest.srcFile 'src/main/AndroidManifest.xml' }
iPlay50ProRelease { manifest.srcFile 'src/main/AndroidManifest.xml' }
iPlay50SERelease { manifest.srcFile 'src/main/AndroidManifest.xml' }
iPlay50miniRelease { manifest.srcFile 'src/main/AndroidManifest.xml' }
iPlay5013Release { manifest.srcFile 'src/main/AndroidManifest.xml' }
iPlay50miniProRelease { manifest.srcFile 'src/main/AndroidManifest.xml' }
zhanRuiRelease { manifest.srcFile 'src/main/AndroidManifest.xml' }
release { manifest.srcFile 'src/main/AndroidManifest.xml' }
}
}

BIN
app/keystore/Aigo1071.jks Normal file

Binary file not shown.

BIN
app/keystore/G10PMTK11.jks Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -41,9 +41,9 @@
android:exported="true">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<!-- <action android:name="android.intent.action.MAIN" />-->
<action android:name="android.intent.action.MAIN" />
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity

View File

@@ -43,7 +43,7 @@ import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class DetailsActivity extends BaseActivity implements DetailsContact.DetailsView {
public class DetailsActivity extends BaseActivity implements DetailsContact.DetailsView {
private static final String TAG = DetailsActivity.class.getSimpleName();
@BindView(R.id.detail_tv_title)
@@ -114,9 +114,6 @@ public class DetailsActivity extends BaseActivity implements DetailsContact.Det
} else {
mPresenter.getAdminAppDetails(mAdminAppInfo.getId());
}
}
@Override
@@ -215,24 +212,26 @@ public class DetailsActivity extends BaseActivity implements DetailsContact.Det
}
}
private void setImage( AdminAppInfo info) {
private void setImage(AdminAppInfo info) {
List<String> list = info.getApp_preview();
mImageAdapter.setData(list);
}
@Override
public void setAdminAppDetails(AdminAppInfo adminAppInfo) {
tv_name.setText(mAdminAppInfo.getApp_name());
tv_company.setText(mAdminAppInfo.getApp_developer());
detali_tv_size.setText("大小\t" + "(" + StorageUtils.byteToMB(mAdminAppInfo.getApp_size()) + ")");
detail_tv_Developers.setText("开发者\t" + mAdminAppInfo.getApp_developer());
tv_update_time.setText("时间\t" + mAdminAppInfo.getUpdate_time());
tv_version.setText("版本\t" + mAdminAppInfo.getApp_version_name());
tv_content.setText(mAdminAppInfo.getApp_remarks());
detali_tv_version.setText("版本:" + mAdminAppInfo.getApp_version_name());
rating_bar.setRating(mAdminAppInfo.getApp_score());
Glide.with(this).asBitmap().load(mAdminAppInfo.getApp_icon()).transform(new GlideCircleWithBorder(this)).into(iv_icon);
setImage(mAdminAppInfo);
if (adminAppInfo != null) {
tv_name.setText(mAdminAppInfo.getApp_name());
tv_company.setText(mAdminAppInfo.getApp_developer());
detali_tv_size.setText("大小\t" + "(" + StorageUtils.byteToMB(mAdminAppInfo.getApp_size()) + ")");
detail_tv_Developers.setText("开发者\t" + mAdminAppInfo.getApp_developer());
tv_update_time.setText("时间\t" + mAdminAppInfo.getUpdate_time());
tv_version.setText("版本\t" + mAdminAppInfo.getApp_version_name());
tv_content.setText(mAdminAppInfo.getApp_remarks());
detali_tv_version.setText("版本:" + mAdminAppInfo.getApp_version_name());
rating_bar.setRating(mAdminAppInfo.getApp_score());
Glide.with(this).asBitmap().load(mAdminAppInfo.getApp_icon()).transform(new GlideCircleWithBorder(this)).into(iv_icon);
setImage(adminAppInfo);
}
}
void refresh(DownloadTask task) {

View File

@@ -6,9 +6,12 @@ import android.util.Log;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiuipad.appstore.base.BaseResponse;
import com.uiuipad.appstore.bean.AdminAppInfo;
import com.uiuipad.appstore.bean.AppClassBean;
import com.uiuipad.appstore.network.NetInterfaceManager;
import java.util.List;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
@@ -48,16 +51,20 @@ public class DetailsPresenter implements DetailsContact.Presenter {
public void getAdminAppDetails(long id) {
NetInterfaceManager.getInstance().getAdminAppDetailsObservable(id)
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(new Observer<BaseResponse<AppClassBean>>() {
.subscribe(new Observer<BaseResponse<AdminAppInfo>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getAdminAppDetails", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<AppClassBean> appClassBeanBaseResponse) {
Log.e("getAdminAppDetails", "onNext: " + appClassBeanBaseResponse);
public void onNext(@NonNull BaseResponse<AdminAppInfo> infoBaseResponse) {
Log.e("getAdminAppDetails", "onNext: " + infoBaseResponse);
if (infoBaseResponse.code == 200) {
mView.setAdminAppDetails(infoBaseResponse.data);
} else {
mView.setAdminAppDetails(null);
}
}
@Override

View File

@@ -144,7 +144,7 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<AppClassBean>> getAdminAppDetailsObservable(long id) {
public Observable<BaseResponse<AdminAppInfo>> getAdminAppDetailsObservable(long id) {
return mRetrofit.create(AdminAppDetailsApi.class)
.getAdminAppDetails(id)
.subscribeOn(Schedulers.io())

View File

@@ -1,7 +1,7 @@
package com.uiuipad.appstore.network.api;
import com.uiuipad.appstore.base.BaseResponse;
import com.uiuipad.appstore.bean.AppClassBean;
import com.uiuipad.appstore.bean.AdminAppInfo;
import com.uiuipad.appstore.network.UrlAddress;
import java.util.List;
@@ -12,7 +12,7 @@ import retrofit2.http.Query;
public interface AdminAppDetailsApi {
@GET(UrlAddress.GET_ADMIN_APP_DETAILS)
Observable<BaseResponse<AppClassBean>> getAdminAppDetails(
Observable<BaseResponse<AdminAppInfo>> getAdminAppDetails(
@Query("id") long id
);
}

View File

@@ -840,6 +840,9 @@ public class ApkUtils {
this.add("com.uiui.zybrowser");
this.add("com.uiui.zysn");
this.add("com.uiui.calendar");
this.add("com.uiuipad.os");
this.add("com.uiuipad.find");
this.add("com.uiuipad.zyinfo");
}};
public static void RemoveTask(final Context context, final String packageName) {

View File

@@ -241,7 +241,7 @@
<Button
android:id="@+id/detail_tv_download"
android:layout_width="@dimen/dp_300"
android:layout_width="@dimen/dp_150"
android:layout_height="@dimen/dp_28"
android:layout_centerInParent="true"
android:background="@drawable/btn_shap_open"
@@ -250,7 +250,7 @@
android:stateListAnimator="@null"
android:text="安装"
android:textColor="#ffffff"
android:textSize="@dimen/sp_16"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="90dp"
android:layout_height="@dimen/dp_60"
android:background="@drawable/ll_selector"
android:orientation="vertical">
@@ -13,16 +13,16 @@
<ImageView
android:id="@+id/local_app_iv_icon"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_width="@dimen/dp_50"
android:layout_height="@dimen/dp_50"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/dp_8" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_height="@dimen/dp_60"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:layout_marginStart="@dimen/dp_10"
android:layout_weight="1"
android:orientation="vertical">
@@ -34,35 +34,35 @@
android:gravity="center_vertical"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="17sp" />
android:textSize="@dimen/sp_12" />
<TextView
android:id="@+id/local_app_tv_company"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="12sp" />
android:textSize="@dimen/sp_8" />
<TextView
android:id="@+id/local_app_version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="12sp" />
android:textSize="@dimen/sp_8" />
<TextView
android:id="@+id/local_app_install_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="12sp" />
android:textSize="@dimen/sp_8" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="16dp"
android:layout_marginEnd="@dimen/dp_16"
android:orientation="horizontal">
<Button
@@ -70,11 +70,12 @@
android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center_vertical"
android:layout_marginEnd="10dp"
android:layout_marginEnd="@dimen/dp_10"
android:background="@drawable/btn_shap_open"
android:stateListAnimator="@null"
android:text="打开"
android:textColor="@color/white"
android:textSize="@dimen/sp_9"
android:visibility="visible" />
<Button
@@ -82,11 +83,12 @@
android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center_vertical"
android:layout_marginEnd="8dp"
android:layout_marginEnd="@dimen/dp_8"
android:background="@drawable/btn_shap_delete"
android:stateListAnimator="@null"
android:text="删除"
android:textColor="@color/black"
android:textSize="@dimen/sp_9"
android:visibility="visible" />
<TextView
@@ -94,7 +96,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="24dp"
android:layout_marginEnd="@dimen/dp_24"
android:text="已安装"
android:visibility="gone" />
</LinearLayout>

View File

@@ -241,7 +241,7 @@
<Button
android:id="@+id/detail_tv_download"
android:layout_width="@dimen/dp_240"
android:layout_width="@dimen/dp_150"
android:layout_height="@dimen/dp_28"
android:layout_centerInParent="true"
android:background="@drawable/btn_shap_open"
@@ -250,7 +250,7 @@
android:stateListAnimator="@null"
android:text="安装"
android:textColor="#ffffff"
android:textSize="@dimen/sp_16"
android:textSize="@dimen/sp_12"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="90dp"
android:layout_height="@dimen/dp_90"
android:background="@drawable/ll_selector"
android:orientation="vertical">
@@ -100,7 +100,5 @@
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
<include layout="@layout/include_line_horizontal" />
</LinearLayout>