From 3bdfe2146653b0468d8157d6e993056e8fff7312 Mon Sep 17 00:00:00 2001
From: FHT <981964879@qq.com>
Date: Wed, 21 Apr 2021 11:04:30 +0800
Subject: [PATCH] =?UTF-8?q?version:1.2.9=20update:=20fix:=E5=B1=8F?=
=?UTF-8?q?=E8=94=BD=E6=B8=85=E9=99=A4=E6=A1=8C=E9=9D=A2=E7=BC=93=E5=AD=98?=
=?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=A6=96=E9=A1=B5=E6=98=BE=E7=A4=BA?=
=?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E7=89=88=E6=9C=AC=E5=8F=B7=20add:?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/build.gradle | 7 +-
app/src/main/AndroidManifest.xml | 2 +
.../myappstore/activity/HomeActivity.java | 10 +-
.../myappstore/activity/MainActivity.java | 4 +
.../myappstore/activity/MainPresenter.java | 21 ++-
.../myappstore/base/BaseApplication.java | 5 +-
.../myappstore/receiver/BootReceiver.java | 4 +-
.../myappstore/receiver/NewAppReceiver.java | 2 +-
.../myappstore/server/MainService.java | 19 ++-
.../mjsheng/myappstore/utils/CacheUtils.java | 136 ++++++++++++++++++
.../mjsheng/myappstore/utils/JGYUtils.java | 5 +
.../main/res/layout-land/activity_main.xml | 17 ++-
.../main/res/layout-port/activity_main.xml | 10 ++
gradle.properties | 21 ++-
14 files changed, 224 insertions(+), 39 deletions(-)
create mode 100644 app/src/main/java/com/mjsheng/myappstore/utils/CacheUtils.java
diff --git a/app/build.gradle b/app/build.gradle
index 1eb79e7..6f011e4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -50,8 +50,8 @@ android {
productFlavors {
official {
flavorDimensions "default"
- versionCode 1036
- versionName "2.0.3.6"
+ versionCode 1037
+ versionName "2.0.3.7"
/*********************************极光推送************************************/
manifestPlaceholders = [
JPUSH_PKGNAME: "com.jiaoguanyi.appstore",
@@ -182,7 +182,6 @@ android {
if (outputFile != null) {
def fileName = "${appName()}-${variant.versionCode}-V${variant.versionName}-${releaseTime()}-${productFlavors[0].name}-${buildType.name}.apk"
output.outputFileName = fileName
-
}
}
}
@@ -234,7 +233,7 @@ dependencies {
preBuild {
doLast {
- def imlFile = file( project.name + ".iml")
+ def imlFile = file(project.name + ".iml")
println 'Change ' + project.name + '.iml order'
try {
def parsedXml = (new XmlParser()).parse(imlFile)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ceadb6f..d8fc1ad 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -25,6 +25,8 @@
+
+
MAX_WAIT_TIME)) {
+ observer.wait(WAIT_TIME_INCR);
+ waitTime += WAIT_TIME_INCR;
+ }
+ if (!observer.isDone()) {
+ throw new Exception("Timed out waiting for PackageStatsObserver.onGetStatsCompleted");
+ }
+ }
+ Log.d(TAG, "toString " + observer.stats.toString());
+ return observer.stats.dataSize + observer.stats.cacheSize;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Failed to get handle for PackageManger Exception: " + e);
+ return -1;
+ } catch (InterruptedException e) {
+ Log.w(TAG, "InterruptedException :" + e);
+ return -1;
+ }
+ }
+
+ /**
+ * 清除应用数据
+ *
+ * @param context
+ * @param packageName
+ * @return
+ * @throws Exception
+ */
+ public boolean cleanApplicationUserData(Context context, String packageName) throws Exception {
+ try {
+ PackageDataObserver observer = new PackageDataObserver();
+ // wait on observer
+ synchronized (observer) {
+ Method method = PackageManager.class.getMethod("clearApplicationUserData", new Class[] { String.class, IPackageDataObserver.class });
+ method.invoke(context.getPackageManager(), packageName, observer);
+// getPm().deleteApplicationCacheFiles(appid, observer);
+ long waitTime = 0;
+ while (!observer.isDone() || (waitTime > MAX_WAIT_TIME)) {
+ observer.wait(WAIT_TIME_INCR);
+ waitTime += WAIT_TIME_INCR;
+ }
+ if (!observer.isDone()) {
+ throw new Exception("timed out waiting for PackageDataObserver.onRemoveCompleted");
+ }
+ }
+ Log.d(TAG, "cleanApplicationCache " + observer.retValue);
+ return observer.retValue;
+ } catch (RemoteException e) {
+ Log.w(TAG, "Failed to get handle for PackageManger Exception: " + e);
+ return false;
+ } catch (InterruptedException e) {
+ Log.w(TAG, "InterruptedException :" + e);
+ return false;
+ }
+ }
+
+ private IPackageManager getPm() {
+ return IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
+ }
+
+ class PackageDataObserver extends IPackageDataObserver.Stub {
+ public boolean retValue = false;
+ private boolean doneFlag = false;
+
+ public void onRemoveCompleted(String packageName, boolean succeeded) throws RemoteException {
+ synchronized (this) {
+ retValue = succeeded;
+ doneFlag = true;
+ notifyAll();
+ }
+ }
+
+ public boolean isDone() {
+ return doneFlag;
+ }
+ }
+
+ class PackageStatsObserver extends IPackageStatsObserver.Stub {
+ public boolean retValue = false;
+ public PackageStats stats;
+ private boolean doneFlag = false;
+
+ public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException {
+ synchronized (this) {
+ retValue = succeeded;
+ stats = pStats;
+ doneFlag = true;
+ notifyAll();
+ }
+ }
+
+ public boolean isDone() {
+ return doneFlag;
+ }
+ }
+
+}
+
diff --git a/app/src/main/java/com/mjsheng/myappstore/utils/JGYUtils.java b/app/src/main/java/com/mjsheng/myappstore/utils/JGYUtils.java
index a9cd620..d34a62b 100644
--- a/app/src/main/java/com/mjsheng/myappstore/utils/JGYUtils.java
+++ b/app/src/main/java/com/mjsheng/myappstore/utils/JGYUtils.java
@@ -63,6 +63,11 @@ public class JGYUtils {
return sInstance;
}
+ public static boolean isOfficialVersion() {
+ String channelValue = JGYUtils.getInstance().getStringMetaData();
+ return "official".equals(channelValue);
+ }
+
public void resetDevice() {
boolean isReset = MySQLData.GetBooleanData(mContext, CommonDatas.IS_RESET);
diff --git a/app/src/main/res/layout-land/activity_main.xml b/app/src/main/res/layout-land/activity_main.xml
index 69d9aa9..7d2f612 100644
--- a/app/src/main/res/layout-land/activity_main.xml
+++ b/app/src/main/res/layout-land/activity_main.xml
@@ -78,9 +78,8 @@
android:fadingEdge="none"
android:overScrollMode="never"
android:scrollbars="none"
- app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintBottom_toTopOf="@id/tv_customversion"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView">
@@ -91,6 +90,7 @@
android:layout_marginLeft="@dimen/dp_150"
android:layout_marginTop="12dp"
android:layout_marginRight="@dimen/dp_150"
+ android:layout_marginBottom="16dp"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -309,8 +309,8 @@
android:layout_width="@dimen/dp_240"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:layout_marginTop="8dp"
- android:layout_marginBottom="8dp"
+ android:layout_marginTop="16dp"
+ android:layout_marginBottom="24dp"
android:background="@drawable/bt_checkupdate_selector"
android:stateListAnimator="@null"
android:text="检查更新"
@@ -325,5 +325,14 @@
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-port/activity_main.xml b/app/src/main/res/layout-port/activity_main.xml
index c2fdeba..1b1430c 100644
--- a/app/src/main/res/layout-port/activity_main.xml
+++ b/app/src/main/res/layout-port/activity_main.xml
@@ -325,4 +325,14 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout" />
+
+
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 9e6fce1..47e6c74 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,19 +1,16 @@
-# Project-wide Gradle settings.
-
-# IDE (e.g. Android Studio) users:
-# Gradle settings configured through the IDE *will override*
-# any settings specified in this file.
-
-# For more details on how to configure your build environment visit
+## For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
-
+#
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
-android.enableJetifier=true
-android.useAndroidX=true
-org.gradle.jvmargs=-Xmx1536m
-
+# Default value: -Xmx1024m -XX:MaxPermSize=256m
+# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+#
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
+#Thu Apr 15 10:50:40 CST 2021
+android.enableJetifier=true
+org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M"
+android.useAndroidX=true