-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
update 1.2.1: blocks, unicode 15
- Loading branch information
Showing
51 changed files
with
73,370 additions
and
498 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,103 +1,38 @@ | ||
# Default PV proguard file - use it and abuse it if its useful. | ||
|
||
# If you keep the line number information, uncomment this to | ||
# hide the original source file name. | ||
-renamesourcefileattribute SourceFile | ||
|
||
-dontusemixedcaseclassnames | ||
-dontskipnonpubliclibraryclassmembers | ||
-verbose | ||
-optimizationpasses 5 | ||
-overloadaggressively | ||
-allowaccessmodification | ||
|
||
# Optimization is turned off by default. Dex does not like code run | ||
# through the ProGuard optimize and preverify steps (and performs some of these optimisations on its own). | ||
-dontpreverify | ||
|
||
# Note that if you want to enable optimization, you cannot just | ||
# include optimization flags in your own project configuration file; | ||
# instead you will need to point to the | ||
# "proguard-android-optimize.txt" file instead of this one from your | ||
# project.properties file. | ||
-repackageclasses "" | ||
-renamesourcefileattribute "" | ||
|
||
########## | ||
# Android: | ||
########## | ||
|
||
########## | ||
# Parcelables: Mantain the parcelables working | ||
########## | ||
-keep class * implements android.os.Parcelable { | ||
public static final android.os.Parcelable$Creator *; | ||
-assumenosideeffects class kotlin.jvm.internal.Intrinsics { | ||
public static void checkExpressionValueIsNotNull(java.lang.Object, java.lang.String); | ||
public static void checkFieldIsNotNull(java.lang.Object, java.lang.String); | ||
public static void checkFieldIsNotNull(java.lang.Object, java.lang.String, java.lang.String); | ||
public static void checkNotNull(java.lang.Object); | ||
public static void checkNotNull(java.lang.Object, java.lang.String); | ||
public static void checkNotNullExpressionValue(java.lang.Object, java.lang.String); | ||
public static void checkNotNullParameter(java.lang.Object, java.lang.String); | ||
public static void checkParameterIsNotNull(java.lang.Object, java.lang.String); | ||
public static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String); | ||
public static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String, java.lang.String); | ||
} | ||
|
||
-keepclassmembers class * implements android.os.Parcelable { | ||
static ** CREATOR; | ||
public static final android.os.Parcelable$Creator CREATOR; | ||
} | ||
|
||
-keepclassmembers class **.R$* { | ||
public static <fields>; | ||
} | ||
|
||
############# | ||
# Serializables | ||
############# | ||
-keepclassmembers class * implements java.io.Serializable { | ||
static final long serialVersionUID; | ||
private static final java.io.ObjectStreamField[] serialPersistentFields; | ||
private void writeObject(java.io.ObjectOutputStream); | ||
private void readObject(java.io.ObjectInputStream); | ||
java.lang.Object writeReplace(); | ||
java.lang.Object readResolve(); | ||
} | ||
########## | ||
# Kotlin | ||
########## | ||
-dontwarn kotlin.** | ||
-dontnote kotlin.** | ||
-dontwarn kotlinx.atomicfu.AtomicBoolean | ||
-keepclassmembers class **$WhenMappings { | ||
<fields>; | ||
} | ||
-keep class kotlin.** { *; } | ||
-keep class kotlin.Metadata { *; } | ||
# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath. | ||
-dontwarn kotlin.Unit | ||
#Ignore null checks at runtime | ||
-assumenosideeffects class kotlin.jvm.internal.Intrinsics { | ||
static void checkParameterIsNotNull(java.lang.Object, java.lang.String); | ||
} | ||
|
||
-keepclassmembers class **$WhenMappings { | ||
<fields>; | ||
} | ||
-keepclassmembers class kotlin.Metadata { | ||
public <methods>; | ||
} | ||
-assumenosideeffects class kotlin.jvm.internal.Intrinsics { | ||
static void checkParameterIsNotNull(java.lang.Object, java.lang.String); | ||
} | ||
########## | ||
# Coroutines | ||
########## | ||
# ServiceLoader support | ||
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {} | ||
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {} | ||
|
||
######################################## | ||
# External Libraries | ||
######################################## | ||
|
||
########## | ||
# Android architecture components: Lifecycle ( https://issuetracker.google.com/issues/62113696 ) | ||
########## | ||
|
||
# HttpClient Legacy (Ignore) - org.apache.http legacy | ||
############# | ||
-dontnote android.net.http.* | ||
-dontnote org.apache.commons.codec.** | ||
-dontnote org.apache.http.** | ||
########## | ||
|
||
########## | ||
# JSR 305 annotations are for embedding nullability information. | ||
########## | ||
-dontwarn javax.annotation.** | ||
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> | ||
<item android:drawable="@drawable/ic_launcher_foreground" /> | ||
<item android:drawable="@drawable/ic_launcher_overlay_debug" /> | ||
</layer-list> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="108dp" | ||
android:height="108dp" | ||
android:viewportWidth="108" | ||
android:viewportHeight="108"> | ||
<path | ||
android:fillColor="#FF8800" | ||
android:pathData="M0 73h108v35H0V73Z" /> | ||
<path | ||
android:fillColor="#FFFFFFFF" | ||
android:pathData="M40.8 84.1c-0.7 0-1.2-0.2-1.6-0.7-0.4-0.4-0.6-1-0.6-1.8v-1.9c0-0.8 0.2-1.4 0.6-1.8 0.4-0.4 0.9-0.7 1.6-0.7 0.5 0 1 0.2 1.3 0.4 0.3 0.3 0.5 0.7 0.5 1.2l-0.2-0.3h0.2l0-1.5v-1.9h1.1V84h-1.1v-1.3h-0.2l0.2-0.3c0 0.5-0.2 0.9-0.5 1.2-0.3 0.3-0.8 0.4-1.3 0.4Zm0.4-0.9c0.5 0 0.8-0.1 1.1-0.4 0.3-0.3 0.4-0.7 0.4-1.2v-1.8c0-0.5-0.1-0.9-0.4-1.2-0.3-0.3-0.6-0.4-1.1-0.4-0.5 0-0.8 0.1-1.1 0.4-0.3 0.3-0.4 0.7-0.4 1.2v1.8c0 0.5 0.1 0.9 0.4 1.2 0.3 0.3 0.6 0.4 1.1 0.4Zm6.4 0.9c-0.5 0-1-0.1-1.4-0.3-0.4-0.2-0.7-0.5-0.9-0.9C45.1 82.6 45 82.1 45 81.6v-1.8c0-0.5 0.1-1 0.3-1.3 0.2-0.4 0.5-0.7 0.9-0.9 0.4-0.2 0.9-0.3 1.4-0.3 0.5 0 1 0.1 1.4 0.3 0.4 0.2 0.7 0.5 0.9 0.9 0.2 0.4 0.3 0.8 0.3 1.3v1.2h-4.1v0.6c0 0.5 0.1 0.9 0.4 1.2 0.3 0.3 0.6 0.4 1.1 0.4 0.4 0 0.8-0.1 1-0.2 0.3-0.2 0.4-0.4 0.5-0.7h1.1c-0.1 0.6-0.3 1-0.8 1.3-0.5 0.3-1.1 0.5-1.7 0.5Zm1.5-3.9V79.8c0-0.5-0.1-0.9-0.4-1.2-0.3-0.3-0.6-0.4-1.1-0.4-0.5 0-0.9 0.1-1.1 0.4-0.3 0.3-0.4 0.7-0.4 1.2v0.4h3.1l-0.1 0.1Zm5.3 3.9c-0.6 0-1-0.1-1.3-0.4-0.3-0.3-0.5-0.7-0.5-1.2l0.2 0.3H52.6V84H51.5v-8.8h1.1v1.9l0 1.5h0.2l-0.2 0.3c0-0.5 0.2-0.9 0.5-1.2 0.3-0.3 0.8-0.4 1.3-0.4 0.7 0 1.2 0.2 1.6 0.7 0.4 0.4 0.6 1 0.6 1.8v1.9c0 0.8-0.2 1.4-0.6 1.8-0.4 0.4-0.9 0.7-1.6 0.7Zm-0.4-0.9c0.5 0 0.8-0.1 1.1-0.4 0.3-0.3 0.4-0.7 0.4-1.2v-1.8c0-0.5-0.1-0.9-0.4-1.2-0.3-0.3-0.6-0.4-1.1-0.4-0.4 0-0.8 0.1-1.1 0.4-0.3 0.3-0.4 0.7-0.4 1.2v1.8c0 0.5 0.1 0.9 0.4 1.2 0.3 0.3 0.6 0.4 1.1 0.4Zm6.4 0.9c-0.8 0-1.4-0.2-1.8-0.7-0.5-0.5-0.7-1.1-0.7-1.9v-4.2h1.1v4.2c0 0.5 0.1 0.9 0.4 1.2 0.3 0.3 0.6 0.4 1.1 0.4 0.4 0 0.8-0.1 1.1-0.4 0.3-0.3 0.4-0.7 0.4-1.2v-4.2h1.1v4.2c0 0.8-0.2 1.4-0.7 1.9-0.5 0.5-1.1 0.7-1.8 0.7Zm4.8 2v-1h2.1c0.3 0 0.6-0.1 0.7-0.2 0.2-0.2 0.2-0.4 0.2-0.7V83.4l0-1.2h-0.2l0.2-0.2c0 0.5-0.2 0.9-0.5 1.1-0.3 0.3-0.8 0.4-1.3 0.4-0.7 0-1.2-0.2-1.6-0.7-0.4-0.5-0.6-1.1-0.6-1.8v-1.4c0-0.7 0.2-1.3 0.6-1.8 0.4-0.4 0.9-0.7 1.6-0.7 0.5 0 1 0.1 1.3 0.4 0.3 0.3 0.5 0.7 0.5 1.1l-0.2-0.2h0.2V77.4h1.1v6.8c0 0.6-0.2 1.1-0.6 1.4-0.4 0.4-0.9 0.5-1.5 0.5h-2.1Zm1.6-3.5c0.5 0 0.8-0.1 1.1-0.4 0.3-0.3 0.4-0.7 0.4-1.2V79.8c0-0.5-0.1-0.9-0.4-1.2-0.3-0.3-0.6-0.4-1.1-0.4-0.5 0-0.8 0.1-1.1 0.4-0.3 0.3-0.4 0.7-0.4 1.2v1.3c0 0.5 0.1 0.9 0.4 1.2 0.3 0.3 0.6 0.4 1.1 0.4Z" /> | ||
</vector> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> | ||
<item | ||
android:width="184dp" | ||
android:height="184dp" | ||
android:drawable="@drawable/ic_launcher_background" | ||
android:gravity="center" /> | ||
<item | ||
android:width="184dp" | ||
android:height="184dp" | ||
android:drawable="@drawable/ic_launcher_foreground" | ||
android:gravity="center" /> | ||
<item | ||
android:width="184dp" | ||
android:height="184dp" | ||
android:drawable="@drawable/ic_launcher_overlay_debug" | ||
android:gravity="center" /> | ||
<item | ||
android:width="270dp" | ||
android:height="270dp" | ||
android:gravity="center"> | ||
<shape android:shape="oval"> | ||
<stroke | ||
android:width="74dp" | ||
android:color="@color/windowBackground" /> | ||
</shape> | ||
</item> | ||
</layer-list> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> | ||
<background android:drawable="@drawable/ic_launcher_background" /> | ||
<foreground android:drawable="@drawable/ic_launcher_foreground_debug" /> | ||
</adaptive-icon> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> | ||
<background android:drawable="@drawable/ic_launcher_background" /> | ||
<foreground android:drawable="@drawable/ic_launcher_foreground_debug" /> | ||
</adaptive-icon> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,140 @@ | ||
import java.io.File | ||
import java.io.PrintWriter | ||
|
||
class Version( | ||
val start: Int, | ||
val end: Int?, | ||
val version: String, | ||
) { | ||
fun contains(codePoint: Int): Boolean { | ||
return if (end == null) { | ||
codePoint == start | ||
} else { | ||
codePoint >= start && codePoint <= end | ||
} | ||
} | ||
} | ||
|
||
class Block( | ||
val id: Int, | ||
val start: Int, | ||
val end: Int, | ||
val name: String, | ||
) { | ||
fun print(out: PrintWriter) { | ||
out.println("$id,$name,$start,$end") | ||
} | ||
} | ||
|
||
class Char( | ||
val id: Int, | ||
val codePoint: Int, | ||
val name: String, | ||
val name2: String, | ||
val blockId: Int, | ||
val version: String, | ||
) { | ||
fun print(out: PrintWriter) { | ||
out.println("$id,$codePoint,$name,$name2,$blockId,$version") | ||
} | ||
} | ||
|
||
fun main() { | ||
val root = "app/src/main/kotlin/vadiole/generator" | ||
val blocks = File("$root/input/block.txt") | ||
.readCsv(";") | ||
.mapIndexed { id, lineData -> | ||
val limits = lineData.first().split("..") | ||
val start = limits[0].toInt(16) | ||
val end = limits[1].toInt(16) | ||
val name = lineData[1] | ||
Block(id, start, end, name) | ||
} | ||
val versions = File("$root/input/version.txt") | ||
.readCsv(";") | ||
.map { lineData -> | ||
val limits = lineData.first().split("..") | ||
return@map if (limits.size == 1) { | ||
Version( | ||
limits[0].toInt(16), | ||
null, | ||
lineData[1], | ||
) | ||
} else { | ||
Version( | ||
limits[0].toInt(16), | ||
limits[1].toInt(16), | ||
lineData[1], | ||
) | ||
} | ||
} | ||
val chars = File("$root/input/data.txt") | ||
.readCsv(";") | ||
.mapIndexed { id, lineData -> | ||
val codePoint = lineData[0].toInt(16) | ||
var name = lineData[1] | ||
var name2 = lineData[10] | ||
if (name == "<control>") { | ||
name = name2 | ||
name2 = "" | ||
// chars 128, 129, 132 has no names in unicode data | ||
when (codePoint) { | ||
128 -> { | ||
name = "PADDING CHARACTER" | ||
} | ||
129 -> { | ||
name = "HIGH OCTET PRESET" | ||
} | ||
132 -> { | ||
name = "INDEX" | ||
} | ||
153 -> { | ||
name = "SINGLE GRAPHIC CHARACTER INTRODUCER" | ||
} | ||
} | ||
} | ||
if (name.isEmpty()) { | ||
throw RuntimeException("char with code point $codePoint has no name") | ||
} | ||
val blockId = blocks | ||
.find { block -> | ||
codePoint >= block.start && codePoint <= block.end | ||
}!! | ||
.id | ||
val version = versions | ||
.find { version -> | ||
version.contains(codePoint) | ||
}?.version ?: "1.0" | ||
Char(id, codePoint, name, name2, blockId, version) | ||
} | ||
|
||
File("$root/output/char.csv").printWriter().use { out -> | ||
chars.forEach { char -> | ||
char.print(out) | ||
} | ||
} | ||
|
||
File("$root/output/block.csv").printWriter().use { out -> | ||
blocks.forEach { block -> | ||
block.print(out) | ||
} | ||
} | ||
} | ||
|
||
fun File.readCsv(delimiter: String): List<List<String>> { | ||
return readLines() | ||
.filterNot { line -> | ||
line.startsWith("#") | ||
} | ||
.filter { line -> | ||
line.isNotBlank() | ||
} | ||
.map { line -> | ||
line | ||
.substringBefore("#") | ||
.split(delimiter) | ||
.map { string -> | ||
string.trim() | ||
} | ||
} | ||
} |
Oops, something went wrong.