@@ -26,6 +26,54 @@ class GenerateFileTask extends DefaultTask {
26
26
}
27
27
}
28
28
29
+ def configureCommon (project , manifestFile ) {
30
+ project. android {
31
+ compileSdkVersion 29
32
+ buildToolsVersion ' 29.0.3'
33
+
34
+ defaultConfig {
35
+ minSdkVersion 16
36
+ targetSdkVersion 29
37
+ }
38
+
39
+ sourceSets. main {
40
+ manifest. srcFile manifestFile
41
+ java. srcDirs = [' src' ]
42
+ resources. srcDirs = []
43
+ aidl. srcDirs = [' src' ]
44
+ renderscript. srcDirs = [' src' ]
45
+ res. srcDirs = [' res' ]
46
+ assets. srcDirs = [' assets' ]
47
+ }
48
+
49
+ compileOptions {
50
+ sourceCompatibility JavaVersion . VERSION_1_8
51
+ targetCompatibility JavaVersion . VERSION_1_8
52
+ }
53
+ }
54
+ }
55
+
56
+ project. ext. set ' configureLibrary' , { project ->
57
+ def packageName = ' chan.library.' + project. name
58
+ def xml = ' <?xml version="1.0" encoding="utf-8"?>\n ' +
59
+ ' <manifest xmlns:android="http://schemas.android.com/apk/res/android" ' +
60
+ " package=\" $packageName \" />"
61
+
62
+ def manifestFile = new File (project. buildDir, ' generated/AndroidManifest.xml' )
63
+ if (! manifestFile. exists()) {
64
+ // Fixes IntelliJ Android plugin error
65
+ manifestFile. parentFile. mkdirs()
66
+ manifestFile. write(xml)
67
+ }
68
+
69
+ project. preBuild. dependsOn(project. task(' generateManifest' , type : GenerateFileTask ) {
70
+ inputText = xml
71
+ outputFile = manifestFile
72
+ })
73
+
74
+ configureCommon(project, manifestFile)
75
+ }
76
+
29
77
project. ext. set ' configureExtension' , { project , data ->
30
78
def keyNotFound = { throw new NullPointerException (it + ' is not defined' ) }
31
79
@@ -37,6 +85,7 @@ project.ext.set 'configureExtension', { project, data ->
37
85
def icon = data[' icon' ] ?: ' ic_custom_' + chanName
38
86
def updateUri = data[' updateUri' ] ?: ' //raw.githubusercontent.com/Mishiranu/Dashchan/master/update/data.json'
39
87
def hosts = data[' hosts' ] ?: keyNotFound(' hosts' )
88
+ def customUriHandler = data[' customFilter' ] ?: false
40
89
def customFilter = data[' customFilter' ]
41
90
42
91
def requiredClasses = [' ChanConfiguration' , ' ChanLocator' , ' ChanMarkup' , ' ChanPerformer' ]
@@ -60,8 +109,8 @@ project.ext.set 'configureExtension', { project, data ->
60
109
" android:value=\" .${ chanNameUpper} ChanLocator\" />\n "
61
110
xml + = ' <meta-data android:name="chan.extension.class.markup" ' +
62
111
" android:value=\" .${ chanNameUpper} ChanMarkup\" />\n "
63
- xml + = ' <activity android:name="chan.app .UriHandlerActivity" android:label="Dashchan " ' +
64
- ' android:theme="@android:style/Theme.NoDisplay">\n '
112
+ xml + = ' <activity android:name="chan.application .UriHandlerActivity" ' +
113
+ ' android:label="Dashchan" android: theme="@android:style/Theme.NoDisplay">\n '
65
114
xml + = ' <intent-filter>\n ' +
66
115
' <action android:name="android.intent.action.VIEW" />\n ' +
67
116
' <category android:name="android.intent.category.DEFAULT" />\n ' +
@@ -100,30 +149,15 @@ project.ext.set 'configureExtension', { project, data ->
100
149
})
101
150
102
151
project. archivesBaseName = ' Dashchan' + chanNameUpper
152
+ configureCommon(project, manifestFile)
103
153
104
154
project. android {
105
- compileSdkVersion 29
106
- buildToolsVersion ' 29.0.3'
107
-
108
155
defaultConfig {
109
- minSdkVersion 16
110
- targetSdkVersion 29
111
-
112
156
// Don't warn about unused classes
113
157
buildConfigField ' Class[]' , ' USED_CLASSES' ,
114
158
' {' + requiredClasses. collect { it + ' .class' }. join(' , ' ) + ' }'
115
159
}
116
160
117
- sourceSets. main {
118
- manifest. srcFile manifestFile
119
- java. srcDirs = [' src' ]
120
- resources. srcDirs = []
121
- aidl. srcDirs = [' src' ]
122
- renderscript. srcDirs = [' src' ]
123
- res. srcDirs = [' res' ]
124
- assets. srcDirs = [' assets' ]
125
- }
126
-
127
161
if (file(' keystore.properties' ). exists()) {
128
162
def keystoreProperties = new Properties ()
129
163
keystoreProperties. load(new FileInputStream (file(' keystore.properties' )))
@@ -158,10 +192,12 @@ project.ext.set 'configureExtension', { project, data ->
158
192
abortOnError false
159
193
disable ' MissingTranslation'
160
194
}
195
+ }
161
196
162
- compileOptions {
163
- sourceCompatibility JavaVersion . VERSION_1_8
164
- targetCompatibility JavaVersion . VERSION_1_8
197
+ project. dependencies {
198
+ compileOnly project. project(' :libraries:api' )
199
+ if (! customUriHandler) {
200
+ implementation project. project(' :libraries:urihandler' )
165
201
}
166
202
}
167
203
}
0 commit comments