Skip to content

Commit 31a28bd

Browse files
committed
Add NewArmsModule
1 parent 6ebd631 commit 31a28bd

37 files changed

+1082
-0
lines changed

NewArmsModule/globals.xml.ftl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0"?>
2+
<globals>
3+
<#include "root://gradle-projects/common/globals.xml.ftl" />
4+
<#include "root://gradle-projects/common/globals_android_module.xml.ftl" />
5+
<global id="isLibraryProject" type="boolean" value="${(isLibraryProject!false)?string}" />
6+
<global id="isApplicationProject" type="boolean" value="${(!(isLibraryProject!false))?string}" />
7+
<#include "root://activities/common/kotlin_globals.xml.ftl" />
8+
</globals>

NewArmsModule/recipe.xml.ftl

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
<?xml version="1.0"?>
2+
<!-- TODO: check include Cpp support; add driver module template -->
3+
<recipe>
4+
<mkdir at="${escapeXmlAttribute(projectOut)}/libs" />
5+
<mkdir at="${escapeXmlAttribute(resOut)}/anim" />
6+
<mkdir at="${escapeXmlAttribute(resOut)}/drawable" />
7+
<mkdir at="${escapeXmlAttribute(resOut)}/drawable-xhdpi" />
8+
<mkdir at="${escapeXmlAttribute(resOut)}/drawable-xxhdpi" />
9+
<mkdir at="${escapeXmlAttribute(resOut)}/drawable-xxxhdpi" />
10+
<mkdir at="${escapeXmlAttribute(resOut)}/mipmap-hdpi" />
11+
<mkdir at="${escapeXmlAttribute(resOut)}/mipmap-xhdpi" />
12+
<mkdir at="${escapeXmlAttribute(resOut)}/mipmap-xxhdpi" />
13+
<mkdir at="${escapeXmlAttribute(resOut)}/mipmap-xxxhdpi" />
14+
<mkdir at="${escapeXmlAttribute(resOut)}/layout" />
15+
<mkdir at="${projectOut}/src/main/java/${slashedPackageName(packageName)}/mvp/model/api/service" />
16+
<mkdir at="${projectOut}/src/main/java/${slashedPackageName(packageName)}/mvp/model/api/cache" />
17+
<mkdir at="${projectOut}/src/main/java/${slashedPackageName(packageName)}/mvp/model/entity" />
18+
<mkdir at="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/service" />
19+
<mkdir at="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/utils" />
20+
21+
<merge from="root/settings.gradle.ftl"
22+
to="${escapeXmlAttribute(topOut)}/settings.gradle" />
23+
24+
<instantiate from="root/build.gradle.ftl"
25+
to="${escapeXmlAttribute(projectOut)}/build.gradle" />
26+
<instantiate from="root/AndroidManifest.xml.ftl"
27+
to="${escapeXmlAttribute(manifestOut)}/AndroidManifest.xml" />
28+
<instantiate from="root/res/layout/include_title.xml.ftl"
29+
to="${escapeXmlAttribute(resOut)}/layout/include_title.xml" />
30+
<instantiate from="root/res/values/strings.xml.ftl"
31+
to="${escapeXmlAttribute(resOut)}/values/strings.xml" />
32+
<instantiate from="root/res/values/dimens.xml.ftl"
33+
to="${escapeXmlAttribute(resOut)}/values/dimens.xml" />
34+
<instantiate from="root/res/values/styles.xml.ftl"
35+
to="${escapeXmlAttribute(resOut)}/values/styles.xml" />
36+
<copy from="root/res/values/colors.xml"
37+
to="${escapeXmlAttribute(resOut)}/values/colors.xml" />
38+
<instantiate from="root/test/app_package/ExampleInstrumentedTest.java.ftl"
39+
to="${escapeXmlAttribute(testOut)}/ExampleInstrumentedTest.java" />
40+
41+
<instantiate from="root/src/app_package/GlobalConfiguration.java.ftl"
42+
to="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/GlobalConfiguration.java" />
43+
<open file="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/GlobalConfiguration.java" />
44+
<instantiate from="root/src/app_package/AppLifecyclesImpl.java.ftl"
45+
to="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/AppLifecyclesImpl.java" />
46+
<open file="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/AppLifecyclesImpl.java" />
47+
<instantiate from="root/src/app_package/ActivityLifecycleCallbacksImpl.java.ftl"
48+
to="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/ActivityLifecycleCallbacksImpl.java" />
49+
<instantiate from="root/src/app_package/GlobalHttpHandlerImpl.java.ftl"
50+
to="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/GlobalHttpHandlerImpl.java" />
51+
<instantiate from="root/src/app_package/ResponseErrorListenerImpl.java.ftl"
52+
to="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/ResponseErrorListenerImpl.java" />
53+
<instantiate from="root/src/app_package/EventBusTags.java.ftl"
54+
to="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/EventBusTags.java" />
55+
<instantiate from="root/src/app_package/RxUtils.java.ftl"
56+
to="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/utils/RxUtils.java" />
57+
<instantiate from="root/src/app_package/Api.java.ftl"
58+
to="${projectOut}/src/main/java/${slashedPackageName(packageName)}/mvp/model/api/Api.java" />
59+
60+
61+
62+
<#if unitTestsSupported>
63+
<instantiate from="root/test/app_package/ExampleUnitTest.java.ftl"
64+
to="${escapeXmlAttribute(unitTestOut)}/ExampleUnitTest.java" />
65+
</#if>
66+
67+
68+
<#if !createActivity>
69+
<mkdir at="${escapeXmlAttribute(srcOut)}" />
70+
</#if>
71+
72+
<#if makeIgnore>
73+
<copy from="root://gradle-projects/common/gitignore"
74+
to="${escapeXmlAttribute(projectOut)}/.gitignore" />
75+
</#if>
76+
77+
<#include "root://gradle-projects/common/proguard_recipe.xml.ftl"/>
78+
79+
80+
<copy from="root/res/mipmap-hdpi/ic_launcher.png"
81+
to="${escapeXmlAttribute(resOut)}/mipmap-hdpi/ic_launcher.png" />
82+
<copy from="root/res/mipmap-xhdpi/ic_launcher.png"
83+
to="${escapeXmlAttribute(resOut)}/mipmap-xhdpi/ic_launcher.png" />
84+
<copy from="root/res/mipmap-xxhdpi/ic_launcher.png"
85+
to="${escapeXmlAttribute(resOut)}/mipmap-xxhdpi/ic_launcher.png" />
86+
<copy from="root/res/mipmap-xxxhdpi/ic_launcher.png"
87+
to="${escapeXmlAttribute(resOut)}/mipmap-xxxhdpi/ic_launcher.png" />
88+
89+
<copy from="root/res/drawable-xhdpi/ic_arrow_back_white_24dp.png"
90+
to="${escapeXmlAttribute(resOut)}/drawable-xhdpi/ic_arrow_back_white_24dp.png" />
91+
<copy from="root/res/drawable-xxhdpi/ic_arrow_back_white_24dp.png"
92+
to="${escapeXmlAttribute(resOut)}/drawable-xxhdpi/ic_arrow_back_white_24dp.png" />
93+
<copy from="root/res/drawable-xxxhdpi/ic_arrow_back_white_24dp.png"
94+
to="${escapeXmlAttribute(resOut)}/drawable-xxxhdpi/ic_arrow_back_white_24dp.png" />
95+
96+
<copy from="root/res/anim/translate_center_to_left.xml"
97+
to="${escapeXmlAttribute(resOut)}/anim/translate_center_to_left.xml" />
98+
<copy from="root/res/anim/translate_center_to_right.xml"
99+
to="${escapeXmlAttribute(resOut)}/anim/translate_center_to_right.xml" />
100+
<copy from="root/res/anim/translate_left_to_center.xml"
101+
to="${escapeXmlAttribute(resOut)}/anim/translate_left_to_center.xml" />
102+
<copy from="root/res/anim/translate_right_to_center.xml"
103+
to="${escapeXmlAttribute(resOut)}/anim/translate_right_to_center.xml" />
104+
105+
</recipe>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="${packageName}">
4+
5+
<uses-permission android:name="android.permission.INTERNET"/>
6+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
7+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
8+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
9+
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
10+
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
11+
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
12+
13+
<application
14+
android:name="com.jess.arms.base.BaseApplication"
15+
android:allowBackup="true"
16+
android:icon="@mipmap/ic_launcher"
17+
android:label="@string/app_name"
18+
android:supportsRtl="true"
19+
android:theme="@style/AppTheme">
20+
21+
<!-- autolayout meta
22+
配置设计图的宽高,配合AutoLauout控件使用,在设计图尺寸以外的其它尺寸手机上,也能达到和设计图一样的效果
23+
注意: 本框架并不强制你使用 AutoLayout,如果你不想使用 AutoLayout,就不要配置下面的 meta-data
24+
-->
25+
<meta-data
26+
android:name="design_width"
27+
android:value="1080"/>
28+
<meta-data
29+
android:name="design_height"
30+
android:value="1920"/>
31+
32+
<!-- arms配置 -->
33+
<meta-data
34+
android:name="${packageName}.app.GlobalConfiguration"
35+
android:value="ConfigModule"/>
36+
</application>
37+
</manifest>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# For more information about using CMake with Android Studio, read the
2+
# documentation: https://d.android.com/studio/projects/add-native-code.html
3+
4+
# Sets the minimum version of CMake required to build the native library.
5+
6+
cmake_minimum_required(VERSION 3.4.1)
7+
8+
# Creates and names a library, sets it as either STATIC
9+
# or SHARED, and provides the relative paths to its source code.
10+
# You can define multiple libraries, and CMake builds them for you.
11+
# Gradle automatically packages shared libraries with your APK.
12+
13+
add_library( # Sets the name of the library.
14+
native-lib
15+
16+
# Sets the library as a shared library.
17+
SHARED
18+
19+
# Provides a relative path to your source file(s).
20+
src/main/cpp/native-lib.cpp )
21+
22+
# Searches for a specified prebuilt library and stores the path as a
23+
# variable. Because CMake includes system libraries in the search path by
24+
# default, you only need to specify the name of the public NDK library
25+
# you want to add. CMake verifies that the library exists before
26+
# completing its build.
27+
28+
find_library( # Sets the name of the path variable.
29+
log-lib
30+
31+
# Specifies the name of the NDK library that
32+
# you want CMake to locate.
33+
log )
34+
35+
# Specifies libraries CMake should link to your target library. You
36+
# can link multiple libraries, such as libraries you define in this
37+
# build script, prebuilt third-party libraries, or system libraries.
38+
39+
target_link_libraries( # Specifies the target library.
40+
native-lib
41+
42+
# Links the target library to the log library
43+
# included in the NDK.
44+
${r"${log-lib}"} )
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<#import "root://activities/common/kotlin_macros.ftl" as kt>
2+
apply plugin: 'com.android.application'
3+
<@kt.addKotlinPlugins />
4+
5+
android {
6+
compileSdkVersion rootProject.ext.android["compileSdkVersion"]
7+
<#if compareVersionsIgnoringQualifiers(gradlePluginVersion, '3.0.0') lt 0>buildToolsVersion rootProject.ext.android["buildToolsVersion"]</#if>
8+
useLibrary 'org.apache.http.legacy'
9+
10+
compileOptions {
11+
targetCompatibility JavaVersion.VERSION_1_8
12+
sourceCompatibility JavaVersion.VERSION_1_8
13+
}
14+
15+
defaultConfig {
16+
applicationId "${packageName}"
17+
minSdkVersion rootProject.ext.android["minSdkVersion"]
18+
targetSdkVersion rootProject.ext.android["targetSdkVersion"]
19+
versionCode rootProject.ext.android["versionCode"]
20+
versionName rootProject.ext.android["versionName"]
21+
testInstrumentationRunner rootProject.ext.dependencies["androidJUnitRunner"]
22+
}
23+
24+
buildTypes {
25+
debug {
26+
buildConfigField "boolean", "LOG_DEBUG", "true"
27+
buildConfigField "boolean", "USE_CANARY", "true"
28+
minifyEnabled false
29+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
30+
}
31+
32+
release {
33+
buildConfigField "boolean", "LOG_DEBUG", "false"
34+
buildConfigField "boolean", "USE_CANARY", "false"
35+
minifyEnabled true
36+
shrinkResources true
37+
zipAlignEnabled true
38+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
39+
}
40+
}
41+
42+
lintOptions {
43+
disable 'InvalidPackage'
44+
disable "ResourceType"
45+
abortOnError false
46+
}
47+
}
48+
49+
dependencies {
50+
${getConfigurationName("compile")} fileTree(dir: 'libs', include: ['*.jar'])
51+
${getConfigurationName("compile")} 'me.jessyan:arms:+'
52+
//view
53+
annotationProcessor(rootProject.ext.dependencies["butterknife-compiler"]) {
54+
exclude module: 'support-annotations'
55+
}
56+
//tools
57+
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
58+
//test
59+
debugImplementation rootProject.ext.dependencies["canary-debug"]
60+
releaseImplementation rootProject.ext.dependencies["canary-release"]
61+
testImplementation rootProject.ext.dependencies["canary-release"]
62+
testImplementation rootProject.ext.dependencies["junit"]
63+
<@kt.addKotlinDependencies />
64+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#include <jni.h>
2+
#include <string>
3+
4+
<#if activityClass?? && packageName??>
5+
extern "C" JNIEXPORT jstring JNICALL
6+
Java_${packageName?replace('_','_1','i')?replace('.','_','i')}_${activityClass}_stringFromJNI(
7+
JNIEnv* env,
8+
jobject /* this */) {
9+
std::string hello = "Hello from C++";
10+
return env->NewStringUTF(hello.c_str());
11+
}
12+
</#if>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<set xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:duration="300"
4+
>
5+
<translate
6+
android:fromXDelta="0%"
7+
android:toXDelta="-100%"
8+
/>
9+
10+
11+
</set>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<set xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:duration="300"
4+
>
5+
<translate
6+
android:fromXDelta="0%"
7+
android:toXDelta="100%"
8+
/>
9+
10+
11+
</set>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<set xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:duration="300"
4+
>
5+
<translate
6+
android:fromXDelta="-100%"
7+
android:toXDelta="0%"
8+
/>
9+
10+
11+
</set>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<set xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:duration="300"
4+
>
5+
<translate
6+
android:fromXDelta="100%"
7+
android:toXDelta="0%"
8+
/>
9+
10+
11+
</set>

0 commit comments

Comments
 (0)