diff --git a/RecyclerBanner/build.gradle b/RecyclerBanner/build.gradle index 9590dc1..939dda7 100644 --- a/RecyclerBanner/build.gradle +++ b/RecyclerBanner/build.gradle @@ -19,7 +19,6 @@ android { } dependencies { - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.recyclerview:recyclerview:1.1.0' - + implementation 'androidx.appcompat:appcompat:1.3.1' + implementation 'androidx.recyclerview:recyclerview:1.2.1' } diff --git a/app/build.gradle b/app/build.gradle index 540c4e9..5b712b5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,5 +1,4 @@ apply plugin: 'com.android.application' -apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android' def appName() { @@ -7,7 +6,7 @@ def appName() { } def releaseTime() { - return new Date().format("yyyyMMddHHmmss", TimeZone.getDefault()) + return new Date().format("yyyyMMdd", TimeZone.getDefault()) } android { @@ -15,10 +14,10 @@ android { buildToolsVersion "29.0.3" defaultConfig { applicationId "com.appstore.uiui" - minSdkVersion 24 + minSdkVersion 26 targetSdkVersion 29 - versionCode 35 - versionName "1.3.5" + versionCode 61 + versionName "1.6.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //极光 ndk { @@ -33,9 +32,16 @@ android { JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可. ] } + + compileOptions{ + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + lintOptions { checkReleaseBuilds false } + //签名 signingConfigs { zhanRui { @@ -51,14 +57,16 @@ android { storePassword "123456" keyAlias "xueshibaoos" keyPassword "123456" - v2SigningEnabled false + v1SigningEnabled true + v2SigningEnabled true } release {// 签名文件 storeFile file("src/keys/xueshibaoos.jks") storePassword "123456" keyAlias "xueshibaoos" keyPassword "123456" - v2SigningEnabled false + v1SigningEnabled true + v2SigningEnabled true } } @@ -118,14 +126,14 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.appcompat:appcompat:1.3.1' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.cardview:cardview:1.0.0' - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test.ext:junit:1.1.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' - implementation "androidx.core:core-ktx:+" + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + implementation "androidx.core:core-ktx:1.6.0" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" //github第三方控件 @@ -134,11 +142,11 @@ dependencies { implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //1.0.5及以前版本的老用户升级需谨慎,API改动过大 implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0' //没有使用特殊Header,可以不加这行 //glide - implementation 'com.github.bumptech.glide:glide:4.10.0' - annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0' + implementation 'com.github.bumptech.glide:glide:4.11.0' + annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' //aria - implementation 'com.arialyy.aria:core:3.8.5' - annotationProcessor 'com.arialyy.aria:compiler:3.8.5' + implementation 'com.arialyy.aria:core:3.8.15' + annotationProcessor 'com.arialyy.aria:compiler:3.8.15' //动态权限框架 implementation 'com.hjq:xxpermissions:6.0' //okhttp @@ -150,17 +158,15 @@ dependencies { implementation 'com.squareup.retrofit2:converter-gson:2.3.0' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' //google - implementation 'com.google.code.gson:gson:2.8.6' + implementation 'com.google.code.gson:gson:2.8.7' implementation 'com.google.zxing:core:3.3.0' - implementation 'com.alibaba:fastjson:1.2.21' + implementation 'com.alibaba:fastjson:1.2.76' //极光推送 - implementation 'cn.jiguang.sdk:jpush:3.4.1' // 此处以JPush 3.4.1 版本为例。 - implementation 'cn.jiguang.sdk:jcore:2.2.4' // 此处以JCore 2.2.4 版本为例。 + implementation 'cn.jiguang.sdk:jpush:3.8.6' // 此处以JPush 3.4.1 版本为例。 + implementation 'cn.jiguang.sdk:jcore:2.6.0' // 此处以JCore 2.2.4 版本为例。 //banner图 implementation 'com.zhpan.library:bannerview:2.6.4' implementation 'uk.co.chrisjenx:calligraphy:2.3.0' //更换字体框架 -} -repositories { - mavenCentral() + implementation 'com.blankj:utilcodex:1.30.6' } diff --git a/app/src/main/java/com/appstore/uiui/activity/LocalManagerActivity.java b/app/src/main/java/com/appstore/uiui/activity/LocalManagerActivity.java index 1bc480f..cd97bb8 100644 --- a/app/src/main/java/com/appstore/uiui/activity/LocalManagerActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/LocalManagerActivity.java @@ -96,7 +96,7 @@ public class LocalManagerActivity extends BaseActivity implements RefreshManager bean.setPackageName(packageName); Drawable icon = resolveInfoList.get(i).loadIcon(getApplicationContext().getPackageManager()); bean.setIcon(icon); - if (qch_force_app.contains(packageName)){ + if (packageName.contains(qch_force_app)){ bean.setCanUnintall(false); }else { bean.setCanUnintall(true); diff --git a/app/src/main/java/com/appstore/uiui/activity/MainActivity.java b/app/src/main/java/com/appstore/uiui/activity/MainActivity.java index 092897b..29cfeaf 100644 --- a/app/src/main/java/com/appstore/uiui/activity/MainActivity.java +++ b/app/src/main/java/com/appstore/uiui/activity/MainActivity.java @@ -84,7 +84,7 @@ public class MainActivity extends BaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e(TAG, "onCreate"); - requestPermission(); +// requestPermission(); registerMessageReceiver(); // used for receive msg String rid = JPushInterface.getRegistrationID(getApplicationContext()); if (!rid.isEmpty()) { @@ -136,7 +136,7 @@ public class MainActivity extends BaseActivity { iv_appicon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - startActivity(new Intent(MainActivity.this, AboutActivity.class)); +// startActivity(new Intent(MainActivity.this, AboutActivity.class)); } }); iv_download = findViewById(R.id.iv_download); @@ -418,7 +418,9 @@ public class MainActivity extends BaseActivity { SPUtils.put(MainActivity.this, "isLogined", 1); SPUtils.put(MainActivity.this, "admin_id", info.getAdmin_id()); SPUtils.put(MainActivity.this, "sn_id", info.getId()); - SPUtils.put(MainActivity.this, "sn_grade", info.getGrade()); + if (!TextUtils.isEmpty(info.getGrade())) { + SPUtils.put(MainActivity.this, "sn_grade", info.getGrade()); + } } else if (code == -200) { SPUtils.put(MainActivity.this, "isLogined", 0); } else if (code == -250) { diff --git a/app/src/main/java/com/appstore/uiui/bean/Banner.java b/app/src/main/java/com/appstore/uiui/bean/Banner.java index 1be1ab4..69bc9f6 100644 --- a/app/src/main/java/com/appstore/uiui/bean/Banner.java +++ b/app/src/main/java/com/appstore/uiui/bean/Banner.java @@ -7,6 +7,15 @@ public class Banner implements Serializable { private String banner_name; private String banner_img; + private String vertical_img; + + public String getVertical_img() { + return vertical_img; + } + + public void setVertical_img(String vertical_img) { + this.vertical_img = vertical_img; + } public String getBanner_name() { return banner_name; diff --git a/app/src/main/java/com/appstore/uiui/common/CommonDatas.java b/app/src/main/java/com/appstore/uiui/common/CommonDatas.java index 7db0b14..5b4c64c 100644 --- a/app/src/main/java/com/appstore/uiui/common/CommonDatas.java +++ b/app/src/main/java/com/appstore/uiui/common/CommonDatas.java @@ -4,82 +4,5 @@ package com.appstore.uiui.common; import com.appstore.uiui.BuildConfig; public class CommonDatas { - - public static final String PACKAGE = "colorflykids"; - public static String BABYINFO_CHANGE = PACKAGE + "babyinfo_change"; // 宝宝信息变更标识 - - - - public final static String SP_LOCK = "lock";//锁定用户 - public final static String SP_BABY_AGE_KEY = "age_system";//子系统选择 - public final static String SP_LOCK__KEY = "lock_key";//主界面选择 - - public final static String SP_USER_NAME = "user_name";//用户名字 - public final static String SP_USER_PASSWORD = "user_password";//用户密码 - public final static String SP_USER_EMAIL = "user_email";//用户信箱 - public final static String SP_VERSION = "user_version";//版本信息 - public final static String SP_USER_VIP = "user_vip";//用户等级 - public final static String SP_USER_DATE = "user_vip_date";//体验用户使用时间段 - public final static String SP_USER_ALIVE_DATE = "SP_USER_ALIVE_DATE";//用户激活时的时间 - public final static String SP_USER_ALIVE_CODE = "SP_USER_ALIVE_CODE";//用户激活码 - - - public final static String SP_BABY_HEAD = "age_head";//宝宝头像 - public final static String SP_BABY_NAME = "age_name";//宝宝名字 - public final static String SP_BABY_SEX = "age_sex";//宝宝性别 - public final static String SP_BABY_BIRTHDAY = "age_birthday";//宝宝生日 - - public final static String SP_BABY_TITLE = "user_title";//宝宝称谓 - public final static String SP_TOTAL_POINT = "total_point";//总积分 - public final static String SP_TODAY_POINT = "today_point";//今日积分 - public final static String SP_NATIONAL_RANK = "national_rank";//全国排名 - public final static String SP_YESTERDAY_RANK = "yesterday_rank";//历史排名 - public final static String SP_TODAY_RANK = "today_rank";//今日排名 - - - public final static String SP_PARENT_PASSWORD = "parent_password";//家长密码 - public final static String SP_OLD_PARENT_PASSWORD = "old_parent_password";//旧的家长密码 - public final static String SP_CHANGE_PARENT_PASSWORD = "change_parent_password";//上传家长密码标识 - public final static String SP_CHANGE_BABY_INFO = "change_baby_info";//上传宝宝信息标识 - public final static String SP_CHANGE_LEARN_INFO = "change_learn_info";//上传学习日志标识 - - - public final static String SP_TIME_CONTROL_NOW = "time_control_now";//时间控制功能临时开关 - public final static String SP_TIME_CONTROL_KEY = "time_control";//时间控制功能开关 - public final static String SP_TIME_CURRENT_REMAINING = "current_remaining_time";//当前剩余时间 - public final static String SP_TIME_REST_REMAINING = "current_rest_time";//当前剩余休息时间 - public final static String SP_BATTEY_CONTROL_KEY = "battey_control";//充电保护开关 - public final static String SP_PASSWORD_LOCK = "password_lock";//家长密码开关 - public final static String SP_DISTANCE_CONTROL_KEY = "distance_control";//距离感应开关 - - // 使用时间段 - public final static String SP_SELECT_START_TIME = "start_time"; - public final static String SP_SELECT_END_TIME = "end_time"; - public final static String SP_OLD_START_TIME = "old_start_time"; - public final static String SP_OLD_END_TIME = "old_end_time"; - - - public final static String SP_SELECT_USE_TIME = "useTimeLong";//使用时长 - public final static String SP_SELECT_REST_TIME = "restTimeLong";//休息时长 - - //eventbus 事件 - public final static String SP_LOGIN_SUCCESS = "SP_LOGIN_SUCCESS";//账号登陆成功 - - public final static String ENTER_KEY = "enter_key"; - - public final static String UPDATE_URL = "http://www.jiaoguanyi.cn/api/update/index"; - public final static String UPDATE_PKG = BuildConfig.APPLICATION_ID; - - - public static boolean IS_UPDATE_DOLOADING = false; - public static String IS_RESET = "IS_RESET"; - public static int MIN_POWER = 21; - public static String FORCE_INSTALL = "FORCE_INSTALL"; - - public static final String ACTION_HrReceiver_JGY_DIS = "qch_jgy_network_disallow"; - public static final String ACTION_HrReceiver_JGY = "qch_jgy_network_allow"; public static final String FLAG_FIRST_ENTER = "qch_first_enter"; - - - } diff --git a/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java b/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java index 889e75d..d4db7b4 100644 --- a/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java +++ b/app/src/main/java/com/appstore/uiui/fragment/FeaturedFragment.java @@ -5,6 +5,8 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -32,6 +34,7 @@ import com.appstore.uiui.network.api.BannerImage; import com.appstore.uiui.network.api.QueryAllApp; import com.appstore.uiui.utils.LogUtils; import com.appstore.uiui.utils.Utils; +import com.blankj.utilcode.util.ScreenUtils; import com.bumptech.glide.Glide; import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout; @@ -134,6 +137,21 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager } + @Override + public void onConfigurationChanged(@androidx.annotation.NonNull Configuration newConfig) { + super.onConfigurationChanged(newConfig); + if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { + GridLayoutManager gridLayoutManager = new GridLayoutManager(mContext, 3); + mRvResult.setLayoutManager(gridLayoutManager); + } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { + GridLayoutManager gridLayoutManager = new GridLayoutManager(mContext, 2); + mRvResult.setLayoutManager(gridLayoutManager); + } else { + mRvResult.setLayoutManager(new LinearLayoutManager(getActivity())); + } + initAPPData(handler); + } + @Override public void onStart() { super.onStart(); @@ -202,6 +220,11 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager } private void getBanner() { + if (ScreenUtils.isPortrait()) { + iv_banner.setImageDrawable(getActivity().getDrawable(R.drawable.port_banner)); + } else { + iv_banner.setImageDrawable(getActivity().getDrawable(R.drawable.land_banner)); + } NetInterfaceManager.getInstance().getBannerObservable() .subscribe(new Observer>() { @Override @@ -211,10 +234,14 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager @Override public void onNext(BaseResponse bannerBaseResponse) { - Log.e("getBanner", "onNext: "); if (bannerBaseResponse.code == 200) { - String imgURL = bannerBaseResponse.data.getBanner_img(); - Glide.with(iv_banner).load(imgURL).into(iv_banner); + String banner_img = bannerBaseResponse.data.getBanner_img(); + String vertical_img = bannerBaseResponse.data.getVertical_img(); + if (ScreenUtils.isPortrait()) { + Glide.with(iv_banner).load(banner_img).into(iv_banner); + } else { + Glide.with(iv_banner).load(vertical_img).into(iv_banner); + } } else { } @@ -232,6 +259,25 @@ public class FeaturedFragment extends LazyLoadFragment implements RefreshManager } }); + int bannerWidth = iv_banner.getWidth(); + int bannerHeight = iv_banner.getHeight(); + Drawable drawable = iv_banner.getDrawable(); + if (drawable != null) { + int width = drawable.getMinimumWidth(); + int height = drawable.getMinimumHeight(); + Log.e(TAG, "getBanner: iv_banner: width = " + bannerWidth); + Log.e(TAG, "getBanner: iv_banner: height = " + bannerHeight); + Log.e(TAG, "getBanner: Drawable: width = " + width); + Log.e(TAG, "getBanner: Drawable: height = " + height); + Log.e(TAG, "getBanner: " + (float) (1.0 *bannerWidth / width)); + Log.e(TAG, "getBanner: " +(int) ((float) (1.0 *bannerWidth / width) * height)); + int changeHeight = (int) ((double) (bannerWidth / width) * height); + if (changeHeight != 0) { + iv_banner.getLayoutParams().height = changeHeight; + } + iv_banner.setVisibility(View.VISIBLE); + } + } diff --git a/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java b/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java index c9a5b8a..d26ff72 100644 --- a/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java +++ b/app/src/main/java/com/appstore/uiui/fragment/ManageFragment.java @@ -19,6 +19,7 @@ import androidx.constraintlayout.widget.ConstraintLayout; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.appstore.uiui.BuildConfig; import com.appstore.uiui.R; import com.appstore.uiui.activity.DownloadManagerActivity; import com.appstore.uiui.activity.LocalManagerActivity; @@ -44,7 +45,7 @@ public class ManageFragment extends LazyLoadFragment { private RecyclerView mRvLocal; private ImageView iv_nodata; - private TextView manage_tv_updateNum, manage_tv_appNum; + private TextView manage_tv_updateNum, manage_tv_appNum, tv_version; private List localAppList; private List updateAppInfoList; private List applist; @@ -62,6 +63,8 @@ public class ManageFragment extends LazyLoadFragment { public void initViews(View view) { manage_tv_updateNum = view.findViewById(R.id.manage_tv_updateNum); manage_tv_appNum = view.findViewById(R.id.manage_tv_appNum); + tv_version = view.findViewById(R.id.tv_version); + tv_version.setText("版本 " + BuildConfig.VERSION_NAME); manage_cl_localapp = view.findViewById(R.id.manage_cl_localapp); manage_cl_localapp.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/res/drawable-xhdpi/banner.png b/app/src/main/res/drawable-xhdpi/banner.png deleted file mode 100644 index d3f0417..0000000 Binary files a/app/src/main/res/drawable-xhdpi/banner.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_menu_search.png b/app/src/main/res/drawable-xhdpi/ic_menu_search.png index eb43499..a6c9023 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_menu_search.png and b/app/src/main/res/drawable-xhdpi/ic_menu_search.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_place_holder.png b/app/src/main/res/drawable-xhdpi/ic_place_holder.png index c84122c..a7fd06e 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_place_holder.png and b/app/src/main/res/drawable-xhdpi/ic_place_holder.png differ diff --git a/app/src/main/res/drawable-xhdpi/icon_download_task.png b/app/src/main/res/drawable-xhdpi/icon_download_task.png index d5efc58..8e2d950 100644 Binary files a/app/src/main/res/drawable-xhdpi/icon_download_task.png and b/app/src/main/res/drawable-xhdpi/icon_download_task.png differ diff --git a/app/src/main/res/drawable-xhdpi/icon_my_task.png b/app/src/main/res/drawable-xhdpi/icon_my_task.png index 3ba3886..b41d694 100644 Binary files a/app/src/main/res/drawable-xhdpi/icon_my_task.png and b/app/src/main/res/drawable-xhdpi/icon_my_task.png differ diff --git a/app/src/main/res/drawable-xhdpi/icon_search.png b/app/src/main/res/drawable-xhdpi/icon_search.png deleted file mode 100644 index 17d8d98..0000000 Binary files a/app/src/main/res/drawable-xhdpi/icon_search.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/icon_update_task.png b/app/src/main/res/drawable-xhdpi/icon_update_task.png index 065a866..73d46e3 100644 Binary files a/app/src/main/res/drawable-xhdpi/icon_update_task.png and b/app/src/main/res/drawable-xhdpi/icon_update_task.png differ diff --git a/app/src/main/res/drawable-xhdpi/land_banner.png b/app/src/main/res/drawable-xhdpi/land_banner.png new file mode 100644 index 0000000..46d7bf0 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/land_banner.png differ diff --git a/app/src/main/res/drawable-xhdpi/port_banner.png b/app/src/main/res/drawable-xhdpi/port_banner.png new file mode 100644 index 0000000..1a38a01 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/port_banner.png differ diff --git a/app/src/main/res/drawable/btn_shap_delete.xml b/app/src/main/res/drawable/btn_shap_delete.xml index 717a51b..334277a 100644 --- a/app/src/main/res/drawable/btn_shap_delete.xml +++ b/app/src/main/res/drawable/btn_shap_delete.xml @@ -3,7 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android"> + android:color="@color/adapter_selector_default" /> + android:scaleType="centerInside" + android:visibility="gone" /> + android:src="@drawable/ic_menu_search" /> @@ -25,31 +24,54 @@ android:scaleType="centerInside" android:src="@drawable/ic_back" /> - + android:layout_height="@dimen/dp_40" + android:layout_gravity="center" + android:gravity="center_vertical"> + + + + + + + + + + - - - + \ No newline at end of file diff --git a/app/src/main/res/layout-land/fragment_featured.xml b/app/src/main/res/layout-land/fragment_featured.xml index ad36de7..4a059e9 100644 --- a/app/src/main/res/layout-land/fragment_featured.xml +++ b/app/src/main/res/layout-land/fragment_featured.xml @@ -24,8 +24,8 @@ android:layout_width="match_parent" android:layout_height="@dimen/dp_230" android:adjustViewBounds="true" - android:scaleType="centerCrop" - android:src="@drawable/banner" + android:scaleType="fitCenter" + android:src="@drawable/land_banner" android:layout_margin="10dp" android:visibility="visible" /> diff --git a/app/src/main/res/layout-land/fragment_manage.xml b/app/src/main/res/layout-land/fragment_manage.xml index f562896..69418f4 100644 --- a/app/src/main/res/layout-land/fragment_manage.xml +++ b/app/src/main/res/layout-land/fragment_manage.xml @@ -30,14 +30,15 @@ + + - + android:overScrollMode="never" + app:layout_constraintBottom_toTopOf="@+id/tv_version" + app:layout_constraintTop_toTopOf="parent" /> + android:visibility="gone" /> - - + + \ No newline at end of file diff --git a/app/src/main/res/layout-land/item_local_app.xml b/app/src/main/res/layout-land/item_local_app.xml index d9cb013..64fb09d 100644 --- a/app/src/main/res/layout-land/item_local_app.xml +++ b/app/src/main/res/layout-land/item_local_app.xml @@ -58,27 +58,48 @@ - -