@TaskAction public void generate() throws IOException { StringBuilder content = new StringBuilder( "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" + " package=\"\">\n" + "\n" + " <compatible-screens>\n"); String density = getScreenDensity(); // convert unsupported values to numbers. density = convert(density, Density.XXHIGH, Density.XXXHIGH); for (String size : getScreenSizes()) { content.append( " <screen android:screenSize=\"").append(size).append("\" " + "android:screenDensity=\"").append(density).append("\" />\n"); } content.append( " </compatible-screens>\n" + "</manifest>"); Files.write(content.toString(), getManifestFile(), Charsets.UTF_8); }
@Override public void execute(@NonNull CompatibleScreensManifest csmTask) { csmTask.setVariantName(scope.getVariantScope().getVariantConfiguration().getFullName()); csmTask.setScreenDensity(scope.getVariantOutputData().getMainOutputFile() .getFilter(com.android.build.OutputFile.DENSITY)); csmTask.setScreenSizes(screenSizes); csmTask.setManifestFile(scope.getCompatibleScreensManifestFile()); } }