diff --git a/app/build.gradle b/app/build.gradle index bce7fc11..34ceef4e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -78,6 +78,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'com.google.android.material:material:1.8.0' + implementation project(path: ':common') // implementation 'androidx.camera:camera-video:1.2.3' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.1' @@ -89,6 +90,7 @@ dependencies { // implementation project(path: ':opencv') implementation files('libs/devapi.aar') + // implementation group: 'io.netty', name: 'netty-all', version: '4.1.96.Final' // implementation 'io.netty:netty-all:4.1.23.Final' // implementation 'org.apache.logging.log4j:log4j-api:2.14.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d92481fc..cf10b8d0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -129,7 +129,7 @@ diff --git a/app/src/main/java/com/xypower/mpapp/AppMaster.java b/app/src/main/java/com/xypower/mpapp/AppMaster.java index c249b4ef..7c975b4a 100644 --- a/app/src/main/java/com/xypower/mpapp/AppMaster.java +++ b/app/src/main/java/com/xypower/mpapp/AppMaster.java @@ -7,7 +7,6 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; @@ -20,6 +19,7 @@ import android.text.TextUtils; import android.util.Pair; import com.dev.devapi.api.SysApi; +import com.xypower.common.FileDownloader; import org.json.JSONObject; diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 562bb6e3..24fea552 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -44,6 +44,7 @@ import android.widget.RemoteViews; import android.widget.Toast; import com.dev.devapi.api.SysApi; +import com.xypower.common.FileDownloader; import java.io.File; import java.lang.reflect.Method; diff --git a/common/.gitignore b/common/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/common/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle new file mode 100644 index 00000000..db159a66 --- /dev/null +++ b/common/build.gradle @@ -0,0 +1,36 @@ +plugins { + id 'com.android.library' +} + +android { + compileSdk 32 + + defaultConfig { + minSdk 25 + targetSdk 32 + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles "consumer-rules.pro" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + + implementation 'androidx.appcompat:appcompat:1.3.0' + implementation 'com.google.android.material:material:1.4.0' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + implementation files('libs/devapi.aar') +} \ No newline at end of file diff --git a/common/consumer-rules.pro b/common/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/common/libs/devapi.aar b/common/libs/devapi.aar new file mode 100644 index 00000000..743280f4 Binary files /dev/null and b/common/libs/devapi.aar differ diff --git a/common/proguard-rules.pro b/common/proguard-rules.pro new file mode 100644 index 00000000..481bb434 --- /dev/null +++ b/common/proguard-rules.pro @@ -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 \ No newline at end of file diff --git a/common/src/main/AndroidManifest.xml b/common/src/main/AndroidManifest.xml new file mode 100644 index 00000000..90b6e1ca --- /dev/null +++ b/common/src/main/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/com/xypower/mpapp/FileDownloader.java b/common/src/main/java/com/xypower/common/FileDownloader.java similarity index 96% rename from app/src/main/java/com/xypower/mpapp/FileDownloader.java rename to common/src/main/java/com/xypower/common/FileDownloader.java index b14f6f5a..04ff5e4d 100644 --- a/app/src/main/java/com/xypower/mpapp/FileDownloader.java +++ b/common/src/main/java/com/xypower/common/FileDownloader.java @@ -1,4 +1,4 @@ -package com.xypower.mpapp; +package com.xypower.common; import android.text.TextUtils; import android.util.Log; @@ -15,7 +15,7 @@ import java.net.Socket; import java.net.URL; public class FileDownloader { - protected boolean download(String urlString, String filePath) { + public boolean download(String urlString, String filePath) { File downloadFile = null; if (TextUtils.isEmpty(urlString)) return false; diff --git a/common/src/main/java/com/xypower/common/MicroPhotoContext.java b/common/src/main/java/com/xypower/common/MicroPhotoContext.java new file mode 100644 index 00000000..edbe7dad --- /dev/null +++ b/common/src/main/java/com/xypower/common/MicroPhotoContext.java @@ -0,0 +1,4 @@ +package com.xypower.common; + +public class MicroPhotoContext { +} diff --git a/app/src/main/java/com/xypower/mpapp/UpdateReceiver.java b/common/src/main/java/com/xypower/common/UpdateReceiver.java similarity index 98% rename from app/src/main/java/com/xypower/mpapp/UpdateReceiver.java rename to common/src/main/java/com/xypower/common/UpdateReceiver.java index 3d02c66d..25af2b54 100644 --- a/app/src/main/java/com/xypower/mpapp/UpdateReceiver.java +++ b/common/src/main/java/com/xypower/common/UpdateReceiver.java @@ -1,4 +1,4 @@ -package com.xypower.mpapp; +package com.xypower.common; import android.content.BroadcastReceiver; import android.content.Context; diff --git a/mpmaster/build.gradle b/mpmaster/build.gradle index 15925e7f..8cd8ab9a 100644 --- a/mpmaster/build.gradle +++ b/mpmaster/build.gradle @@ -7,7 +7,7 @@ android { defaultConfig { applicationId "com.xypower.mpmaster" - minSdk 28 + minSdk 25 targetSdk 32 versionCode 1 versionName "1.0" @@ -32,6 +32,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.3.0' implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation project(path: ':common') testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/settings.gradle b/settings.gradle index f082db19..1e222e1f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -19,3 +19,4 @@ include ':mpmaster' // include ':opencv' // project(':opencv').projectDir = new File(opencvsdk + '/sdk') +include ':common'